@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.
Files changed (527) hide show
  1. package/LICENSE.md +165 -0
  2. package/README.md +479 -0
  3. package/dist/adapters/EgenticaMcpAdapter.d.ts +128 -0
  4. package/dist/adapters/EgenticaMcpAdapter.d.ts.map +1 -0
  5. package/dist/adapters/EgenticaMcpAdapter.js +218 -0
  6. package/dist/adapters/EgenticaMcpAdapter.js.map +1 -0
  7. package/dist/assist/AssistEngine.d.ts +107 -0
  8. package/dist/assist/AssistEngine.d.ts.map +1 -0
  9. package/dist/assist/AssistEngine.js +188 -0
  10. package/dist/assist/AssistEngine.js.map +1 -0
  11. package/dist/assist/AssistScorer.d.ts +91 -0
  12. package/dist/assist/AssistScorer.d.ts.map +1 -0
  13. package/dist/assist/AssistScorer.js +254 -0
  14. package/dist/assist/AssistScorer.js.map +1 -0
  15. package/dist/assist/PatternAggregator.d.ts +116 -0
  16. package/dist/assist/PatternAggregator.d.ts.map +1 -0
  17. package/dist/assist/PatternAggregator.js +311 -0
  18. package/dist/assist/PatternAggregator.js.map +1 -0
  19. package/dist/assist/RelevanceScorer.d.ts +104 -0
  20. package/dist/assist/RelevanceScorer.d.ts.map +1 -0
  21. package/dist/assist/RelevanceScorer.js +240 -0
  22. package/dist/assist/RelevanceScorer.js.map +1 -0
  23. package/dist/assist/index.d.ts +6 -0
  24. package/dist/assist/index.d.ts.map +1 -0
  25. package/dist/assist/index.js +9 -0
  26. package/dist/assist/index.js.map +1 -0
  27. package/dist/core/AnnotationStore.d.ts +101 -0
  28. package/dist/core/AnnotationStore.d.ts.map +1 -0
  29. package/dist/core/AnnotationStore.js +236 -0
  30. package/dist/core/AnnotationStore.js.map +1 -0
  31. package/dist/core/BackupManager.d.ts +92 -0
  32. package/dist/core/BackupManager.d.ts.map +1 -0
  33. package/dist/core/BackupManager.js +311 -0
  34. package/dist/core/BackupManager.js.map +1 -0
  35. package/dist/core/ChecklistStore.d.ts +66 -0
  36. package/dist/core/ChecklistStore.d.ts.map +1 -0
  37. package/dist/core/ChecklistStore.js +199 -0
  38. package/dist/core/ChecklistStore.js.map +1 -0
  39. package/dist/core/CodeMap.d.ts +614 -0
  40. package/dist/core/CodeMap.d.ts.map +1 -0
  41. package/dist/core/CodeMap.js +880 -0
  42. package/dist/core/CodeMap.js.map +1 -0
  43. package/dist/core/DisplayFilter.d.ts +83 -0
  44. package/dist/core/DisplayFilter.d.ts.map +1 -0
  45. package/dist/core/DisplayFilter.js +228 -0
  46. package/dist/core/DisplayFilter.js.map +1 -0
  47. package/dist/core/EventBus.d.ts +114 -0
  48. package/dist/core/EventBus.d.ts.map +1 -0
  49. package/dist/core/EventBus.js +192 -0
  50. package/dist/core/EventBus.js.map +1 -0
  51. package/dist/core/ExperienceStore.d.ts +170 -0
  52. package/dist/core/ExperienceStore.d.ts.map +1 -0
  53. package/dist/core/ExperienceStore.js +292 -0
  54. package/dist/core/ExperienceStore.js.map +1 -0
  55. package/dist/core/ExperienceTracker.d.ts +110 -0
  56. package/dist/core/ExperienceTracker.d.ts.map +1 -0
  57. package/dist/core/ExperienceTracker.js +291 -0
  58. package/dist/core/ExperienceTracker.js.map +1 -0
  59. package/dist/core/FileSystemGraph.d.ts +157 -0
  60. package/dist/core/FileSystemGraph.d.ts.map +1 -0
  61. package/dist/core/FileSystemGraph.js +316 -0
  62. package/dist/core/FileSystemGraph.js.map +1 -0
  63. package/dist/core/FileSystemIO.d.ts +222 -0
  64. package/dist/core/FileSystemIO.d.ts.map +1 -0
  65. package/dist/core/FileSystemIO.js +403 -0
  66. package/dist/core/FileSystemIO.js.map +1 -0
  67. package/dist/core/FuzzyMatcher.d.ts +51 -0
  68. package/dist/core/FuzzyMatcher.d.ts.map +1 -0
  69. package/dist/core/FuzzyMatcher.js +280 -0
  70. package/dist/core/FuzzyMatcher.js.map +1 -0
  71. package/dist/core/GroupStore.d.ts +114 -0
  72. package/dist/core/GroupStore.d.ts.map +1 -0
  73. package/dist/core/GroupStore.js +246 -0
  74. package/dist/core/GroupStore.js.map +1 -0
  75. package/dist/core/HelpRegistry.d.ts +116 -0
  76. package/dist/core/HelpRegistry.d.ts.map +1 -0
  77. package/dist/core/HelpRegistry.js +160 -0
  78. package/dist/core/HelpRegistry.js.map +1 -0
  79. package/dist/core/HintRegistry.d.ts +49 -0
  80. package/dist/core/HintRegistry.d.ts.map +1 -0
  81. package/dist/core/HintRegistry.js +81 -0
  82. package/dist/core/HintRegistry.js.map +1 -0
  83. package/dist/core/LabelStore.d.ts +88 -0
  84. package/dist/core/LabelStore.d.ts.map +1 -0
  85. package/dist/core/LabelStore.js +520 -0
  86. package/dist/core/LabelStore.js.map +1 -0
  87. package/dist/core/LineRangeWriter.d.ts +63 -0
  88. package/dist/core/LineRangeWriter.d.ts.map +1 -0
  89. package/dist/core/LineRangeWriter.js +179 -0
  90. package/dist/core/LineRangeWriter.js.map +1 -0
  91. package/dist/core/ParserRegistry.d.ts +70 -0
  92. package/dist/core/ParserRegistry.d.ts.map +1 -0
  93. package/dist/core/ParserRegistry.js +109 -0
  94. package/dist/core/ParserRegistry.js.map +1 -0
  95. package/dist/core/PluginRegistry.d.ts +120 -0
  96. package/dist/core/PluginRegistry.d.ts.map +1 -0
  97. package/dist/core/PluginRegistry.js +230 -0
  98. package/dist/core/PluginRegistry.js.map +1 -0
  99. package/dist/core/QueryEngine.d.ts +134 -0
  100. package/dist/core/QueryEngine.d.ts.map +1 -0
  101. package/dist/core/QueryEngine.js +211 -0
  102. package/dist/core/QueryEngine.js.map +1 -0
  103. package/dist/core/Scanner.d.ts +84 -0
  104. package/dist/core/Scanner.d.ts.map +1 -0
  105. package/dist/core/Scanner.js +184 -0
  106. package/dist/core/Scanner.js.map +1 -0
  107. package/dist/core/SessionTransactionLog.d.ts +138 -0
  108. package/dist/core/SessionTransactionLog.d.ts.map +1 -0
  109. package/dist/core/SessionTransactionLog.js +397 -0
  110. package/dist/core/SessionTransactionLog.js.map +1 -0
  111. package/dist/core/TargetParser.d.ts +85 -0
  112. package/dist/core/TargetParser.d.ts.map +1 -0
  113. package/dist/core/TargetParser.js +167 -0
  114. package/dist/core/TargetParser.js.map +1 -0
  115. package/dist/core/TargetResolver.d.ts +115 -0
  116. package/dist/core/TargetResolver.d.ts.map +1 -0
  117. package/dist/core/TargetResolver.js +237 -0
  118. package/dist/core/TargetResolver.js.map +1 -0
  119. package/dist/core/WriteSafetyGuard.d.ts +101 -0
  120. package/dist/core/WriteSafetyGuard.d.ts.map +1 -0
  121. package/dist/core/WriteSafetyGuard.js +265 -0
  122. package/dist/core/WriteSafetyGuard.js.map +1 -0
  123. package/dist/core/index.d.ts +38 -0
  124. package/dist/core/index.d.ts.map +1 -0
  125. package/dist/core/index.js +51 -0
  126. package/dist/core/index.js.map +1 -0
  127. package/dist/core/query/DependencyTraversal.d.ts +23 -0
  128. package/dist/core/query/DependencyTraversal.d.ts.map +1 -0
  129. package/dist/core/query/DependencyTraversal.js +55 -0
  130. package/dist/core/query/DependencyTraversal.js.map +1 -0
  131. package/dist/core/query/ResultProcessor.d.ts +20 -0
  132. package/dist/core/query/ResultProcessor.d.ts.map +1 -0
  133. package/dist/core/query/ResultProcessor.js +99 -0
  134. package/dist/core/query/ResultProcessor.js.map +1 -0
  135. package/dist/core/query/SymbolSearchEngine.d.ts +20 -0
  136. package/dist/core/query/SymbolSearchEngine.d.ts.map +1 -0
  137. package/dist/core/query/SymbolSearchEngine.js +109 -0
  138. package/dist/core/query/SymbolSearchEngine.js.map +1 -0
  139. package/dist/core/query/TextSearchEngine.d.ts +23 -0
  140. package/dist/core/query/TextSearchEngine.d.ts.map +1 -0
  141. package/dist/core/query/TextSearchEngine.js +69 -0
  142. package/dist/core/query/TextSearchEngine.js.map +1 -0
  143. package/dist/core/query/index.d.ts +11 -0
  144. package/dist/core/query/index.d.ts.map +1 -0
  145. package/dist/core/query/index.js +18 -0
  146. package/dist/core/query/index.js.map +1 -0
  147. package/dist/core/scan/DependencyResolver.d.ts +26 -0
  148. package/dist/core/scan/DependencyResolver.d.ts.map +1 -0
  149. package/dist/core/scan/DependencyResolver.js +81 -0
  150. package/dist/core/scan/DependencyResolver.js.map +1 -0
  151. package/dist/core/scan/DirectoryWalker.d.ts +39 -0
  152. package/dist/core/scan/DirectoryWalker.d.ts.map +1 -0
  153. package/dist/core/scan/DirectoryWalker.js +136 -0
  154. package/dist/core/scan/DirectoryWalker.js.map +1 -0
  155. package/dist/core/scan/IgnorePatternMatcher.d.ts +32 -0
  156. package/dist/core/scan/IgnorePatternMatcher.d.ts.map +1 -0
  157. package/dist/core/scan/IgnorePatternMatcher.js +120 -0
  158. package/dist/core/scan/IgnorePatternMatcher.js.map +1 -0
  159. package/dist/core/scan/index.d.ts +10 -0
  160. package/dist/core/scan/index.d.ts.map +1 -0
  161. package/dist/core/scan/index.js +16 -0
  162. package/dist/core/scan/index.js.map +1 -0
  163. package/dist/core/utils/packageDiscovery.d.ts +24 -0
  164. package/dist/core/utils/packageDiscovery.d.ts.map +1 -0
  165. package/dist/core/utils/packageDiscovery.js +37 -0
  166. package/dist/core/utils/packageDiscovery.js.map +1 -0
  167. package/dist/index.d.ts +18 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +37 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/mcp/operations/annotations.d.ts +9 -0
  172. package/dist/mcp/operations/annotations.d.ts.map +1 -0
  173. package/dist/mcp/operations/annotations.js +66 -0
  174. package/dist/mcp/operations/annotations.js.map +1 -0
  175. package/dist/mcp/operations/files.d.ts +13 -0
  176. package/dist/mcp/operations/files.d.ts.map +1 -0
  177. package/dist/mcp/operations/files.js +173 -0
  178. package/dist/mcp/operations/files.js.map +1 -0
  179. package/dist/mcp/operations/graph.d.ts +10 -0
  180. package/dist/mcp/operations/graph.d.ts.map +1 -0
  181. package/dist/mcp/operations/graph.js +69 -0
  182. package/dist/mcp/operations/graph.js.map +1 -0
  183. package/dist/mcp/operations/groups.d.ts +55 -0
  184. package/dist/mcp/operations/groups.d.ts.map +1 -0
  185. package/dist/mcp/operations/groups.js +233 -0
  186. package/dist/mcp/operations/groups.js.map +1 -0
  187. package/dist/mcp/operations/help.d.ts +36 -0
  188. package/dist/mcp/operations/help.d.ts.map +1 -0
  189. package/dist/mcp/operations/help.js +322 -0
  190. package/dist/mcp/operations/help.js.map +1 -0
  191. package/dist/mcp/operations/session.d.ts +13 -0
  192. package/dist/mcp/operations/session.d.ts.map +1 -0
  193. package/dist/mcp/operations/session.js +169 -0
  194. package/dist/mcp/operations/session.js.map +1 -0
  195. package/dist/mcp/operations/writes.d.ts +14 -0
  196. package/dist/mcp/operations/writes.d.ts.map +1 -0
  197. package/dist/mcp/operations/writes.js +287 -0
  198. package/dist/mcp/operations/writes.js.map +1 -0
  199. package/dist/mcp/registry/ToolRegistry.d.ts +54 -0
  200. package/dist/mcp/registry/ToolRegistry.d.ts.map +1 -0
  201. package/dist/mcp/registry/ToolRegistry.js +219 -0
  202. package/dist/mcp/registry/ToolRegistry.js.map +1 -0
  203. package/dist/mcp/registry/context-guard.d.ts +13 -0
  204. package/dist/mcp/registry/context-guard.d.ts.map +1 -0
  205. package/dist/mcp/registry/context-guard.js +19 -0
  206. package/dist/mcp/registry/context-guard.js.map +1 -0
  207. package/dist/mcp/registry/schemas.d.ts +221 -0
  208. package/dist/mcp/registry/schemas.d.ts.map +1 -0
  209. package/dist/mcp/registry/schemas.js +217 -0
  210. package/dist/mcp/registry/schemas.js.map +1 -0
  211. package/dist/mcp/registry/types.d.ts +50 -0
  212. package/dist/mcp/registry/types.d.ts.map +1 -0
  213. package/dist/mcp/registry/types.js +5 -0
  214. package/dist/mcp/registry/types.js.map +1 -0
  215. package/dist/mcp/server.d.ts +35 -0
  216. package/dist/mcp/server.d.ts.map +1 -0
  217. package/dist/mcp/server.js +264 -0
  218. package/dist/mcp/server.js.map +1 -0
  219. package/dist/mcp/tools/annotations/add.tool.d.ts +10 -0
  220. package/dist/mcp/tools/annotations/add.tool.d.ts.map +1 -0
  221. package/dist/mcp/tools/annotations/add.tool.js +88 -0
  222. package/dist/mcp/tools/annotations/add.tool.js.map +1 -0
  223. package/dist/mcp/tools/annotations/edit.tool.d.ts +10 -0
  224. package/dist/mcp/tools/annotations/edit.tool.d.ts.map +1 -0
  225. package/dist/mcp/tools/annotations/edit.tool.js +92 -0
  226. package/dist/mcp/tools/annotations/edit.tool.js.map +1 -0
  227. package/dist/mcp/tools/annotations/remove.tool.d.ts +9 -0
  228. package/dist/mcp/tools/annotations/remove.tool.d.ts.map +1 -0
  229. package/dist/mcp/tools/annotations/remove.tool.js +87 -0
  230. package/dist/mcp/tools/annotations/remove.tool.js.map +1 -0
  231. package/dist/mcp/tools/annotations/search-annotations.tool.d.ts +11 -0
  232. package/dist/mcp/tools/annotations/search-annotations.tool.d.ts.map +1 -0
  233. package/dist/mcp/tools/annotations/search-annotations.tool.js +91 -0
  234. package/dist/mcp/tools/annotations/search-annotations.tool.js.map +1 -0
  235. package/dist/mcp/tools/backup/list.tool.d.ts +16 -0
  236. package/dist/mcp/tools/backup/list.tool.d.ts.map +1 -0
  237. package/dist/mcp/tools/backup/list.tool.js +48 -0
  238. package/dist/mcp/tools/backup/list.tool.js.map +1 -0
  239. package/dist/mcp/tools/backup/restore.tool.d.ts +15 -0
  240. package/dist/mcp/tools/backup/restore.tool.d.ts.map +1 -0
  241. package/dist/mcp/tools/backup/restore.tool.js +138 -0
  242. package/dist/mcp/tools/backup/restore.tool.js.map +1 -0
  243. package/dist/mcp/tools/checklist/add.tool.d.ts +17 -0
  244. package/dist/mcp/tools/checklist/add.tool.d.ts.map +1 -0
  245. package/dist/mcp/tools/checklist/add.tool.js +53 -0
  246. package/dist/mcp/tools/checklist/add.tool.js.map +1 -0
  247. package/dist/mcp/tools/checklist/list.tool.d.ts +11 -0
  248. package/dist/mcp/tools/checklist/list.tool.d.ts.map +1 -0
  249. package/dist/mcp/tools/checklist/list.tool.js +53 -0
  250. package/dist/mcp/tools/checklist/list.tool.js.map +1 -0
  251. package/dist/mcp/tools/checklist/remove.tool.d.ts +9 -0
  252. package/dist/mcp/tools/checklist/remove.tool.d.ts.map +1 -0
  253. package/dist/mcp/tools/checklist/remove.tool.js +63 -0
  254. package/dist/mcp/tools/checklist/remove.tool.js.map +1 -0
  255. package/dist/mcp/tools/graph/get-dependencies.tool.d.ts +8 -0
  256. package/dist/mcp/tools/graph/get-dependencies.tool.d.ts.map +1 -0
  257. package/dist/mcp/tools/graph/get-dependencies.tool.js +58 -0
  258. package/dist/mcp/tools/graph/get-dependencies.tool.js.map +1 -0
  259. package/dist/mcp/tools/graph/get-related.tool.d.ts +9 -0
  260. package/dist/mcp/tools/graph/get-related.tool.d.ts.map +1 -0
  261. package/dist/mcp/tools/graph/get-related.tool.js +63 -0
  262. package/dist/mcp/tools/graph/get-related.tool.js.map +1 -0
  263. package/dist/mcp/tools/graph/impact-analysis.tool.d.ts +9 -0
  264. package/dist/mcp/tools/graph/impact-analysis.tool.d.ts.map +1 -0
  265. package/dist/mcp/tools/graph/impact-analysis.tool.js +61 -0
  266. package/dist/mcp/tools/graph/impact-analysis.tool.js.map +1 -0
  267. package/dist/mcp/tools/graph/traverse.tool.d.ts +13 -0
  268. package/dist/mcp/tools/graph/traverse.tool.d.ts.map +1 -0
  269. package/dist/mcp/tools/graph/traverse.tool.js +59 -0
  270. package/dist/mcp/tools/graph/traverse.tool.js.map +1 -0
  271. package/dist/mcp/tools/groups/add.tool.d.ts +10 -0
  272. package/dist/mcp/tools/groups/add.tool.d.ts.map +1 -0
  273. package/dist/mcp/tools/groups/add.tool.js +85 -0
  274. package/dist/mcp/tools/groups/add.tool.js.map +1 -0
  275. package/dist/mcp/tools/groups/notate.tool.d.ts +11 -0
  276. package/dist/mcp/tools/groups/notate.tool.d.ts.map +1 -0
  277. package/dist/mcp/tools/groups/notate.tool.js +86 -0
  278. package/dist/mcp/tools/groups/notate.tool.js.map +1 -0
  279. package/dist/mcp/tools/groups/search.tool.d.ts +8 -0
  280. package/dist/mcp/tools/groups/search.tool.d.ts.map +1 -0
  281. package/dist/mcp/tools/groups/search.tool.js +81 -0
  282. package/dist/mcp/tools/groups/search.tool.js.map +1 -0
  283. package/dist/mcp/tools/io/append.tool.d.ts +10 -0
  284. package/dist/mcp/tools/io/append.tool.d.ts.map +1 -0
  285. package/dist/mcp/tools/io/append.tool.js +103 -0
  286. package/dist/mcp/tools/io/append.tool.js.map +1 -0
  287. package/dist/mcp/tools/io/create.tool.d.ts +11 -0
  288. package/dist/mcp/tools/io/create.tool.d.ts.map +1 -0
  289. package/dist/mcp/tools/io/create.tool.js +119 -0
  290. package/dist/mcp/tools/io/create.tool.js.map +1 -0
  291. package/dist/mcp/tools/io/delete.tool.d.ts +9 -0
  292. package/dist/mcp/tools/io/delete.tool.d.ts.map +1 -0
  293. package/dist/mcp/tools/io/delete.tool.js +129 -0
  294. package/dist/mcp/tools/io/delete.tool.js.map +1 -0
  295. package/dist/mcp/tools/io/get-annotations.tool.d.ts +10 -0
  296. package/dist/mcp/tools/io/get-annotations.tool.d.ts.map +1 -0
  297. package/dist/mcp/tools/io/get-annotations.tool.js +97 -0
  298. package/dist/mcp/tools/io/get-annotations.tool.js.map +1 -0
  299. package/dist/mcp/tools/io/get-symbols.tool.d.ts +9 -0
  300. package/dist/mcp/tools/io/get-symbols.tool.d.ts.map +1 -0
  301. package/dist/mcp/tools/io/get-symbols.tool.js +63 -0
  302. package/dist/mcp/tools/io/get-symbols.tool.js.map +1 -0
  303. package/dist/mcp/tools/io/list.tool.d.ts +8 -0
  304. package/dist/mcp/tools/io/list.tool.d.ts.map +1 -0
  305. package/dist/mcp/tools/io/list.tool.js +68 -0
  306. package/dist/mcp/tools/io/list.tool.js.map +1 -0
  307. package/dist/mcp/tools/io/peek.tool.d.ts +11 -0
  308. package/dist/mcp/tools/io/peek.tool.d.ts.map +1 -0
  309. package/dist/mcp/tools/io/peek.tool.js +74 -0
  310. package/dist/mcp/tools/io/peek.tool.js.map +1 -0
  311. package/dist/mcp/tools/io/read-multiple.tool.d.ts +9 -0
  312. package/dist/mcp/tools/io/read-multiple.tool.d.ts.map +1 -0
  313. package/dist/mcp/tools/io/read-multiple.tool.js +72 -0
  314. package/dist/mcp/tools/io/read-multiple.tool.js.map +1 -0
  315. package/dist/mcp/tools/io/read.tool.d.ts +13 -0
  316. package/dist/mcp/tools/io/read.tool.d.ts.map +1 -0
  317. package/dist/mcp/tools/io/read.tool.js +132 -0
  318. package/dist/mcp/tools/io/read.tool.js.map +1 -0
  319. package/dist/mcp/tools/io/rename.tool.d.ts +9 -0
  320. package/dist/mcp/tools/io/rename.tool.d.ts.map +1 -0
  321. package/dist/mcp/tools/io/rename.tool.js +101 -0
  322. package/dist/mcp/tools/io/rename.tool.js.map +1 -0
  323. package/dist/mcp/tools/io/replace-many.tool.d.ts +10 -0
  324. package/dist/mcp/tools/io/replace-many.tool.d.ts.map +1 -0
  325. package/dist/mcp/tools/io/replace-many.tool.js +114 -0
  326. package/dist/mcp/tools/io/replace-many.tool.js.map +1 -0
  327. package/dist/mcp/tools/io/replace-text.tool.d.ts +12 -0
  328. package/dist/mcp/tools/io/replace-text.tool.d.ts.map +1 -0
  329. package/dist/mcp/tools/io/replace-text.tool.js +213 -0
  330. package/dist/mcp/tools/io/replace-text.tool.js.map +1 -0
  331. package/dist/mcp/tools/io/write.tool.d.ts +10 -0
  332. package/dist/mcp/tools/io/write.tool.d.ts.map +1 -0
  333. package/dist/mcp/tools/io/write.tool.js +103 -0
  334. package/dist/mcp/tools/io/write.tool.js.map +1 -0
  335. package/dist/mcp/tools/labels/assign.tool.d.ts +16 -0
  336. package/dist/mcp/tools/labels/assign.tool.d.ts.map +1 -0
  337. package/dist/mcp/tools/labels/assign.tool.js +52 -0
  338. package/dist/mcp/tools/labels/assign.tool.js.map +1 -0
  339. package/dist/mcp/tools/labels/create.tool.d.ts +12 -0
  340. package/dist/mcp/tools/labels/create.tool.d.ts.map +1 -0
  341. package/dist/mcp/tools/labels/create.tool.js +51 -0
  342. package/dist/mcp/tools/labels/create.tool.js.map +1 -0
  343. package/dist/mcp/tools/labels/delete.tool.d.ts +9 -0
  344. package/dist/mcp/tools/labels/delete.tool.d.ts.map +1 -0
  345. package/dist/mcp/tools/labels/delete.tool.js +48 -0
  346. package/dist/mcp/tools/labels/delete.tool.js.map +1 -0
  347. package/dist/mcp/tools/labels/edit.tool.d.ts +13 -0
  348. package/dist/mcp/tools/labels/edit.tool.d.ts.map +1 -0
  349. package/dist/mcp/tools/labels/edit.tool.js +58 -0
  350. package/dist/mcp/tools/labels/edit.tool.js.map +1 -0
  351. package/dist/mcp/tools/labels/list.tool.d.ts +11 -0
  352. package/dist/mcp/tools/labels/list.tool.d.ts.map +1 -0
  353. package/dist/mcp/tools/labels/list.tool.js +47 -0
  354. package/dist/mcp/tools/labels/list.tool.js.map +1 -0
  355. package/dist/mcp/tools/labels/migrate.tool.d.ts +10 -0
  356. package/dist/mcp/tools/labels/migrate.tool.d.ts.map +1 -0
  357. package/dist/mcp/tools/labels/migrate.tool.js +50 -0
  358. package/dist/mcp/tools/labels/migrate.tool.js.map +1 -0
  359. package/dist/mcp/tools/labels/search.tool.d.ts +16 -0
  360. package/dist/mcp/tools/labels/search.tool.d.ts.map +1 -0
  361. package/dist/mcp/tools/labels/search.tool.js +55 -0
  362. package/dist/mcp/tools/labels/search.tool.js.map +1 -0
  363. package/dist/mcp/tools/labels/unassign.tool.d.ts +9 -0
  364. package/dist/mcp/tools/labels/unassign.tool.d.ts.map +1 -0
  365. package/dist/mcp/tools/labels/unassign.tool.js +49 -0
  366. package/dist/mcp/tools/labels/unassign.tool.js.map +1 -0
  367. package/dist/mcp/tools/search/find-by-name.tool.d.ts +8 -0
  368. package/dist/mcp/tools/search/find-by-name.tool.d.ts.map +1 -0
  369. package/dist/mcp/tools/search/find-by-name.tool.js +57 -0
  370. package/dist/mcp/tools/search/find-by-name.tool.js.map +1 -0
  371. package/dist/mcp/tools/search/find-relevant.tool.d.ts +9 -0
  372. package/dist/mcp/tools/search/find-relevant.tool.d.ts.map +1 -0
  373. package/dist/mcp/tools/search/find-relevant.tool.js +71 -0
  374. package/dist/mcp/tools/search/find-relevant.tool.js.map +1 -0
  375. package/dist/mcp/tools/search/scan.tool.d.ts +8 -0
  376. package/dist/mcp/tools/search/scan.tool.d.ts.map +1 -0
  377. package/dist/mcp/tools/search/scan.tool.js +103 -0
  378. package/dist/mcp/tools/search/scan.tool.js.map +1 -0
  379. package/dist/mcp/tools/search/search-elements.tool.d.ts +11 -0
  380. package/dist/mcp/tools/search/search-elements.tool.d.ts.map +1 -0
  381. package/dist/mcp/tools/search/search-elements.tool.js +71 -0
  382. package/dist/mcp/tools/search/search-elements.tool.js.map +1 -0
  383. package/dist/mcp/tools/search/search-in-files.tool.d.ts +14 -0
  384. package/dist/mcp/tools/search/search-in-files.tool.d.ts.map +1 -0
  385. package/dist/mcp/tools/search/search-in-files.tool.js +204 -0
  386. package/dist/mcp/tools/search/search-in-files.tool.js.map +1 -0
  387. package/dist/mcp/tools/search/search.tool.d.ts +25 -0
  388. package/dist/mcp/tools/search/search.tool.d.ts.map +1 -0
  389. package/dist/mcp/tools/search/search.tool.js +109 -0
  390. package/dist/mcp/tools/search/search.tool.js.map +1 -0
  391. package/dist/mcp/tools/session/audit.tool.d.ts +6 -0
  392. package/dist/mcp/tools/session/audit.tool.d.ts.map +1 -0
  393. package/dist/mcp/tools/session/audit.tool.js +64 -0
  394. package/dist/mcp/tools/session/audit.tool.js.map +1 -0
  395. package/dist/mcp/tools/session/close.tool.d.ts +11 -0
  396. package/dist/mcp/tools/session/close.tool.d.ts.map +1 -0
  397. package/dist/mcp/tools/session/close.tool.js +79 -0
  398. package/dist/mcp/tools/session/close.tool.js.map +1 -0
  399. package/dist/mcp/tools/session/execute-shell.tool.d.ts +11 -0
  400. package/dist/mcp/tools/session/execute-shell.tool.d.ts.map +1 -0
  401. package/dist/mcp/tools/session/execute-shell.tool.js +87 -0
  402. package/dist/mcp/tools/session/execute-shell.tool.js.map +1 -0
  403. package/dist/mcp/tools/session/help.tool.d.ts +8 -0
  404. package/dist/mcp/tools/session/help.tool.d.ts.map +1 -0
  405. package/dist/mcp/tools/session/help.tool.js +84 -0
  406. package/dist/mcp/tools/session/help.tool.js.map +1 -0
  407. package/dist/mcp/tools/session/list.tool.d.ts +9 -0
  408. package/dist/mcp/tools/session/list.tool.d.ts.map +1 -0
  409. package/dist/mcp/tools/session/list.tool.js +49 -0
  410. package/dist/mcp/tools/session/list.tool.js.map +1 -0
  411. package/dist/mcp/tools/session/next-session.tool.d.ts +8 -0
  412. package/dist/mcp/tools/session/next-session.tool.d.ts.map +1 -0
  413. package/dist/mcp/tools/session/next-session.tool.js +87 -0
  414. package/dist/mcp/tools/session/next-session.tool.js.map +1 -0
  415. package/dist/mcp/tools/session/orient.tool.d.ts +11 -0
  416. package/dist/mcp/tools/session/orient.tool.d.ts.map +1 -0
  417. package/dist/mcp/tools/session/orient.tool.js +239 -0
  418. package/dist/mcp/tools/session/orient.tool.js.map +1 -0
  419. package/dist/mcp/tools/session/read.tool.d.ts +8 -0
  420. package/dist/mcp/tools/session/read.tool.d.ts.map +1 -0
  421. package/dist/mcp/tools/session/read.tool.js +63 -0
  422. package/dist/mcp/tools/session/read.tool.js.map +1 -0
  423. package/dist/mcp/tools/session/reindex.tool.d.ts +6 -0
  424. package/dist/mcp/tools/session/reindex.tool.d.ts.map +1 -0
  425. package/dist/mcp/tools/session/reindex.tool.js +59 -0
  426. package/dist/mcp/tools/session/reindex.tool.js.map +1 -0
  427. package/dist/mcp/tools/session/start.tool.d.ts +8 -0
  428. package/dist/mcp/tools/session/start.tool.d.ts.map +1 -0
  429. package/dist/mcp/tools/session/start.tool.js +170 -0
  430. package/dist/mcp/tools/session/start.tool.js.map +1 -0
  431. package/dist/mcp/tools/session/stats.tool.d.ts +6 -0
  432. package/dist/mcp/tools/session/stats.tool.d.ts.map +1 -0
  433. package/dist/mcp/tools/session/stats.tool.js +46 -0
  434. package/dist/mcp/tools/session/stats.tool.js.map +1 -0
  435. package/dist/plugins/parser-typescript/index.d.ts +80 -0
  436. package/dist/plugins/parser-typescript/index.d.ts.map +1 -0
  437. package/dist/plugins/parser-typescript/index.js +467 -0
  438. package/dist/plugins/parser-typescript/index.js.map +1 -0
  439. package/dist/plugins/parser-vue/index.d.ts +20 -0
  440. package/dist/plugins/parser-vue/index.d.ts.map +1 -0
  441. package/dist/plugins/parser-vue/index.js +88 -0
  442. package/dist/plugins/parser-vue/index.js.map +1 -0
  443. package/dist/plugins/parser-vue/script-parser.d.ts +18 -0
  444. package/dist/plugins/parser-vue/script-parser.d.ts.map +1 -0
  445. package/dist/plugins/parser-vue/script-parser.js +100 -0
  446. package/dist/plugins/parser-vue/script-parser.js.map +1 -0
  447. package/dist/plugins/parser-vue/template-parser.d.ts +14 -0
  448. package/dist/plugins/parser-vue/template-parser.d.ts.map +1 -0
  449. package/dist/plugins/parser-vue/template-parser.js +95 -0
  450. package/dist/plugins/parser-vue/template-parser.js.map +1 -0
  451. package/dist/query/SymbolSearch.d.ts +56 -0
  452. package/dist/query/SymbolSearch.d.ts.map +1 -0
  453. package/dist/query/SymbolSearch.js +132 -0
  454. package/dist/query/SymbolSearch.js.map +1 -0
  455. package/dist/query/TextSearch.d.ts +47 -0
  456. package/dist/query/TextSearch.d.ts.map +1 -0
  457. package/dist/query/TextSearch.js +110 -0
  458. package/dist/query/TextSearch.js.map +1 -0
  459. package/dist/storage/NodeFsProvider.d.ts +148 -0
  460. package/dist/storage/NodeFsProvider.d.ts.map +1 -0
  461. package/dist/storage/NodeFsProvider.js +264 -0
  462. package/dist/storage/NodeFsProvider.js.map +1 -0
  463. package/dist/types/annotation.d.ts +79 -0
  464. package/dist/types/annotation.d.ts.map +1 -0
  465. package/dist/types/annotation.js +10 -0
  466. package/dist/types/annotation.js.map +1 -0
  467. package/dist/types/assist.d.ts +147 -0
  468. package/dist/types/assist.d.ts.map +1 -0
  469. package/dist/types/assist.js +12 -0
  470. package/dist/types/assist.js.map +1 -0
  471. package/dist/types/contracts/FileSystemProvider.d.ts +24 -0
  472. package/dist/types/contracts/FileSystemProvider.d.ts.map +1 -0
  473. package/dist/types/contracts/FileSystemProvider.js +9 -0
  474. package/dist/types/contracts/FileSystemProvider.js.map +1 -0
  475. package/dist/types/contracts/LanguageParser.d.ts +146 -0
  476. package/dist/types/contracts/LanguageParser.d.ts.map +1 -0
  477. package/dist/types/contracts/LanguageParser.js +43 -0
  478. package/dist/types/contracts/LanguageParser.js.map +1 -0
  479. package/dist/types/contracts/Plugin.d.ts +226 -0
  480. package/dist/types/contracts/Plugin.d.ts.map +1 -0
  481. package/dist/types/contracts/Plugin.js +21 -0
  482. package/dist/types/contracts/Plugin.js.map +1 -0
  483. package/dist/types/contracts/index.d.ts +10 -0
  484. package/dist/types/contracts/index.d.ts.map +1 -0
  485. package/dist/types/contracts/index.js +26 -0
  486. package/dist/types/contracts/index.js.map +1 -0
  487. package/dist/types/core.d.ts +170 -0
  488. package/dist/types/core.d.ts.map +1 -0
  489. package/dist/types/core.js +10 -0
  490. package/dist/types/core.js.map +1 -0
  491. package/dist/types/events.d.ts +29 -0
  492. package/dist/types/events.d.ts.map +1 -0
  493. package/dist/types/events.js +18 -0
  494. package/dist/types/events.js.map +1 -0
  495. package/dist/types/experience.d.ts +153 -0
  496. package/dist/types/experience.d.ts.map +1 -0
  497. package/dist/types/experience.js +9 -0
  498. package/dist/types/experience.js.map +1 -0
  499. package/dist/types/graph.d.ts +35 -0
  500. package/dist/types/graph.d.ts.map +1 -0
  501. package/dist/types/graph.js +8 -0
  502. package/dist/types/graph.js.map +1 -0
  503. package/dist/types/index.d.ts +17 -0
  504. package/dist/types/index.d.ts.map +1 -0
  505. package/dist/types/index.js +33 -0
  506. package/dist/types/index.js.map +1 -0
  507. package/dist/types/label.d.ts +150 -0
  508. package/dist/types/label.d.ts.map +1 -0
  509. package/dist/types/label.js +9 -0
  510. package/dist/types/label.js.map +1 -0
  511. package/dist/types/query.d.ts +104 -0
  512. package/dist/types/query.d.ts.map +1 -0
  513. package/dist/types/query.js +11 -0
  514. package/dist/types/query.js.map +1 -0
  515. package/dist/types/response.d.ts +133 -0
  516. package/dist/types/response.d.ts.map +1 -0
  517. package/dist/types/response.js +60 -0
  518. package/dist/types/response.js.map +1 -0
  519. package/dist/types/target.d.ts +68 -0
  520. package/dist/types/target.d.ts.map +1 -0
  521. package/dist/types/target.js +11 -0
  522. package/dist/types/target.js.map +1 -0
  523. package/dist/utils/version.d.ts +9 -0
  524. package/dist/utils/version.d.ts.map +1 -0
  525. package/dist/utils/version.js +30 -0
  526. package/dist/utils/version.js.map +1 -0
  527. package/package.json +53 -0
@@ -0,0 +1,397 @@
1
+ "use strict";
2
+ /**
3
+ * SessionTransactionLog - Semi-Persistent Transaction Tracker
4
+ *
5
+ * Tracks all actions during a session and persists them to disk.
6
+ * File survives crashes/disconnects but is deleted on proper session close.
7
+ *
8
+ * Workflow:
9
+ * 1. Actions are immediately appended to .codemap/session-transactions.json
10
+ * 2. File persists across restarts until codemap_session_close is called
11
+ * 3. On session_start: if file exists, warn about premature termination
12
+ * 4. On session_close: load, display, keep in memory, then delete file
13
+ *
14
+ * @codemap.usage Track file operations, group modifications, annotations
15
+ * @codemap.policy All tracked actions must be immediately persisted to disk
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.SessionTransactionLog = void 0;
52
+ const path = __importStar(require("node:path"));
53
+ class SessionTransactionLog {
54
+ provider;
55
+ sessionFilePath;
56
+ summariesDirPath;
57
+ sessionData = null;
58
+ constructor(provider, codemapRoot = '.codemap') {
59
+ this.provider = provider;
60
+ this.sessionFilePath = path.join(codemapRoot, 'session-transactions.json');
61
+ this.summariesDirPath = path.join(codemapRoot, 'sessions', 'summaries');
62
+ }
63
+ /**
64
+ * Initialize a new session.
65
+ * Returns existing session data if file exists (premature termination case).
66
+ */
67
+ async initializeSession() {
68
+ const exists = await this.provider.exists(this.sessionFilePath);
69
+ if (exists) {
70
+ // Orphaned session detected - load it into memory
71
+ const content = await this.provider.read(this.sessionFilePath);
72
+ this.sessionData = JSON.parse(content);
73
+ return this.sessionData;
74
+ }
75
+ // Create new session
76
+ this.sessionData = {
77
+ sessionId: new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19),
78
+ startedAt: new Date().toISOString(),
79
+ transactions: []
80
+ };
81
+ await this.saveToFile();
82
+ return null;
83
+ }
84
+ /**
85
+ * Check if a session is currently active.
86
+ * Returns true if session data exists in memory, false otherwise.
87
+ */
88
+ isSessionActive() {
89
+ return this.sessionData !== null;
90
+ }
91
+ /**
92
+ * Track a transaction.
93
+ * Immediately persists to disk.
94
+ *
95
+ * @param action - Event type (must be a valid CodeMapEvent)
96
+ * @param target - Target identifier (file path, group name, etc.)
97
+ * @param details - Optional additional context
98
+ */
99
+ async track(action, target, details) {
100
+ if (!this.sessionData) {
101
+ throw new Error('Session not initialized. Call initializeSession() first.');
102
+ }
103
+ const transaction = {
104
+ timestamp: new Date().toISOString(),
105
+ action,
106
+ target,
107
+ details
108
+ };
109
+ this.sessionData.transactions.push(transaction);
110
+ await this.saveToFile();
111
+ }
112
+ /**
113
+ * Get current session summary.
114
+ *
115
+ * @param summary - Optional user-provided summary of what was accomplished
116
+ */
117
+ getSummary(summary) {
118
+ if (!this.sessionData) {
119
+ throw new Error('Session not initialized.');
120
+ }
121
+ const filesCreated = [];
122
+ const filesUpdated = [];
123
+ const filesDeleted = [];
124
+ const filesRenamed = [];
125
+ const groupsModified = new Set();
126
+ const notationsAdded = [];
127
+ const annotationsAdded = [];
128
+ for (const tx of this.sessionData.transactions) {
129
+ switch (tx.action) {
130
+ case 'file:create':
131
+ filesCreated.push(tx.target);
132
+ break;
133
+ case 'file:update':
134
+ filesUpdated.push(tx.target);
135
+ break;
136
+ case 'file:delete':
137
+ filesDeleted.push(tx.target);
138
+ break;
139
+ case 'file:rename':
140
+ filesRenamed.push({
141
+ from: tx.details?.from || '',
142
+ to: tx.details?.to || ''
143
+ });
144
+ break;
145
+ case 'group:add':
146
+ groupsModified.add(tx.target);
147
+ break;
148
+ case 'group:notate':
149
+ groupsModified.add(tx.target);
150
+ notationsAdded.push({
151
+ group: tx.target,
152
+ text: tx.details?.text || ''
153
+ });
154
+ break;
155
+ case 'annotation:add':
156
+ case 'annotation:add:source':
157
+ case 'annotation:add:meta':
158
+ annotationsAdded.push(tx.target);
159
+ break;
160
+ }
161
+ }
162
+ const duration = this.formatDuration(new Date(this.sessionData.startedAt), new Date());
163
+ return {
164
+ sessionId: this.sessionData.sessionId,
165
+ startedAt: this.sessionData.startedAt,
166
+ duration,
167
+ summary, // Include user-provided summary
168
+ filesCreated,
169
+ filesUpdated,
170
+ filesDeleted,
171
+ filesRenamed,
172
+ groupsModified: Array.from(groupsModified),
173
+ notationsAdded,
174
+ annotationsAdded
175
+ };
176
+ }
177
+ /**
178
+ * Close the session.
179
+ * Saves summary to backup, cleans up old summaries, then deletes transaction file.
180
+ *
181
+ * @param summary - Optional user-provided summary of what was accomplished
182
+ * @param retentionCount - Number of summaries to keep (0 = unlimited, default: 5)
183
+ */
184
+ async closeSession(summary, retentionCount = 5) {
185
+ if (!this.sessionData) {
186
+ throw new Error('Session not initialized.');
187
+ }
188
+ const finalData = { ...this.sessionData };
189
+ const sessionSummary = this.getSummary(summary);
190
+ // Save summary to backup
191
+ await this.saveSummaryBackup(sessionSummary);
192
+ // Cleanup old summaries if retention limit set
193
+ if (retentionCount > 0) {
194
+ await this.cleanupOldSummaries(retentionCount);
195
+ }
196
+ // Delete the transaction file
197
+ await this.provider.remove(this.sessionFilePath);
198
+ // Clear in-memory data
199
+ this.sessionData = null;
200
+ return finalData;
201
+ }
202
+ /**
203
+ * Check if session file exists (orphaned session detection).
204
+ */
205
+ async hasOrphanedSession() {
206
+ return await this.provider.exists(this.sessionFilePath);
207
+ }
208
+ /**
209
+ * Load orphaned session data without initializing new session.
210
+ */
211
+ async loadOrphanedSession() {
212
+ const exists = await this.provider.exists(this.sessionFilePath);
213
+ if (!exists)
214
+ return null;
215
+ const content = await this.provider.read(this.sessionFilePath);
216
+ return JSON.parse(content);
217
+ }
218
+ /**
219
+ * Save session summary to backup directory.
220
+ */
221
+ async saveSummaryBackup(summary) {
222
+ try {
223
+ // Ensure summaries directory exists
224
+ await this.provider.mkdir(this.summariesDirPath);
225
+ // Write summary file
226
+ const summaryPath = path.join(this.summariesDirPath, `${summary.sessionId}.json`);
227
+ const content = JSON.stringify(summary, null, 2);
228
+ await this.provider.write(summaryPath, content);
229
+ }
230
+ catch (error) {
231
+ console.error('Failed to save session summary backup:', error);
232
+ // Don't throw - session close should still succeed
233
+ }
234
+ }
235
+ /**
236
+ * Cleanup old summary backups beyond retention limit.
237
+ */
238
+ async cleanupOldSummaries(retentionCount) {
239
+ try {
240
+ const fileNames = await this.provider.readdir(this.summariesDirPath);
241
+ if (!fileNames || fileNames.length <= retentionCount) {
242
+ return; // No cleanup needed
243
+ }
244
+ // Sort by filename (sessionId timestamp) descending (newest first)
245
+ const summaryFiles = fileNames
246
+ .filter((f) => f.endsWith('.json'))
247
+ .sort((a, b) => b.localeCompare(a));
248
+ // Delete files beyond retention count
249
+ const filesToDelete = summaryFiles.slice(retentionCount);
250
+ for (const file of filesToDelete) {
251
+ const filePath = path.join(this.summariesDirPath, file);
252
+ await this.provider.remove(filePath);
253
+ }
254
+ }
255
+ catch (error) {
256
+ console.error('Failed to cleanup old session summaries:', error);
257
+ // Don't throw - not critical
258
+ }
259
+ }
260
+ /**
261
+ * Get the most recent session summary (either successfully closed or orphaned).
262
+ * Returns null if no summaries exist.
263
+ */
264
+ async getLastSessionSummary() {
265
+ // First check if there's an orphaned session (takes priority)
266
+ const orphaned = await this.loadOrphanedSession();
267
+ if (orphaned) {
268
+ // Reconstruct summary from orphaned data
269
+ this.sessionData = orphaned;
270
+ const summary = this.getSummary();
271
+ this.sessionData = null; // Clear temp data
272
+ return {
273
+ summary,
274
+ wasOrphaned: true
275
+ };
276
+ }
277
+ // Otherwise, get the most recent saved summary
278
+ try {
279
+ await this.provider.mkdir(this.summariesDirPath);
280
+ const fileNames = await this.provider.readdir(this.summariesDirPath);
281
+ if (!fileNames || fileNames.length === 0) {
282
+ return null;
283
+ }
284
+ // Sort by filename (sessionId timestamp) descending
285
+ const summaryFiles = fileNames
286
+ .filter((f) => f.endsWith('.json'))
287
+ .sort((a, b) => b.localeCompare(a));
288
+ if (summaryFiles.length === 0) {
289
+ return null;
290
+ }
291
+ // Read the most recent summary
292
+ const latestPath = path.join(this.summariesDirPath, summaryFiles[0]);
293
+ const content = await this.provider.read(latestPath);
294
+ const summary = JSON.parse(content);
295
+ return {
296
+ summary,
297
+ wasOrphaned: false
298
+ };
299
+ }
300
+ catch (error) {
301
+ // Directory doesn't exist or other error
302
+ return null;
303
+ }
304
+ }
305
+ /**
306
+ * List session summaries with pagination.
307
+ *
308
+ * @param page - Page number (1-based)
309
+ * @param pageSize - Number of sessions per page
310
+ * @returns Paginated session summaries
311
+ */
312
+ async listSessions(page = 1, pageSize = 10) {
313
+ try {
314
+ await this.provider.mkdir(this.summariesDirPath);
315
+ const fileNames = await this.provider.readdir(this.summariesDirPath);
316
+ const summaryFiles = fileNames
317
+ .filter((f) => f.endsWith('.json'))
318
+ .sort((a, b) => b.localeCompare(a)); // Newest first
319
+ // Calculate pagination
320
+ const totalSessions = summaryFiles.length;
321
+ const totalPages = Math.ceil(totalSessions / pageSize);
322
+ const startIndex = (page - 1) * pageSize;
323
+ const endIndex = Math.min(startIndex + pageSize, totalSessions);
324
+ const pageFiles = summaryFiles.slice(startIndex, endIndex);
325
+ // Load summaries for this page
326
+ const sessions = [];
327
+ for (const fileName of pageFiles) {
328
+ const filePath = path.join(this.summariesDirPath, fileName);
329
+ const content = await this.provider.read(filePath);
330
+ const summary = JSON.parse(content);
331
+ sessions.push(summary);
332
+ }
333
+ return {
334
+ sessions,
335
+ pagination: {
336
+ page,
337
+ pageSize,
338
+ totalSessions,
339
+ totalPages,
340
+ hasMore: page < totalPages
341
+ }
342
+ };
343
+ }
344
+ catch (error) {
345
+ // Directory doesn't exist or other error
346
+ return {
347
+ sessions: [],
348
+ pagination: {
349
+ page,
350
+ pageSize,
351
+ totalSessions: 0,
352
+ totalPages: 0,
353
+ hasMore: false
354
+ }
355
+ };
356
+ }
357
+ }
358
+ /**
359
+ * Read a specific session summary by ID.
360
+ *
361
+ * @param sessionId - Session ID to read
362
+ * @returns Session summary or null if not found
363
+ */
364
+ async readSession(sessionId) {
365
+ try {
366
+ const filePath = path.join(this.summariesDirPath, `${sessionId}.json`);
367
+ const exists = await this.provider.exists(filePath);
368
+ if (!exists) {
369
+ return null;
370
+ }
371
+ const content = await this.provider.read(filePath);
372
+ return JSON.parse(content);
373
+ }
374
+ catch (error) {
375
+ return null;
376
+ }
377
+ }
378
+ // ── Private Helpers ────────────────────────────────────────────────────────
379
+ async saveToFile() {
380
+ if (!this.sessionData)
381
+ return;
382
+ const content = JSON.stringify(this.sessionData, null, 2);
383
+ await this.provider.write(this.sessionFilePath, content);
384
+ }
385
+ formatDuration(start, end) {
386
+ const diffMs = end.getTime() - start.getTime();
387
+ const minutes = Math.floor(diffMs / 60000);
388
+ if (minutes < 60) {
389
+ return `${minutes} minute${minutes !== 1 ? 's' : ''}`;
390
+ }
391
+ const hours = Math.floor(minutes / 60);
392
+ const remainingMinutes = minutes % 60;
393
+ return `${hours} hour${hours !== 1 ? 's' : ''} ${remainingMinutes} minute${remainingMinutes !== 1 ? 's' : ''}`;
394
+ }
395
+ }
396
+ exports.SessionTransactionLog = SessionTransactionLog;
397
+ //# sourceMappingURL=SessionTransactionLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTransactionLog.js","sourceRoot":"","sources":["../../src/core/SessionTransactionLog.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,gDAAkC;AA6BlC,MAAa,qBAAqB;IACxB,QAAQ,CAAqB;IAC7B,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,WAAW,GAAuB,IAAI,CAAC;IAE/C,YAAY,QAA4B,EAAE,cAAsB,UAAU;QACxE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEhE,IAAI,MAAM,EAAE,CAAC;YACX,kDAAkD;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;YACtD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,WAAW,GAAG;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CACT,MAAoB,EACpB,MAAc,EACd,OAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,WAAW,GAAuB;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM;YACN,MAAM;YACN,OAAO;SACR,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,YAAY,GAAwC,EAAE,CAAC;QAC7D,MAAM,cAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC9C,MAAM,cAAc,GAA2C,EAAE,CAAC;QAClE,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,aAAa;oBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,aAAa;oBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,aAAa;oBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,aAAa;oBAChB,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,IAAc,IAAI,EAAE;wBACtC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAY,IAAI,EAAE;qBACnC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9B,MAAM;gBACR,KAAK,cAAc;oBACjB,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,EAAE,CAAC,MAAM;wBAChB,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,IAAc,IAAI,EAAE;qBACvC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,gBAAgB,CAAC;gBACtB,KAAK,uBAAuB,CAAC;gBAC7B,KAAK,qBAAqB;oBACxB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjC,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAClC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EACpC,IAAI,IAAI,EAAE,CACX,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;YACrC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;YACrC,QAAQ;YACR,OAAO,EAAG,gCAAgC;YAC1C,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAC1C,cAAc;YACd,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,iBAAyB,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhD,yBAAyB;QACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAE7C,+CAA+C;QAC/C,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEjD,uBAAuB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QACrD,IAAI,CAAC;YACH,oCAAoC;YACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEjD,qBAAqB;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;YAClF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAC/D,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QACtD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAErE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;gBACrD,OAAO,CAAC,oBAAoB;YAC9B,CAAC;YAED,mEAAmE;YACnE,MAAM,YAAY,GAAG,SAAS;iBAC3B,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtD,sCAAsC;YACtC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAEzD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB;QACzB,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,yCAAyC;YACzC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,kBAAkB;YAE3C,OAAO;gBACL,OAAO;gBACP,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,SAAS,GAAa,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE/E,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oDAAoD;YACpD,MAAM,YAAY,GAAG,SAAS;iBAC3B,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,+BAA+B;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;YAEtD,OAAO;gBACL,OAAO;gBACP,WAAW,EAAE,KAAK;aACnB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,CAAC,EAAE,WAAmB,EAAE;QAUxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,SAAS,GAAa,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/E,MAAM,YAAY,GAAG,SAAS;iBAC3B,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YAEtE,uBAAuB;YACvB,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE3D,+BAA+B;YAC/B,MAAM,QAAQ,GAAqB,EAAE,CAAC;YACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;gBACtD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,UAAU,EAAE;oBACV,IAAI;oBACJ,QAAQ;oBACR,aAAa;oBACb,UAAU;oBACV,OAAO,EAAE,IAAI,GAAG,UAAU;iBAC3B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE;oBACV,IAAI;oBACJ,QAAQ;oBACR,aAAa,EAAE,CAAC;oBAChB,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,8EAA8E;IAEtE,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEO,cAAc,CAAC,KAAW,EAAE,GAAS;QAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAE3C,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;QAEtC,OAAO,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,UAAU,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjH,CAAC;CACF;AApZD,sDAoZC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Target parser with support for wildcards and line ranges.
3
+ *
4
+ * Features:
5
+ * - Wildcards: "src/components/*.vue" or "src.components.*"
6
+ * - Line ranges: "file.ts:1-50" or "file.ts:10" (1-indexed)
7
+ * - Dot notation: "src.components.TaskCard" → "src/components/TaskCard"
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const parser = new TargetParser();
12
+ *
13
+ * // Simple file
14
+ * parser.parse("TaskCard.vue")
15
+ * // → { basePath: "TaskCard.vue", isWildcard: false }
16
+ *
17
+ * // With line range
18
+ * parser.parse("TaskCard.vue:1-50")
19
+ * // → { basePath: "TaskCard.vue", isWildcard: false, lineRange: { start: 1, end: 50 } }
20
+ *
21
+ * // Wildcard
22
+ * parser.parse("src/components/*.vue")
23
+ * // → { basePath: "src/components/*.vue", isWildcard: true }
24
+ *
25
+ * // Dot notation
26
+ * parser.parse("src.components.TaskCard")
27
+ * // → { basePath: "src/components/TaskCard", isWildcard: false }
28
+ * ```
29
+ */
30
+ import type { ParsedTarget } from '../types';
31
+ export declare class TargetParser {
32
+ /**
33
+ * Parse a target string into structured components.
34
+ *
35
+ * @param target - Target string (may include wildcards and/or line range)
36
+ * @returns Parsed target structure
37
+ */
38
+ parse(target: string): ParsedTarget;
39
+ /**
40
+ * Parse multiple targets.
41
+ *
42
+ * @param targets - Array of target strings
43
+ * @returns Array of parsed targets
44
+ */
45
+ parseMany(targets: string[]): ParsedTarget[];
46
+ /**
47
+ * Check if a path contains wildcard characters.
48
+ *
49
+ * @param path - Path to check
50
+ * @returns True if path contains * or ?
51
+ */
52
+ hasWildcard(path: string): boolean;
53
+ /**
54
+ * Normalize path separators.
55
+ *
56
+ * Supports both:
57
+ * - Forward slashes: "src/components/TaskCard"
58
+ * - Dot notation: "src.components.TaskCard"
59
+ *
60
+ * Always returns forward-slash format for consistency.
61
+ *
62
+ * @param path - Path with any separator style
63
+ * @returns Path with forward slashes
64
+ */
65
+ normalizePath(path: string): string;
66
+ /**
67
+ * Validate a parsed target.
68
+ *
69
+ * @param parsed - Parsed target to validate
70
+ * @throws Error if target is invalid
71
+ */
72
+ validate(parsed: ParsedTarget): void;
73
+ /**
74
+ * Extract line range from file content.
75
+ *
76
+ * @param content - Full file content
77
+ * @param lineRange - Line range (1-indexed, inclusive)
78
+ * @returns Extracted lines joined with newlines
79
+ */
80
+ extractLineRange(content: string, lineRange: {
81
+ start: number;
82
+ end: number;
83
+ }): string;
84
+ }
85
+ //# sourceMappingURL=TargetParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TargetParser.d.ts","sourceRoot":"","sources":["../../src/core/TargetParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,qBAAa,YAAY;IAEvB;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAwCnC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE;IAI5C;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA2BnC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAwBpC;;;;;;OAMG;IACH,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACxC,MAAM;CAeV"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ /**
3
+ * Target parser with support for wildcards and line ranges.
4
+ *
5
+ * Features:
6
+ * - Wildcards: "src/components/*.vue" or "src.components.*"
7
+ * - Line ranges: "file.ts:1-50" or "file.ts:10" (1-indexed)
8
+ * - Dot notation: "src.components.TaskCard" → "src/components/TaskCard"
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const parser = new TargetParser();
13
+ *
14
+ * // Simple file
15
+ * parser.parse("TaskCard.vue")
16
+ * // → { basePath: "TaskCard.vue", isWildcard: false }
17
+ *
18
+ * // With line range
19
+ * parser.parse("TaskCard.vue:1-50")
20
+ * // → { basePath: "TaskCard.vue", isWildcard: false, lineRange: { start: 1, end: 50 } }
21
+ *
22
+ * // Wildcard
23
+ * parser.parse("src/components/*.vue")
24
+ * // → { basePath: "src/components/*.vue", isWildcard: true }
25
+ *
26
+ * // Dot notation
27
+ * parser.parse("src.components.TaskCard")
28
+ * // → { basePath: "src/components/TaskCard", isWildcard: false }
29
+ * ```
30
+ */
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.TargetParser = void 0;
33
+ class TargetParser {
34
+ /**
35
+ * Parse a target string into structured components.
36
+ *
37
+ * @param target - Target string (may include wildcards and/or line range)
38
+ * @returns Parsed target structure
39
+ */
40
+ parse(target) {
41
+ if (!target || target.trim().length === 0) {
42
+ throw new Error('Target cannot be empty');
43
+ }
44
+ const trimmed = target.trim();
45
+ // Check for line range suffix: "file.ts:10" or "file.ts:10-20"
46
+ const lineRangeMatch = trimmed.match(/^(.+):(\d+)(?:-(\d+))?$/);
47
+ if (lineRangeMatch) {
48
+ const [, basePath, startStr, endStr] = lineRangeMatch;
49
+ const start = parseInt(startStr, 10);
50
+ const end = endStr ? parseInt(endStr, 10) : start;
51
+ // Validate 1-indexed line numbers
52
+ if (start < 1 || end < 1) {
53
+ throw new Error(`Line numbers must be >= 1 (got start=${start}, end=${end})`);
54
+ }
55
+ if (start > end) {
56
+ throw new Error(`Line range start (${start}) cannot be greater than end (${end})`);
57
+ }
58
+ return {
59
+ basePath: this.normalizePath(basePath),
60
+ isWildcard: this.hasWildcard(basePath),
61
+ lineRange: { start, end },
62
+ original: trimmed
63
+ };
64
+ }
65
+ // No line range
66
+ return {
67
+ basePath: this.normalizePath(trimmed),
68
+ isWildcard: this.hasWildcard(trimmed),
69
+ original: trimmed
70
+ };
71
+ }
72
+ /**
73
+ * Parse multiple targets.
74
+ *
75
+ * @param targets - Array of target strings
76
+ * @returns Array of parsed targets
77
+ */
78
+ parseMany(targets) {
79
+ return targets.map(t => this.parse(t));
80
+ }
81
+ /**
82
+ * Check if a path contains wildcard characters.
83
+ *
84
+ * @param path - Path to check
85
+ * @returns True if path contains * or ?
86
+ */
87
+ hasWildcard(path) {
88
+ return path.includes('*') || path.includes('?');
89
+ }
90
+ /**
91
+ * Normalize path separators.
92
+ *
93
+ * Supports both:
94
+ * - Forward slashes: "src/components/TaskCard"
95
+ * - Dot notation: "src.components.TaskCard"
96
+ *
97
+ * Always returns forward-slash format for consistency.
98
+ *
99
+ * @param path - Path with any separator style
100
+ * @returns Path with forward slashes
101
+ */
102
+ normalizePath(path) {
103
+ // CRITICAL: Skip dot-notation conversion for absolute paths
104
+ // Absolute paths should be treated literally - dots are just dots
105
+ // Examples:
106
+ // P:\Sandbox\Testing\test.helper.ts → keep as-is
107
+ // /usr/local/bin/test.helper.sh → keep as-is
108
+ // C:/Users/test.config.json → keep as-is
109
+ // Check if path is absolute (Windows or Unix)
110
+ const isAbsolute = /^([A-Za-z]:[\\/]|[\\/])/.test(path);
111
+ if (isAbsolute) {
112
+ return path; // No dot-notation conversion for absolute paths
113
+ }
114
+ // For relative paths, apply dot-notation conversion
115
+ // Don't convert dots that are part of file extensions
116
+ // Example: "TaskCard.vue" should stay "TaskCard.vue"
117
+ // But: "src.components.TaskCard.vue" → "src/components/TaskCard.vue"
118
+ // Strategy: Only convert dots before the last dot (preserves file extensions)
119
+ const lastDotIndex = path.lastIndexOf('.');
120
+ if (lastDotIndex === -1 || path.indexOf('.') === lastDotIndex)
121
+ return path;
122
+ const pathPart = path.slice(0, lastDotIndex);
123
+ const extension = path.slice(lastDotIndex);
124
+ return pathPart.replace(/\./g, '/') + extension;
125
+ }
126
+ /**
127
+ * Validate a parsed target.
128
+ *
129
+ * @param parsed - Parsed target to validate
130
+ * @throws Error if target is invalid
131
+ */
132
+ validate(parsed) {
133
+ // Cannot have wildcards AND line ranges
134
+ if (parsed.isWildcard && parsed.lineRange) {
135
+ throw new Error(`Target cannot have both wildcards and line range: "${parsed.original}"`);
136
+ }
137
+ // Line range validation
138
+ if (parsed.lineRange) {
139
+ const { start, end } = parsed.lineRange;
140
+ if (start < 1 || end < 1) {
141
+ throw new Error(`Line numbers must be >= 1 in "${parsed.original}"`);
142
+ }
143
+ if (start > end) {
144
+ throw new Error(`Line range start (${start}) > end (${end}) in "${parsed.original}"`);
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Extract line range from file content.
150
+ *
151
+ * @param content - Full file content
152
+ * @param lineRange - Line range (1-indexed, inclusive)
153
+ * @returns Extracted lines joined with newlines
154
+ */
155
+ extractLineRange(content, lineRange) {
156
+ const lines = content.split('\n');
157
+ // Convert 1-indexed to 0-indexed
158
+ const startIdx = lineRange.start - 1;
159
+ const endIdx = lineRange.end - 1;
160
+ if (startIdx < 0 || endIdx >= lines.length || startIdx > endIdx) {
161
+ throw new Error(`Invalid line range ${lineRange.start}-${lineRange.end} for file with ${lines.length} lines`);
162
+ }
163
+ return lines.slice(startIdx, endIdx + 1).join('\n');
164
+ }
165
+ }
166
+ exports.TargetParser = TargetParser;
167
+ //# sourceMappingURL=TargetParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TargetParser.js","sourceRoot":"","sources":["../../src/core/TargetParser.ts"],"names":[],"mappings":"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"}