reviewflow 3.5.0 → 3.7.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 (393) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/config/projectConfig.d.ts +2 -0
  3. package/dist/config/projectConfig.d.ts.map +1 -1
  4. package/dist/config/projectConfig.js +17 -0
  5. package/dist/config/projectConfig.js.map +1 -1
  6. package/dist/entities/backfill/backfillProgress.d.ts +7 -0
  7. package/dist/entities/backfill/backfillProgress.d.ts.map +1 -0
  8. package/dist/entities/backfill/backfillProgress.js +2 -0
  9. package/dist/entities/backfill/backfillProgress.js.map +1 -0
  10. package/dist/entities/cleanup/retentionPolicy.valueObject.d.ts +8 -0
  11. package/dist/entities/cleanup/retentionPolicy.valueObject.d.ts.map +1 -0
  12. package/dist/entities/cleanup/retentionPolicy.valueObject.js +21 -0
  13. package/dist/entities/cleanup/retentionPolicy.valueObject.js.map +1 -0
  14. package/dist/entities/diffStats/diffStats.d.ts +6 -0
  15. package/dist/entities/diffStats/diffStats.d.ts.map +1 -0
  16. package/dist/entities/diffStats/diffStats.js +2 -0
  17. package/dist/entities/diffStats/diffStats.js.map +1 -0
  18. package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts +5 -0
  19. package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts.map +1 -0
  20. package/dist/entities/diffStats/diffStatsFetch.gateway.js +2 -0
  21. package/dist/entities/diffStats/diffStatsFetch.gateway.js.map +1 -0
  22. package/dist/entities/packageVersion/packageVersion.d.ts +18 -0
  23. package/dist/entities/packageVersion/packageVersion.d.ts.map +1 -0
  24. package/dist/entities/packageVersion/packageVersion.gateway.d.ts +4 -0
  25. package/dist/entities/packageVersion/packageVersion.gateway.d.ts.map +1 -0
  26. package/dist/entities/packageVersion/packageVersion.gateway.js +2 -0
  27. package/dist/entities/packageVersion/packageVersion.gateway.js.map +1 -0
  28. package/dist/entities/packageVersion/packageVersion.guard.d.ts +7 -0
  29. package/dist/entities/packageVersion/packageVersion.guard.d.ts.map +1 -0
  30. package/dist/entities/packageVersion/packageVersion.guard.js +13 -0
  31. package/dist/entities/packageVersion/packageVersion.guard.js.map +1 -0
  32. package/dist/entities/packageVersion/packageVersion.js +2 -0
  33. package/dist/entities/packageVersion/packageVersion.js.map +1 -0
  34. package/dist/entities/packageVersion/packageVersion.schema.d.ts +12 -0
  35. package/dist/entities/packageVersion/packageVersion.schema.d.ts.map +1 -0
  36. package/dist/entities/packageVersion/packageVersion.schema.js +11 -0
  37. package/dist/entities/packageVersion/packageVersion.schema.js.map +1 -0
  38. package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts +8 -0
  39. package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +1 -0
  40. package/dist/entities/packageVersion/selfUpdateCommand.gateway.js +2 -0
  41. package/dist/entities/packageVersion/selfUpdateCommand.gateway.js.map +1 -0
  42. package/dist/entities/packageVersion/versionCache.gateway.d.ts +7 -0
  43. package/dist/entities/packageVersion/versionCache.gateway.d.ts.map +1 -0
  44. package/dist/entities/packageVersion/versionCache.gateway.js +2 -0
  45. package/dist/entities/packageVersion/versionCache.gateway.js.map +1 -0
  46. package/dist/entities/reviewAction/reviewAction.gateway.d.ts +1 -0
  47. package/dist/entities/reviewAction/reviewAction.gateway.d.ts.map +1 -1
  48. package/dist/entities/stats/projectStats.d.ts +36 -0
  49. package/dist/entities/stats/projectStats.d.ts.map +1 -0
  50. package/dist/entities/stats/projectStats.js +2 -0
  51. package/dist/entities/stats/projectStats.js.map +1 -0
  52. package/dist/entities/stats/recalculateBody.guard.d.ts +11 -0
  53. package/dist/entities/stats/recalculateBody.guard.d.ts.map +1 -0
  54. package/dist/entities/stats/recalculateBody.guard.js +9 -0
  55. package/dist/entities/stats/recalculateBody.guard.js.map +1 -0
  56. package/dist/entities/stats/stats.gateway.d.ts +7 -0
  57. package/dist/entities/stats/stats.gateway.d.ts.map +1 -0
  58. package/dist/entities/stats/stats.gateway.js +2 -0
  59. package/dist/entities/stats/stats.gateway.js.map +1 -0
  60. package/dist/entities/tracking/reviewEvent.d.ts +2 -0
  61. package/dist/entities/tracking/reviewEvent.d.ts.map +1 -1
  62. package/dist/frameworks/claude/claudeInvoker.d.ts +7 -1
  63. package/dist/frameworks/claude/claudeInvoker.d.ts.map +1 -1
  64. package/dist/frameworks/claude/claudeInvoker.js +59 -35
  65. package/dist/frameworks/claude/claudeInvoker.js.map +1 -1
  66. package/dist/frameworks/config/configLoader.d.ts +1 -0
  67. package/dist/frameworks/config/configLoader.d.ts.map +1 -1
  68. package/dist/frameworks/config/configLoader.js +9 -1
  69. package/dist/frameworks/config/configLoader.js.map +1 -1
  70. package/dist/frameworks/scheduler/cleanupScheduler.d.ts +16 -0
  71. package/dist/frameworks/scheduler/cleanupScheduler.d.ts.map +1 -0
  72. package/dist/frameworks/scheduler/cleanupScheduler.js +35 -0
  73. package/dist/frameworks/scheduler/cleanupScheduler.js.map +1 -0
  74. package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts +16 -0
  75. package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts.map +1 -0
  76. package/dist/interface-adapters/controllers/http/cleanup.routes.js +44 -0
  77. package/dist/interface-adapters/controllers/http/cleanup.routes.js.map +1 -0
  78. package/dist/interface-adapters/controllers/http/health.routes.d.ts +3 -1
  79. package/dist/interface-adapters/controllers/http/health.routes.d.ts.map +1 -1
  80. package/dist/interface-adapters/controllers/http/health.routes.js +5 -1
  81. package/dist/interface-adapters/controllers/http/health.routes.js.map +1 -1
  82. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts.map +1 -1
  83. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js +13 -2
  84. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js.map +1 -1
  85. package/dist/interface-adapters/controllers/http/stats.routes.d.ts +20 -6
  86. package/dist/interface-adapters/controllers/http/stats.routes.d.ts.map +1 -1
  87. package/dist/interface-adapters/controllers/http/stats.routes.js +35 -2
  88. package/dist/interface-adapters/controllers/http/stats.routes.js.map +1 -1
  89. package/dist/interface-adapters/controllers/http/version.routes.d.ts +18 -0
  90. package/dist/interface-adapters/controllers/http/version.routes.d.ts.map +1 -0
  91. package/dist/interface-adapters/controllers/http/version.routes.js +18 -0
  92. package/dist/interface-adapters/controllers/http/version.routes.js.map +1 -0
  93. package/dist/interface-adapters/controllers/webhook/github.controller.d.ts +16 -2
  94. package/dist/interface-adapters/controllers/webhook/github.controller.d.ts.map +1 -1
  95. package/dist/interface-adapters/controllers/webhook/github.controller.js +14 -17
  96. package/dist/interface-adapters/controllers/webhook/github.controller.js.map +1 -1
  97. package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts +25 -2
  98. package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +1 -1
  99. package/dist/interface-adapters/controllers/webhook/gitlab.controller.js +54 -36
  100. package/dist/interface-adapters/controllers/webhook/gitlab.controller.js.map +1 -1
  101. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.d.ts.map +1 -1
  102. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js +7 -2
  103. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js.map +1 -1
  104. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts +10 -0
  105. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts.map +1 -0
  106. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.js +26 -0
  107. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.js.map +1 -0
  108. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts +10 -0
  109. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts.map +1 -0
  110. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js +28 -0
  111. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js.map +1 -0
  112. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts +7 -0
  113. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts.map +1 -0
  114. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js +47 -0
  115. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js.map +1 -0
  116. package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts +2 -2
  117. package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts.map +1 -1
  118. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts +7 -0
  119. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts.map +1 -0
  120. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js +25 -0
  121. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js.map +1 -0
  122. package/dist/interface-adapters/gateways/reviewLogFile.gateway.d.ts +12 -0
  123. package/dist/interface-adapters/gateways/reviewLogFile.gateway.d.ts.map +1 -0
  124. package/dist/interface-adapters/gateways/reviewLogFile.gateway.js +2 -0
  125. package/dist/interface-adapters/gateways/reviewLogFile.gateway.js.map +1 -0
  126. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts +19 -0
  127. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +1 -0
  128. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js +44 -0
  129. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +1 -0
  130. package/dist/interface-adapters/gateways/stats.gateway.d.ts +1 -6
  131. package/dist/interface-adapters/gateways/stats.gateway.d.ts.map +1 -1
  132. package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts +12 -0
  133. package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts.map +1 -0
  134. package/dist/interface-adapters/gateways/versionCache.memory.gateway.js +22 -0
  135. package/dist/interface-adapters/gateways/versionCache.memory.gateway.js.map +1 -0
  136. package/dist/interface-adapters/views/dashboard/index.html +359 -40
  137. package/dist/interface-adapters/views/dashboard/modules/cleanup.d.ts +10 -0
  138. package/dist/interface-adapters/views/dashboard/modules/cleanup.d.ts.map +1 -0
  139. package/dist/interface-adapters/views/dashboard/modules/cleanup.js +45 -0
  140. package/dist/interface-adapters/views/dashboard/modules/cleanup.js.map +1 -0
  141. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.d.ts +13 -0
  142. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.d.ts.map +1 -0
  143. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.js +71 -0
  144. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.js.map +1 -0
  145. package/dist/interface-adapters/views/dashboard/modules/i18n.d.ts.map +1 -1
  146. package/dist/interface-adapters/views/dashboard/modules/i18n.js +96 -0
  147. package/dist/interface-adapters/views/dashboard/modules/i18n.js.map +1 -1
  148. package/dist/interface-adapters/views/dashboard/modules/mrSheet.d.ts +25 -0
  149. package/dist/interface-adapters/views/dashboard/modules/mrSheet.d.ts.map +1 -0
  150. package/dist/interface-adapters/views/dashboard/modules/mrSheet.js +414 -0
  151. package/dist/interface-adapters/views/dashboard/modules/mrSheet.js.map +1 -0
  152. package/dist/interface-adapters/views/dashboard/modules/statsCharts.d.ts +35 -0
  153. package/dist/interface-adapters/views/dashboard/modules/statsCharts.d.ts.map +1 -0
  154. package/dist/interface-adapters/views/dashboard/modules/statsCharts.js +476 -0
  155. package/dist/interface-adapters/views/dashboard/modules/statsCharts.js.map +1 -0
  156. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts +16 -0
  157. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts.map +1 -0
  158. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js +54 -0
  159. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js.map +1 -0
  160. package/dist/interface-adapters/views/dashboard/styles.css +939 -0
  161. package/dist/main/dependencies.d.ts +2 -0
  162. package/dist/main/dependencies.d.ts.map +1 -1
  163. package/dist/main/dependencies.js +2 -0
  164. package/dist/main/dependencies.js.map +1 -1
  165. package/dist/main/routes.d.ts +1 -1
  166. package/dist/main/routes.d.ts.map +1 -1
  167. package/dist/main/routes.js +87 -5
  168. package/dist/main/routes.js.map +1 -1
  169. package/dist/main/server.d.ts.map +1 -1
  170. package/dist/main/server.js +8 -0
  171. package/dist/main/server.js.map +1 -1
  172. package/dist/main/websocket.d.ts +2 -0
  173. package/dist/main/websocket.d.ts.map +1 -1
  174. package/dist/main/websocket.js +13 -0
  175. package/dist/main/websocket.js.map +1 -1
  176. package/dist/services/commentLinkEnricher.d.ts +18 -0
  177. package/dist/services/commentLinkEnricher.d.ts.map +1 -0
  178. package/dist/services/commentLinkEnricher.js +40 -0
  179. package/dist/services/commentLinkEnricher.js.map +1 -0
  180. package/dist/services/contextActionsExecutor.d.ts +1 -1
  181. package/dist/services/contextActionsExecutor.d.ts.map +1 -1
  182. package/dist/services/contextActionsExecutor.js +2 -1
  183. package/dist/services/contextActionsExecutor.js.map +1 -1
  184. package/dist/services/statsService.d.ts +8 -32
  185. package/dist/services/statsService.d.ts.map +1 -1
  186. package/dist/services/statsService.js +27 -22
  187. package/dist/services/statsService.js.map +1 -1
  188. package/dist/services/threadActionsExecutor.d.ts.map +1 -1
  189. package/dist/services/threadActionsExecutor.js +1 -0
  190. package/dist/services/threadActionsExecutor.js.map +1 -1
  191. package/dist/shared/foundation/commandExecutor.d.ts +2 -0
  192. package/dist/shared/foundation/commandExecutor.d.ts.map +1 -0
  193. package/dist/shared/foundation/commandExecutor.js +2 -0
  194. package/dist/shared/foundation/commandExecutor.js.map +1 -0
  195. package/dist/tests/factories/diffStats.factory.d.ts +5 -0
  196. package/dist/tests/factories/diffStats.factory.d.ts.map +1 -0
  197. package/dist/tests/factories/diffStats.factory.js +11 -0
  198. package/dist/tests/factories/diffStats.factory.js.map +1 -0
  199. package/dist/tests/factories/packageVersion.factory.d.ts +7 -0
  200. package/dist/tests/factories/packageVersion.factory.d.ts.map +1 -0
  201. package/dist/tests/factories/packageVersion.factory.js +18 -0
  202. package/dist/tests/factories/packageVersion.factory.js.map +1 -0
  203. package/dist/tests/factories/projectStats.factory.d.ts +3 -1
  204. package/dist/tests/factories/projectStats.factory.d.ts.map +1 -1
  205. package/dist/tests/factories/projectStats.factory.js +17 -3
  206. package/dist/tests/factories/projectStats.factory.js.map +1 -1
  207. package/dist/tests/stubs/diffStatsFetch.stub.d.ts +11 -0
  208. package/dist/tests/stubs/diffStatsFetch.stub.d.ts.map +1 -0
  209. package/dist/tests/stubs/diffStatsFetch.stub.js +19 -0
  210. package/dist/tests/stubs/diffStatsFetch.stub.js.map +1 -0
  211. package/dist/tests/stubs/packageVersion.stub.d.ts +7 -0
  212. package/dist/tests/stubs/packageVersion.stub.d.ts.map +1 -0
  213. package/dist/tests/stubs/packageVersion.stub.js +10 -0
  214. package/dist/tests/stubs/packageVersion.stub.js.map +1 -0
  215. package/dist/tests/stubs/reviewLogFile.stub.d.ts +15 -0
  216. package/dist/tests/stubs/reviewLogFile.stub.d.ts.map +1 -0
  217. package/dist/tests/stubs/reviewLogFile.stub.js +35 -0
  218. package/dist/tests/stubs/reviewLogFile.stub.js.map +1 -0
  219. package/dist/tests/stubs/selfUpdate.stub.d.ts +12 -0
  220. package/dist/tests/stubs/selfUpdate.stub.d.ts.map +1 -0
  221. package/dist/tests/stubs/selfUpdate.stub.js +18 -0
  222. package/dist/tests/stubs/selfUpdate.stub.js.map +1 -0
  223. package/dist/tests/stubs/stats.stub.d.ts +2 -2
  224. package/dist/tests/stubs/stats.stub.d.ts.map +1 -1
  225. package/dist/tests/stubs/versionCache.stub.d.ts +11 -0
  226. package/dist/tests/stubs/versionCache.stub.d.ts.map +1 -0
  227. package/dist/tests/stubs/versionCache.stub.js +18 -0
  228. package/dist/tests/stubs/versionCache.stub.js.map +1 -0
  229. package/dist/tests/units/config/projectConfig.test.js +60 -1
  230. package/dist/tests/units/config/projectConfig.test.js.map +1 -1
  231. package/dist/tests/units/entities/backfill/backfillProgress.test.d.ts +2 -0
  232. package/dist/tests/units/entities/backfill/backfillProgress.test.d.ts.map +1 -0
  233. package/dist/tests/units/entities/backfill/backfillProgress.test.js +40 -0
  234. package/dist/tests/units/entities/backfill/backfillProgress.test.js.map +1 -0
  235. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.d.ts +2 -0
  236. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.d.ts.map +1 -0
  237. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js +47 -0
  238. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js.map +1 -0
  239. package/dist/tests/units/entities/diffStats/diffStats.test.d.ts +2 -0
  240. package/dist/tests/units/entities/diffStats/diffStats.test.d.ts.map +1 -0
  241. package/dist/tests/units/entities/diffStats/diffStats.test.js +27 -0
  242. package/dist/tests/units/entities/diffStats/diffStats.test.js.map +1 -0
  243. package/dist/tests/units/entities/packageVersion/packageVersion.test.d.ts +2 -0
  244. package/dist/tests/units/entities/packageVersion/packageVersion.test.d.ts.map +1 -0
  245. package/dist/tests/units/entities/packageVersion/packageVersion.test.js +154 -0
  246. package/dist/tests/units/entities/packageVersion/packageVersion.test.js.map +1 -0
  247. package/dist/tests/units/factories/packageVersion.factory.test.d.ts +2 -0
  248. package/dist/tests/units/factories/packageVersion.factory.test.d.ts.map +1 -0
  249. package/dist/tests/units/factories/packageVersion.factory.test.js +37 -0
  250. package/dist/tests/units/factories/packageVersion.factory.test.js.map +1 -0
  251. package/dist/tests/units/frameworks/claude/ensureProjectMcpConfig.test.js +12 -66
  252. package/dist/tests/units/frameworks/claude/ensureProjectMcpConfig.test.js.map +1 -1
  253. package/dist/tests/units/frameworks/config/normalizeGitUrl.test.d.ts +2 -0
  254. package/dist/tests/units/frameworks/config/normalizeGitUrl.test.d.ts.map +1 -0
  255. package/dist/tests/units/frameworks/config/normalizeGitUrl.test.js +20 -0
  256. package/dist/tests/units/frameworks/config/normalizeGitUrl.test.js.map +1 -0
  257. package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.d.ts +2 -0
  258. package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.d.ts.map +1 -0
  259. package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.js +74 -0
  260. package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.js.map +1 -0
  261. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.d.ts +2 -0
  262. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.d.ts.map +1 -0
  263. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js +62 -0
  264. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js.map +1 -0
  265. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.d.ts +2 -0
  266. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.d.ts.map +1 -0
  267. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js +96 -0
  268. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js.map +1 -0
  269. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.d.ts +2 -0
  270. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.d.ts.map +1 -0
  271. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js +82 -0
  272. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js.map +1 -0
  273. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.d.ts +2 -0
  274. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.d.ts.map +1 -0
  275. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js +83 -0
  276. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js.map +1 -0
  277. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.d.ts +2 -0
  278. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.d.ts.map +1 -0
  279. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.js +26 -0
  280. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.js.map +1 -0
  281. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js +80 -46
  282. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js.map +1 -1
  283. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js +118 -17
  284. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js.map +1 -1
  285. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.test.js +7 -6
  286. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.test.js.map +1 -1
  287. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.test.js +7 -5
  288. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.test.js.map +1 -1
  289. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.d.ts +2 -0
  290. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.d.ts.map +1 -0
  291. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js +63 -0
  292. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js.map +1 -0
  293. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.d.ts +2 -0
  294. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.d.ts.map +1 -0
  295. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js +94 -0
  296. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js.map +1 -0
  297. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.d.ts +2 -0
  298. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.d.ts.map +1 -0
  299. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js +42 -0
  300. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js.map +1 -0
  301. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.d.ts +2 -0
  302. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.d.ts.map +1 -0
  303. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js +65 -0
  304. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js.map +1 -0
  305. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.d.ts +2 -0
  306. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.d.ts.map +1 -0
  307. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.js +63 -0
  308. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.js.map +1 -0
  309. package/dist/tests/units/interface-adapters/gateways/reviewRequestTracking.gateway.test.js +2 -0
  310. package/dist/tests/units/interface-adapters/gateways/reviewRequestTracking.gateway.test.js.map +1 -1
  311. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.d.ts +2 -0
  312. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.d.ts.map +1 -0
  313. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js +33 -0
  314. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js.map +1 -0
  315. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.d.ts +2 -0
  316. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.d.ts.map +1 -0
  317. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js +38 -0
  318. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js.map +1 -0
  319. package/dist/tests/units/services/commentLinkEnricher.test.d.ts +2 -0
  320. package/dist/tests/units/services/commentLinkEnricher.test.d.ts.map +1 -0
  321. package/dist/tests/units/services/commentLinkEnricher.test.js +75 -0
  322. package/dist/tests/units/services/commentLinkEnricher.test.js.map +1 -0
  323. package/dist/tests/units/services/statsService.diffStats.test.d.ts +2 -0
  324. package/dist/tests/units/services/statsService.diffStats.test.d.ts.map +1 -0
  325. package/dist/tests/units/services/statsService.diffStats.test.js +61 -0
  326. package/dist/tests/units/services/statsService.diffStats.test.js.map +1 -0
  327. package/dist/tests/units/stubs/packageVersion.stub.test.d.ts +2 -0
  328. package/dist/tests/units/stubs/packageVersion.stub.test.d.ts.map +1 -0
  329. package/dist/tests/units/stubs/packageVersion.stub.test.js +20 -0
  330. package/dist/tests/units/stubs/packageVersion.stub.test.js.map +1 -0
  331. package/dist/tests/units/stubs/selfUpdate.stub.test.d.ts +2 -0
  332. package/dist/tests/units/stubs/selfUpdate.stub.test.d.ts.map +1 -0
  333. package/dist/tests/units/stubs/selfUpdate.stub.test.js +30 -0
  334. package/dist/tests/units/stubs/selfUpdate.stub.test.js.map +1 -0
  335. package/dist/tests/units/stubs/versionCache.stub.test.d.ts +2 -0
  336. package/dist/tests/units/stubs/versionCache.stub.test.d.ts.map +1 -0
  337. package/dist/tests/units/stubs/versionCache.stub.test.js +34 -0
  338. package/dist/tests/units/stubs/versionCache.stub.test.js.map +1 -0
  339. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.d.ts +2 -0
  340. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.d.ts.map +1 -0
  341. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js +83 -0
  342. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js.map +1 -0
  343. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.d.ts +2 -0
  344. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.d.ts.map +1 -0
  345. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js +186 -0
  346. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js.map +1 -0
  347. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.d.ts +2 -0
  348. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.d.ts.map +1 -0
  349. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js +130 -0
  350. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js.map +1 -0
  351. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.d.ts +2 -0
  352. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.d.ts.map +1 -0
  353. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js +138 -0
  354. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js.map +1 -0
  355. package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js +31 -2
  356. package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js.map +1 -1
  357. package/dist/tests/units/usecases/version/checkVersion.usecase.test.d.ts +2 -0
  358. package/dist/tests/units/usecases/version/checkVersion.usecase.test.d.ts.map +1 -0
  359. package/dist/tests/units/usecases/version/checkVersion.usecase.test.js +63 -0
  360. package/dist/tests/units/usecases/version/checkVersion.usecase.test.js.map +1 -0
  361. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.d.ts +2 -0
  362. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.d.ts.map +1 -0
  363. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js +21 -0
  364. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js.map +1 -0
  365. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts +13 -0
  366. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts.map +1 -0
  367. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js +41 -0
  368. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js.map +1 -0
  369. package/dist/usecases/stats/backfillDiffStats.usecase.d.ts +18 -0
  370. package/dist/usecases/stats/backfillDiffStats.usecase.d.ts.map +1 -0
  371. package/dist/usecases/stats/backfillDiffStats.usecase.js +43 -0
  372. package/dist/usecases/stats/backfillDiffStats.usecase.js.map +1 -0
  373. package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts +7 -0
  374. package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts.map +1 -0
  375. package/dist/usecases/stats/recalculateProjectStats.usecase.js +47 -0
  376. package/dist/usecases/stats/recalculateProjectStats.usecase.js.map +1 -0
  377. package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts +22 -0
  378. package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts.map +1 -0
  379. package/dist/usecases/stats/recalculateWithBackfill.usecase.js +33 -0
  380. package/dist/usecases/stats/recalculateWithBackfill.usecase.js.map +1 -0
  381. package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts +2 -0
  382. package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts.map +1 -1
  383. package/dist/usecases/tracking/recordReviewCompletion.usecase.js +1 -0
  384. package/dist/usecases/tracking/recordReviewCompletion.usecase.js.map +1 -1
  385. package/dist/usecases/version/checkVersion.usecase.d.ts +13 -0
  386. package/dist/usecases/version/checkVersion.usecase.d.ts.map +1 -0
  387. package/dist/usecases/version/checkVersion.usecase.js +20 -0
  388. package/dist/usecases/version/checkVersion.usecase.js.map +1 -0
  389. package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts +7 -0
  390. package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts.map +1 -0
  391. package/dist/usecases/version/triggerSelfUpdate.usecase.js +9 -0
  392. package/dist/usecases/version/triggerSelfUpdate.usecase.js.map +1 -0
  393. package/package.json +2 -1
@@ -51,6 +51,10 @@ function createEmptyStats() {
51
51
  averageDuration: 0,
52
52
  totalBlocking: 0,
53
53
  totalWarnings: 0,
54
+ totalAdditions: 0,
55
+ totalDeletions: 0,
56
+ averageAdditions: null,
57
+ averageDeletions: null,
54
58
  reviews: [],
55
59
  lastUpdated: new Date().toISOString(),
56
60
  };
@@ -60,15 +64,15 @@ function createEmptyStats() {
60
64
  *
61
65
  * Supports two formats:
62
66
  * 1. Summary format (from skill output):
63
- * 📊 Score global : X/10
64
- * 🚨 Bloquants : X
65
- * ⚠️ Importants : X
67
+ * Score global : X/10
68
+ * Bloquants : X
69
+ * Importants : X
66
70
  *
67
71
  * 2. Structured stats line:
68
72
  * [REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X]
69
73
  *
70
74
  * 3. Inline markers (fallback):
71
- * 🚨 [BLOQUANT], ⚠️ [IMPORTANT], 💡 [SUGGESTION]
75
+ * [BLOQUANT], [IMPORTANT], [SUGGESTION]
72
76
  */
73
77
  export function parseReviewOutput(stdout) {
74
78
  let score = null;
@@ -95,22 +99,18 @@ export function parseReviewOutput(stdout) {
95
99
  return { score, blocking, warnings, suggestions };
96
100
  }
97
101
  // Method 2: Parse summary format (skill output)
98
- // 📊 Score global : X/10
99
102
  const scoreMatch = stdout.match(/Score\s+[Gg]lobal\s*:\s*(\d+(?:\.\d+)?)\s*\/\s*10/i);
100
103
  if (scoreMatch) {
101
104
  score = Number.parseFloat(scoreMatch[1]);
102
105
  }
103
- // 🚨 Bloquants : X (summary count)
104
106
  const blockingSummary = stdout.match(/🚨\s*Bloquants?\s*:\s*(\d+)/i);
105
107
  if (blockingSummary) {
106
108
  blocking = Number.parseInt(blockingSummary[1], 10);
107
109
  }
108
- // ⚠️ Importants : X (summary count)
109
110
  const warningsSummary = stdout.match(/⚠️\s*Importants?\s*:\s*(\d+)/i);
110
111
  if (warningsSummary) {
111
112
  warnings = Number.parseInt(warningsSummary[1], 10);
112
113
  }
113
- // 📝 Améliorations/Suggestions : X (summary count)
114
114
  const suggestionsSummary = stdout.match(/(?:📝|💡)\s*(?:Améliorations?|Suggestions?)[^:]*:\s*(\d+)/i);
115
115
  if (suggestionsSummary) {
116
116
  suggestions = Number.parseInt(suggestionsSummary[1], 10);
@@ -120,12 +120,10 @@ export function parseReviewOutput(stdout) {
120
120
  return { score, blocking, warnings, suggestions };
121
121
  }
122
122
  // Method 3: Fallback - count inline markers
123
- // 🚨 [BLOQUANT] or 🚨 **[BLOQUANT]**
124
123
  const blockingMatches = stdout.match(/🚨\s*\*?\*?\[BLOQUANT\]/gi);
125
124
  if (blockingMatches) {
126
125
  blocking = blockingMatches.length;
127
126
  }
128
- // Alternative: count "### " headers under "## Corrections Bloquantes"
129
127
  const blockingSection = stdout.match(/##\s+Corrections?\s+Bloquantes?[\s\S]*?(?=##\s|$)/i);
130
128
  if (blockingSection) {
131
129
  const blockingHeaders = blockingSection[0].match(/^###\s+\d+\./gm);
@@ -133,12 +131,10 @@ export function parseReviewOutput(stdout) {
133
131
  blocking = blockingHeaders.length;
134
132
  }
135
133
  }
136
- // ⚠️ [IMPORTANT] or ⚠️ **[IMPORTANT]**
137
134
  const warningMatches = stdout.match(/⚠️\s*\*?\*?\[IMPORTANT\]/gi);
138
135
  if (warningMatches) {
139
136
  warnings = warningMatches.length;
140
137
  }
141
- // Alternative: count "### " headers under "## Corrections Importantes"
142
138
  const warningSection = stdout.match(/##\s+Corrections?\s+Importantes?[\s\S]*?(?=##\s|$)/i);
143
139
  if (warningSection) {
144
140
  const warningHeaders = warningSection[0].match(/^###\s+\d+\./gm);
@@ -146,12 +142,10 @@ export function parseReviewOutput(stdout) {
146
142
  warnings = warningHeaders.length;
147
143
  }
148
144
  }
149
- // 💡 [SUGGESTION] or 💡 **[SUGGESTION]**
150
145
  const suggestionMatches = stdout.match(/💡\s*\*?\*?\[SUGGESTION\]/gi);
151
146
  if (suggestionMatches) {
152
147
  suggestions = suggestionMatches.length;
153
148
  }
154
- // Alternative: count "### " headers under "## Suggestions"
155
149
  const suggestionSection = stdout.match(/##\s+Suggestions?[\s\S]*?(?=##\s|$)/i);
156
150
  if (suggestionSection) {
157
151
  const suggestionHeaders = suggestionSection[0].match(/^###\s+\d+\./gm);
@@ -164,7 +158,7 @@ export function parseReviewOutput(stdout) {
164
158
  /**
165
159
  * Add a review to project statistics
166
160
  */
167
- export function addReviewStats(projectPath, mrNumber, duration, stdout, assignedBy) {
161
+ export function addReviewStats(projectPath, mrNumber, duration, stdout, assignedBy, diffStats) {
168
162
  const stats = loadProjectStats(projectPath);
169
163
  const parsed = parseReviewOutput(stdout);
170
164
  const now = new Date();
@@ -178,20 +172,22 @@ export function addReviewStats(projectPath, mrNumber, duration, stdout, assigned
178
172
  warnings: parsed.warnings,
179
173
  suggestions: parsed.suggestions,
180
174
  assignedBy,
175
+ diffStats: diffStats ?? null,
181
176
  };
182
- // Add to reviews array
183
177
  stats.reviews.push(reviewStats);
184
- // Keep only last 100 reviews
185
178
  if (stats.reviews.length > 100) {
186
179
  stats.reviews = stats.reviews.slice(-100);
187
180
  }
188
- // Recalculate aggregates
181
+ recalculateProjectStats(stats);
182
+ saveProjectStats(projectPath, stats);
183
+ return reviewStats;
184
+ }
185
+ function recalculateProjectStats(stats) {
189
186
  stats.totalReviews = stats.reviews.length;
190
187
  stats.totalDuration = stats.reviews.reduce((sum, r) => sum + r.duration, 0);
191
- stats.averageDuration = stats.totalDuration / stats.totalReviews;
188
+ stats.averageDuration = stats.totalReviews > 0 ? stats.totalDuration / stats.totalReviews : 0;
192
189
  stats.totalBlocking = stats.reviews.reduce((sum, r) => sum + r.blocking, 0);
193
190
  stats.totalWarnings = stats.reviews.reduce((sum, r) => sum + r.warnings, 0);
194
- // Calculate average score (only from reviews with scores)
195
191
  const reviewsWithScore = stats.reviews.filter((r) => r.score !== null);
196
192
  if (reviewsWithScore.length > 0) {
197
193
  stats.averageScore =
@@ -200,8 +196,17 @@ export function addReviewStats(projectPath, mrNumber, duration, stdout, assigned
200
196
  else {
201
197
  stats.averageScore = null;
202
198
  }
203
- saveProjectStats(projectPath, stats);
204
- return reviewStats;
199
+ const reviewsWithDiffStats = stats.reviews.filter((r) => r.diffStats != null);
200
+ stats.totalAdditions = reviewsWithDiffStats.reduce((sum, r) => sum + (r.diffStats?.additions ?? 0), 0);
201
+ stats.totalDeletions = reviewsWithDiffStats.reduce((sum, r) => sum + (r.diffStats?.deletions ?? 0), 0);
202
+ if (reviewsWithDiffStats.length > 0) {
203
+ stats.averageAdditions = stats.totalAdditions / reviewsWithDiffStats.length;
204
+ stats.averageDeletions = stats.totalDeletions / reviewsWithDiffStats.length;
205
+ }
206
+ else {
207
+ stats.averageAdditions = null;
208
+ stats.averageDeletions = null;
209
+ }
205
210
  }
206
211
  /**
207
212
  * Get statistics summary for display
@@ -1 +1 @@
1
- {"version":3,"file":"statsService.js","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statsService.js","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"threadActionsExecutor.d.ts","sourceRoot":"","sources":["../../src/services/threadActionsExecutor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAG5E,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAIxG;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAA;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,4CAA4C,EAAE,YAAY,CAAA;CACjF;AAED,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AAEhD,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAUpC,CAAA"}
1
+ {"version":3,"file":"threadActionsExecutor.d.ts","sourceRoot":"","sources":["../../src/services/threadActionsExecutor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAG5E,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAA+C,MAAM,kDAAkD,CAAA;AAIrJ;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAA;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,4CAA4C,EAAE,YAAY,CAAA;CACjF;AAED,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AAEhD,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CAe1B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAUpC,CAAA"}
@@ -11,6 +11,7 @@ export async function executeThreadActions(actions, context, _logger, executor)
11
11
  mrNumber: context.mrNumber,
12
12
  localPath: context.localPath,
13
13
  diffMetadata: context.diffMetadata,
14
+ baseUrl: null,
14
15
  };
15
16
  const gateway = context.platform === 'gitlab'
16
17
  ? new GitLabReviewActionCliGateway(executor)
@@ -1 +1 @@
1
- {"version":3,"file":"threadActionsExecutor.js","sourceRoot":"","sources":["../../src/services/threadActionsExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uEAAuE,CAAA;AACpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,uEAAuE,CAAA;AAGpH,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAwBhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,OAAyB,EACzB,OAAe,EACf,QAAyB;IAEzB,MAAM,cAAc,GAAG;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAA;IAED,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,4BAA4B,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAEhD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAoB,CACrD,OAAe,EACf,IAAc,EACd,GAAW,EACL,EAAE;IACR,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACjF,GAAG;QACH,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"threadActionsExecutor.js","sourceRoot":"","sources":["../../src/services/threadActionsExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uEAAuE,CAAA;AACpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,uEAAuE,CAAA;AAGpH,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAwBhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,OAAyB,EACzB,OAAe,EACf,QAAyB;IAEzB,MAAM,cAAc,GAA4B;QAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,IAAI;KACd,CAAA;IAED,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,4BAA4B,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAEhD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAoB,CACrD,OAAe,EACf,IAAc,EACd,GAAW,EACL,EAAE;IACR,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACjF,GAAG;QACH,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type SimpleCommandExecutor = (command: string) => string;
2
+ //# sourceMappingURL=commandExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandExecutor.d.ts","sourceRoot":"","sources":["../../../src/shared/foundation/commandExecutor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commandExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandExecutor.js","sourceRoot":"","sources":["../../../src/shared/foundation/commandExecutor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { DiffStats } from '../../entities/diffStats/diffStats.js';
2
+ export declare class DiffStatsFactory {
3
+ static create(overrides?: Partial<DiffStats>): DiffStats;
4
+ }
5
+ //# sourceMappingURL=diffStats.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffStats.factory.d.ts","sourceRoot":"","sources":["../../../src/tests/factories/diffStats.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS;CAQ7D"}
@@ -0,0 +1,11 @@
1
+ export class DiffStatsFactory {
2
+ static create(overrides = {}) {
3
+ return {
4
+ commitsCount: 3,
5
+ additions: 150,
6
+ deletions: 30,
7
+ ...overrides,
8
+ };
9
+ }
10
+ }
11
+ //# sourceMappingURL=diffStats.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffStats.factory.js","sourceRoot":"","sources":["../../../src/tests/factories/diffStats.factory.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,MAAM,CAAC,YAAgC,EAAE;QAC9C,OAAO;YACL,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,EAAE;YACb,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { VersionCheckResult } from '../../entities/packageVersion/packageVersion.js';
2
+ import type { NpmRegistryResponse } from '../../entities/packageVersion/packageVersion.schema.js';
3
+ export declare class PackageVersionFactory {
4
+ static createVersionCheckResult(overrides?: Partial<VersionCheckResult>): VersionCheckResult;
5
+ static createNpmRegistryResponse(overrides?: Partial<NpmRegistryResponse>): NpmRegistryResponse;
6
+ }
7
+ //# sourceMappingURL=packageVersion.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageVersion.factory.d.ts","sourceRoot":"","sources":["../../../src/tests/factories/packageVersion.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AAE7F,qBAAa,qBAAqB;IAChC,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAU5F,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB;CAMhG"}
@@ -0,0 +1,18 @@
1
+ export class PackageVersionFactory {
2
+ static createVersionCheckResult(overrides) {
3
+ return {
4
+ currentVersion: '1.0.0',
5
+ latestVersion: '2.0.0',
6
+ updateAvailable: true,
7
+ checkedAt: '2026-03-14T10:00:00Z',
8
+ ...overrides,
9
+ };
10
+ }
11
+ static createNpmRegistryResponse(overrides) {
12
+ return {
13
+ version: '2.0.0',
14
+ ...overrides,
15
+ };
16
+ }
17
+ }
18
+ //# sourceMappingURL=packageVersion.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageVersion.factory.js","sourceRoot":"","sources":["../../../src/tests/factories/packageVersion.factory.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,wBAAwB,CAAC,SAAuC;QACrE,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,OAAO;YACtB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,sBAAsB;YACjC,GAAG,SAAS;SACb,CAAA;IACH,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,SAAwC;QACvE,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,GAAG,SAAS;SACb,CAAA;IACH,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
- import type { ProjectStats, ReviewStats } from '../../services/statsService.js';
1
+ import type { ProjectStats, ReviewStats } from '../../entities/stats/projectStats.js';
2
+ import type { DiffStats } from '../../entities/diffStats/diffStats.js';
2
3
  export declare class ReviewStatsFactory {
3
4
  static create(overrides?: Partial<ReviewStats>): ReviewStats;
5
+ static withDiffStats(diffStats: DiffStats, overrides?: Partial<ReviewStats>): ReviewStats;
4
6
  }
5
7
  export declare class ProjectStatsFactory {
6
8
  static create(overrides?: Partial<ProjectStats>): ProjectStats;
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.factory.d.ts","sourceRoot":"","sources":["../../../src/tests/factories/projectStats.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW;CAcjE;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY;IAclE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,YAAY;CAiBzD"}
1
+ {"version":3,"file":"projectStats.factory.d.ts","sourceRoot":"","sources":["../../../src/tests/factories/projectStats.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW;IAehE,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW;CAG9F;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY;IAkBlE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,YAAY;CAyBzD"}
@@ -13,6 +13,9 @@ export class ReviewStatsFactory {
13
13
  ...overrides,
14
14
  };
15
15
  }
16
+ static withDiffStats(diffStats, overrides = {}) {
17
+ return this.create({ diffStats, ...overrides });
18
+ }
16
19
  }
17
20
  export class ProjectStatsFactory {
18
21
  static create(overrides = {}) {
@@ -23,6 +26,10 @@ export class ProjectStatsFactory {
23
26
  averageDuration: 0,
24
27
  totalBlocking: 0,
25
28
  totalWarnings: 0,
29
+ totalAdditions: 0,
30
+ totalDeletions: 0,
31
+ averageAdditions: null,
32
+ averageDeletions: null,
26
33
  reviews: [],
27
34
  lastUpdated: '2024-01-15T10:00:00Z',
28
35
  ...overrides,
@@ -30,10 +37,13 @@ export class ProjectStatsFactory {
30
37
  }
31
38
  static withReviews(reviews) {
32
39
  const totalDuration = reviews.reduce((sum, r) => sum + r.duration, 0);
33
- const scores = reviews.filter((r) => r.score !== null).map((r) => r.score);
34
- const averageScore = scores.length > 0
35
- ? scores.reduce((a, b) => a + b, 0) / scores.length
40
+ const reviewsWithScore = reviews.filter((r) => r.score !== null);
41
+ const averageScore = reviewsWithScore.length > 0
42
+ ? reviewsWithScore.reduce((sum, r) => sum + (r.score ?? 0), 0) / reviewsWithScore.length
36
43
  : null;
44
+ const reviewsWithDiffStats = reviews.filter((r) => r.diffStats != null);
45
+ const totalAdditions = reviewsWithDiffStats.reduce((sum, r) => sum + (r.diffStats?.additions ?? 0), 0);
46
+ const totalDeletions = reviewsWithDiffStats.reduce((sum, r) => sum + (r.diffStats?.deletions ?? 0), 0);
37
47
  return this.create({
38
48
  totalReviews: reviews.length,
39
49
  totalDuration,
@@ -41,6 +51,10 @@ export class ProjectStatsFactory {
41
51
  averageDuration: reviews.length > 0 ? totalDuration / reviews.length : 0,
42
52
  totalBlocking: reviews.reduce((sum, r) => sum + r.blocking, 0),
43
53
  totalWarnings: reviews.reduce((sum, r) => sum + r.warnings, 0),
54
+ totalAdditions,
55
+ totalDeletions,
56
+ averageAdditions: reviewsWithDiffStats.length > 0 ? totalAdditions / reviewsWithDiffStats.length : null,
57
+ averageDeletions: reviewsWithDiffStats.length > 0 ? totalDeletions / reviewsWithDiffStats.length : null,
44
58
  reviews,
45
59
  });
46
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.factory.js","sourceRoot":"","sources":["../../../src/tests/factories/projectStats.factory.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CAAC,YAAkC,EAAE;QAChD,OAAO;YACL,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,SAAS,EAAE,sBAAsB;YACjC,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,WAAW;YACvB,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IAC9B,MAAM,CAAC,MAAM,CAAC,YAAmC,EAAE;QACjD,OAAO;YACL,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,sBAAsB;YACnC,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAsB;QACvC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM;YACnD,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,aAAa;YACb,YAAY;YACZ,eAAe,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"projectStats.factory.js","sourceRoot":"","sources":["../../../src/tests/factories/projectStats.factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DiffStats } from '../../entities/diffStats/diffStats.js';
2
+ import type { DiffStatsFetchGateway } from '../../entities/diffStats/diffStatsFetch.gateway.js';
3
+ export declare class StubDiffStatsFetchGateway implements DiffStatsFetchGateway {
4
+ private responses;
5
+ private failingMergeRequests;
6
+ fetchCallCount: number;
7
+ fetchDiffStats(_projectPath: string, mergeRequestNumber: number): DiffStats | null;
8
+ setResponse(mergeRequestNumber: number, diffStats: DiffStats | null): void;
9
+ setFailure(mergeRequestNumber: number): void;
10
+ }
11
+ //# sourceMappingURL=diffStatsFetch.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffStatsFetch.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/diffStatsFetch.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAE5F,qBAAa,yBAA0B,YAAW,qBAAqB;IACrE,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,cAAc,SAAK;IAEnB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAUlF,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAI1E,UAAU,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;CAG7C"}
@@ -0,0 +1,19 @@
1
+ export class StubDiffStatsFetchGateway {
2
+ responses = new Map();
3
+ failingMergeRequests = new Set();
4
+ fetchCallCount = 0;
5
+ fetchDiffStats(_projectPath, mergeRequestNumber) {
6
+ this.fetchCallCount++;
7
+ if (this.failingMergeRequests.has(mergeRequestNumber)) {
8
+ throw new Error(`API error for MR ${mergeRequestNumber}`);
9
+ }
10
+ return this.responses.get(mergeRequestNumber) ?? null;
11
+ }
12
+ setResponse(mergeRequestNumber, diffStats) {
13
+ this.responses.set(mergeRequestNumber, diffStats);
14
+ }
15
+ setFailure(mergeRequestNumber) {
16
+ this.failingMergeRequests.add(mergeRequestNumber);
17
+ }
18
+ }
19
+ //# sourceMappingURL=diffStatsFetch.stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffStatsFetch.stub.js","sourceRoot":"","sources":["../../../src/tests/stubs/diffStatsFetch.stub.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAC5B,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,cAAc,GAAG,CAAC,CAAC;IAEnB,cAAc,CAAC,YAAoB,EAAE,kBAA0B;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,kBAA0B,EAAE,SAA2B;QACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,kBAA0B;QACnC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { PackageVersionGateway } from '../../entities/packageVersion/packageVersion.gateway.js';
2
+ export declare class StubPackageVersionGateway implements PackageVersionGateway {
3
+ private readonly latestVersion;
4
+ constructor(latestVersion?: string | null);
5
+ fetchLatestVersion(): Promise<string | null>;
6
+ }
7
+ //# sourceMappingURL=packageVersion.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageVersion.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/packageVersion.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA;AAEhG,qBAAa,yBAA0B,YAAW,qBAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,aAAa,GAAE,MAAM,GAAG,IAAW;IAIzC,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGnD"}
@@ -0,0 +1,10 @@
1
+ export class StubPackageVersionGateway {
2
+ latestVersion;
3
+ constructor(latestVersion = null) {
4
+ this.latestVersion = latestVersion;
5
+ }
6
+ async fetchLatestVersion() {
7
+ return this.latestVersion;
8
+ }
9
+ }
10
+ //# sourceMappingURL=packageVersion.stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageVersion.stub.js","sourceRoot":"","sources":["../../../src/tests/stubs/packageVersion.stub.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAAyB;IACnB,aAAa,CAAe;IAE7C,YAAY,gBAA+B,IAAI;QAC7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { ReviewLogFileGateway, LogFileInfo } from '../../interface-adapters/gateways/reviewLogFile.gateway.js';
2
+ interface LogFileEntry {
3
+ mtime: string;
4
+ size: number;
5
+ }
6
+ export declare class InMemoryReviewLogFileGateway implements ReviewLogFileGateway {
7
+ private files;
8
+ listLogFiles(projectPath: string): Promise<LogFileInfo[]>;
9
+ deleteLogFile(projectPath: string, filename: string): Promise<boolean>;
10
+ getLogsDirectory(projectPath: string): string;
11
+ addLogFile(projectPath: string, filename: string, entry: LogFileEntry): void;
12
+ clear(): void;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=reviewLogFile.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewLogFile.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/reviewLogFile.stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAEhH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,4BAA6B,YAAW,oBAAoB;IACvE,OAAO,CAAC,KAAK,CAAmC;IAE1C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmBzD,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5E,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI7C,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAK5E,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,35 @@
1
+ import { join } from 'node:path';
2
+ export class InMemoryReviewLogFileGateway {
3
+ files = new Map();
4
+ async listLogFiles(projectPath) {
5
+ const prefix = this.getLogsDirectory(projectPath) + '/';
6
+ const logFiles = [];
7
+ for (const [filePath, entry] of this.files.entries()) {
8
+ if (!filePath.startsWith(prefix))
9
+ continue;
10
+ const filename = filePath.slice(prefix.length);
11
+ logFiles.push({
12
+ filename,
13
+ path: filePath,
14
+ mtime: entry.mtime,
15
+ size: entry.size,
16
+ });
17
+ }
18
+ return logFiles;
19
+ }
20
+ async deleteLogFile(projectPath, filename) {
21
+ const filePath = join(this.getLogsDirectory(projectPath), filename);
22
+ return this.files.delete(filePath);
23
+ }
24
+ getLogsDirectory(projectPath) {
25
+ return join(projectPath, '.claude', 'reviews', 'logs');
26
+ }
27
+ addLogFile(projectPath, filename, entry) {
28
+ const filePath = join(this.getLogsDirectory(projectPath), filename);
29
+ this.files.set(filePath, entry);
30
+ }
31
+ clear() {
32
+ this.files.clear();
33
+ }
34
+ }
35
+ //# sourceMappingURL=reviewLogFile.stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewLogFile.stub.js","sourceRoot":"","sources":["../../../src/tests/stubs/reviewLogFile.stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,MAAM,OAAO,4BAA4B;IAC/B,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEhD,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACxD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,QAAgB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,WAAmB,EAAE,QAAgB,EAAE,KAAmB;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { SelfUpdateCommandPort } from '../../entities/packageVersion/selfUpdateCommand.gateway.js';
2
+ export declare class StubSelfUpdateCommand implements SelfUpdateCommandPort {
3
+ private readonly shouldSucceed;
4
+ private readonly errorMessage;
5
+ constructor(shouldSucceed?: boolean, errorMessage?: string | null);
6
+ runGlobalUpdate(): Promise<{
7
+ success: boolean;
8
+ error: string | null;
9
+ }>;
10
+ restartDaemon(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=selfUpdate.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfUpdate.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/selfUpdate.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAA;AAEnG,qBAAa,qBAAsB,YAAW,qBAAqB;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,aAAa,UAAO,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW;IAK9D,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAOtE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
@@ -0,0 +1,18 @@
1
+ export class StubSelfUpdateCommand {
2
+ shouldSucceed;
3
+ errorMessage;
4
+ constructor(shouldSucceed = true, errorMessage = null) {
5
+ this.shouldSucceed = shouldSucceed;
6
+ this.errorMessage = errorMessage;
7
+ }
8
+ async runGlobalUpdate() {
9
+ if (this.shouldSucceed) {
10
+ return { success: true, error: null };
11
+ }
12
+ return { success: false, error: this.errorMessage };
13
+ }
14
+ async restartDaemon() {
15
+ return;
16
+ }
17
+ }
18
+ //# sourceMappingURL=selfUpdate.stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfUpdate.stub.js","sourceRoot":"","sources":["../../../src/tests/stubs/selfUpdate.stub.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IACf,aAAa,CAAS;IACtB,YAAY,CAAe;IAE5C,YAAY,aAAa,GAAG,IAAI,EAAE,eAA8B,IAAI;QAClE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACvC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAM;IACR,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import type { StatsGateway } from '../../interface-adapters/gateways/stats.gateway.js';
2
- import type { ProjectStats } from '../../services/statsService.js';
1
+ import type { StatsGateway } from '../../entities/stats/stats.gateway.js';
2
+ import type { ProjectStats } from '../../entities/stats/projectStats.js';
3
3
  export declare class InMemoryStatsGateway implements StatsGateway {
4
4
  private storage;
5
5
  loadProjectStats(projectPath: string): ProjectStats | null;
@@ -1 +1 @@
1
- {"version":3,"file":"stats.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/stats.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,OAAO,CAAmC;IAElD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI1D,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAKhE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI7C,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"stats.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/stats.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,OAAO,CAAmC;IAElD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI1D,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAKhE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI7C,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,11 @@
1
+ import type { VersionCheckResult } from '../../entities/packageVersion/packageVersion.js';
2
+ import type { VersionCachePort } from '../../entities/packageVersion/versionCache.gateway.js';
3
+ export declare class StubVersionCache implements VersionCachePort {
4
+ private cachedValue;
5
+ private expired;
6
+ constructor(cachedValue?: VersionCheckResult | null, expired?: boolean);
7
+ get(): VersionCheckResult | null;
8
+ set(result: VersionCheckResult): void;
9
+ isExpired(): boolean;
10
+ }
11
+ //# sourceMappingURL=versionCache.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionCache.stub.d.ts","sourceRoot":"","sources":["../../../src/tests/stubs/versionCache.stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAA;AAEzF,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,GAAE,kBAAkB,GAAG,IAAW,EAAE,OAAO,UAAO;IAKzE,GAAG,IAAI,kBAAkB,GAAG,IAAI;IAIhC,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIrC,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,18 @@
1
+ export class StubVersionCache {
2
+ cachedValue;
3
+ expired;
4
+ constructor(cachedValue = null, expired = true) {
5
+ this.cachedValue = cachedValue;
6
+ this.expired = expired;
7
+ }
8
+ get() {
9
+ return this.cachedValue;
10
+ }
11
+ set(result) {
12
+ this.cachedValue = result;
13
+ }
14
+ isExpired() {
15
+ return this.expired;
16
+ }
17
+ }
18
+ //# sourceMappingURL=versionCache.stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionCache.stub.js","sourceRoot":"","sources":["../../../src/tests/stubs/versionCache.stub.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACnB,WAAW,CAA2B;IACtC,OAAO,CAAS;IAExB,YAAY,cAAyC,IAAI,EAAE,OAAO,GAAG,IAAI;QACvE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,GAAG,CAAC,MAA0B;QAC5B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}