@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,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExperienceStore - Persistence layer for experience data.
|
|
3
|
+
*
|
|
4
|
+
* Stores experience events, search journeys, anti-results, and usage metadata
|
|
5
|
+
* in JSONL format for easy append and query operations.
|
|
6
|
+
*
|
|
7
|
+
* Storage structure:
|
|
8
|
+
* .codemap/experience/
|
|
9
|
+
* ├── events/
|
|
10
|
+
* │ └── sess_<sessionId>.jsonl # Experience events per session
|
|
11
|
+
* ├── search-journeys.jsonl # Search journey records
|
|
12
|
+
* ├── anti-results.jsonl # Anti-result entries
|
|
13
|
+
* └── usage-metadata.jsonl # Usage metadata per file
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const store = new ExperienceStore(fsProvider, '.codemap/experience');
|
|
18
|
+
*
|
|
19
|
+
* // Append experience event
|
|
20
|
+
* await store.appendEvent({
|
|
21
|
+
* id: 'evt_123',
|
|
22
|
+
* tool: 'codemap_read',
|
|
23
|
+
* operation: 'content',
|
|
24
|
+
* target: 'file.ts',
|
|
25
|
+
* outcome: 'success',
|
|
26
|
+
* sessionId: 'sess_456',
|
|
27
|
+
* timestamp: new Date().toISOString()
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Record search journey
|
|
31
|
+
* await store.recordJourney(journey);
|
|
32
|
+
*
|
|
33
|
+
* // Get usage metadata
|
|
34
|
+
* const metadata = await store.getUsageMetadata('file.ts');
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
import type { ExperienceEvent, SearchJourney, AntiResultEntry, UsageMetadata } from '../types';
|
|
38
|
+
/**
|
|
39
|
+
* Minimal file system provider for experience storage.
|
|
40
|
+
*/
|
|
41
|
+
export interface FileSystemProvider {
|
|
42
|
+
read(path: string): Promise<string>;
|
|
43
|
+
write(path: string, content: string): Promise<void>;
|
|
44
|
+
exists(path: string): Promise<boolean>;
|
|
45
|
+
mkdir(path: string): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
export declare class ExperienceStore {
|
|
48
|
+
private storage;
|
|
49
|
+
private storageRoot;
|
|
50
|
+
private currentSessionId;
|
|
51
|
+
constructor(storage: FileSystemProvider, storageRoot?: string);
|
|
52
|
+
/**
|
|
53
|
+
* Set current session ID.
|
|
54
|
+
* Called at session start to scope events to this session.
|
|
55
|
+
*/
|
|
56
|
+
setSessionId(sessionId: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get current session ID.
|
|
59
|
+
*/
|
|
60
|
+
getSessionId(): string;
|
|
61
|
+
/**
|
|
62
|
+
* Append an experience event.
|
|
63
|
+
* Events are stored in session-specific JSONL files.
|
|
64
|
+
*
|
|
65
|
+
* @param event - Experience event to append
|
|
66
|
+
*/
|
|
67
|
+
appendEvent(event: ExperienceEvent): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Get events for a specific session.
|
|
70
|
+
*
|
|
71
|
+
* @param sessionId - Session ID
|
|
72
|
+
* @returns Array of events
|
|
73
|
+
*/
|
|
74
|
+
getSessionEvents(sessionId: string): Promise<ExperienceEvent[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Get events for the current session.
|
|
77
|
+
*/
|
|
78
|
+
getCurrentSessionEvents(): Promise<ExperienceEvent[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Record a search journey.
|
|
81
|
+
*
|
|
82
|
+
* @param journey - Search journey to record
|
|
83
|
+
*/
|
|
84
|
+
recordJourney(journey: SearchJourney): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Get all search journeys.
|
|
87
|
+
*
|
|
88
|
+
* @returns Array of journeys
|
|
89
|
+
*/
|
|
90
|
+
getAllJourneys(): Promise<SearchJourney[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Get search journeys for a specific file.
|
|
93
|
+
*
|
|
94
|
+
* @param filePath - Target file path
|
|
95
|
+
* @returns Array of journeys that ended with this file
|
|
96
|
+
*/
|
|
97
|
+
getJourneysForFile(filePath: string): Promise<SearchJourney[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Record an anti-result entry.
|
|
100
|
+
*
|
|
101
|
+
* @param entry - Anti-result entry
|
|
102
|
+
*/
|
|
103
|
+
recordAntiResult(entry: AntiResultEntry): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Get anti-results for a specific file.
|
|
106
|
+
*
|
|
107
|
+
* @param filePath - The incorrect file path
|
|
108
|
+
* @returns Array of anti-result entries where this file was wrong
|
|
109
|
+
*/
|
|
110
|
+
getAntiResults(filePath: string): Promise<AntiResultEntry[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Set usage metadata for a file.
|
|
113
|
+
*
|
|
114
|
+
* @param metadata - Usage metadata
|
|
115
|
+
*/
|
|
116
|
+
setUsageMetadata(metadata: UsageMetadata): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Get usage metadata for a specific file.
|
|
119
|
+
*
|
|
120
|
+
* @param target - File path
|
|
121
|
+
* @returns Usage metadata or null if not found
|
|
122
|
+
*/
|
|
123
|
+
getUsageMetadata(target: string): Promise<UsageMetadata | null>;
|
|
124
|
+
/**
|
|
125
|
+
* Get all usage metadata.
|
|
126
|
+
*
|
|
127
|
+
* @returns Array of all usage metadata entries
|
|
128
|
+
*/
|
|
129
|
+
getAllUsageMetadata(): Promise<UsageMetadata[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Add usage phrases to existing metadata.
|
|
132
|
+
*
|
|
133
|
+
* @param target - File path
|
|
134
|
+
* @param usages - New usage phrases to add
|
|
135
|
+
* @returns Updated metadata
|
|
136
|
+
*/
|
|
137
|
+
addUsages(target: string, usages: string[]): Promise<UsageMetadata>;
|
|
138
|
+
/**
|
|
139
|
+
* Ensure storage directories exist.
|
|
140
|
+
*/
|
|
141
|
+
private ensureDirectories;
|
|
142
|
+
/**
|
|
143
|
+
* Read JSONL file and parse to array of objects.
|
|
144
|
+
*
|
|
145
|
+
* @param path - File path
|
|
146
|
+
* @returns Array of parsed objects
|
|
147
|
+
*/
|
|
148
|
+
private readJsonl;
|
|
149
|
+
/**
|
|
150
|
+
* Write array of objects to JSONL file.
|
|
151
|
+
*
|
|
152
|
+
* @param path - File path
|
|
153
|
+
* @param data - Array of objects to write
|
|
154
|
+
*/
|
|
155
|
+
private writeJsonl;
|
|
156
|
+
/**
|
|
157
|
+
* Append content to a file (create if doesn't exist).
|
|
158
|
+
*
|
|
159
|
+
* @param path - File path
|
|
160
|
+
* @param content - Content to append
|
|
161
|
+
*/
|
|
162
|
+
private appendToFile;
|
|
163
|
+
/**
|
|
164
|
+
* Generate a unique session ID.
|
|
165
|
+
*
|
|
166
|
+
* @returns Session ID string
|
|
167
|
+
*/
|
|
168
|
+
private generateSessionId;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=ExperienceStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperienceStore.d.ts","sourceRoot":"","sources":["../../src/core/ExperienceStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAAS;gBAGvB,OAAO,EAAE,kBAAkB,EACnC,WAAW,GAAE,MAA8B;IAM7C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,IAAI,MAAM;IAMtB;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKrE;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAM3D;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKhD;;;;;OAKG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASpE;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D;;;;;OAKG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQlE;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAMrE;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKrD;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IA4BzE;;OAEG;YACW,iBAAiB;IAO/B;;;;;OAKG;YACW,SAAS;IAgBvB;;;;;OAKG;YACW,UAAU;IAMxB;;;;;OAKG;YACW,YAAY;IAW1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAK1B"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ExperienceStore - Persistence layer for experience data.
|
|
4
|
+
*
|
|
5
|
+
* Stores experience events, search journeys, anti-results, and usage metadata
|
|
6
|
+
* in JSONL format for easy append and query operations.
|
|
7
|
+
*
|
|
8
|
+
* Storage structure:
|
|
9
|
+
* .codemap/experience/
|
|
10
|
+
* ├── events/
|
|
11
|
+
* │ └── sess_<sessionId>.jsonl # Experience events per session
|
|
12
|
+
* ├── search-journeys.jsonl # Search journey records
|
|
13
|
+
* ├── anti-results.jsonl # Anti-result entries
|
|
14
|
+
* └── usage-metadata.jsonl # Usage metadata per file
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const store = new ExperienceStore(fsProvider, '.codemap/experience');
|
|
19
|
+
*
|
|
20
|
+
* // Append experience event
|
|
21
|
+
* await store.appendEvent({
|
|
22
|
+
* id: 'evt_123',
|
|
23
|
+
* tool: 'codemap_read',
|
|
24
|
+
* operation: 'content',
|
|
25
|
+
* target: 'file.ts',
|
|
26
|
+
* outcome: 'success',
|
|
27
|
+
* sessionId: 'sess_456',
|
|
28
|
+
* timestamp: new Date().toISOString()
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Record search journey
|
|
32
|
+
* await store.recordJourney(journey);
|
|
33
|
+
*
|
|
34
|
+
* // Get usage metadata
|
|
35
|
+
* const metadata = await store.getUsageMetadata('file.ts');
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ExperienceStore = void 0;
|
|
40
|
+
class ExperienceStore {
|
|
41
|
+
storage;
|
|
42
|
+
storageRoot;
|
|
43
|
+
currentSessionId;
|
|
44
|
+
constructor(storage, storageRoot = '.codemap/experience') {
|
|
45
|
+
this.storage = storage;
|
|
46
|
+
this.storageRoot = storageRoot;
|
|
47
|
+
this.currentSessionId = this.generateSessionId();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Set current session ID.
|
|
51
|
+
* Called at session start to scope events to this session.
|
|
52
|
+
*/
|
|
53
|
+
setSessionId(sessionId) {
|
|
54
|
+
this.currentSessionId = sessionId;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get current session ID.
|
|
58
|
+
*/
|
|
59
|
+
getSessionId() {
|
|
60
|
+
return this.currentSessionId;
|
|
61
|
+
}
|
|
62
|
+
// ── Event Operations ───────────────────────────────────────────────────────
|
|
63
|
+
/**
|
|
64
|
+
* Append an experience event.
|
|
65
|
+
* Events are stored in session-specific JSONL files.
|
|
66
|
+
*
|
|
67
|
+
* @param event - Experience event to append
|
|
68
|
+
*/
|
|
69
|
+
async appendEvent(event) {
|
|
70
|
+
await this.ensureDirectories();
|
|
71
|
+
const eventsDir = `${this.storageRoot}/events`;
|
|
72
|
+
const sessionFile = `${eventsDir}/sess_${event.sessionId}.jsonl`;
|
|
73
|
+
// Ensure events directory exists
|
|
74
|
+
const eventsDirExists = await this.storage.exists(eventsDir);
|
|
75
|
+
if (!eventsDirExists) {
|
|
76
|
+
await this.storage.mkdir(eventsDir);
|
|
77
|
+
}
|
|
78
|
+
// Append event as JSONL
|
|
79
|
+
const line = JSON.stringify(event) + '\n';
|
|
80
|
+
await this.appendToFile(sessionFile, line);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get events for a specific session.
|
|
84
|
+
*
|
|
85
|
+
* @param sessionId - Session ID
|
|
86
|
+
* @returns Array of events
|
|
87
|
+
*/
|
|
88
|
+
async getSessionEvents(sessionId) {
|
|
89
|
+
const sessionFile = `${this.storageRoot}/events/sess_${sessionId}.jsonl`;
|
|
90
|
+
return this.readJsonl(sessionFile);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get events for the current session.
|
|
94
|
+
*/
|
|
95
|
+
async getCurrentSessionEvents() {
|
|
96
|
+
return this.getSessionEvents(this.currentSessionId);
|
|
97
|
+
}
|
|
98
|
+
// ── Search Journey Operations ──────────────────────────────────────────────
|
|
99
|
+
/**
|
|
100
|
+
* Record a search journey.
|
|
101
|
+
*
|
|
102
|
+
* @param journey - Search journey to record
|
|
103
|
+
*/
|
|
104
|
+
async recordJourney(journey) {
|
|
105
|
+
await this.ensureDirectories();
|
|
106
|
+
const journeyFile = `${this.storageRoot}/search-journeys.jsonl`;
|
|
107
|
+
const line = JSON.stringify(journey) + '\n';
|
|
108
|
+
await this.appendToFile(journeyFile, line);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get all search journeys.
|
|
112
|
+
*
|
|
113
|
+
* @returns Array of journeys
|
|
114
|
+
*/
|
|
115
|
+
async getAllJourneys() {
|
|
116
|
+
const journeyFile = `${this.storageRoot}/search-journeys.jsonl`;
|
|
117
|
+
return this.readJsonl(journeyFile);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get search journeys for a specific file.
|
|
121
|
+
*
|
|
122
|
+
* @param filePath - Target file path
|
|
123
|
+
* @returns Array of journeys that ended with this file
|
|
124
|
+
*/
|
|
125
|
+
async getJourneysForFile(filePath) {
|
|
126
|
+
const allJourneys = await this.getAllJourneys();
|
|
127
|
+
return allJourneys.filter(j => j.finalTarget?.path === filePath && j.finalTarget.success);
|
|
128
|
+
}
|
|
129
|
+
// ── Anti-Result Operations ─────────────────────────────────────────────────
|
|
130
|
+
/**
|
|
131
|
+
* Record an anti-result entry.
|
|
132
|
+
*
|
|
133
|
+
* @param entry - Anti-result entry
|
|
134
|
+
*/
|
|
135
|
+
async recordAntiResult(entry) {
|
|
136
|
+
await this.ensureDirectories();
|
|
137
|
+
const antiResultFile = `${this.storageRoot}/anti-results.jsonl`;
|
|
138
|
+
const line = JSON.stringify(entry) + '\n';
|
|
139
|
+
await this.appendToFile(antiResultFile, line);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get anti-results for a specific file.
|
|
143
|
+
*
|
|
144
|
+
* @param filePath - The incorrect file path
|
|
145
|
+
* @returns Array of anti-result entries where this file was wrong
|
|
146
|
+
*/
|
|
147
|
+
async getAntiResults(filePath) {
|
|
148
|
+
const antiResultFile = `${this.storageRoot}/anti-results.jsonl`;
|
|
149
|
+
const allEntries = await this.readJsonl(antiResultFile);
|
|
150
|
+
return allEntries.filter(e => e.incorrectFile === filePath);
|
|
151
|
+
}
|
|
152
|
+
// ── Usage Metadata Operations ──────────────────────────────────────────────
|
|
153
|
+
/**
|
|
154
|
+
* Set usage metadata for a file.
|
|
155
|
+
*
|
|
156
|
+
* @param metadata - Usage metadata
|
|
157
|
+
*/
|
|
158
|
+
async setUsageMetadata(metadata) {
|
|
159
|
+
await this.ensureDirectories();
|
|
160
|
+
const metadataFile = `${this.storageRoot}/usage-metadata.jsonl`;
|
|
161
|
+
// Read existing metadata
|
|
162
|
+
const allMetadata = await this.readJsonl(metadataFile);
|
|
163
|
+
// Remove existing entry for this target (if any)
|
|
164
|
+
const filtered = allMetadata.filter(m => m.target !== metadata.target);
|
|
165
|
+
// Add new entry
|
|
166
|
+
filtered.push(metadata);
|
|
167
|
+
// Write back
|
|
168
|
+
await this.writeJsonl(metadataFile, filtered);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get usage metadata for a specific file.
|
|
172
|
+
*
|
|
173
|
+
* @param target - File path
|
|
174
|
+
* @returns Usage metadata or null if not found
|
|
175
|
+
*/
|
|
176
|
+
async getUsageMetadata(target) {
|
|
177
|
+
const metadataFile = `${this.storageRoot}/usage-metadata.jsonl`;
|
|
178
|
+
const allMetadata = await this.readJsonl(metadataFile);
|
|
179
|
+
return allMetadata.find(m => m.target === target) || null;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get all usage metadata.
|
|
183
|
+
*
|
|
184
|
+
* @returns Array of all usage metadata entries
|
|
185
|
+
*/
|
|
186
|
+
async getAllUsageMetadata() {
|
|
187
|
+
const metadataFile = `${this.storageRoot}/usage-metadata.jsonl`;
|
|
188
|
+
return this.readJsonl(metadataFile);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Add usage phrases to existing metadata.
|
|
192
|
+
*
|
|
193
|
+
* @param target - File path
|
|
194
|
+
* @param usages - New usage phrases to add
|
|
195
|
+
* @returns Updated metadata
|
|
196
|
+
*/
|
|
197
|
+
async addUsages(target, usages) {
|
|
198
|
+
const existing = await this.getUsageMetadata(target);
|
|
199
|
+
if (existing) {
|
|
200
|
+
// Merge with existing
|
|
201
|
+
const combined = [...new Set([...existing.usages, ...usages])];
|
|
202
|
+
const updated = {
|
|
203
|
+
...existing,
|
|
204
|
+
usages: combined,
|
|
205
|
+
updatedAt: new Date().toISOString()
|
|
206
|
+
};
|
|
207
|
+
await this.setUsageMetadata(updated);
|
|
208
|
+
return updated;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
// Create new
|
|
212
|
+
const metadata = {
|
|
213
|
+
target,
|
|
214
|
+
usages,
|
|
215
|
+
registeredAt: new Date().toISOString(),
|
|
216
|
+
updatedAt: new Date().toISOString()
|
|
217
|
+
};
|
|
218
|
+
await this.setUsageMetadata(metadata);
|
|
219
|
+
return metadata;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// ── Utilities ──────────────────────────────────────────────────────────────
|
|
223
|
+
/**
|
|
224
|
+
* Ensure storage directories exist.
|
|
225
|
+
*/
|
|
226
|
+
async ensureDirectories() {
|
|
227
|
+
const exists = await this.storage.exists(this.storageRoot);
|
|
228
|
+
if (!exists) {
|
|
229
|
+
await this.storage.mkdir(this.storageRoot);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Read JSONL file and parse to array of objects.
|
|
234
|
+
*
|
|
235
|
+
* @param path - File path
|
|
236
|
+
* @returns Array of parsed objects
|
|
237
|
+
*/
|
|
238
|
+
async readJsonl(path) {
|
|
239
|
+
const exists = await this.storage.exists(path);
|
|
240
|
+
if (!exists) {
|
|
241
|
+
return [];
|
|
242
|
+
}
|
|
243
|
+
try {
|
|
244
|
+
const content = await this.storage.read(path);
|
|
245
|
+
const lines = content.split('\n').filter(line => line.trim());
|
|
246
|
+
return lines.map(line => JSON.parse(line));
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
console.error(`Failed to read JSONL file ${path}:`, error);
|
|
250
|
+
return [];
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Write array of objects to JSONL file.
|
|
255
|
+
*
|
|
256
|
+
* @param path - File path
|
|
257
|
+
* @param data - Array of objects to write
|
|
258
|
+
*/
|
|
259
|
+
async writeJsonl(path, data) {
|
|
260
|
+
const lines = data.map(item => JSON.stringify(item));
|
|
261
|
+
const content = lines.join('\n') + '\n';
|
|
262
|
+
await this.storage.write(path, content);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Append content to a file (create if doesn't exist).
|
|
266
|
+
*
|
|
267
|
+
* @param path - File path
|
|
268
|
+
* @param content - Content to append
|
|
269
|
+
*/
|
|
270
|
+
async appendToFile(path, content) {
|
|
271
|
+
const exists = await this.storage.exists(path);
|
|
272
|
+
if (exists) {
|
|
273
|
+
const existing = await this.storage.read(path);
|
|
274
|
+
await this.storage.write(path, existing + content);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
await this.storage.write(path, content);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Generate a unique session ID.
|
|
282
|
+
*
|
|
283
|
+
* @returns Session ID string
|
|
284
|
+
*/
|
|
285
|
+
generateSessionId() {
|
|
286
|
+
const timestamp = Date.now();
|
|
287
|
+
const random = Math.random().toString(36).substring(2, 9);
|
|
288
|
+
return `sess_${timestamp}_${random}`;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
exports.ExperienceStore = ExperienceStore;
|
|
292
|
+
//# sourceMappingURL=ExperienceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperienceStore.js","sourceRoot":"","sources":["../../src/core/ExperienceStore.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;;;AAmBH,MAAa,eAAe;IAKhB;IAJF,WAAW,CAAS;IACpB,gBAAgB,CAAS;IAEjC,YACU,OAA2B,EACnC,cAAsB,qBAAqB;QADnC,YAAO,GAAP,OAAO,CAAoB;QAGnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAsB;QACtC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,WAAW,SAAS,CAAC;QAC/C,MAAM,WAAW,GAAG,GAAG,SAAS,SAAS,KAAK,CAAC,SAAS,QAAQ,CAAC;QAEjE,iCAAiC;QACjC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,wBAAwB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,WAAW,gBAAgB,SAAS,QAAQ,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAkB,WAAW,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,OAAsB;QACxC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,WAAW,wBAAwB,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,WAAW,wBAAwB,CAAC;QAChE,OAAO,IAAI,CAAC,SAAS,CAAgB,WAAW,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC5B,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAC1D,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAsB;QAC3C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,qBAAqB,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,qBAAqB,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAkB,cAAc,CAAC,CAAC;QACzE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAuB;QAC5C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,WAAW,uBAAuB,CAAC;QAEhE,yBAAyB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAgB,YAAY,CAAC,CAAC;QAEtE,iDAAiD;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvE,gBAAgB;QAChB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExB,aAAa;QACb,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,WAAW,uBAAuB,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAgB,YAAY,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,WAAW,uBAAuB,CAAC;QAChE,OAAO,IAAI,CAAC,SAAS,CAAgB,YAAY,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAgB;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,QAAQ,EAAE,CAAC;YACb,sBAAsB;YACtB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAkB;gBAC7B,GAAG,QAAQ;gBACX,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,aAAa;YACb,MAAM,QAAQ,GAAkB;gBAC9B,MAAM;gBACN,MAAM;gBACN,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,SAAS,CAAI,IAAY;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAI,IAAY,EAAE,IAAS;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAe;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,SAAS,IAAI,MAAM,EAAE,CAAC;IACvC,CAAC;CACF;AAhSD,0CAgSC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExperienceTracker - Records all CodeMap operations for self-improving discovery.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to FileSystemIO events and records:
|
|
5
|
+
* - Operation outcomes (success/failure)
|
|
6
|
+
* - Search journeys (query → read → write paths)
|
|
7
|
+
* - Anti-results (dead ends, abandoned paths)
|
|
8
|
+
*
|
|
9
|
+
* This data powers AssistMap's experience-weighted scoring.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const tracker = new ExperienceTracker(store, eventBus);
|
|
14
|
+
*
|
|
15
|
+
* // Tracker automatically subscribes to events:
|
|
16
|
+
* // - file:write:before/after → Records writes
|
|
17
|
+
* // - file:read → Tracks reads in current journey
|
|
18
|
+
* // - search:executed → Records search steps
|
|
19
|
+
*
|
|
20
|
+
* // Manual journey tracking
|
|
21
|
+
* tracker.startJourney('find TaskCard component');
|
|
22
|
+
* tracker.recordSearch('assist', 'TaskCard', ['TaskCard.vue', 'TaskList.vue']);
|
|
23
|
+
* tracker.recordRead('TaskCard.vue');
|
|
24
|
+
* await tracker.recordSuccessfulWrite('TaskCard.vue', 'edit');
|
|
25
|
+
* // → Completes journey, records anti-results, updates patterns
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import type { ExperienceOutcome } from '../types';
|
|
29
|
+
import { ExperienceStore } from './ExperienceStore';
|
|
30
|
+
import { EventBus } from './EventBus';
|
|
31
|
+
export declare class ExperienceTracker {
|
|
32
|
+
private store;
|
|
33
|
+
private eventBus;
|
|
34
|
+
private currentJourney;
|
|
35
|
+
private operationContexts;
|
|
36
|
+
private lastAssistQuery;
|
|
37
|
+
constructor(store: ExperienceStore, eventBus: EventBus, enabled?: boolean);
|
|
38
|
+
/**
|
|
39
|
+
* Wire up event handlers to track all operations.
|
|
40
|
+
*/
|
|
41
|
+
private wireEventHandlers;
|
|
42
|
+
/**
|
|
43
|
+
* Record operation start.
|
|
44
|
+
*
|
|
45
|
+
* @param tool - Tool name (e.g., 'codemap_read')
|
|
46
|
+
* @param operation - Operation name (e.g., 'content')
|
|
47
|
+
* @param target - Target file/directory
|
|
48
|
+
*/
|
|
49
|
+
recordOperationStart(tool: string, operation: string, target?: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Record operation completion.
|
|
52
|
+
*
|
|
53
|
+
* @param tool - Tool name
|
|
54
|
+
* @param operation - Operation name
|
|
55
|
+
* @param target - Target file/directory
|
|
56
|
+
* @param outcome - Operation outcome
|
|
57
|
+
*/
|
|
58
|
+
recordOperationComplete(tool: string, operation: string, target: string | undefined, outcome: ExperienceOutcome): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Start a new search journey.
|
|
61
|
+
* Called when user initiates a search or assist operation.
|
|
62
|
+
*
|
|
63
|
+
* @param initialQuery - The query that started the journey
|
|
64
|
+
*/
|
|
65
|
+
startJourney(initialQuery: string): void;
|
|
66
|
+
/**
|
|
67
|
+
* Record a search step in the current journey.
|
|
68
|
+
*
|
|
69
|
+
* @param operation - Search operation type
|
|
70
|
+
* @param query - Search query
|
|
71
|
+
* @param results - Results returned
|
|
72
|
+
*/
|
|
73
|
+
recordSearch(operation: string, query: string, results: string[]): void;
|
|
74
|
+
/**
|
|
75
|
+
* Record that user read a file (from search results).
|
|
76
|
+
*
|
|
77
|
+
* @param filePath - File path that was read
|
|
78
|
+
*/
|
|
79
|
+
recordRead(filePath: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Record successful write - completes the journey.
|
|
82
|
+
*
|
|
83
|
+
* @param filePath - File that was successfully written
|
|
84
|
+
* @param operation - Write operation type
|
|
85
|
+
*/
|
|
86
|
+
recordSuccessfulWrite(filePath: string, operation: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Extract anti-results from the current journey.
|
|
89
|
+
*
|
|
90
|
+
* @returns Array of anti-result entries
|
|
91
|
+
*/
|
|
92
|
+
private extractAntiResults;
|
|
93
|
+
/**
|
|
94
|
+
* Generate a unique event ID.
|
|
95
|
+
*/
|
|
96
|
+
private generateEventId;
|
|
97
|
+
/**
|
|
98
|
+
* Generate a unique journey ID.
|
|
99
|
+
*/
|
|
100
|
+
private generateJourneyId;
|
|
101
|
+
/**
|
|
102
|
+
* Get the experience store.
|
|
103
|
+
*/
|
|
104
|
+
getStore(): ExperienceStore;
|
|
105
|
+
/**
|
|
106
|
+
* Set the last assist query (used for attribution).
|
|
107
|
+
*/
|
|
108
|
+
setLastAssistQuery(query: string): void;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=ExperienceTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperienceTracker.d.ts","sourceRoot":"","sources":["../../src/core/ExperienceTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EAIlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYtC,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IANlB,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,eAAe,CAAuB;gBAGpC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAC1B,OAAO,GAAE,OAAc;IASzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5E;;;;;;;OAOG;IACG,uBAAuB,CAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAWxC;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvE;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAuBlC;;;;;OAKG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/E;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,QAAQ,IAAI,eAAe;IAI3B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGxC"}
|