@tonycasey/lisa 2.25.4 → 2.27.0

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 (514) hide show
  1. package/dist/lib/application/handlers/PromptSubmitHandler.d.ts.map +1 -1
  2. package/dist/lib/application/handlers/PromptSubmitHandler.js +2 -2
  3. package/dist/lib/application/handlers/PromptSubmitHandler.js.map +1 -1
  4. package/dist/lib/application/handlers/SessionStartHandler.d.ts +8 -24
  5. package/dist/lib/application/handlers/SessionStartHandler.d.ts.map +1 -1
  6. package/dist/lib/application/handlers/SessionStartHandler.js +43 -31
  7. package/dist/lib/application/handlers/SessionStartHandler.js.map +1 -1
  8. package/dist/lib/application/handlers/SessionStopHandler.d.ts.map +1 -1
  9. package/dist/lib/application/handlers/SessionStopHandler.js +2 -3
  10. package/dist/lib/application/handlers/SessionStopHandler.js.map +1 -1
  11. package/dist/lib/application/handlers/pr/PrPollHandler.d.ts +1 -2
  12. package/dist/lib/application/handlers/pr/PrPollHandler.d.ts.map +1 -1
  13. package/dist/lib/application/handlers/pr/PrPollHandler.js +3 -4
  14. package/dist/lib/application/handlers/pr/PrPollHandler.js.map +1 -1
  15. package/dist/lib/application/handlers/pr/PrRememberHandler.d.ts +1 -2
  16. package/dist/lib/application/handlers/pr/PrRememberHandler.d.ts.map +1 -1
  17. package/dist/lib/application/handlers/pr/PrRememberHandler.js +2 -3
  18. package/dist/lib/application/handlers/pr/PrRememberHandler.js.map +1 -1
  19. package/dist/lib/application/services/GitExtractorService.d.ts +22 -0
  20. package/dist/lib/application/services/GitExtractorService.d.ts.map +1 -0
  21. package/dist/lib/application/services/GitExtractorService.js +232 -0
  22. package/dist/lib/application/services/GitExtractorService.js.map +1 -0
  23. package/dist/lib/application/services/GitIndexingService.d.ts +25 -0
  24. package/dist/lib/application/services/GitIndexingService.d.ts.map +1 -0
  25. package/dist/lib/application/services/GitIndexingService.js +175 -0
  26. package/dist/lib/application/services/GitIndexingService.js.map +1 -0
  27. package/dist/lib/application/services/GitTriageService.d.ts +45 -0
  28. package/dist/lib/application/services/GitTriageService.d.ts.map +1 -0
  29. package/dist/lib/application/services/GitTriageService.js +360 -0
  30. package/dist/lib/application/services/GitTriageService.js.map +1 -0
  31. package/dist/lib/application/services/MemoryContextLoader.d.ts +7 -16
  32. package/dist/lib/application/services/MemoryContextLoader.d.ts.map +1 -1
  33. package/dist/lib/application/services/MemoryContextLoader.js +12 -75
  34. package/dist/lib/application/services/MemoryContextLoader.js.map +1 -1
  35. package/dist/lib/application/services/RepoProfileService.d.ts +37 -0
  36. package/dist/lib/application/services/RepoProfileService.d.ts.map +1 -0
  37. package/dist/lib/application/services/RepoProfileService.js +388 -0
  38. package/dist/lib/application/services/RepoProfileService.js.map +1 -0
  39. package/dist/lib/application/services/SessionContextFormatter.d.ts +11 -1
  40. package/dist/lib/application/services/SessionContextFormatter.d.ts.map +1 -1
  41. package/dist/lib/application/services/SessionContextFormatter.js +59 -3
  42. package/dist/lib/application/services/SessionContextFormatter.js.map +1 -1
  43. package/dist/lib/application/services/index.d.ts +2 -0
  44. package/dist/lib/application/services/index.d.ts.map +1 -1
  45. package/dist/lib/application/services/index.js +7 -1
  46. package/dist/lib/application/services/index.js.map +1 -1
  47. package/dist/lib/cli.d.ts +2 -2
  48. package/dist/lib/cli.d.ts.map +1 -1
  49. package/dist/lib/cli.js +4 -52
  50. package/dist/lib/cli.js.map +1 -1
  51. package/dist/lib/commands/doctor.d.ts +5 -12
  52. package/dist/lib/commands/doctor.d.ts.map +1 -1
  53. package/dist/lib/commands/doctor.js +60 -280
  54. package/dist/lib/commands/doctor.js.map +1 -1
  55. package/dist/lib/commands/index.d.ts +2 -3
  56. package/dist/lib/commands/index.d.ts.map +1 -1
  57. package/dist/lib/commands/index.js +2 -7
  58. package/dist/lib/commands/index.js.map +1 -1
  59. package/dist/lib/commands/init.d.ts +2 -8
  60. package/dist/lib/commands/init.d.ts.map +1 -1
  61. package/dist/lib/commands/init.js +13 -67
  62. package/dist/lib/commands/init.js.map +1 -1
  63. package/dist/lib/commands/knowledge.d.ts.map +1 -1
  64. package/dist/lib/commands/knowledge.js +1 -2
  65. package/dist/lib/commands/knowledge.js.map +1 -1
  66. package/dist/lib/commands/pr.d.ts.map +1 -1
  67. package/dist/lib/commands/pr.js +20 -21
  68. package/dist/lib/commands/pr.js.map +1 -1
  69. package/dist/lib/commands/shared/constants.d.ts +1 -15
  70. package/dist/lib/commands/shared/constants.d.ts.map +1 -1
  71. package/dist/lib/commands/shared/constants.js +2 -5
  72. package/dist/lib/commands/shared/constants.js.map +1 -1
  73. package/dist/lib/commands/shared/index.d.ts +1 -1
  74. package/dist/lib/commands/shared/index.d.ts.map +1 -1
  75. package/dist/lib/commands/shared/index.js +1 -3
  76. package/dist/lib/commands/shared/index.js.map +1 -1
  77. package/dist/lib/commands/skills.d.ts +1 -1
  78. package/dist/lib/commands/skills.js +5 -5
  79. package/dist/lib/commands/skills.js.map +1 -1
  80. package/dist/lib/domain/interfaces/ICommitEnricher.d.ts +81 -0
  81. package/dist/lib/domain/interfaces/ICommitEnricher.d.ts.map +1 -0
  82. package/dist/lib/domain/interfaces/ICommitEnricher.js +33 -0
  83. package/dist/lib/domain/interfaces/ICommitEnricher.js.map +1 -0
  84. package/dist/lib/domain/interfaces/IConsolidationService.d.ts +3 -2
  85. package/dist/lib/domain/interfaces/IConsolidationService.d.ts.map +1 -1
  86. package/dist/lib/domain/interfaces/ICurationService.d.ts +3 -2
  87. package/dist/lib/domain/interfaces/ICurationService.d.ts.map +1 -1
  88. package/dist/lib/domain/interfaces/IFileSystem.d.ts +28 -0
  89. package/dist/lib/domain/interfaces/IFileSystem.d.ts.map +1 -0
  90. package/dist/lib/domain/interfaces/IFileSystem.js +12 -0
  91. package/dist/lib/domain/interfaces/IFileSystem.js.map +1 -0
  92. package/dist/lib/domain/interfaces/IGitClient.d.ts +86 -0
  93. package/dist/lib/domain/interfaces/IGitClient.d.ts.map +1 -1
  94. package/dist/lib/domain/interfaces/IGitExtractor.d.ts +160 -0
  95. package/dist/lib/domain/interfaces/IGitExtractor.d.ts.map +1 -0
  96. package/dist/lib/domain/interfaces/IGitExtractor.js +37 -0
  97. package/dist/lib/domain/interfaces/IGitExtractor.js.map +1 -0
  98. package/dist/lib/domain/interfaces/IGitIndexingService.d.ts +69 -0
  99. package/dist/lib/domain/interfaces/IGitIndexingService.d.ts.map +1 -0
  100. package/dist/lib/domain/interfaces/IGitIndexingService.js +43 -0
  101. package/dist/lib/domain/interfaces/IGitIndexingService.js.map +1 -0
  102. package/dist/lib/domain/interfaces/IGitMemClient.d.ts +44 -0
  103. package/dist/lib/domain/interfaces/IGitMemClient.d.ts.map +1 -0
  104. package/dist/lib/domain/interfaces/IGitMemClient.js +9 -0
  105. package/dist/lib/domain/interfaces/IGitMemClient.js.map +1 -0
  106. package/dist/lib/domain/interfaces/IGitTriageService.d.ts +180 -0
  107. package/dist/lib/domain/interfaces/IGitTriageService.d.ts.map +1 -0
  108. package/dist/lib/domain/interfaces/IGitTriageService.js +12 -0
  109. package/dist/lib/domain/interfaces/IGitTriageService.js.map +1 -0
  110. package/dist/lib/domain/interfaces/ILisaServices.d.ts +0 -9
  111. package/dist/lib/domain/interfaces/ILisaServices.d.ts.map +1 -1
  112. package/dist/lib/domain/interfaces/IMemoryService.d.ts +14 -89
  113. package/dist/lib/domain/interfaces/IMemoryService.d.ts.map +1 -1
  114. package/dist/lib/domain/interfaces/INlCurationService.d.ts +4 -4
  115. package/dist/lib/domain/interfaces/INlCurationService.d.ts.map +1 -1
  116. package/dist/lib/domain/interfaces/IRecursionService.d.ts +3 -2
  117. package/dist/lib/domain/interfaces/IRecursionService.d.ts.map +1 -1
  118. package/dist/lib/domain/interfaces/IRepoProfileService.d.ts +132 -0
  119. package/dist/lib/domain/interfaces/IRepoProfileService.d.ts.map +1 -0
  120. package/dist/lib/domain/interfaces/IRepoProfileService.js +25 -0
  121. package/dist/lib/domain/interfaces/IRepoProfileService.js.map +1 -0
  122. package/dist/lib/domain/interfaces/ISummarizationService.d.ts +4 -3
  123. package/dist/lib/domain/interfaces/ISummarizationService.d.ts.map +1 -1
  124. package/dist/lib/domain/interfaces/ITaskService.d.ts +11 -16
  125. package/dist/lib/domain/interfaces/ITaskService.d.ts.map +1 -1
  126. package/dist/lib/domain/interfaces/dal/IMemoryRepository.d.ts +0 -1
  127. package/dist/lib/domain/interfaces/dal/IMemoryRepository.d.ts.map +1 -1
  128. package/dist/lib/domain/interfaces/dal/IRepositoryRouter.d.ts +1 -1
  129. package/dist/lib/domain/interfaces/dal/IRepositoryRouter.js +2 -2
  130. package/dist/lib/domain/interfaces/dal/IRepositoryRouter.js.map +1 -1
  131. package/dist/lib/domain/interfaces/events/IMemoryEvent.d.ts +6 -4
  132. package/dist/lib/domain/interfaces/events/IMemoryEvent.d.ts.map +1 -1
  133. package/dist/lib/domain/interfaces/events/IMemoryEvent.js +2 -4
  134. package/dist/lib/domain/interfaces/events/IMemoryEvent.js.map +1 -1
  135. package/dist/lib/domain/interfaces/index.d.ts +9 -3
  136. package/dist/lib/domain/interfaces/index.d.ts.map +1 -1
  137. package/dist/lib/domain/interfaces/index.js +13 -1
  138. package/dist/lib/domain/interfaces/index.js.map +1 -1
  139. package/dist/lib/infrastructure/adapters/claude/session-start.d.ts +1 -0
  140. package/dist/lib/infrastructure/adapters/claude/session-start.d.ts.map +1 -1
  141. package/dist/lib/infrastructure/adapters/claude/session-start.js +18 -4
  142. package/dist/lib/infrastructure/adapters/claude/session-start.js.map +1 -1
  143. package/dist/lib/infrastructure/adapters/gitmem/GitMemAdapter.d.ts +22 -0
  144. package/dist/lib/infrastructure/adapters/gitmem/GitMemAdapter.d.ts.map +1 -0
  145. package/dist/lib/infrastructure/adapters/gitmem/GitMemAdapter.js +88 -0
  146. package/dist/lib/infrastructure/adapters/gitmem/GitMemAdapter.js.map +1 -0
  147. package/dist/lib/infrastructure/adapters/gitmem/GitMemTaskAdapter.d.ts +19 -0
  148. package/dist/lib/infrastructure/adapters/gitmem/GitMemTaskAdapter.d.ts.map +1 -0
  149. package/dist/lib/infrastructure/adapters/gitmem/GitMemTaskAdapter.js +109 -0
  150. package/dist/lib/infrastructure/adapters/gitmem/GitMemTaskAdapter.js.map +1 -0
  151. package/dist/lib/infrastructure/adapters/gitmem/index.d.ts +3 -0
  152. package/dist/lib/infrastructure/adapters/gitmem/index.d.ts.map +1 -0
  153. package/dist/lib/infrastructure/adapters/gitmem/index.js +8 -0
  154. package/dist/lib/infrastructure/adapters/gitmem/index.js.map +1 -0
  155. package/dist/lib/infrastructure/dal/connections/index.d.ts +0 -4
  156. package/dist/lib/infrastructure/dal/connections/index.d.ts.map +1 -1
  157. package/dist/lib/infrastructure/dal/connections/index.js +2 -10
  158. package/dist/lib/infrastructure/dal/connections/index.js.map +1 -1
  159. package/dist/lib/infrastructure/dal/index.d.ts +4 -22
  160. package/dist/lib/infrastructure/dal/index.d.ts.map +1 -1
  161. package/dist/lib/infrastructure/dal/index.js +3 -37
  162. package/dist/lib/infrastructure/dal/index.js.map +1 -1
  163. package/dist/lib/infrastructure/dal/repositories/index.d.ts +1 -3
  164. package/dist/lib/infrastructure/dal/repositories/index.d.ts.map +1 -1
  165. package/dist/lib/infrastructure/dal/repositories/index.js +2 -12
  166. package/dist/lib/infrastructure/dal/repositories/index.js.map +1 -1
  167. package/dist/lib/infrastructure/dal/repositories/neo4j/index.d.ts +0 -2
  168. package/dist/lib/infrastructure/dal/repositories/neo4j/index.d.ts.map +1 -1
  169. package/dist/lib/infrastructure/dal/repositories/neo4j/index.js +2 -6
  170. package/dist/lib/infrastructure/dal/repositories/neo4j/index.js.map +1 -1
  171. package/dist/lib/infrastructure/di/ServiceFactory.d.ts +2 -9
  172. package/dist/lib/infrastructure/di/ServiceFactory.d.ts.map +1 -1
  173. package/dist/lib/infrastructure/di/bootstrap.d.ts +3 -1
  174. package/dist/lib/infrastructure/di/bootstrap.d.ts.map +1 -1
  175. package/dist/lib/infrastructure/di/bootstrap.js +29 -131
  176. package/dist/lib/infrastructure/di/bootstrap.js.map +1 -1
  177. package/dist/lib/infrastructure/di/tokens.d.ts +0 -20
  178. package/dist/lib/infrastructure/di/tokens.d.ts.map +1 -1
  179. package/dist/lib/infrastructure/di/tokens.js +0 -11
  180. package/dist/lib/infrastructure/di/tokens.js.map +1 -1
  181. package/dist/lib/infrastructure/git/GitClient.d.ts +11 -1
  182. package/dist/lib/infrastructure/git/GitClient.d.ts.map +1 -1
  183. package/dist/lib/infrastructure/git/GitClient.js +137 -0
  184. package/dist/lib/infrastructure/git/GitClient.js.map +1 -1
  185. package/dist/lib/infrastructure/git-mem/GitMemClient.d.ts +37 -0
  186. package/dist/lib/infrastructure/git-mem/GitMemClient.d.ts.map +1 -0
  187. package/dist/lib/infrastructure/git-mem/GitMemClient.js +151 -0
  188. package/dist/lib/infrastructure/git-mem/GitMemClient.js.map +1 -0
  189. package/dist/lib/infrastructure/git-mem/GitMemFactory.d.ts +36 -0
  190. package/dist/lib/infrastructure/git-mem/GitMemFactory.d.ts.map +1 -0
  191. package/dist/lib/infrastructure/git-mem/GitMemFactory.js +56 -0
  192. package/dist/lib/infrastructure/git-mem/GitMemFactory.js.map +1 -0
  193. package/dist/lib/infrastructure/git-mem/index.d.ts +7 -0
  194. package/dist/lib/infrastructure/git-mem/index.d.ts.map +1 -0
  195. package/dist/lib/infrastructure/git-mem/index.js +13 -0
  196. package/dist/lib/infrastructure/git-mem/index.js.map +1 -0
  197. package/dist/lib/infrastructure/git-mem/types.d.ts +90 -0
  198. package/dist/lib/infrastructure/git-mem/types.d.ts.map +1 -0
  199. package/dist/lib/infrastructure/git-mem/types.js +9 -0
  200. package/dist/lib/infrastructure/git-mem/types.js.map +1 -0
  201. package/dist/lib/infrastructure/github/GitHubDataFetcher.d.ts +21 -0
  202. package/dist/lib/infrastructure/github/GitHubDataFetcher.d.ts.map +1 -0
  203. package/dist/lib/infrastructure/github/GitHubDataFetcher.js +111 -0
  204. package/dist/lib/infrastructure/github/GitHubDataFetcher.js.map +1 -0
  205. package/dist/lib/infrastructure/index.d.ts +0 -1
  206. package/dist/lib/infrastructure/index.d.ts.map +1 -1
  207. package/dist/lib/infrastructure/index.js +1 -3
  208. package/dist/lib/infrastructure/index.js.map +1 -1
  209. package/dist/lib/infrastructure/logging/Logger.d.ts +13 -1
  210. package/dist/lib/infrastructure/logging/Logger.d.ts.map +1 -1
  211. package/dist/lib/infrastructure/logging/Logger.js +25 -7
  212. package/dist/lib/infrastructure/logging/Logger.js.map +1 -1
  213. package/dist/lib/infrastructure/logging/factory.d.ts +5 -1
  214. package/dist/lib/infrastructure/logging/factory.d.ts.map +1 -1
  215. package/dist/lib/infrastructure/logging/factory.js +3 -0
  216. package/dist/lib/infrastructure/logging/factory.js.map +1 -1
  217. package/dist/lib/infrastructure/logging/index.d.ts +1 -1
  218. package/dist/lib/infrastructure/logging/index.d.ts.map +1 -1
  219. package/dist/lib/infrastructure/logging/index.js.map +1 -1
  220. package/dist/lib/infrastructure/services/CommitEnricher.d.ts +26 -0
  221. package/dist/lib/infrastructure/services/CommitEnricher.d.ts.map +1 -0
  222. package/dist/lib/infrastructure/services/CommitEnricher.js +214 -0
  223. package/dist/lib/infrastructure/services/CommitEnricher.js.map +1 -0
  224. package/dist/lib/infrastructure/services/CurationService.d.ts.map +1 -1
  225. package/dist/lib/infrastructure/services/CurationService.js +4 -4
  226. package/dist/lib/infrastructure/services/CurationService.js.map +1 -1
  227. package/dist/lib/infrastructure/services/GitMemMemoryService.d.ts +24 -0
  228. package/dist/lib/infrastructure/services/GitMemMemoryService.d.ts.map +1 -0
  229. package/dist/lib/infrastructure/services/GitMemMemoryService.js +114 -0
  230. package/dist/lib/infrastructure/services/GitMemMemoryService.js.map +1 -0
  231. package/dist/lib/infrastructure/services/GitMemTaskService.d.ts +24 -0
  232. package/dist/lib/infrastructure/services/GitMemTaskService.d.ts.map +1 -0
  233. package/dist/lib/infrastructure/services/GitMemTaskService.js +142 -0
  234. package/dist/lib/infrastructure/services/GitMemTaskService.js.map +1 -0
  235. package/dist/lib/infrastructure/services/LlmGuard.d.ts.map +1 -1
  236. package/dist/lib/infrastructure/services/LlmGuard.js +44 -13
  237. package/dist/lib/infrastructure/services/LlmGuard.js.map +1 -1
  238. package/dist/lib/infrastructure/services/NlCurationService.d.ts.map +1 -1
  239. package/dist/lib/infrastructure/services/NlCurationService.js +12 -12
  240. package/dist/lib/infrastructure/services/NlCurationService.js.map +1 -1
  241. package/dist/lib/infrastructure/services/NodeFileSystem.d.ts +12 -0
  242. package/dist/lib/infrastructure/services/NodeFileSystem.d.ts.map +1 -0
  243. package/dist/lib/infrastructure/services/NodeFileSystem.js +40 -0
  244. package/dist/lib/infrastructure/services/NodeFileSystem.js.map +1 -0
  245. package/dist/lib/infrastructure/services/RecursionService.d.ts +1 -1
  246. package/dist/lib/infrastructure/services/RecursionService.d.ts.map +1 -1
  247. package/dist/lib/infrastructure/services/RecursionService.js +8 -8
  248. package/dist/lib/infrastructure/services/RecursionService.js.map +1 -1
  249. package/dist/lib/infrastructure/services/SkillMemoryService.d.ts +26 -0
  250. package/dist/lib/infrastructure/services/SkillMemoryService.d.ts.map +1 -0
  251. package/dist/lib/infrastructure/services/SkillMemoryService.js +317 -0
  252. package/dist/lib/infrastructure/services/SkillMemoryService.js.map +1 -0
  253. package/dist/lib/infrastructure/services/SkillPromptService.d.ts +16 -0
  254. package/dist/lib/infrastructure/services/SkillPromptService.d.ts.map +1 -0
  255. package/dist/lib/infrastructure/services/SkillPromptService.js +53 -0
  256. package/dist/lib/infrastructure/services/SkillPromptService.js.map +1 -0
  257. package/dist/lib/infrastructure/services/SkillTaskService.d.ts +32 -0
  258. package/dist/lib/infrastructure/services/SkillTaskService.d.ts.map +1 -0
  259. package/dist/lib/infrastructure/services/SkillTaskService.js +214 -0
  260. package/dist/lib/infrastructure/services/SkillTaskService.js.map +1 -0
  261. package/dist/lib/infrastructure/services/SummarizationService.d.ts.map +1 -1
  262. package/dist/lib/infrastructure/services/SummarizationService.js +3 -5
  263. package/dist/lib/infrastructure/services/SummarizationService.js.map +1 -1
  264. package/dist/lib/infrastructure/services/index.d.ts +7 -4
  265. package/dist/lib/infrastructure/services/index.d.ts.map +1 -1
  266. package/dist/lib/infrastructure/services/index.js +31 -13
  267. package/dist/lib/infrastructure/services/index.js.map +1 -1
  268. package/dist/lib/infrastructure/services/patterns/HeuristicPatterns.d.ts +72 -0
  269. package/dist/lib/infrastructure/services/patterns/HeuristicPatterns.d.ts.map +1 -0
  270. package/dist/lib/infrastructure/services/patterns/HeuristicPatterns.js +261 -0
  271. package/dist/lib/infrastructure/services/patterns/HeuristicPatterns.js.map +1 -0
  272. package/dist/lib/infrastructure/services/prompts/commit-extraction.d.ts +26 -0
  273. package/dist/lib/infrastructure/services/prompts/commit-extraction.d.ts.map +1 -0
  274. package/dist/lib/infrastructure/services/prompts/commit-extraction.js +151 -0
  275. package/dist/lib/infrastructure/services/prompts/commit-extraction.js.map +1 -0
  276. package/dist/lib/{skills/shared/services/interfaces/IMemoryService.d.ts → infrastructure/services/skill-interfaces/ISkillMemoryService.d.ts} +38 -47
  277. package/dist/lib/infrastructure/services/skill-interfaces/ISkillMemoryService.d.ts.map +1 -0
  278. package/dist/lib/{domain/interfaces/IMcpClient.js → infrastructure/services/skill-interfaces/ISkillMemoryService.js} +1 -1
  279. package/dist/lib/infrastructure/services/skill-interfaces/ISkillMemoryService.js.map +1 -0
  280. package/dist/lib/infrastructure/services/skill-interfaces/ISkillPromptService.d.ts +48 -0
  281. package/dist/lib/infrastructure/services/skill-interfaces/ISkillPromptService.d.ts.map +1 -0
  282. package/dist/lib/infrastructure/services/skill-interfaces/ISkillPromptService.js +10 -0
  283. package/dist/lib/infrastructure/services/skill-interfaces/ISkillPromptService.js.map +1 -0
  284. package/dist/lib/{skills/shared/services/interfaces/ITaskService.d.ts → infrastructure/services/skill-interfaces/ISkillTaskService.d.ts} +29 -27
  285. package/dist/lib/infrastructure/services/skill-interfaces/ISkillTaskService.d.ts.map +1 -0
  286. package/dist/lib/infrastructure/services/skill-interfaces/ISkillTaskService.js +13 -0
  287. package/dist/lib/infrastructure/services/skill-interfaces/ISkillTaskService.js.map +1 -0
  288. package/dist/lib/infrastructure/services/skill-interfaces/index.d.ts +16 -0
  289. package/dist/lib/infrastructure/services/skill-interfaces/index.d.ts.map +1 -0
  290. package/dist/lib/infrastructure/services/skill-interfaces/index.js +11 -0
  291. package/dist/lib/infrastructure/services/skill-interfaces/index.js.map +1 -0
  292. package/dist/lib/scanner/reviewer.js +2 -2
  293. package/dist/lib/scanner/reviewer.js.map +1 -1
  294. package/dist/lib/skills/github/bump-version.d.ts +14 -0
  295. package/dist/lib/skills/github/bump-version.d.ts.map +1 -0
  296. package/dist/lib/skills/{git → github}/bump-version.js +22 -1
  297. package/dist/lib/skills/github/bump-version.js.map +1 -0
  298. package/dist/lib/skills/github/github.d.ts +0 -1
  299. package/dist/lib/skills/github/github.d.ts.map +1 -1
  300. package/dist/lib/skills/github/github.js +15 -45
  301. package/dist/lib/skills/github/github.js.map +1 -1
  302. package/dist/lib/skills/memory/memory.js +5 -9
  303. package/dist/lib/skills/memory/memory.js.map +1 -1
  304. package/dist/lib/skills/prompt/prompt.d.ts +4 -1
  305. package/dist/lib/skills/prompt/prompt.d.ts.map +1 -1
  306. package/dist/lib/skills/prompt/prompt.js +10 -11
  307. package/dist/lib/skills/prompt/prompt.js.map +1 -1
  308. package/dist/lib/skills/{init-review → review}/ai-enrich.d.ts +3 -0
  309. package/dist/lib/skills/review/ai-enrich.d.ts.map +1 -0
  310. package/dist/lib/skills/{init-review → review}/ai-enrich.js +6 -6
  311. package/dist/lib/skills/review/ai-enrich.js.map +1 -0
  312. package/dist/lib/skills/review/init-review.d.ts.map +1 -0
  313. package/dist/lib/skills/review/init-review.js.map +1 -0
  314. package/dist/lib/skills/shared/clients/index.d.ts +4 -3
  315. package/dist/lib/skills/shared/clients/index.d.ts.map +1 -1
  316. package/dist/lib/skills/shared/clients/index.js +7 -10
  317. package/dist/lib/skills/shared/clients/index.js.map +1 -1
  318. package/dist/lib/skills/shared/clients/interfaces/index.d.ts +0 -3
  319. package/dist/lib/skills/shared/clients/interfaces/index.d.ts.map +1 -1
  320. package/dist/lib/skills/shared/clients/interfaces/index.js +0 -3
  321. package/dist/lib/skills/shared/clients/interfaces/index.js.map +1 -1
  322. package/dist/lib/skills/shared/index.d.ts +3 -2
  323. package/dist/lib/skills/shared/index.d.ts.map +1 -1
  324. package/dist/lib/skills/shared/index.js +3 -2
  325. package/dist/lib/skills/shared/index.js.map +1 -1
  326. package/dist/lib/skills/shared/services/GitHubSyncService.d.ts +4 -0
  327. package/dist/lib/skills/shared/services/GitHubSyncService.d.ts.map +1 -1
  328. package/dist/lib/skills/shared/services/GitHubSyncService.js +7 -7
  329. package/dist/lib/skills/shared/services/GitHubSyncService.js.map +1 -1
  330. package/dist/lib/skills/shared/services/MemoryCliService.d.ts +0 -2
  331. package/dist/lib/skills/shared/services/MemoryCliService.d.ts.map +1 -1
  332. package/dist/lib/skills/shared/services/MemoryCliService.js +11 -17
  333. package/dist/lib/skills/shared/services/MemoryCliService.js.map +1 -1
  334. package/dist/lib/skills/shared/services/StorageService.d.ts.map +1 -1
  335. package/dist/lib/skills/shared/services/StorageService.js +6 -2
  336. package/dist/lib/skills/shared/services/StorageService.js.map +1 -1
  337. package/dist/lib/skills/shared/services/TaskCliService.d.ts +3 -3
  338. package/dist/lib/skills/shared/services/TaskCliService.d.ts.map +1 -1
  339. package/dist/lib/skills/shared/services/TaskCliService.js +10 -14
  340. package/dist/lib/skills/shared/services/TaskCliService.js.map +1 -1
  341. package/dist/lib/skills/shared/services/index.d.ts +8 -4
  342. package/dist/lib/skills/shared/services/index.d.ts.map +1 -1
  343. package/dist/lib/skills/shared/services/index.js +15 -10
  344. package/dist/lib/skills/shared/services/index.js.map +1 -1
  345. package/dist/lib/skills/shared/services/interfaces/index.d.ts +4 -2
  346. package/dist/lib/skills/shared/services/interfaces/index.d.ts.map +1 -1
  347. package/dist/lib/skills/shared/services/interfaces/index.js +4 -2
  348. package/dist/lib/skills/shared/services/interfaces/index.js.map +1 -1
  349. package/dist/lib/skills/shared/utils/index.d.ts +0 -1
  350. package/dist/lib/skills/shared/utils/index.d.ts.map +1 -1
  351. package/dist/lib/skills/shared/utils/index.js +1 -9
  352. package/dist/lib/skills/shared/utils/index.js.map +1 -1
  353. package/dist/lib/skills/tasks/tasks.d.ts +9 -6
  354. package/dist/lib/skills/tasks/tasks.d.ts.map +1 -1
  355. package/dist/lib/skills/tasks/tasks.js +17 -17
  356. package/dist/lib/skills/tasks/tasks.js.map +1 -1
  357. package/dist/opencode/lisa.js +62391 -14984
  358. package/dist/package.json +5 -4
  359. package/dist/project/.lisa/.env.template +12 -9
  360. package/dist/project/.lisa/rules/shared/git-rules.md +13 -12
  361. package/dist/project/.lisa/skills/github/SKILL.md +121 -3
  362. package/dist/project/.lisa/skills/github/pr-description-template.txt +8 -0
  363. package/dist/project/.lisa/skills/pr/SKILL.md +1 -2
  364. package/dist/project/.lisa/skills/pr/pr-description-template.txt +8 -0
  365. package/dist/project/.lisa/skills/{init-review → review}/SKILL.md +9 -9
  366. package/package.json +5 -4
  367. package/dist/lib/commands/docker.d.ts +0 -20
  368. package/dist/lib/commands/docker.d.ts.map +0 -1
  369. package/dist/lib/commands/docker.js +0 -27
  370. package/dist/lib/commands/docker.js.map +0 -1
  371. package/dist/lib/domain/interfaces/IMcpClient.d.ts +0 -44
  372. package/dist/lib/domain/interfaces/IMcpClient.d.ts.map +0 -1
  373. package/dist/lib/domain/interfaces/IMcpClient.js.map +0 -1
  374. package/dist/lib/infrastructure/dal/RepositoryFactory.d.ts +0 -71
  375. package/dist/lib/infrastructure/dal/RepositoryFactory.d.ts.map +0 -1
  376. package/dist/lib/infrastructure/dal/RepositoryFactory.js +0 -134
  377. package/dist/lib/infrastructure/dal/RepositoryFactory.js.map +0 -1
  378. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.d.ts +0 -56
  379. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.d.ts.map +0 -1
  380. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.js +0 -98
  381. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.js.map +0 -1
  382. package/dist/lib/infrastructure/dal/connections/ZepConnectionManager.d.ts +0 -53
  383. package/dist/lib/infrastructure/dal/connections/ZepConnectionManager.d.ts.map +0 -1
  384. package/dist/lib/infrastructure/dal/connections/ZepConnectionManager.js +0 -168
  385. package/dist/lib/infrastructure/dal/connections/ZepConnectionManager.js.map +0 -1
  386. package/dist/lib/infrastructure/dal/repositories/mcp/McpMemoryRepository.d.ts +0 -64
  387. package/dist/lib/infrastructure/dal/repositories/mcp/McpMemoryRepository.d.ts.map +0 -1
  388. package/dist/lib/infrastructure/dal/repositories/mcp/McpMemoryRepository.js +0 -145
  389. package/dist/lib/infrastructure/dal/repositories/mcp/McpMemoryRepository.js.map +0 -1
  390. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.d.ts +0 -60
  391. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.d.ts.map +0 -1
  392. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.js +0 -186
  393. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.js.map +0 -1
  394. package/dist/lib/infrastructure/dal/repositories/mcp/index.d.ts +0 -6
  395. package/dist/lib/infrastructure/dal/repositories/mcp/index.d.ts.map +0 -1
  396. package/dist/lib/infrastructure/dal/repositories/mcp/index.js +0 -11
  397. package/dist/lib/infrastructure/dal/repositories/mcp/index.js.map +0 -1
  398. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jMemoryRepository.d.ts +0 -69
  399. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jMemoryRepository.d.ts.map +0 -1
  400. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jMemoryRepository.js +0 -299
  401. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jMemoryRepository.js.map +0 -1
  402. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.d.ts +0 -49
  403. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.d.ts.map +0 -1
  404. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.js +0 -193
  405. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.js.map +0 -1
  406. package/dist/lib/infrastructure/dal/repositories/zep/ZepMemoryRepository.d.ts +0 -55
  407. package/dist/lib/infrastructure/dal/repositories/zep/ZepMemoryRepository.d.ts.map +0 -1
  408. package/dist/lib/infrastructure/dal/repositories/zep/ZepMemoryRepository.js +0 -165
  409. package/dist/lib/infrastructure/dal/repositories/zep/ZepMemoryRepository.js.map +0 -1
  410. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.d.ts +0 -58
  411. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.d.ts.map +0 -1
  412. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.js +0 -210
  413. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.js.map +0 -1
  414. package/dist/lib/infrastructure/dal/repositories/zep/index.d.ts +0 -6
  415. package/dist/lib/infrastructure/dal/repositories/zep/index.d.ts.map +0 -1
  416. package/dist/lib/infrastructure/dal/repositories/zep/index.js +0 -11
  417. package/dist/lib/infrastructure/dal/repositories/zep/index.js.map +0 -1
  418. package/dist/lib/infrastructure/dal/routing/RepositoryRouter.d.ts +0 -73
  419. package/dist/lib/infrastructure/dal/routing/RepositoryRouter.d.ts.map +0 -1
  420. package/dist/lib/infrastructure/dal/routing/RepositoryRouter.js +0 -170
  421. package/dist/lib/infrastructure/dal/routing/RepositoryRouter.js.map +0 -1
  422. package/dist/lib/infrastructure/dal/routing/index.d.ts +0 -5
  423. package/dist/lib/infrastructure/dal/routing/index.d.ts.map +0 -1
  424. package/dist/lib/infrastructure/dal/routing/index.js +0 -10
  425. package/dist/lib/infrastructure/dal/routing/index.js.map +0 -1
  426. package/dist/lib/infrastructure/mcp/McpClient.d.ts +0 -71
  427. package/dist/lib/infrastructure/mcp/McpClient.d.ts.map +0 -1
  428. package/dist/lib/infrastructure/mcp/McpClient.js +0 -221
  429. package/dist/lib/infrastructure/mcp/McpClient.js.map +0 -1
  430. package/dist/lib/infrastructure/mcp/index.d.ts +0 -5
  431. package/dist/lib/infrastructure/mcp/index.d.ts.map +0 -1
  432. package/dist/lib/infrastructure/mcp/index.js +0 -9
  433. package/dist/lib/infrastructure/mcp/index.js.map +0 -1
  434. package/dist/lib/infrastructure/services/ConsolidationService.d.ts +0 -21
  435. package/dist/lib/infrastructure/services/ConsolidationService.d.ts.map +0 -1
  436. package/dist/lib/infrastructure/services/ConsolidationService.js +0 -134
  437. package/dist/lib/infrastructure/services/ConsolidationService.js.map +0 -1
  438. package/dist/lib/infrastructure/services/DeduplicationService.d.ts +0 -21
  439. package/dist/lib/infrastructure/services/DeduplicationService.d.ts.map +0 -1
  440. package/dist/lib/infrastructure/services/DeduplicationService.js +0 -111
  441. package/dist/lib/infrastructure/services/DeduplicationService.js.map +0 -1
  442. package/dist/lib/infrastructure/services/MemoryService.d.ts +0 -96
  443. package/dist/lib/infrastructure/services/MemoryService.d.ts.map +0 -1
  444. package/dist/lib/infrastructure/services/MemoryService.js +0 -486
  445. package/dist/lib/infrastructure/services/MemoryService.js.map +0 -1
  446. package/dist/lib/infrastructure/services/TaskService.d.ts +0 -38
  447. package/dist/lib/infrastructure/services/TaskService.d.ts.map +0 -1
  448. package/dist/lib/infrastructure/services/TaskService.js +0 -227
  449. package/dist/lib/infrastructure/services/TaskService.js.map +0 -1
  450. package/dist/lib/skills/common/group-id.d.ts +0 -49
  451. package/dist/lib/skills/common/group-id.d.ts.map +0 -1
  452. package/dist/lib/skills/common/group-id.js +0 -194
  453. package/dist/lib/skills/common/group-id.js.map +0 -1
  454. package/dist/lib/skills/git/bump-version.d.ts +0 -9
  455. package/dist/lib/skills/git/bump-version.d.ts.map +0 -1
  456. package/dist/lib/skills/git/bump-version.js.map +0 -1
  457. package/dist/lib/skills/init-review/ai-enrich.d.ts.map +0 -1
  458. package/dist/lib/skills/init-review/ai-enrich.js.map +0 -1
  459. package/dist/lib/skills/init-review/init-review.d.ts.map +0 -1
  460. package/dist/lib/skills/init-review/init-review.js.map +0 -1
  461. package/dist/lib/skills/shared/clients/McpClient.d.ts +0 -26
  462. package/dist/lib/skills/shared/clients/McpClient.d.ts.map +0 -1
  463. package/dist/lib/skills/shared/clients/McpClient.js +0 -162
  464. package/dist/lib/skills/shared/clients/McpClient.js.map +0 -1
  465. package/dist/lib/skills/shared/clients/Neo4jClient.d.ts +0 -15
  466. package/dist/lib/skills/shared/clients/Neo4jClient.d.ts.map +0 -1
  467. package/dist/lib/skills/shared/clients/Neo4jClient.js +0 -139
  468. package/dist/lib/skills/shared/clients/Neo4jClient.js.map +0 -1
  469. package/dist/lib/skills/shared/clients/ZepClient.d.ts +0 -14
  470. package/dist/lib/skills/shared/clients/ZepClient.d.ts.map +0 -1
  471. package/dist/lib/skills/shared/clients/ZepClient.js +0 -238
  472. package/dist/lib/skills/shared/clients/ZepClient.js.map +0 -1
  473. package/dist/lib/skills/shared/clients/interfaces/IMcpClient.d.ts +0 -56
  474. package/dist/lib/skills/shared/clients/interfaces/IMcpClient.d.ts.map +0 -1
  475. package/dist/lib/skills/shared/clients/interfaces/IMcpClient.js +0 -3
  476. package/dist/lib/skills/shared/clients/interfaces/IMcpClient.js.map +0 -1
  477. package/dist/lib/skills/shared/clients/interfaces/INeo4jClient.d.ts +0 -59
  478. package/dist/lib/skills/shared/clients/interfaces/INeo4jClient.d.ts.map +0 -1
  479. package/dist/lib/skills/shared/clients/interfaces/INeo4jClient.js +0 -3
  480. package/dist/lib/skills/shared/clients/interfaces/INeo4jClient.js.map +0 -1
  481. package/dist/lib/skills/shared/clients/interfaces/IZepClient.d.ts +0 -152
  482. package/dist/lib/skills/shared/clients/interfaces/IZepClient.d.ts.map +0 -1
  483. package/dist/lib/skills/shared/clients/interfaces/IZepClient.js +0 -3
  484. package/dist/lib/skills/shared/clients/interfaces/IZepClient.js.map +0 -1
  485. package/dist/lib/skills/shared/group-id.d.ts +0 -2
  486. package/dist/lib/skills/shared/group-id.d.ts.map +0 -1
  487. package/dist/lib/skills/shared/group-id.js +0 -18
  488. package/dist/lib/skills/shared/group-id.js.map +0 -1
  489. package/dist/lib/skills/shared/services/MemoryService.d.ts +0 -24
  490. package/dist/lib/skills/shared/services/MemoryService.d.ts.map +0 -1
  491. package/dist/lib/skills/shared/services/MemoryService.js +0 -574
  492. package/dist/lib/skills/shared/services/MemoryService.js.map +0 -1
  493. package/dist/lib/skills/shared/services/PromptService.d.ts +0 -28
  494. package/dist/lib/skills/shared/services/PromptService.d.ts.map +0 -1
  495. package/dist/lib/skills/shared/services/PromptService.js +0 -53
  496. package/dist/lib/skills/shared/services/PromptService.js.map +0 -1
  497. package/dist/lib/skills/shared/services/TaskService.d.ts +0 -24
  498. package/dist/lib/skills/shared/services/TaskService.d.ts.map +0 -1
  499. package/dist/lib/skills/shared/services/TaskService.js +0 -388
  500. package/dist/lib/skills/shared/services/TaskService.js.map +0 -1
  501. package/dist/lib/skills/shared/services/interfaces/IMemoryService.d.ts.map +0 -1
  502. package/dist/lib/skills/shared/services/interfaces/IMemoryService.js +0 -3
  503. package/dist/lib/skills/shared/services/interfaces/IMemoryService.js.map +0 -1
  504. package/dist/lib/skills/shared/services/interfaces/ITaskService.d.ts.map +0 -1
  505. package/dist/lib/skills/shared/services/interfaces/ITaskService.js +0 -7
  506. package/dist/lib/skills/shared/services/interfaces/ITaskService.js.map +0 -1
  507. package/dist/lib/skills/shared/utils/group-id.d.ts +0 -64
  508. package/dist/lib/skills/shared/utils/group-id.d.ts.map +0 -1
  509. package/dist/lib/skills/shared/utils/group-id.js +0 -176
  510. package/dist/lib/skills/shared/utils/group-id.js.map +0 -1
  511. package/dist/project/.lisa/docker/docker-compose.graphiti.yml +0 -45
  512. package/dist/project/.lisa/skills/git/SKILL.md +0 -171
  513. /package/dist/lib/skills/{init-review → review}/init-review.d.ts +0 -0
  514. /package/dist/lib/skills/{init-review → review}/init-review.js +0 -0
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ /**
3
+ * GitTriageService
4
+ *
5
+ * Application service that scans git history and scores commits
6
+ * for "interestingness" to identify which commits warrant API enrichment.
7
+ *
8
+ * Part of the Git-Powered Memory feature (LISA-7).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.GitTriageService = void 0;
12
+ /**
13
+ * Default triage threshold score.
14
+ * Commits scoring >= this value are considered high-interest.
15
+ */
16
+ const DEFAULT_THRESHOLD = 3;
17
+ /**
18
+ * Default lookback period in days.
19
+ */
20
+ const DEFAULT_DAYS = 90; // 3 months
21
+ /**
22
+ * Conventional commit prefixes to detect.
23
+ */
24
+ const CONVENTIONAL_PREFIXES = [
25
+ 'feat',
26
+ 'fix',
27
+ 'refactor',
28
+ 'docs',
29
+ 'test',
30
+ 'chore',
31
+ 'style',
32
+ 'perf',
33
+ 'ci',
34
+ 'build',
35
+ 'revert',
36
+ ];
37
+ /**
38
+ * Regex pattern for detecting conventional commit prefixes.
39
+ * Built from the CONVENTIONAL_PREFIXES array for consistency.
40
+ */
41
+ const CONVENTIONAL_COMMIT_REGEX = new RegExp(`^(${CONVENTIONAL_PREFIXES.join('|')})(\\(.+\\))?[!]?:`, 'i');
42
+ /**
43
+ * Decision keywords that indicate architectural/design decisions.
44
+ */
45
+ const DECISION_KEYWORDS = [
46
+ 'migrate',
47
+ 'replace',
48
+ 'rewrite',
49
+ 'deprecate',
50
+ 'breaking',
51
+ 'workaround',
52
+ 'decision',
53
+ 'architecture',
54
+ 'redesign',
55
+ 'overhaul',
56
+ ];
57
+ /**
58
+ * Scoring weights for interest signals.
59
+ */
60
+ const SCORES = {
61
+ largeDiffFiles: 3, // 10+ files changed
62
+ largeDiffLines: 2, // 500+ lines changed
63
+ mergeCommitWithPR: 3, // merge commit with PR reference
64
+ conventionalPrefix: 1, // has conventional commit prefix
65
+ decisionKeywords: 2, // contains decision keywords
66
+ createsNewDirectory: 2, // creates new top-level dir
67
+ tagAdjacent: 2, // within N commits of a tag
68
+ longMessageBody: 1, // multi-line body
69
+ };
70
+ /**
71
+ * How close a commit must be to a tag to be "tag-adjacent".
72
+ */
73
+ const TAG_ADJACENT_DISTANCE = 3;
74
+ /**
75
+ * Margin below threshold to fetch detailed stats.
76
+ * Commits scoring (threshold - STAT_FETCH_MARGIN) or higher get stats fetched,
77
+ * since stats-based signals could push them over the threshold.
78
+ */
79
+ const STAT_FETCH_MARGIN = 2;
80
+ class GitTriageService {
81
+ constructor(git) {
82
+ this.git = git;
83
+ }
84
+ async triage(options) {
85
+ const startTime = Date.now();
86
+ const threshold = options?.threshold ?? DEFAULT_THRESHOLD;
87
+ const cwd = options?.cwd;
88
+ // Calculate date range
89
+ const since = options?.since ?? this.getDefaultSince();
90
+ const until = options?.until ?? new Date();
91
+ // Fetch all tags first (for tag-adjacency scoring)
92
+ const tags = this.git.listTags(cwd);
93
+ const tagShas = new Set(tags.map(t => t.sha));
94
+ const tagInfo = tags.map(t => ({
95
+ name: t.name,
96
+ sha: t.sha,
97
+ isVersionTag: this.isVersionTag(t.name),
98
+ }));
99
+ // Fetch commits in the date range
100
+ const rawCommits = this.git.logDetailed({
101
+ since: since.toISOString(),
102
+ until: until.toISOString(),
103
+ maxCount: options?.maxCommits,
104
+ cwd,
105
+ });
106
+ if (rawCommits.length === 0) {
107
+ return this.emptyResult(startTime, tagInfo);
108
+ }
109
+ // Build a map of SHA -> position for tag adjacency
110
+ const shaToPosition = new Map();
111
+ for (let i = 0; i < rawCommits.length; i++) {
112
+ shaToPosition.set(rawCommits[i].sha, i);
113
+ }
114
+ // Find positions of tagged commits for adjacency check
115
+ const tagPositions = new Set();
116
+ for (const tag of tags) {
117
+ const pos = shaToPosition.get(tag.sha);
118
+ if (pos !== undefined) {
119
+ // Mark positions within TAG_ADJACENT_DISTANCE
120
+ for (let i = Math.max(0, pos - TAG_ADJACENT_DISTANCE); i <= pos + TAG_ADJACENT_DISTANCE; i++) {
121
+ tagPositions.add(i);
122
+ }
123
+ }
124
+ }
125
+ // Track file hotspots
126
+ const fileStats = new Map();
127
+ // Score each commit
128
+ const scoredCommits = [];
129
+ const belowThreshold = [];
130
+ const minorInterest = [];
131
+ for (let i = 0; i < rawCommits.length; i++) {
132
+ const raw = rawCommits[i];
133
+ const commit = this.parseCommit(raw);
134
+ // Check if tag-adjacent based on position
135
+ const isTagAdjacent = tagPositions.has(i);
136
+ // Quick scoring without stats first
137
+ const quickSignals = this.detectSignals(commit, null, tagShas, isTagAdjacent);
138
+ const quickScore = this.calculateScore(quickSignals);
139
+ // If score is already high enough or we want all stats, fetch detailed stats
140
+ let stats = null;
141
+ let finalSignals = quickSignals;
142
+ let finalScore = quickScore;
143
+ if (quickScore >= threshold - STAT_FETCH_MARGIN || options?.fetchAllStats) {
144
+ // Fetch stats for borderline or high-interest commits
145
+ const rawStats = this.git.getCommitStats(commit.sha, cwd);
146
+ stats = this.parseStats(rawStats);
147
+ // Re-score with stats
148
+ finalSignals = this.detectSignals(commit, stats, tagShas, isTagAdjacent);
149
+ finalScore = this.calculateScore(finalSignals);
150
+ // Update hotspots
151
+ for (const entry of rawStats) {
152
+ const existing = fileStats.get(entry.path) ?? { commits: 0, lines: 0 };
153
+ existing.commits++;
154
+ existing.lines += (entry.added ?? 0) + (entry.deleted ?? 0);
155
+ fileStats.set(entry.path, existing);
156
+ }
157
+ }
158
+ const scored = {
159
+ commit,
160
+ stats,
161
+ signals: finalSignals,
162
+ score: finalScore,
163
+ passedTriage: finalScore >= threshold,
164
+ };
165
+ if (finalScore >= threshold) {
166
+ scoredCommits.push(scored);
167
+ }
168
+ else if (finalScore > 0) {
169
+ minorInterest.push(scored);
170
+ }
171
+ else {
172
+ belowThreshold.push(scored);
173
+ }
174
+ }
175
+ // Sort high-interest by score descending
176
+ scoredCommits.sort((a, b) => b.score - a.score);
177
+ // Build hotspots list (top 20)
178
+ const hotspots = Array.from(fileStats.entries())
179
+ .map(([path, data]) => ({
180
+ path,
181
+ commitCount: data.commits,
182
+ totalLinesChanged: data.lines,
183
+ }))
184
+ .sort((a, b) => b.commitCount - a.commitCount || b.totalLinesChanged - a.totalLinesChanged)
185
+ .slice(0, 20);
186
+ // Count PR links and tag links
187
+ const linkedToPRs = scoredCommits.filter(s => s.signals.prNumber !== null).length;
188
+ const linkedToTags = scoredCommits.filter(s => s.signals.isTagAdjacent).length;
189
+ return {
190
+ totalCommits: rawCommits.length,
191
+ belowThreshold: belowThreshold.length,
192
+ minorInterest: minorInterest.length,
193
+ highInterest: scoredCommits,
194
+ linkedToPRs,
195
+ linkedToTags,
196
+ hotspots,
197
+ tags: tagInfo,
198
+ durationMs: Date.now() - startTime,
199
+ };
200
+ }
201
+ scoreCommit(commit, stats, tagShas, isTagAdjacent) {
202
+ // Use provided adjacency or fall back to checking if commit is itself tagged
203
+ const tagAdjacent = isTagAdjacent ?? tagShas.has(commit.sha);
204
+ const signals = this.detectSignals(commit, stats, tagShas, tagAdjacent);
205
+ const score = this.calculateScore(signals);
206
+ return {
207
+ commit,
208
+ stats,
209
+ signals,
210
+ score,
211
+ passedTriage: score >= DEFAULT_THRESHOLD,
212
+ };
213
+ }
214
+ /**
215
+ * Parse raw git log commit into domain type.
216
+ */
217
+ parseCommit(raw) {
218
+ // Extract refs (tags, branches) from ref names string
219
+ const refs = raw.refNames
220
+ .split(',')
221
+ .map(r => r.trim())
222
+ .filter(r => r && r !== 'HEAD');
223
+ return {
224
+ sha: raw.sha,
225
+ shortSha: raw.shortSha,
226
+ subject: raw.subject,
227
+ body: raw.body,
228
+ parentCount: raw.parentShas.length,
229
+ author: raw.authorName,
230
+ authorEmail: raw.authorEmail,
231
+ timestamp: new Date(raw.authorTimestamp * 1000),
232
+ refs,
233
+ };
234
+ }
235
+ /**
236
+ * Parse raw stat entries into domain type.
237
+ */
238
+ parseStats(entries) {
239
+ let insertions = 0;
240
+ let deletions = 0;
241
+ const filesAdded = [];
242
+ const filesDeleted = [];
243
+ const directories = new Set();
244
+ for (const entry of entries) {
245
+ insertions += entry.added ?? 0;
246
+ deletions += entry.deleted ?? 0;
247
+ if (entry.isNew) {
248
+ filesAdded.push(entry.path);
249
+ // Track directories for new files
250
+ const dir = entry.path.split('/')[0];
251
+ if (dir && dir !== entry.path) {
252
+ directories.add(dir);
253
+ }
254
+ }
255
+ if (entry.isDeleted) {
256
+ filesDeleted.push(entry.path);
257
+ }
258
+ }
259
+ return {
260
+ filesChanged: entries.length,
261
+ insertions,
262
+ deletions,
263
+ filesAdded,
264
+ filesDeleted,
265
+ directoriesCreated: Array.from(directories),
266
+ };
267
+ }
268
+ /**
269
+ * Detect interest signals for a commit.
270
+ */
271
+ detectSignals(commit, stats, _tagShas, isTagAdjacent) {
272
+ // Large diff detection
273
+ const largeDiffFiles = stats !== null && stats.filesChanged >= 10;
274
+ const largeDiffLines = stats !== null && (stats.insertions + stats.deletions) >= 500;
275
+ // Merge commit with PR
276
+ const prMatch = commit.subject.match(/Merge pull request #(\d+)/i)
277
+ ?? commit.subject.match(/\(#(\d+)\)/)
278
+ ?? commit.body.match(/PR[:\s#]+(\d+)/i);
279
+ const prNumber = prMatch ? parseInt(prMatch[1], 10) : null;
280
+ const mergeCommitWithPR = commit.parentCount >= 2 && prNumber !== null;
281
+ // Conventional commit (using centralized regex built from CONVENTIONAL_PREFIXES)
282
+ const conventionalMatch = commit.subject.match(CONVENTIONAL_COMMIT_REGEX);
283
+ const hasConventionalPrefix = conventionalMatch !== null;
284
+ const conventionalType = conventionalMatch ? conventionalMatch[1].toLowerCase() : null;
285
+ // Decision keywords
286
+ const messageText = `${commit.subject} ${commit.body}`.toLowerCase();
287
+ const hasDecisionKeywords = DECISION_KEYWORDS.some(kw => messageText.includes(kw));
288
+ // New directory detection
289
+ const createsNewDirectory = stats !== null && stats.directoriesCreated.length > 0;
290
+ // Long message body
291
+ const hasLongMessageBody = commit.body.split('\n').filter(l => l.trim()).length >= 2;
292
+ return {
293
+ largeDiffFiles,
294
+ largeDiffLines,
295
+ mergeCommitWithPR,
296
+ hasConventionalPrefix,
297
+ conventionalType,
298
+ hasDecisionKeywords,
299
+ createsNewDirectory,
300
+ isTagAdjacent,
301
+ hasLongMessageBody,
302
+ prNumber,
303
+ };
304
+ }
305
+ /**
306
+ * Calculate interest score from signals.
307
+ */
308
+ calculateScore(signals) {
309
+ let score = 0;
310
+ if (signals.largeDiffFiles)
311
+ score += SCORES.largeDiffFiles;
312
+ if (signals.largeDiffLines)
313
+ score += SCORES.largeDiffLines;
314
+ if (signals.mergeCommitWithPR)
315
+ score += SCORES.mergeCommitWithPR;
316
+ if (signals.hasConventionalPrefix)
317
+ score += SCORES.conventionalPrefix;
318
+ if (signals.hasDecisionKeywords)
319
+ score += SCORES.decisionKeywords;
320
+ if (signals.createsNewDirectory)
321
+ score += SCORES.createsNewDirectory;
322
+ if (signals.isTagAdjacent)
323
+ score += SCORES.tagAdjacent;
324
+ if (signals.hasLongMessageBody)
325
+ score += SCORES.longMessageBody;
326
+ return score;
327
+ }
328
+ /**
329
+ * Get default "since" date (3 months ago).
330
+ */
331
+ getDefaultSince() {
332
+ const date = new Date();
333
+ date.setDate(date.getDate() - DEFAULT_DAYS);
334
+ return date;
335
+ }
336
+ /**
337
+ * Check if a tag name looks like a version tag.
338
+ */
339
+ isVersionTag(name) {
340
+ return /^v?\d+\.\d+(\.\d+)?/.test(name);
341
+ }
342
+ /**
343
+ * Create an empty result (for repos with no commits in range).
344
+ */
345
+ emptyResult(startTime, tags) {
346
+ return {
347
+ totalCommits: 0,
348
+ belowThreshold: 0,
349
+ minorInterest: 0,
350
+ highInterest: [],
351
+ linkedToPRs: 0,
352
+ linkedToTags: 0,
353
+ hotspots: [],
354
+ tags,
355
+ durationMs: Date.now() - startTime,
356
+ };
357
+ }
358
+ }
359
+ exports.GitTriageService = GitTriageService;
360
+ //# sourceMappingURL=GitTriageService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitTriageService.js","sourceRoot":"","sources":["../../../../src/lib/application/services/GitTriageService.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAeH;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,WAAW;AAEpC;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,MAAM;IACN,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,QAAQ;CACA,CAAC;AAEX;;;GAGG;AACH,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAC1C,KAAK,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EACvD,GAAG,CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,YAAY;IACZ,UAAU;IACV,cAAc;IACd,UAAU;IACV,UAAU;CACF,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,cAAc,EAAE,CAAC,EAAO,oBAAoB;IAC5C,cAAc,EAAE,CAAC,EAAO,qBAAqB;IAC7C,iBAAiB,EAAE,CAAC,EAAI,iCAAiC;IACzD,kBAAkB,EAAE,CAAC,EAAG,iCAAiC;IACzD,gBAAgB,EAAE,CAAC,EAAK,6BAA6B;IACrD,mBAAmB,EAAE,CAAC,EAAE,4BAA4B;IACpD,WAAW,EAAE,CAAC,EAAU,4BAA4B;IACpD,eAAe,EAAE,CAAC,EAAM,kBAAkB;CAClC,CAAC;AAEX;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAa,gBAAgB;IAC3B,YAA6B,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAEhD,KAAK,CAAC,MAAM,CAAC,OAAwB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,iBAAiB,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC;QAEzB,uBAAuB;QACvB,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC;QAE3C,mDAAmD;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAe,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;SACxC,CAAC,CAAC,CAAC;QAEJ,kCAAkC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACtC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;YAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;YAC1B,QAAQ,EAAE,OAAO,EAAE,UAAU;YAC7B,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,uDAAuD;QACvD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,8CAA8C;gBAC9C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,qBAAqB,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,qBAAqB,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7F,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8C,CAAC;QAExE,oBAAoB;QACpB,MAAM,aAAa,GAAoB,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAoB,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAoB,EAAE,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAErC,0CAA0C;YAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1C,oCAAoC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAErD,6EAA6E;YAC7E,IAAI,KAAK,GAA2B,IAAI,CAAC;YACzC,IAAI,YAAY,GAAG,YAAY,CAAC;YAChC,IAAI,UAAU,GAAG,UAAU,CAAC;YAE5B,IAAI,UAAU,IAAI,SAAS,GAAG,iBAAiB,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;gBAC1E,sDAAsD;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1D,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAElC,sBAAsB;gBACtB,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzE,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAE/C,kBAAkB;gBAClB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACvE,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBAC5D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAkB;gBAC5B,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;gBACjB,YAAY,EAAE,UAAU,IAAI,SAAS;aACtC,CAAC;YAEF,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEhD,+BAA+B;QAC/B,MAAM,QAAQ,GAAmB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC7D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,iBAAiB,EAAE,IAAI,CAAC,KAAK;SAC9B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC;aAC1F,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhB,+BAA+B;QAC/B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QAClF,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QAE/E,OAAO;YACL,YAAY,EAAE,UAAU,CAAC,MAAM;YAC/B,cAAc,EAAE,cAAc,CAAC,MAAM;YACrC,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,YAAY,EAAE,aAAa;YAC3B,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,WAAW,CACT,MAAsB,EACtB,KAA6B,EAC7B,OAA4B,EAC5B,aAAuB;QAEvB,6EAA6E;QAC7E,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO;YACL,MAAM;YACN,KAAK;YACL,OAAO;YACP,KAAK;YACL,YAAY,EAAE,KAAK,IAAI,iBAAiB;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAkB;QACpC,sDAAsD;QACtD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ;aACtB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;QAElC,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM;YAClC,MAAM,EAAE,GAAG,CAAC,UAAU;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/C,IAAI;SACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,OAAuC;QACxD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YAC/B,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAEhC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,kCAAkC;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC9B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,UAAU;YACV,SAAS;YACT,UAAU;YACV,YAAY;YACZ,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,MAAsB,EACtB,KAA6B,EAC7B,QAA6B,EAC7B,aAAsB;QAEtB,uBAAuB;QACvB,MAAM,cAAc,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;QAErF,uBAAuB;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC;eAC7D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;eAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,QAAQ,KAAK,IAAI,CAAC;QAEvE,iFAAiF;QACjF,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC1E,MAAM,qBAAqB,GAAG,iBAAiB,KAAK,IAAI,CAAC;QACzD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvF,oBAAoB;QACpB,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnF,0BAA0B;QAC1B,MAAM,mBAAmB,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QAElF,oBAAoB;QACpB,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QAErF,OAAO;YACL,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,qBAAqB;YACrB,gBAAgB;YAChB,mBAAmB;YACnB,mBAAmB;YACnB,aAAa;YACb,kBAAkB;YAClB,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAA+B;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,OAAO,CAAC,cAAc;YAAE,KAAK,IAAI,MAAM,CAAC,cAAc,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc;YAAE,KAAK,IAAI,MAAM,CAAC,cAAc,CAAC;QAC3D,IAAI,OAAO,CAAC,iBAAiB;YAAE,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACjE,IAAI,OAAO,CAAC,qBAAqB;YAAE,KAAK,IAAI,MAAM,CAAC,kBAAkB,CAAC;QACtE,IAAI,OAAO,CAAC,mBAAmB;YAAE,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAClE,IAAI,OAAO,CAAC,mBAAmB;YAAE,KAAK,IAAI,MAAM,CAAC,mBAAmB,CAAC;QACrE,IAAI,OAAO,CAAC,aAAa;YAAE,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC;QACvD,IAAI,OAAO,CAAC,kBAAkB;YAAE,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC;QAEhE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAY;QAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,SAAiB,EAAE,IAAyB;QAC9D,OAAO;YACL,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,EAAE;YACZ,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;CACF;AAhUD,4CAgUC"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * MemoryContextLoader
3
3
  *
4
- * Loads memory context using the DAL router for optimal date ordering.
5
- * Uses Neo4j for date-ordered facts, MCP for init-review and tasks.
4
+ * Loads memory context from git-mem.
5
+ * Queries facts, init-review, and tasks via the IMemoryService and ITaskService adapters.
6
6
  *
7
7
  * Extracted from SessionStartHandler to isolate memory loading strategy.
8
8
  */
9
- import type { IMemoryService, ITaskService, IMcpClient, IMemoryItem, ILogger, IMemoryDateOptions } from '../../domain';
10
- import type { IRepositoryRouter } from '../../domain/interfaces/dal';
9
+ import type { IMemoryService, ITaskService, ILogger, IMemoryDateOptions } from '../../domain';
10
+ import type { IMemoryItem } from '../../domain/interfaces/types/IMemoryResult';
11
11
  export interface IMemoryLoadResult {
12
12
  facts: IMemoryItem[];
13
13
  nodes: IMemoryItem[];
@@ -18,20 +18,11 @@ export interface IMemoryLoadResult {
18
18
  export declare class MemoryContextLoader {
19
19
  private readonly memory;
20
20
  private readonly tasks;
21
- private readonly mcp;
22
- private readonly router?;
23
21
  private readonly logger?;
24
- constructor(memory: IMemoryService, tasks: ITaskService, mcp: IMcpClient, router?: IRepositoryRouter | undefined, logger?: ILogger | undefined);
22
+ constructor(memory: IMemoryService, tasks: ITaskService, logger?: ILogger | undefined);
25
23
  /**
26
- * Load memory using the optimal strategy (DAL or MCP fallback).
24
+ * Load memory context from git-mem.
27
25
  */
28
- loadMemory(hierarchicalGroupIds: readonly string[], projectAliases: readonly string[], branch: string | null, dateOptions?: IMemoryDateOptions): Promise<IMemoryLoadResult>;
29
- /**
30
- * Load memory using the DAL router for optimal date ordering.
31
- * Uses AbortController-based cancellation to ensure no mutations
32
- * occur after timeout and resources are properly cleaned up.
33
- */
34
- private loadMemoryWithDAL;
35
- private buildRepoTags;
26
+ loadMemory(dateOptions?: IMemoryDateOptions): Promise<IMemoryLoadResult>;
36
27
  }
37
28
  //# sourceMappingURL=MemoryContextLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryContextLoader.d.ts","sourceRoot":"","sources":["../../../../src/lib/application/services/MemoryContextLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,OAAO,EACP,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAcrE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAJP,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,UAAU,EACf,MAAM,CAAC,EAAE,iBAAiB,YAAA,EAC1B,MAAM,CAAC,EAAE,OAAO,YAAA;IAGnC;;OAEG;IACG,UAAU,CACd,oBAAoB,EAAE,SAAS,MAAM,EAAE,EACvC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,WAAW,CAAC,EAAE,kBAAkB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAc7B;;;;OAIG;YACW,iBAAiB;IAoI/B,OAAO,CAAC,aAAa;CAMtB"}
1
+ {"version":3,"file":"MemoryContextLoader.d.ts","sourceRoot":"","sources":["../../../../src/lib/application/services/MemoryContextLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,OAAO,EACP,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAO/E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAFP,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,OAAO,YAAA;IAGnC;;OAEG;IACG,UAAU,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAkF/E"}
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * MemoryContextLoader
4
4
  *
5
- * Loads memory context using the DAL router for optimal date ordering.
6
- * Uses Neo4j for date-ordered facts, MCP for init-review and tasks.
5
+ * Loads memory context from git-mem.
6
+ * Queries facts, init-review, and tasks via the IMemoryService and ITaskService adapters.
7
7
  *
8
8
  * Extracted from SessionStartHandler to isolate memory loading strategy.
9
9
  */
@@ -11,33 +11,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.MemoryContextLoader = void 0;
12
12
  const domain_1 = require("../../domain");
13
13
  class MemoryContextLoader {
14
- constructor(memory, tasks, mcp, router, logger) {
14
+ constructor(memory, tasks, logger) {
15
15
  this.memory = memory;
16
16
  this.tasks = tasks;
17
- this.mcp = mcp;
18
- this.router = router;
19
17
  this.logger = logger;
20
18
  }
21
19
  /**
22
- * Load memory using the optimal strategy (DAL or MCP fallback).
20
+ * Load memory context from git-mem.
23
21
  */
24
- async loadMemory(hierarchicalGroupIds, projectAliases, branch, dateOptions) {
25
- if (this.router && this.router.isBackendAvailable('neo4j')) {
26
- return this.loadMemoryWithDAL(hierarchicalGroupIds, projectAliases, branch, undefined, dateOptions);
27
- }
28
- // Fall back to MCP-only path
29
- const result = await this.memory.loadMemory(hierarchicalGroupIds, projectAliases, branch, 5000 // 5 second timeout
30
- );
31
- return result;
32
- }
33
- /**
34
- * Load memory using the DAL router for optimal date ordering.
35
- * Uses AbortController-based cancellation to ensure no mutations
36
- * occur after timeout and resources are properly cleaned up.
37
- */
38
- async loadMemoryWithDAL(hierarchicalGroupIds, projectAliases, branch, signal, dateOptions) {
39
- const memory = this.memory;
40
- const mcp = this.mcp;
22
+ async loadMemory(dateOptions) {
41
23
  const result = {
42
24
  facts: [],
43
25
  nodes: [],
@@ -46,13 +28,11 @@ class MemoryContextLoader {
46
28
  timedOut: false,
47
29
  };
48
30
  const TIMEOUT_MS = 5000;
49
- // Combine hierarchical group IDs with project aliases for comprehensive search
50
- const allGroupIds = [...new Set([...hierarchicalGroupIds, ...projectAliases])];
51
31
  const cancellableResult = await (0, domain_1.withCancellation)(async (abortSignal) => {
52
- // Load init-review via MCP (semantic search for specific tag)
32
+ // Load init-review
53
33
  try {
54
34
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled before init-review');
55
- const initFacts = await memory.searchFacts(allGroupIds, 'init-review', 1);
35
+ const initFacts = await this.memory.searchFacts('init-review', 1);
56
36
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled after init-review fetch');
57
37
  const initFact = initFacts.find((f) => f.tags?.includes('type:init-review'));
58
38
  if (initFact) {
@@ -62,56 +42,23 @@ class MemoryContextLoader {
62
42
  catch (error) {
63
43
  if ((0, domain_1.isCancellationError)(error))
64
44
  throw error;
65
- // Continue if init-review load fails
66
45
  }
67
- // Load facts using DAL with date ordering (Neo4j preferred)
46
+ // Load facts with date ordering
68
47
  try {
69
48
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled before facts');
70
- const facts = await memory.loadFactsDateOrdered(allGroupIds, 100, dateOptions);
49
+ const facts = await this.memory.loadFactsDateOrdered(100, dateOptions);
71
50
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled after facts fetch');
72
51
  result.facts = facts;
73
52
  }
74
53
  catch (error) {
75
54
  if ((0, domain_1.isCancellationError)(error))
76
55
  throw error;
77
- // Continue if fact load fails
78
56
  }
79
- // Fall back to nodes when no facts are found (preserve MCP behavior)
80
- if (!result.facts.length) {
81
- try {
82
- const seenUuids = new Set();
83
- for (const alias of projectAliases) {
84
- (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled during node iteration');
85
- const nodeParams = {
86
- query: alias,
87
- tags: this.buildRepoTags(alias, branch),
88
- max_nodes: 20,
89
- group_ids: [...allGroupIds],
90
- };
91
- const [nodeResp] = await mcp.call('search_nodes', nodeParams);
92
- (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled after nodes fetch');
93
- const aliasedNodes = nodeResp?.result?.nodes || nodeResp?.nodes || [];
94
- for (const node of aliasedNodes) {
95
- const uuid = node.uuid || `${node.name}-${node.fact}`;
96
- if (!seenUuids.has(uuid)) {
97
- seenUuids.add(uuid);
98
- result.nodes.push(node);
99
- }
100
- }
101
- }
102
- }
103
- catch (error) {
104
- if ((0, domain_1.isCancellationError)(error))
105
- throw error;
106
- // Continue if node load fails
107
- }
108
- }
109
- // Load tasks via DAL (uses Neo4j when available for date ordering)
57
+ // Load tasks
110
58
  try {
111
59
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled before tasks');
112
- const loadedTasks = await this.tasks.getTasksSimple(allGroupIds);
60
+ const loadedTasks = await this.tasks.getTasksSimple();
113
61
  (0, domain_1.checkCancellation)(abortSignal, 'Memory load cancelled after tasks fetch');
114
- // Convert ITask[] to IMemoryItem[] format for compatibility
115
62
  for (const task of loadedTasks) {
116
63
  result.tasks.push({
117
64
  uuid: task.key,
@@ -130,27 +77,17 @@ class MemoryContextLoader {
130
77
  catch (error) {
131
78
  if ((0, domain_1.isCancellationError)(error))
132
79
  throw error;
133
- // Continue if task load fails
134
80
  }
135
81
  return result;
136
82
  }, {
137
83
  timeoutMs: TIMEOUT_MS,
138
- signal,
139
84
  onCancel: () => {
140
- this.logger?.debug('Memory load with DAL cancelled');
85
+ this.logger?.debug('Memory load cancelled');
141
86
  },
142
87
  });
143
88
  result.timedOut = cancellableResult.timedOut;
144
89
  return result;
145
90
  }
146
- buildRepoTags(repo, branch) {
147
- const tags = [];
148
- if (repo)
149
- tags.push(`repo:${repo}`);
150
- if (branch)
151
- tags.push(`branch:${branch}`);
152
- return tags;
153
- }
154
91
  }
155
92
  exports.MemoryContextLoader = MemoryContextLoader;
156
93
  //# sourceMappingURL=MemoryContextLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryContextLoader.js","sourceRoot":"","sources":["../../../../src/lib/application/services/MemoryContextLoader.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAWH,yCAIsB;AAiBtB,MAAa,mBAAmB;IAC9B,YACmB,MAAsB,EACtB,KAAmB,EACnB,GAAe,EACf,MAA0B,EAC1B,MAAgB;QAJhB,WAAM,GAAN,MAAM,CAAgB;QACtB,UAAK,GAAL,KAAK,CAAc;QACnB,QAAG,GAAH,GAAG,CAAY;QACf,WAAM,GAAN,MAAM,CAAoB;QAC1B,WAAM,GAAN,MAAM,CAAU;IAChC,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,oBAAuC,EACvC,cAAiC,EACjC,MAAqB,EACrB,WAAgC;QAEhC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACtG,CAAC;QACD,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CACzC,oBAAoB,EACpB,cAAc,EACd,MAAM,EACN,IAAI,CAAC,mBAAmB;SACzB,CAAC;QACF,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB,CAC7B,oBAAuC,EACvC,cAAiC,EACjC,MAAqB,EACrB,MAAoB,EACpB,WAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,MAAM,GAAsB;YAChC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC;QAExB,+EAA+E;QAC/E,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAE/E,MAAM,iBAAiB,GAAG,MAAM,IAAA,yBAAgB,EAC9C,KAAK,EAAE,WAAW,EAAE,EAAE;YACpB,8DAA8D;YAC9D,IAAI,CAAC;gBACH,IAAA,0BAAiB,EAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;gBAE3E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBAE1E,IAAA,0BAAiB,EAAC,WAAW,EAAE,+CAA+C,CAAC,CAAC;gBAEhF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC7E,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;gBAC7D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC5C,qCAAqC;YACvC,CAAC;YAED,4DAA4D;YAC5D,IAAI,CAAC;gBACH,IAAA,0BAAiB,EAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;gBAErE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBAE/E,IAAA,0BAAiB,EAAC,WAAW,EAAE,yCAAyC,CAAC,CAAC;gBAE1E,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC5C,8BAA8B;YAChC,CAAC;YAED,qEAAqE;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;oBAEpC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;wBACnC,IAAA,0BAAiB,EAAC,WAAW,EAAE,6CAA6C,CAAC,CAAC;wBAE9E,MAAM,UAAU,GAAG;4BACjB,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;4BACvC,SAAS,EAAE,EAAE;4BACb,SAAS,EAAE,CAAC,GAAG,WAAW,CAAC;yBAC5B,CAAC;wBACF,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAmB,cAAc,EAAE,UAAU,CAAC,CAAC;wBAEhF,IAAA,0BAAiB,EAAC,WAAW,EAAE,yCAAyC,CAAC,CAAC;wBAE1E,MAAM,YAAY,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;wBACtE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;4BAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gCACzB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gCACpB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC5C,8BAA8B;gBAChC,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,IAAI,CAAC;gBACH,IAAA,0BAAiB,EAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;gBAErE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAEjE,IAAA,0BAAiB,EAAC,WAAW,EAAE,yCAAyC,CAAC,CAAC;gBAE1E,4DAA4D;gBAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,IAAI,CAAC,GAAG;wBACd,IAAI,EAAE,IAAI,CAAC,KAAK;wBAChB,IAAI,EAAE,IAAI,CAAC,KAAK;wBAChB,IAAI,EAAE;4BACJ,WAAW;4BACX,WAAW,IAAI,CAAC,GAAG,EAAE;4BACrB,UAAU,IAAI,CAAC,MAAM,EAAE;4BACvB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;yBAC9D;wBACD,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC5C,8BAA8B;YAChC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,EACD;YACE,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACvD,CAAC;SACF,CACF,CAAC;QAEF,MAAM,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,MAAqB;QACvD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9KD,kDA8KC"}
1
+ {"version":3,"file":"MemoryContextLoader.js","sourceRoot":"","sources":["../../../../src/lib/application/services/MemoryContextLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * RepoProfileService
3
+ *
4
+ * Generates and maintains a living markdown profile at `.lisa/data/repo-profile.md`
5
+ * that gives every new session instant understanding of the project.
6
+ *
7
+ * Consumes pipeline data from Phase 1 (triage) and Phase 3 (extraction)
8
+ * to render structured markdown with sections for overview, architecture,
9
+ * hotspots, decisions, gotchas, and recent activity.
10
+ *
11
+ * Part of LISA-11: Repo Profile Generation.
12
+ */
13
+ import type { IFileSystem } from '../../domain/interfaces/IFileSystem';
14
+ import type { ILogger } from '../../domain/interfaces/ILogger';
15
+ import type { IRepoProfileService, IProfileInput, IProfileFreshnessResult, IProfileGenerateOptions } from '../../domain/interfaces/IRepoProfileService';
16
+ /**
17
+ * Calculate freshness state from file modification timestamp.
18
+ * Pure function for testability.
19
+ */
20
+ export declare function calculateFreshness(mtimeMs: number | null, now?: number): IProfileFreshnessResult;
21
+ /**
22
+ * Render the full profile markdown from pipeline data.
23
+ * Pure function for testability.
24
+ */
25
+ export declare function renderMarkdown(input: IProfileInput, options: Required<IProfileGenerateOptions>): {
26
+ markdown: string;
27
+ sectionsPopulated: number;
28
+ };
29
+ /**
30
+ * Create a Repo Profile service.
31
+ *
32
+ * @param fs - File system abstraction for reading/writing the profile
33
+ * @param logger - Optional logger
34
+ * @returns A Repo Profile service
35
+ */
36
+ export declare function createRepoProfileService(fs: IFileSystem, logger?: ILogger): IRepoProfileService;
37
+ //# sourceMappingURL=RepoProfileService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepoProfileService.d.ts","sourceRoot":"","sources":["../../../../src/lib/application/services/RepoProfileService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAGb,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AA4BrD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,GAAG,GAAE,MAAmB,GACvB,uBAAuB,CAuCzB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACzC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CA0HjD;AA2JD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,WAAW,EACf,MAAM,CAAC,EAAE,OAAO,GACf,mBAAmB,CAkErB"}