reviewflow 3.10.0 → 3.12.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 (2000) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/config/projectConfig.d.ts +3 -3
  3. package/dist/config/projectConfig.d.ts.map +1 -1
  4. package/dist/dashboard/index.html +2826 -0
  5. package/dist/dashboard/modules/assignee.d.ts.map +1 -0
  6. package/dist/dashboard/modules/assignee.js.map +1 -0
  7. package/dist/dashboard/modules/budgetSettings.d.ts +70 -0
  8. package/dist/dashboard/modules/budgetSettings.d.ts.map +1 -0
  9. package/dist/dashboard/modules/budgetSettings.js +159 -0
  10. package/dist/dashboard/modules/budgetSettings.js.map +1 -0
  11. package/dist/dashboard/modules/cleanup.d.ts.map +1 -0
  12. package/dist/dashboard/modules/cleanup.js.map +1 -0
  13. package/dist/dashboard/modules/collapsibleList.d.ts.map +1 -0
  14. package/dist/dashboard/modules/collapsibleList.js.map +1 -0
  15. package/dist/dashboard/modules/constants.d.ts.map +1 -0
  16. package/dist/dashboard/modules/constants.js.map +1 -0
  17. package/dist/dashboard/modules/desktopNotifications.d.ts.map +1 -0
  18. package/dist/dashboard/modules/desktopNotifications.js.map +1 -0
  19. package/dist/dashboard/modules/developerSheet.d.ts.map +1 -0
  20. package/dist/dashboard/modules/developerSheet.js.map +1 -0
  21. package/dist/dashboard/modules/formatting.d.ts.map +1 -0
  22. package/dist/dashboard/modules/formatting.js.map +1 -0
  23. package/dist/dashboard/modules/html.d.ts.map +1 -0
  24. package/dist/dashboard/modules/html.js.map +1 -0
  25. package/dist/dashboard/modules/i18n.d.ts.map +1 -0
  26. package/dist/dashboard/modules/i18n.js +800 -0
  27. package/dist/dashboard/modules/i18n.js.map +1 -0
  28. package/dist/dashboard/modules/icons.d.ts.map +1 -0
  29. package/dist/dashboard/modules/icons.js.map +1 -0
  30. package/dist/dashboard/modules/insightsReport.d.ts.map +1 -0
  31. package/dist/dashboard/modules/insightsReport.js.map +1 -0
  32. package/dist/dashboard/modules/loading.d.ts.map +1 -0
  33. package/dist/dashboard/modules/loading.js.map +1 -0
  34. package/dist/dashboard/modules/mrSheet.d.ts.map +1 -0
  35. package/dist/dashboard/modules/mrSheet.js.map +1 -0
  36. package/dist/dashboard/modules/notifications.d.ts.map +1 -0
  37. package/dist/dashboard/modules/notifications.js.map +1 -0
  38. package/dist/dashboard/modules/priority.d.ts.map +1 -0
  39. package/dist/dashboard/modules/priority.js.map +1 -0
  40. package/dist/dashboard/modules/quality.d.ts.map +1 -0
  41. package/dist/dashboard/modules/quality.js.map +1 -0
  42. package/dist/dashboard/modules/queueLanes.d.ts.map +1 -0
  43. package/dist/dashboard/modules/queueLanes.js.map +1 -0
  44. package/dist/dashboard/modules/sessionMetrics.d.ts.map +1 -0
  45. package/dist/dashboard/modules/sessionMetrics.js.map +1 -0
  46. package/dist/dashboard/modules/sharedViewHelpers.d.ts.map +1 -0
  47. package/dist/dashboard/modules/sharedViewHelpers.js.map +1 -0
  48. package/dist/dashboard/modules/statsCharts.d.ts.map +1 -0
  49. package/dist/dashboard/modules/statsCharts.js.map +1 -0
  50. package/dist/dashboard/modules/teamTab.d.ts.map +1 -0
  51. package/dist/dashboard/modules/teamTab.js.map +1 -0
  52. package/dist/dashboard/modules/tokenUsage.d.ts +37 -0
  53. package/dist/dashboard/modules/tokenUsage.d.ts.map +1 -0
  54. package/dist/dashboard/modules/tokenUsage.js +118 -0
  55. package/dist/dashboard/modules/tokenUsage.js.map +1 -0
  56. package/dist/dashboard/modules/versionUpdate.d.ts +17 -0
  57. package/dist/dashboard/modules/versionUpdate.d.ts.map +1 -0
  58. package/dist/dashboard/modules/versionUpdate.js +63 -0
  59. package/dist/dashboard/modules/versionUpdate.js.map +1 -0
  60. package/dist/dashboard/styles.css +4109 -0
  61. package/dist/frameworks/claude/broadcastBudgetAfterUsage.d.ts +13 -0
  62. package/dist/frameworks/claude/broadcastBudgetAfterUsage.d.ts.map +1 -0
  63. package/dist/frameworks/claude/broadcastBudgetAfterUsage.js +10 -0
  64. package/dist/frameworks/claude/broadcastBudgetAfterUsage.js.map +1 -0
  65. package/dist/frameworks/claude/claudeInsightsInvoker.d.ts +1 -1
  66. package/dist/frameworks/claude/claudeInsightsInvoker.d.ts.map +1 -1
  67. package/dist/frameworks/claude/claudeInvoker.d.ts +43 -4
  68. package/dist/frameworks/claude/claudeInvoker.d.ts.map +1 -1
  69. package/dist/frameworks/claude/claudeInvoker.js +62 -30
  70. package/dist/frameworks/claude/claudeInvoker.js.map +1 -1
  71. package/dist/frameworks/claude/languageDirective.d.ts +1 -1
  72. package/dist/frameworks/claude/languageDirective.d.ts.map +1 -1
  73. package/dist/frameworks/claude/progressParser.d.ts +2 -2
  74. package/dist/frameworks/claude/progressParser.d.ts.map +1 -1
  75. package/dist/frameworks/claude/progressParser.js +2 -2
  76. package/dist/frameworks/claude/progressParser.js.map +1 -1
  77. package/dist/frameworks/claude/streamJsonParser.d.ts +1 -1
  78. package/dist/frameworks/claude/streamJsonParser.d.ts.map +1 -1
  79. package/dist/frameworks/queue/pQueueAdapter.d.ts +3 -3
  80. package/dist/frameworks/queue/pQueueAdapter.d.ts.map +1 -1
  81. package/dist/frameworks/scheduler/cleanupScheduler.d.ts +2 -2
  82. package/dist/frameworks/scheduler/cleanupScheduler.d.ts.map +1 -1
  83. package/dist/frameworks/scheduler/cleanupScheduler.js +1 -1
  84. package/dist/frameworks/scheduler/cleanupScheduler.js.map +1 -1
  85. package/dist/frameworks/settings/runtimeSettings.d.ts +1 -1
  86. package/dist/frameworks/settings/runtimeSettings.d.ts.map +1 -1
  87. package/dist/main/cli.d.ts +8 -8
  88. package/dist/main/cli.d.ts.map +1 -1
  89. package/dist/main/cli.js +11 -11
  90. package/dist/main/cli.js.map +1 -1
  91. package/dist/main/dependencies.d.ts +8 -8
  92. package/dist/main/dependencies.d.ts.map +1 -1
  93. package/dist/main/dependencies.js +9 -9
  94. package/dist/main/dependencies.js.map +1 -1
  95. package/dist/main/mcpDependencies.d.ts +4 -4
  96. package/dist/main/mcpDependencies.d.ts.map +1 -1
  97. package/dist/main/mcpDependencies.js +2 -2
  98. package/dist/main/mcpDependencies.js.map +1 -1
  99. package/dist/main/routes.d.ts.map +1 -1
  100. package/dist/main/routes.js +106 -33
  101. package/dist/main/routes.js.map +1 -1
  102. package/dist/main/websocket.d.ts +14 -2
  103. package/dist/main/websocket.d.ts.map +1 -1
  104. package/dist/main/websocket.js +30 -0
  105. package/dist/main/websocket.js.map +1 -1
  106. package/dist/mcp/mcpServerStdio.js +7 -7
  107. package/dist/mcp/mcpServerStdio.js.map +1 -1
  108. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.guard.d.ts +12 -0
  109. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.guard.d.ts.map +1 -0
  110. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.guard.js +15 -0
  111. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.guard.js.map +1 -0
  112. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.schema.d.ts.map +1 -0
  113. package/dist/modules/cli-configuration/entities/mcpSettings/mcpSettings.schema.js.map +1 -0
  114. package/dist/modules/cli-configuration/entities/packageVersion/installType.d.ts +2 -0
  115. package/dist/modules/cli-configuration/entities/packageVersion/installType.d.ts.map +1 -0
  116. package/dist/modules/cli-configuration/entities/packageVersion/installType.js +2 -0
  117. package/dist/modules/cli-configuration/entities/packageVersion/installType.js.map +1 -0
  118. package/dist/modules/cli-configuration/entities/packageVersion/installTypeDetector.gateway.d.ts +5 -0
  119. package/dist/modules/cli-configuration/entities/packageVersion/installTypeDetector.gateway.d.ts.map +1 -0
  120. package/dist/modules/cli-configuration/entities/packageVersion/installTypeDetector.gateway.js +2 -0
  121. package/dist/modules/cli-configuration/entities/packageVersion/installTypeDetector.gateway.js.map +1 -0
  122. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.d.ts +26 -0
  123. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.d.ts.map +1 -0
  124. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.gateway.d.ts.map +1 -0
  125. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.gateway.js.map +1 -0
  126. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.guard.d.ts +7 -0
  127. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.guard.d.ts.map +1 -0
  128. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.guard.js +13 -0
  129. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.guard.js.map +1 -0
  130. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.js.map +1 -0
  131. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.schema.d.ts +16 -0
  132. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.schema.d.ts.map +1 -0
  133. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.schema.js +12 -0
  134. package/dist/modules/cli-configuration/entities/packageVersion/packageVersion.schema.js.map +1 -0
  135. package/dist/modules/cli-configuration/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +1 -0
  136. package/dist/modules/cli-configuration/entities/packageVersion/selfUpdateCommand.gateway.js.map +1 -0
  137. package/dist/modules/cli-configuration/entities/packageVersion/versionCache.gateway.d.ts +7 -0
  138. package/dist/modules/cli-configuration/entities/packageVersion/versionCache.gateway.d.ts.map +1 -0
  139. package/dist/modules/cli-configuration/entities/packageVersion/versionCache.gateway.js.map +1 -0
  140. package/dist/modules/cli-configuration/interface-adapters/controllers/http/cliStatus.routes.d.ts.map +1 -0
  141. package/dist/modules/cli-configuration/interface-adapters/controllers/http/cliStatus.routes.js +173 -0
  142. package/dist/modules/cli-configuration/interface-adapters/controllers/http/cliStatus.routes.js.map +1 -0
  143. package/dist/modules/cli-configuration/interface-adapters/controllers/http/health.routes.d.ts +11 -0
  144. package/dist/modules/cli-configuration/interface-adapters/controllers/http/health.routes.d.ts.map +1 -0
  145. package/dist/modules/cli-configuration/interface-adapters/controllers/http/health.routes.js +27 -0
  146. package/dist/modules/cli-configuration/interface-adapters/controllers/http/health.routes.js.map +1 -0
  147. package/dist/modules/cli-configuration/interface-adapters/controllers/http/logs.routes.d.ts.map +1 -0
  148. package/dist/modules/cli-configuration/interface-adapters/controllers/http/logs.routes.js +12 -0
  149. package/dist/modules/cli-configuration/interface-adapters/controllers/http/logs.routes.js.map +1 -0
  150. package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.d.ts.map +1 -0
  151. package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.js +75 -0
  152. package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.js.map +1 -0
  153. package/dist/modules/cli-configuration/interface-adapters/controllers/http/settings.routes.d.ts.map +1 -0
  154. package/dist/modules/cli-configuration/interface-adapters/controllers/http/settings.routes.js +35 -0
  155. package/dist/modules/cli-configuration/interface-adapters/controllers/http/settings.routes.js.map +1 -0
  156. package/dist/modules/cli-configuration/interface-adapters/controllers/http/version.routes.d.ts +21 -0
  157. package/dist/modules/cli-configuration/interface-adapters/controllers/http/version.routes.d.ts.map +1 -0
  158. package/dist/modules/cli-configuration/interface-adapters/controllers/http/version.routes.js +28 -0
  159. package/dist/modules/cli-configuration/interface-adapters/controllers/http/version.routes.js.map +1 -0
  160. package/dist/modules/cli-configuration/interface-adapters/gateways/installTypeDetector.fs.gateway.d.ts +8 -0
  161. package/dist/modules/cli-configuration/interface-adapters/gateways/installTypeDetector.fs.gateway.d.ts.map +1 -0
  162. package/dist/modules/cli-configuration/interface-adapters/gateways/installTypeDetector.fs.gateway.js +26 -0
  163. package/dist/modules/cli-configuration/interface-adapters/gateways/installTypeDetector.fs.gateway.js.map +1 -0
  164. package/dist/modules/cli-configuration/interface-adapters/gateways/packageVersion.npm.gateway.d.ts +7 -0
  165. package/dist/modules/cli-configuration/interface-adapters/gateways/packageVersion.npm.gateway.d.ts.map +1 -0
  166. package/dist/modules/cli-configuration/interface-adapters/gateways/packageVersion.npm.gateway.js +25 -0
  167. package/dist/modules/cli-configuration/interface-adapters/gateways/packageVersion.npm.gateway.js.map +1 -0
  168. package/dist/modules/cli-configuration/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts +20 -0
  169. package/dist/modules/cli-configuration/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +1 -0
  170. package/dist/modules/cli-configuration/interface-adapters/gateways/selfUpdate.cli.gateway.js +58 -0
  171. package/dist/modules/cli-configuration/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +1 -0
  172. package/dist/modules/cli-configuration/interface-adapters/gateways/versionCache.memory.gateway.d.ts +12 -0
  173. package/dist/modules/cli-configuration/interface-adapters/gateways/versionCache.memory.gateway.d.ts.map +1 -0
  174. package/dist/modules/cli-configuration/interface-adapters/gateways/versionCache.memory.gateway.js.map +1 -0
  175. package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.d.ts +27 -0
  176. package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.d.ts.map +1 -0
  177. package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.js.map +1 -0
  178. package/dist/modules/cli-configuration/usecases/cli/checkInitPrerequisites.d.ts.map +1 -0
  179. package/dist/modules/cli-configuration/usecases/cli/checkInitPrerequisites.js.map +1 -0
  180. package/dist/modules/cli-configuration/usecases/cli/configureMcp.usecase.d.ts.map +1 -0
  181. package/dist/modules/cli-configuration/usecases/cli/configureMcp.usecase.js +49 -0
  182. package/dist/modules/cli-configuration/usecases/cli/configureMcp.usecase.js.map +1 -0
  183. package/dist/modules/cli-configuration/usecases/cli/discoverRepositories.usecase.d.ts +34 -0
  184. package/dist/modules/cli-configuration/usecases/cli/discoverRepositories.usecase.d.ts.map +1 -0
  185. package/dist/modules/cli-configuration/usecases/cli/discoverRepositories.usecase.js.map +1 -0
  186. package/dist/modules/cli-configuration/usecases/cli/followupImportants.usecase.d.ts.map +1 -0
  187. package/dist/modules/cli-configuration/usecases/cli/followupImportants.usecase.js.map +1 -0
  188. package/dist/modules/cli-configuration/usecases/cli/queryStatus.usecase.d.ts +21 -0
  189. package/dist/modules/cli-configuration/usecases/cli/queryStatus.usecase.d.ts.map +1 -0
  190. package/dist/modules/cli-configuration/usecases/cli/queryStatus.usecase.js.map +1 -0
  191. package/dist/modules/cli-configuration/usecases/cli/readLogs.usecase.d.ts +29 -0
  192. package/dist/modules/cli-configuration/usecases/cli/readLogs.usecase.d.ts.map +1 -0
  193. package/dist/modules/cli-configuration/usecases/cli/readLogs.usecase.js.map +1 -0
  194. package/dist/modules/cli-configuration/usecases/cli/startDaemon.usecase.d.ts +28 -0
  195. package/dist/modules/cli-configuration/usecases/cli/startDaemon.usecase.d.ts.map +1 -0
  196. package/dist/modules/cli-configuration/usecases/cli/startDaemon.usecase.js.map +1 -0
  197. package/dist/modules/cli-configuration/usecases/cli/stopDaemon.usecase.d.ts +26 -0
  198. package/dist/modules/cli-configuration/usecases/cli/stopDaemon.usecase.d.ts.map +1 -0
  199. package/dist/modules/cli-configuration/usecases/cli/stopDaemon.usecase.js.map +1 -0
  200. package/dist/modules/cli-configuration/usecases/cli/validateConfig.usecase.d.ts.map +1 -0
  201. package/dist/modules/cli-configuration/usecases/cli/validateConfig.usecase.js.map +1 -0
  202. package/dist/modules/cli-configuration/usecases/cli/writeInitConfig.usecase.d.ts.map +1 -0
  203. package/dist/modules/cli-configuration/usecases/cli/writeInitConfig.usecase.js.map +1 -0
  204. package/dist/modules/cli-configuration/usecases/version/checkVersion.usecase.d.ts +15 -0
  205. package/dist/modules/cli-configuration/usecases/version/checkVersion.usecase.d.ts.map +1 -0
  206. package/dist/modules/cli-configuration/usecases/version/checkVersion.usecase.js +21 -0
  207. package/dist/modules/cli-configuration/usecases/version/checkVersion.usecase.js.map +1 -0
  208. package/dist/modules/cli-configuration/usecases/version/triggerSelfUpdate.usecase.d.ts +10 -0
  209. package/dist/modules/cli-configuration/usecases/version/triggerSelfUpdate.usecase.d.ts.map +1 -0
  210. package/dist/modules/cli-configuration/usecases/version/triggerSelfUpdate.usecase.js +16 -0
  211. package/dist/modules/cli-configuration/usecases/version/triggerSelfUpdate.usecase.js.map +1 -0
  212. package/dist/modules/data-lifecycle/entities/cleanup/retentionPolicy.valueObject.d.ts.map +1 -0
  213. package/dist/modules/data-lifecycle/entities/cleanup/retentionPolicy.valueObject.js.map +1 -0
  214. package/dist/modules/data-lifecycle/interface-adapters/controllers/http/cleanup.routes.d.ts +16 -0
  215. package/dist/modules/data-lifecycle/interface-adapters/controllers/http/cleanup.routes.d.ts.map +1 -0
  216. package/dist/modules/data-lifecycle/interface-adapters/controllers/http/cleanup.routes.js +44 -0
  217. package/dist/modules/data-lifecycle/interface-adapters/controllers/http/cleanup.routes.js.map +1 -0
  218. package/dist/modules/data-lifecycle/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts +7 -0
  219. package/dist/modules/data-lifecycle/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts.map +1 -0
  220. package/dist/modules/data-lifecycle/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js.map +1 -0
  221. package/dist/modules/data-lifecycle/interface-adapters/gateways/reviewLogFile.gateway.d.ts.map +1 -0
  222. package/dist/modules/data-lifecycle/interface-adapters/gateways/reviewLogFile.gateway.js.map +1 -0
  223. package/dist/modules/data-lifecycle/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts +13 -0
  224. package/dist/modules/data-lifecycle/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts.map +1 -0
  225. package/dist/modules/data-lifecycle/usecases/cleanup/cleanupExpiredReviews.usecase.js +41 -0
  226. package/dist/modules/data-lifecycle/usecases/cleanup/cleanupExpiredReviews.usecase.js.map +1 -0
  227. package/dist/modules/platform-integration/entities/diffMetadata/diffMetadata.gateway.d.ts +5 -0
  228. package/dist/modules/platform-integration/entities/diffMetadata/diffMetadata.gateway.d.ts.map +1 -0
  229. package/dist/modules/platform-integration/entities/diffMetadata/diffMetadata.gateway.js.map +1 -0
  230. package/dist/modules/platform-integration/entities/github/githubPullRequestEvent.guard.d.ts +83 -0
  231. package/dist/modules/platform-integration/entities/github/githubPullRequestEvent.guard.d.ts.map +1 -0
  232. package/dist/modules/platform-integration/entities/github/githubPullRequestEvent.guard.js +28 -0
  233. package/dist/modules/platform-integration/entities/github/githubPullRequestEvent.guard.js.map +1 -0
  234. package/dist/modules/platform-integration/entities/gitlab/gitlabMergeRequestEvent.guard.d.ts +97 -0
  235. package/dist/modules/platform-integration/entities/gitlab/gitlabMergeRequestEvent.guard.d.ts.map +1 -0
  236. package/dist/modules/platform-integration/entities/gitlab/gitlabMergeRequestEvent.guard.js +52 -0
  237. package/dist/modules/platform-integration/entities/gitlab/gitlabMergeRequestEvent.guard.js.map +1 -0
  238. package/dist/modules/platform-integration/entities/threadFetch/threadFetch.gateway.d.ts +5 -0
  239. package/dist/modules/platform-integration/entities/threadFetch/threadFetch.gateway.d.ts.map +1 -0
  240. package/dist/modules/platform-integration/entities/threadFetch/threadFetch.gateway.js.map +1 -0
  241. package/dist/modules/platform-integration/interface-adapters/adapters/githubPullRequest.adapter.d.ts +6 -0
  242. package/dist/modules/platform-integration/interface-adapters/adapters/githubPullRequest.adapter.d.ts.map +1 -0
  243. package/dist/modules/platform-integration/interface-adapters/adapters/githubPullRequest.adapter.js.map +1 -0
  244. package/dist/modules/platform-integration/interface-adapters/adapters/gitlabMergeRequest.adapter.d.ts +6 -0
  245. package/dist/modules/platform-integration/interface-adapters/adapters/gitlabMergeRequest.adapter.d.ts.map +1 -0
  246. package/dist/modules/platform-integration/interface-adapters/adapters/gitlabMergeRequest.adapter.js.map +1 -0
  247. package/dist/modules/platform-integration/interface-adapters/adapters/platformAdapter.d.ts +9 -0
  248. package/dist/modules/platform-integration/interface-adapters/adapters/platformAdapter.d.ts.map +1 -0
  249. package/dist/modules/platform-integration/interface-adapters/adapters/platformAdapter.js +16 -0
  250. package/dist/modules/platform-integration/interface-adapters/adapters/platformAdapter.js.map +1 -0
  251. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/eventFilter.d.ts +76 -0
  252. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/eventFilter.d.ts.map +1 -0
  253. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/eventFilter.js +278 -0
  254. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/eventFilter.js.map +1 -0
  255. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.d.ts +35 -0
  256. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.d.ts.map +1 -0
  257. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js +470 -0
  258. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js.map +1 -0
  259. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.d.ts +36 -0
  260. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +1 -0
  261. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js +523 -0
  262. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js.map +1 -0
  263. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.github.gateway.d.ts +9 -0
  264. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.github.gateway.d.ts.map +1 -0
  265. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.github.gateway.js.map +1 -0
  266. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.d.ts +9 -0
  267. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.d.ts.map +1 -0
  268. package/dist/modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.js.map +1 -0
  269. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.github.gateway.d.ts +10 -0
  270. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.github.gateway.d.ts.map +1 -0
  271. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.github.gateway.js.map +1 -0
  272. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.gitlab.gateway.d.ts +10 -0
  273. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.gitlab.gateway.d.ts.map +1 -0
  274. package/dist/modules/platform-integration/interface-adapters/gateways/threadFetch.gitlab.gateway.js.map +1 -0
  275. package/dist/modules/review-execution/entities/job/jobContext.gateway.d.ts.map +1 -0
  276. package/dist/modules/review-execution/entities/job/jobContext.gateway.js.map +1 -0
  277. package/dist/modules/review-execution/entities/modelRouting/modelRouting.gateway.d.ts +5 -0
  278. package/dist/modules/review-execution/entities/modelRouting/modelRouting.gateway.d.ts.map +1 -0
  279. package/dist/modules/review-execution/entities/modelRouting/modelRouting.gateway.js.map +1 -0
  280. package/dist/modules/review-execution/entities/modelRouting/modelRouting.schema.d.ts.map +1 -0
  281. package/dist/modules/review-execution/entities/modelRouting/modelRouting.schema.js.map +1 -0
  282. package/dist/modules/review-execution/entities/progress/agentDefinition.type.d.ts.map +1 -0
  283. package/dist/modules/review-execution/entities/progress/agentDefinition.type.js.map +1 -0
  284. package/dist/modules/review-execution/entities/progress/progress.calculator.d.ts.map +1 -0
  285. package/dist/modules/review-execution/entities/progress/progress.calculator.js.map +1 -0
  286. package/dist/modules/review-execution/entities/progress/progress.factory.d.ts.map +1 -0
  287. package/dist/modules/review-execution/entities/progress/progress.factory.js.map +1 -0
  288. package/dist/modules/review-execution/entities/progress/progress.gateway.d.ts.map +1 -0
  289. package/dist/modules/review-execution/entities/progress/progress.gateway.js.map +1 -0
  290. package/dist/modules/review-execution/entities/progress/progress.type.d.ts.map +1 -0
  291. package/dist/modules/review-execution/entities/progress/progress.type.js.map +1 -0
  292. package/dist/modules/review-execution/entities/review/reviewFile.gateway.d.ts.map +1 -0
  293. package/dist/modules/review-execution/entities/review/reviewFile.gateway.js.map +1 -0
  294. package/dist/modules/review-execution/entities/review/reviewScore.valueObject.d.ts.map +1 -0
  295. package/dist/modules/review-execution/entities/review/reviewScore.valueObject.js.map +1 -0
  296. package/dist/modules/review-execution/entities/reviewAction/reviewAction.d.ts.map +1 -0
  297. package/dist/modules/review-execution/entities/reviewAction/reviewAction.gateway.d.ts.map +1 -0
  298. package/dist/modules/review-execution/entities/reviewAction/reviewAction.gateway.js.map +1 -0
  299. package/dist/modules/review-execution/entities/reviewAction/reviewAction.guard.d.ts +27 -0
  300. package/dist/modules/review-execution/entities/reviewAction/reviewAction.guard.d.ts.map +1 -0
  301. package/dist/modules/review-execution/entities/reviewAction/reviewAction.guard.js +8 -0
  302. package/dist/modules/review-execution/entities/reviewAction/reviewAction.guard.js.map +1 -0
  303. package/dist/modules/review-execution/entities/reviewAction/reviewAction.js.map +1 -0
  304. package/dist/modules/review-execution/entities/reviewAction/reviewAction.schema.d.ts.map +1 -0
  305. package/dist/modules/review-execution/entities/reviewAction/reviewAction.schema.js.map +1 -0
  306. package/dist/modules/review-execution/entities/reviewContext/reviewContext.d.ts +63 -0
  307. package/dist/modules/review-execution/entities/reviewContext/reviewContext.d.ts.map +1 -0
  308. package/dist/modules/review-execution/entities/reviewContext/reviewContext.gateway.d.ts +17 -0
  309. package/dist/modules/review-execution/entities/reviewContext/reviewContext.gateway.d.ts.map +1 -0
  310. package/dist/modules/review-execution/entities/reviewContext/reviewContext.gateway.js.map +1 -0
  311. package/dist/modules/review-execution/entities/reviewContext/reviewContext.js.map +1 -0
  312. package/dist/modules/review-execution/entities/reviewContext/reviewContext.schema.d.ts.map +1 -0
  313. package/dist/modules/review-execution/entities/reviewContext/reviewContext.schema.js +43 -0
  314. package/dist/modules/review-execution/entities/reviewContext/reviewContext.schema.js.map +1 -0
  315. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.d.ts +18 -0
  316. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.d.ts.map +1 -0
  317. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.js +13 -0
  318. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.js.map +1 -0
  319. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.d.ts +14 -0
  320. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.d.ts.map +1 -0
  321. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.js +9 -0
  322. package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.js.map +1 -0
  323. package/dist/modules/review-execution/entities/reviewRequest/reviewRequest.entity.d.ts.map +1 -0
  324. package/dist/modules/review-execution/entities/reviewRequest/reviewRequest.entity.js.map +1 -0
  325. package/dist/modules/review-execution/entities/reviewRequest/reviewRequest.guard.d.ts.map +1 -0
  326. package/dist/modules/review-execution/entities/reviewRequest/reviewRequest.guard.js.map +1 -0
  327. package/dist/modules/review-execution/entities/reviewRequest/reviewRequestState.valueObject.d.ts.map +1 -0
  328. package/dist/modules/review-execution/entities/reviewRequest/reviewRequestState.valueObject.js.map +1 -0
  329. package/dist/modules/review-execution/interface-adapters/controllers/http/reviews.routes.d.ts +18 -0
  330. package/dist/modules/review-execution/interface-adapters/controllers/http/reviews.routes.d.ts.map +1 -0
  331. package/dist/modules/review-execution/interface-adapters/controllers/http/reviews.routes.js +96 -0
  332. package/dist/modules/review-execution/interface-adapters/controllers/http/reviews.routes.js.map +1 -0
  333. package/dist/modules/review-execution/interface-adapters/controllers/mcp/addAction.handler.d.ts +4 -0
  334. package/dist/modules/review-execution/interface-adapters/controllers/mcp/addAction.handler.d.ts.map +1 -0
  335. package/dist/modules/review-execution/interface-adapters/controllers/mcp/addAction.handler.js.map +1 -0
  336. package/dist/modules/review-execution/interface-adapters/controllers/mcp/completeAgent.handler.d.ts +4 -0
  337. package/dist/modules/review-execution/interface-adapters/controllers/mcp/completeAgent.handler.d.ts.map +1 -0
  338. package/dist/modules/review-execution/interface-adapters/controllers/mcp/completeAgent.handler.js.map +1 -0
  339. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getThreads.handler.d.ts +4 -0
  340. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getThreads.handler.d.ts.map +1 -0
  341. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getThreads.handler.js.map +1 -0
  342. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getWorkflow.handler.d.ts +4 -0
  343. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getWorkflow.handler.d.ts.map +1 -0
  344. package/dist/modules/review-execution/interface-adapters/controllers/mcp/getWorkflow.handler.js.map +1 -0
  345. package/dist/modules/review-execution/interface-adapters/controllers/mcp/setPhase.handler.d.ts +4 -0
  346. package/dist/modules/review-execution/interface-adapters/controllers/mcp/setPhase.handler.d.ts.map +1 -0
  347. package/dist/modules/review-execution/interface-adapters/controllers/mcp/setPhase.handler.js.map +1 -0
  348. package/dist/modules/review-execution/interface-adapters/controllers/mcp/startAgent.handler.d.ts +4 -0
  349. package/dist/modules/review-execution/interface-adapters/controllers/mcp/startAgent.handler.d.ts.map +1 -0
  350. package/dist/modules/review-execution/interface-adapters/controllers/mcp/startAgent.handler.js.map +1 -0
  351. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.d.ts +7 -0
  352. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.d.ts.map +1 -0
  353. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.js +71 -0
  354. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.js.map +1 -0
  355. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.d.ts +7 -0
  356. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.d.ts.map +1 -0
  357. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js +63 -0
  358. package/dist/modules/review-execution/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js.map +1 -0
  359. package/dist/modules/review-execution/interface-adapters/gateways/fileSystem/reviewFile.fileSystem.d.ts.map +1 -0
  360. package/dist/modules/review-execution/interface-adapters/gateways/fileSystem/reviewFile.fileSystem.js.map +1 -0
  361. package/dist/modules/review-execution/interface-adapters/gateways/jobContext.memory.gateway.d.ts.map +1 -0
  362. package/dist/modules/review-execution/interface-adapters/gateways/jobContext.memory.gateway.js.map +1 -0
  363. package/dist/modules/review-execution/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts +6 -0
  364. package/dist/modules/review-execution/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts.map +1 -0
  365. package/dist/modules/review-execution/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js +8 -0
  366. package/dist/modules/review-execution/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js.map +1 -0
  367. package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts +15 -0
  368. package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts.map +1 -0
  369. package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.js +87 -0
  370. package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.js.map +1 -0
  371. package/dist/modules/review-execution/interface-adapters/gateways/reviewFile.gateway.d.ts +2 -0
  372. package/dist/modules/review-execution/interface-adapters/gateways/reviewFile.gateway.d.ts.map +1 -0
  373. package/dist/modules/review-execution/interface-adapters/gateways/reviewFile.gateway.js.map +1 -0
  374. package/dist/modules/review-execution/interface-adapters/gateways/reviewProgress.memory.gateway.d.ts.map +1 -0
  375. package/dist/modules/review-execution/interface-adapters/gateways/reviewProgress.memory.gateway.js.map +1 -0
  376. package/dist/modules/review-execution/interface-adapters/presenters/jobStatus.presenter.d.ts +29 -0
  377. package/dist/modules/review-execution/interface-adapters/presenters/jobStatus.presenter.d.ts.map +1 -0
  378. package/dist/modules/review-execution/interface-adapters/presenters/jobStatus.presenter.js +57 -0
  379. package/dist/modules/review-execution/interface-adapters/presenters/jobStatus.presenter.js.map +1 -0
  380. package/dist/modules/review-execution/interface-adapters/presenters/reviewContextProgress.presenter.d.ts +8 -0
  381. package/dist/modules/review-execution/interface-adapters/presenters/reviewContextProgress.presenter.d.ts.map +1 -0
  382. package/dist/modules/review-execution/interface-adapters/presenters/reviewContextProgress.presenter.js +45 -0
  383. package/dist/modules/review-execution/interface-adapters/presenters/reviewContextProgress.presenter.js.map +1 -0
  384. package/dist/modules/review-execution/interface-adapters/presenters/reviewList.presenter.d.ts +22 -0
  385. package/dist/modules/review-execution/interface-adapters/presenters/reviewList.presenter.d.ts.map +1 -0
  386. package/dist/modules/review-execution/interface-adapters/presenters/reviewList.presenter.js.map +1 -0
  387. package/dist/modules/review-execution/services/agentInstructionsBuilder.d.ts +4 -0
  388. package/dist/modules/review-execution/services/agentInstructionsBuilder.d.ts.map +1 -0
  389. package/dist/modules/review-execution/services/agentInstructionsBuilder.js.map +1 -0
  390. package/dist/modules/review-execution/services/commentLinkEnricher.d.ts.map +1 -0
  391. package/dist/modules/review-execution/services/commentLinkEnricher.js.map +1 -0
  392. package/dist/modules/review-execution/services/contextActionsExecutor.d.ts +19 -0
  393. package/dist/modules/review-execution/services/contextActionsExecutor.d.ts.map +1 -0
  394. package/dist/modules/review-execution/services/contextActionsExecutor.js +19 -0
  395. package/dist/modules/review-execution/services/contextActionsExecutor.js.map +1 -0
  396. package/dist/modules/review-execution/services/reviewContextWatcher.service.d.ts +15 -0
  397. package/dist/modules/review-execution/services/reviewContextWatcher.service.d.ts.map +1 -0
  398. package/dist/modules/review-execution/services/reviewContextWatcher.service.js.map +1 -0
  399. package/dist/modules/review-execution/services/threadActionsExecutor.d.ts +26 -0
  400. package/dist/modules/review-execution/services/threadActionsExecutor.d.ts.map +1 -0
  401. package/dist/modules/review-execution/services/threadActionsExecutor.js +28 -0
  402. package/dist/modules/review-execution/services/threadActionsExecutor.js.map +1 -0
  403. package/dist/modules/review-execution/services/threadActionsParser.d.ts +4 -0
  404. package/dist/modules/review-execution/services/threadActionsParser.d.ts.map +1 -0
  405. package/dist/modules/review-execution/services/threadActionsParser.js.map +1 -0
  406. package/dist/modules/review-execution/usecases/cancelReview.usecase.d.ts.map +1 -0
  407. package/dist/modules/review-execution/usecases/cancelReview.usecase.js.map +1 -0
  408. package/dist/modules/review-execution/usecases/handleReviewRequestPush.usecase.d.ts +26 -0
  409. package/dist/modules/review-execution/usecases/handleReviewRequestPush.usecase.d.ts.map +1 -0
  410. package/dist/modules/review-execution/usecases/handleReviewRequestPush.usecase.js.map +1 -0
  411. package/dist/modules/review-execution/usecases/mcp/addAction.usecase.d.ts.map +1 -0
  412. package/dist/modules/review-execution/usecases/mcp/addAction.usecase.js.map +1 -0
  413. package/dist/modules/review-execution/usecases/mcp/completeAgent.usecase.d.ts.map +1 -0
  414. package/dist/modules/review-execution/usecases/mcp/completeAgent.usecase.js.map +1 -0
  415. package/dist/modules/review-execution/usecases/mcp/getThreads.usecase.d.ts.map +1 -0
  416. package/dist/modules/review-execution/usecases/mcp/getThreads.usecase.js.map +1 -0
  417. package/dist/modules/review-execution/usecases/mcp/getWorkflow.usecase.d.ts.map +1 -0
  418. package/dist/modules/review-execution/usecases/mcp/getWorkflow.usecase.js.map +1 -0
  419. package/dist/modules/review-execution/usecases/mcp/setPhase.usecase.d.ts.map +1 -0
  420. package/dist/modules/review-execution/usecases/mcp/setPhase.usecase.js.map +1 -0
  421. package/dist/modules/review-execution/usecases/mcp/startAgent.usecase.d.ts.map +1 -0
  422. package/dist/modules/review-execution/usecases/mcp/startAgent.usecase.js.map +1 -0
  423. package/dist/modules/review-execution/usecases/selectModelForReview/selectModelForReview.usecase.d.ts +15 -0
  424. package/dist/modules/review-execution/usecases/selectModelForReview/selectModelForReview.usecase.d.ts.map +1 -0
  425. package/dist/modules/review-execution/usecases/selectModelForReview/selectModelForReview.usecase.js.map +1 -0
  426. package/dist/modules/review-execution/usecases/triggerReview.usecase.d.ts +43 -0
  427. package/dist/modules/review-execution/usecases/triggerReview.usecase.d.ts.map +1 -0
  428. package/dist/modules/review-execution/usecases/triggerReview.usecase.js.map +1 -0
  429. package/dist/modules/shared-kernel/entities/diffStats/diffStats.d.ts.map +1 -0
  430. package/dist/modules/shared-kernel/entities/diffStats/diffStats.js.map +1 -0
  431. package/dist/modules/shared-kernel/entities/diffStats/diffStatsFetch.gateway.d.ts +5 -0
  432. package/dist/modules/shared-kernel/entities/diffStats/diffStatsFetch.gateway.d.ts.map +1 -0
  433. package/dist/modules/shared-kernel/entities/diffStats/diffStatsFetch.gateway.js.map +1 -0
  434. package/dist/modules/shared-kernel/entities/language/language.schema.d.ts.map +1 -0
  435. package/dist/modules/shared-kernel/entities/language/language.schema.js.map +1 -0
  436. package/dist/modules/shared-kernel/entities/shared/duration.valueObject.d.ts.map +1 -0
  437. package/dist/modules/shared-kernel/entities/shared/duration.valueObject.js.map +1 -0
  438. package/dist/modules/statistics-insights/entities/backfill/backfillProgress.d.ts.map +1 -0
  439. package/dist/modules/statistics-insights/entities/backfill/backfillProgress.js.map +1 -0
  440. package/dist/modules/statistics-insights/entities/insight/aiInsight.d.ts +6 -0
  441. package/dist/modules/statistics-insights/entities/insight/aiInsight.d.ts.map +1 -0
  442. package/dist/modules/statistics-insights/entities/insight/aiInsight.js.map +1 -0
  443. package/dist/modules/statistics-insights/entities/insight/aiInsight.schema.d.ts.map +1 -0
  444. package/dist/modules/statistics-insights/entities/insight/aiInsight.schema.js.map +1 -0
  445. package/dist/modules/statistics-insights/entities/insight/developerInsight.d.ts +8 -0
  446. package/dist/modules/statistics-insights/entities/insight/developerInsight.d.ts.map +1 -0
  447. package/dist/modules/statistics-insights/entities/insight/developerInsight.guard.d.ts +90 -0
  448. package/dist/modules/statistics-insights/entities/insight/developerInsight.guard.d.ts.map +1 -0
  449. package/dist/modules/statistics-insights/entities/insight/developerInsight.guard.js +13 -0
  450. package/dist/modules/statistics-insights/entities/insight/developerInsight.guard.js.map +1 -0
  451. package/dist/modules/statistics-insights/entities/insight/developerInsight.js.map +1 -0
  452. package/dist/modules/statistics-insights/entities/insight/developerInsight.schema.d.ts.map +1 -0
  453. package/dist/modules/statistics-insights/entities/insight/developerInsight.schema.js +43 -0
  454. package/dist/modules/statistics-insights/entities/insight/developerInsight.schema.js.map +1 -0
  455. package/dist/modules/statistics-insights/entities/insight/developerTitle.d.ts.map +1 -0
  456. package/dist/modules/statistics-insights/entities/insight/developerTitle.js.map +1 -0
  457. package/dist/modules/statistics-insights/entities/insight/insightCategory.d.ts.map +1 -0
  458. package/dist/modules/statistics-insights/entities/insight/insightCategory.js.map +1 -0
  459. package/dist/modules/statistics-insights/entities/insight/insightTrend.d.ts.map +1 -0
  460. package/dist/modules/statistics-insights/entities/insight/insightTrend.js.map +1 -0
  461. package/dist/modules/statistics-insights/entities/insight/insights.gateway.d.ts +6 -0
  462. package/dist/modules/statistics-insights/entities/insight/insights.gateway.d.ts.map +1 -0
  463. package/dist/modules/statistics-insights/entities/insight/insights.gateway.js.map +1 -0
  464. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.d.ts +5 -0
  465. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.d.ts.map +1 -0
  466. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.guard.d.ts +110 -0
  467. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.guard.d.ts.map +1 -0
  468. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.guard.js +13 -0
  469. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.guard.js.map +1 -0
  470. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.js.map +1 -0
  471. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.schema.d.ts.map +1 -0
  472. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.schema.js +40 -0
  473. package/dist/modules/statistics-insights/entities/insight/persistedInsightsData.schema.js.map +1 -0
  474. package/dist/modules/statistics-insights/entities/insight/teamInsight.d.ts +5 -0
  475. package/dist/modules/statistics-insights/entities/insight/teamInsight.d.ts.map +1 -0
  476. package/dist/modules/statistics-insights/entities/insight/teamInsight.guard.d.ts +30 -0
  477. package/dist/modules/statistics-insights/entities/insight/teamInsight.guard.d.ts.map +1 -0
  478. package/dist/modules/statistics-insights/entities/insight/teamInsight.guard.js +13 -0
  479. package/dist/modules/statistics-insights/entities/insight/teamInsight.guard.js.map +1 -0
  480. package/dist/modules/statistics-insights/entities/insight/teamInsight.js.map +1 -0
  481. package/dist/modules/statistics-insights/entities/insight/teamInsight.schema.d.ts.map +1 -0
  482. package/dist/modules/statistics-insights/entities/insight/teamInsight.schema.js +17 -0
  483. package/dist/modules/statistics-insights/entities/insight/teamInsight.schema.js.map +1 -0
  484. package/dist/modules/statistics-insights/entities/stats/projectStats.d.ts +39 -0
  485. package/dist/modules/statistics-insights/entities/stats/projectStats.d.ts.map +1 -0
  486. package/dist/modules/statistics-insights/entities/stats/projectStats.js.map +1 -0
  487. package/dist/modules/statistics-insights/entities/stats/recalculateBody.guard.d.ts +11 -0
  488. package/dist/modules/statistics-insights/entities/stats/recalculateBody.guard.d.ts.map +1 -0
  489. package/dist/modules/statistics-insights/entities/stats/recalculateBody.guard.js +9 -0
  490. package/dist/modules/statistics-insights/entities/stats/recalculateBody.guard.js.map +1 -0
  491. package/dist/modules/statistics-insights/entities/stats/stats.gateway.d.ts +7 -0
  492. package/dist/modules/statistics-insights/entities/stats/stats.gateway.d.ts.map +1 -0
  493. package/dist/modules/statistics-insights/entities/stats/stats.gateway.js.map +1 -0
  494. package/dist/modules/statistics-insights/interface-adapters/controllers/http/insights.routes.d.ts +20 -0
  495. package/dist/modules/statistics-insights/interface-adapters/controllers/http/insights.routes.d.ts.map +1 -0
  496. package/dist/modules/statistics-insights/interface-adapters/controllers/http/insights.routes.js +73 -0
  497. package/dist/modules/statistics-insights/interface-adapters/controllers/http/insights.routes.js.map +1 -0
  498. package/dist/modules/statistics-insights/interface-adapters/controllers/http/stats.routes.d.ts +27 -0
  499. package/dist/modules/statistics-insights/interface-adapters/controllers/http/stats.routes.d.ts.map +1 -0
  500. package/dist/modules/statistics-insights/interface-adapters/controllers/http/stats.routes.js +70 -0
  501. package/dist/modules/statistics-insights/interface-adapters/controllers/http/stats.routes.js.map +1 -0
  502. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts +10 -0
  503. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts.map +1 -0
  504. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.github.gateway.js.map +1 -0
  505. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts +10 -0
  506. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts.map +1 -0
  507. package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js.map +1 -0
  508. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts +7 -0
  509. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts.map +1 -0
  510. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/insights.fileSystem.js +33 -0
  511. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/insights.fileSystem.js.map +1 -0
  512. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts +8 -0
  513. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts.map +1 -0
  514. package/dist/modules/statistics-insights/interface-adapters/gateways/fileSystem/stats.fileSystem.js.map +1 -0
  515. package/dist/modules/statistics-insights/interface-adapters/gateways/stats.gateway.d.ts +2 -0
  516. package/dist/modules/statistics-insights/interface-adapters/gateways/stats.gateway.d.ts.map +1 -0
  517. package/dist/modules/statistics-insights/interface-adapters/gateways/stats.gateway.js.map +1 -0
  518. package/dist/modules/statistics-insights/interface-adapters/presenters/insights.presenter.d.ts +41 -0
  519. package/dist/modules/statistics-insights/interface-adapters/presenters/insights.presenter.d.ts.map +1 -0
  520. package/dist/modules/statistics-insights/interface-adapters/presenters/insights.presenter.js.map +1 -0
  521. package/dist/modules/statistics-insights/interface-adapters/presenters/projectStats.calculator.d.ts +8 -0
  522. package/dist/modules/statistics-insights/interface-adapters/presenters/projectStats.calculator.d.ts.map +1 -0
  523. package/dist/modules/statistics-insights/interface-adapters/presenters/projectStats.calculator.js.map +1 -0
  524. package/dist/modules/statistics-insights/services/statsService.d.ts +52 -0
  525. package/dist/modules/statistics-insights/services/statsService.d.ts.map +1 -0
  526. package/dist/modules/statistics-insights/services/statsService.js.map +1 -0
  527. package/dist/modules/statistics-insights/usecases/insights/buildAiInsightsPrompt.d.ts +12 -0
  528. package/dist/modules/statistics-insights/usecases/insights/buildAiInsightsPrompt.d.ts.map +1 -0
  529. package/dist/modules/statistics-insights/usecases/insights/buildAiInsightsPrompt.js.map +1 -0
  530. package/dist/modules/statistics-insights/usecases/insights/computeDeveloperInsights.usecase.d.ts +4 -0
  531. package/dist/modules/statistics-insights/usecases/insights/computeDeveloperInsights.usecase.d.ts.map +1 -0
  532. package/dist/modules/statistics-insights/usecases/insights/computeDeveloperInsights.usecase.js +226 -0
  533. package/dist/modules/statistics-insights/usecases/insights/computeDeveloperInsights.usecase.js.map +1 -0
  534. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.d.ts +12 -0
  535. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.d.ts.map +1 -0
  536. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.js +340 -0
  537. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.js.map +1 -0
  538. package/dist/modules/statistics-insights/usecases/insights/computeTeamInsights.usecase.d.ts +4 -0
  539. package/dist/modules/statistics-insights/usecases/insights/computeTeamInsights.usecase.d.ts.map +1 -0
  540. package/dist/modules/statistics-insights/usecases/insights/computeTeamInsights.usecase.js +111 -0
  541. package/dist/modules/statistics-insights/usecases/insights/computeTeamInsights.usecase.js.map +1 -0
  542. package/dist/modules/statistics-insights/usecases/insights/generateAiInsights.usecase.d.ts +27 -0
  543. package/dist/modules/statistics-insights/usecases/insights/generateAiInsights.usecase.d.ts.map +1 -0
  544. package/dist/modules/statistics-insights/usecases/insights/generateAiInsights.usecase.js +65 -0
  545. package/dist/modules/statistics-insights/usecases/insights/generateAiInsights.usecase.js.map +1 -0
  546. package/dist/modules/statistics-insights/usecases/insights/getInsightsWithAiStatus.usecase.d.ts +18 -0
  547. package/dist/modules/statistics-insights/usecases/insights/getInsightsWithAiStatus.usecase.d.ts.map +1 -0
  548. package/dist/modules/statistics-insights/usecases/insights/getInsightsWithAiStatus.usecase.js +56 -0
  549. package/dist/modules/statistics-insights/usecases/insights/getInsightsWithAiStatus.usecase.js.map +1 -0
  550. package/dist/modules/statistics-insights/usecases/insights/insightLevelComputation.service.d.ts +41 -0
  551. package/dist/modules/statistics-insights/usecases/insights/insightLevelComputation.service.d.ts.map +1 -0
  552. package/dist/modules/statistics-insights/usecases/insights/insightLevelComputation.service.js +313 -0
  553. package/dist/modules/statistics-insights/usecases/insights/insightLevelComputation.service.js.map +1 -0
  554. package/dist/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.d.ts +18 -0
  555. package/dist/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.d.ts.map +1 -0
  556. package/dist/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.js.map +1 -0
  557. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.d.ts +7 -0
  558. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.d.ts.map +1 -0
  559. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js.map +1 -0
  560. package/dist/modules/statistics-insights/usecases/stats/recalculateWithBackfill.usecase.d.ts +22 -0
  561. package/dist/modules/statistics-insights/usecases/stats/recalculateWithBackfill.usecase.d.ts.map +1 -0
  562. package/dist/modules/statistics-insights/usecases/stats/recalculateWithBackfill.usecase.js +33 -0
  563. package/dist/modules/statistics-insights/usecases/stats/recalculateWithBackfill.usecase.js.map +1 -0
  564. package/dist/modules/token-accounting/entities/budget/budget.gateway.d.ts +6 -0
  565. package/dist/modules/token-accounting/entities/budget/budget.gateway.d.ts.map +1 -0
  566. package/dist/modules/token-accounting/entities/budget/budget.gateway.js +2 -0
  567. package/dist/modules/token-accounting/entities/budget/budget.gateway.js.map +1 -0
  568. package/dist/modules/token-accounting/entities/budget/budgetConfig.guard.d.ts +4 -0
  569. package/dist/modules/token-accounting/entities/budget/budgetConfig.guard.d.ts.map +1 -0
  570. package/dist/modules/token-accounting/entities/budget/budgetConfig.guard.js +4 -0
  571. package/dist/modules/token-accounting/entities/budget/budgetConfig.guard.js.map +1 -0
  572. package/dist/modules/token-accounting/entities/budget/budgetConfig.schema.d.ts +9 -0
  573. package/dist/modules/token-accounting/entities/budget/budgetConfig.schema.d.ts.map +1 -0
  574. package/dist/modules/token-accounting/entities/budget/budgetConfig.schema.js +8 -0
  575. package/dist/modules/token-accounting/entities/budget/budgetConfig.schema.js.map +1 -0
  576. package/dist/modules/token-accounting/entities/budget/budgetStatus.d.ts +9 -0
  577. package/dist/modules/token-accounting/entities/budget/budgetStatus.d.ts.map +1 -0
  578. package/dist/modules/token-accounting/entities/budget/budgetStatus.js +2 -0
  579. package/dist/modules/token-accounting/entities/budget/budgetStatus.js.map +1 -0
  580. package/dist/modules/token-accounting/entities/tokenUsage/tokenUsage.gateway.d.ts +6 -0
  581. package/dist/modules/token-accounting/entities/tokenUsage/tokenUsage.gateway.d.ts.map +1 -0
  582. package/dist/modules/token-accounting/entities/tokenUsage/tokenUsage.gateway.js.map +1 -0
  583. package/dist/modules/token-accounting/entities/tokenUsage/tokenUsage.schema.d.ts.map +1 -0
  584. package/dist/modules/token-accounting/entities/tokenUsage/tokenUsage.schema.js.map +1 -0
  585. package/dist/modules/token-accounting/interface-adapters/controllers/http/budget.routes.d.ts +16 -0
  586. package/dist/modules/token-accounting/interface-adapters/controllers/http/budget.routes.d.ts.map +1 -0
  587. package/dist/modules/token-accounting/interface-adapters/controllers/http/budget.routes.js +32 -0
  588. package/dist/modules/token-accounting/interface-adapters/controllers/http/budget.routes.js.map +1 -0
  589. package/dist/modules/token-accounting/interface-adapters/controllers/http/tokenUsage.routes.d.ts +9 -0
  590. package/dist/modules/token-accounting/interface-adapters/controllers/http/tokenUsage.routes.d.ts.map +1 -0
  591. package/dist/modules/token-accounting/interface-adapters/controllers/http/tokenUsage.routes.js +13 -0
  592. package/dist/modules/token-accounting/interface-adapters/controllers/http/tokenUsage.routes.js.map +1 -0
  593. package/dist/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.d.ts +8 -0
  594. package/dist/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.d.ts.map +1 -0
  595. package/dist/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.js +44 -0
  596. package/dist/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.js.map +1 -0
  597. package/dist/modules/token-accounting/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts +7 -0
  598. package/dist/modules/token-accounting/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts.map +1 -0
  599. package/dist/modules/token-accounting/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js +37 -0
  600. package/dist/modules/token-accounting/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js.map +1 -0
  601. package/dist/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.d.ts +15 -0
  602. package/dist/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.d.ts.map +1 -0
  603. package/dist/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.js +20 -0
  604. package/dist/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.js.map +1 -0
  605. package/dist/modules/token-accounting/interface-adapters/presenters/tokenUsageSummary.presenter.d.ts +19 -0
  606. package/dist/modules/token-accounting/interface-adapters/presenters/tokenUsageSummary.presenter.d.ts.map +1 -0
  607. package/dist/modules/token-accounting/interface-adapters/presenters/tokenUsageSummary.presenter.js +32 -0
  608. package/dist/modules/token-accounting/interface-adapters/presenters/tokenUsageSummary.presenter.js.map +1 -0
  609. package/dist/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.d.ts +19 -0
  610. package/dist/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.d.ts.map +1 -0
  611. package/dist/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.js +14 -0
  612. package/dist/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.js.map +1 -0
  613. package/dist/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.d.ts +17 -0
  614. package/dist/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.d.ts.map +1 -0
  615. package/dist/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.js +44 -0
  616. package/dist/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.js.map +1 -0
  617. package/dist/modules/token-accounting/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts +23 -0
  618. package/dist/modules/token-accounting/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts.map +1 -0
  619. package/dist/modules/token-accounting/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js.map +1 -0
  620. package/dist/modules/token-accounting/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts +8 -0
  621. package/dist/modules/token-accounting/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts.map +1 -0
  622. package/dist/modules/token-accounting/usecases/trackTokenUsage/trackTokenUsage.usecase.js.map +1 -0
  623. package/dist/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.d.ts +20 -0
  624. package/dist/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.d.ts.map +1 -0
  625. package/dist/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.js +18 -0
  626. package/dist/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.js.map +1 -0
  627. package/dist/modules/tracking/entities/tracking/assignmentInfo.d.ts.map +1 -0
  628. package/dist/modules/tracking/entities/tracking/assignmentInfo.js.map +1 -0
  629. package/dist/modules/tracking/entities/tracking/mrTrackingData.d.ts.map +1 -0
  630. package/dist/modules/tracking/entities/tracking/mrTrackingData.js.map +1 -0
  631. package/dist/modules/tracking/entities/tracking/reviewEvent.d.ts +14 -0
  632. package/dist/modules/tracking/entities/tracking/reviewEvent.d.ts.map +1 -0
  633. package/dist/modules/tracking/entities/tracking/reviewEvent.js.map +1 -0
  634. package/dist/modules/tracking/entities/tracking/reviewRequestTracking.gateway.d.ts +19 -0
  635. package/dist/modules/tracking/entities/tracking/reviewRequestTracking.gateway.d.ts.map +1 -0
  636. package/dist/modules/tracking/entities/tracking/reviewRequestTracking.gateway.js.map +1 -0
  637. package/dist/modules/tracking/entities/tracking/trackedMr.d.ts.map +1 -0
  638. package/dist/modules/tracking/entities/tracking/trackedMr.js.map +1 -0
  639. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts.map +1 -0
  640. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js +63 -0
  641. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js.map +1 -0
  642. package/dist/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts +34 -0
  643. package/dist/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts.map +1 -0
  644. package/dist/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js +334 -0
  645. package/dist/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js.map +1 -0
  646. package/dist/modules/tracking/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.d.ts +22 -0
  647. package/dist/modules/tracking/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.d.ts.map +1 -0
  648. package/dist/modules/tracking/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js +142 -0
  649. package/dist/modules/tracking/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js.map +1 -0
  650. package/dist/modules/tracking/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts +2 -0
  651. package/dist/modules/tracking/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts.map +1 -0
  652. package/dist/modules/tracking/interface-adapters/gateways/reviewRequestTracking.gateway.js.map +1 -0
  653. package/dist/modules/tracking/usecases/tracking/checkFollowupNeeded.usecase.d.ts +14 -0
  654. package/dist/modules/tracking/usecases/tracking/checkFollowupNeeded.usecase.d.ts.map +1 -0
  655. package/dist/modules/tracking/usecases/tracking/checkFollowupNeeded.usecase.js.map +1 -0
  656. package/dist/modules/tracking/usecases/tracking/recordPush.usecase.d.ts +15 -0
  657. package/dist/modules/tracking/usecases/tracking/recordPush.usecase.d.ts.map +1 -0
  658. package/dist/modules/tracking/usecases/tracking/recordPush.usecase.js.map +1 -0
  659. package/dist/modules/tracking/usecases/tracking/recordReviewCompletion.usecase.d.ts +26 -0
  660. package/dist/modules/tracking/usecases/tracking/recordReviewCompletion.usecase.d.ts.map +1 -0
  661. package/dist/modules/tracking/usecases/tracking/recordReviewCompletion.usecase.js.map +1 -0
  662. package/dist/modules/tracking/usecases/tracking/syncThreads.usecase.d.ts +16 -0
  663. package/dist/modules/tracking/usecases/tracking/syncThreads.usecase.d.ts.map +1 -0
  664. package/dist/modules/tracking/usecases/tracking/syncThreads.usecase.js.map +1 -0
  665. package/dist/modules/tracking/usecases/tracking/trackAssignment.usecase.d.ts +28 -0
  666. package/dist/modules/tracking/usecases/tracking/trackAssignment.usecase.d.ts.map +1 -0
  667. package/dist/modules/tracking/usecases/tracking/trackAssignment.usecase.js +68 -0
  668. package/dist/modules/tracking/usecases/tracking/trackAssignment.usecase.js.map +1 -0
  669. package/dist/modules/tracking/usecases/tracking/transitionState.usecase.d.ts +14 -0
  670. package/dist/modules/tracking/usecases/tracking/transitionState.usecase.d.ts.map +1 -0
  671. package/dist/modules/tracking/usecases/tracking/transitionState.usecase.js.map +1 -0
  672. package/dist/shared/foundation/applicationRuleViolation.d.ts +19 -0
  673. package/dist/shared/foundation/applicationRuleViolation.d.ts.map +1 -0
  674. package/dist/shared/foundation/applicationRuleViolation.js +22 -0
  675. package/dist/shared/foundation/applicationRuleViolation.js.map +1 -0
  676. package/dist/shared/foundation/businessRuleViolation.d.ts +19 -0
  677. package/dist/shared/foundation/businessRuleViolation.d.ts.map +1 -0
  678. package/dist/shared/foundation/businessRuleViolation.js +22 -0
  679. package/dist/shared/foundation/businessRuleViolation.js.map +1 -0
  680. package/dist/shared/foundation/executionGateway.base.d.ts +1 -1
  681. package/dist/shared/foundation/executionGateway.base.d.ts.map +1 -1
  682. package/dist/shared/foundation/gatewayError.d.ts +20 -0
  683. package/dist/shared/foundation/gatewayError.d.ts.map +1 -0
  684. package/dist/shared/foundation/gatewayError.js +24 -0
  685. package/dist/shared/foundation/gatewayError.js.map +1 -0
  686. package/dist/shared/foundation/guard.base.d.ts +27 -7
  687. package/dist/shared/foundation/guard.base.d.ts.map +1 -1
  688. package/dist/shared/foundation/guard.base.js +47 -9
  689. package/dist/shared/foundation/guard.base.js.map +1 -1
  690. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.d.ts +2 -0
  691. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.d.ts.map +1 -0
  692. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.js +267 -0
  693. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.js.map +1 -0
  694. package/dist/tests/acceptance/dashboardModulesCoverage.acceptance.test.d.ts +2 -0
  695. package/dist/tests/acceptance/dashboardModulesCoverage.acceptance.test.d.ts.map +1 -0
  696. package/dist/tests/acceptance/dashboardModulesCoverage.acceptance.test.js +43 -0
  697. package/dist/tests/acceptance/dashboardModulesCoverage.acceptance.test.js.map +1 -0
  698. package/dist/tests/acceptance/tokenBudgetCap.acceptance.test.d.ts +2 -0
  699. package/dist/tests/acceptance/tokenBudgetCap.acceptance.test.d.ts.map +1 -0
  700. package/dist/tests/acceptance/tokenBudgetCap.acceptance.test.js +183 -0
  701. package/dist/tests/acceptance/tokenBudgetCap.acceptance.test.js.map +1 -0
  702. package/dist/tests/factories/budgetConfig.factory.d.ts +5 -0
  703. package/dist/tests/factories/budgetConfig.factory.d.ts.map +1 -0
  704. package/dist/tests/factories/budgetConfig.factory.js +10 -0
  705. package/dist/tests/factories/budgetConfig.factory.js.map +1 -0
  706. package/dist/tests/factories/developerInsight.factory.d.ts +1 -1
  707. package/dist/tests/factories/developerInsight.factory.d.ts.map +1 -1
  708. package/dist/tests/factories/diffStats.factory.d.ts +1 -1
  709. package/dist/tests/factories/diffStats.factory.d.ts.map +1 -1
  710. package/dist/tests/factories/gitHubEvent.factory.d.ts +2 -1
  711. package/dist/tests/factories/gitHubEvent.factory.d.ts.map +1 -1
  712. package/dist/tests/factories/gitHubEvent.factory.js +9 -0
  713. package/dist/tests/factories/gitHubEvent.factory.js.map +1 -1
  714. package/dist/tests/factories/gitLabEvent.factory.d.ts +2 -2
  715. package/dist/tests/factories/gitLabEvent.factory.d.ts.map +1 -1
  716. package/dist/tests/factories/packageVersion.factory.d.ts +2 -2
  717. package/dist/tests/factories/packageVersion.factory.d.ts.map +1 -1
  718. package/dist/tests/factories/packageVersion.factory.js +1 -0
  719. package/dist/tests/factories/packageVersion.factory.js.map +1 -1
  720. package/dist/tests/factories/persistedInsightsData.factory.d.ts +2 -2
  721. package/dist/tests/factories/persistedInsightsData.factory.d.ts.map +1 -1
  722. package/dist/tests/factories/projectStats.factory.d.ts +2 -2
  723. package/dist/tests/factories/projectStats.factory.d.ts.map +1 -1
  724. package/dist/tests/factories/reviewContext.factory.d.ts +1 -1
  725. package/dist/tests/factories/reviewContext.factory.d.ts.map +1 -1
  726. package/dist/tests/factories/routingPolicy.factory.d.ts +1 -1
  727. package/dist/tests/factories/routingPolicy.factory.d.ts.map +1 -1
  728. package/dist/tests/factories/teamInsight.factory.d.ts +1 -1
  729. package/dist/tests/factories/teamInsight.factory.d.ts.map +1 -1
  730. package/dist/tests/factories/tokenUsage.factory.d.ts +1 -1
  731. package/dist/tests/factories/tokenUsage.factory.d.ts.map +1 -1
  732. package/dist/tests/factories/trackedMr.factory.d.ts +2 -2
  733. package/dist/tests/factories/trackedMr.factory.d.ts.map +1 -1
  734. package/dist/tests/factories/webhookEvent.factory.d.ts +1 -1
  735. package/dist/tests/factories/webhookEvent.factory.d.ts.map +1 -1
  736. package/dist/tests/helpers/entityBuilder.d.ts +22 -0
  737. package/dist/tests/helpers/entityBuilder.d.ts.map +1 -0
  738. package/dist/tests/helpers/entityBuilder.js +25 -0
  739. package/dist/tests/helpers/entityBuilder.js.map +1 -0
  740. package/dist/tests/stubs/budget.stub.d.ts +10 -0
  741. package/dist/tests/stubs/budget.stub.d.ts.map +1 -0
  742. package/dist/tests/stubs/budget.stub.js +15 -0
  743. package/dist/tests/stubs/budget.stub.js.map +1 -0
  744. package/dist/tests/stubs/diffStatsFetch.stub.d.ts +2 -2
  745. package/dist/tests/stubs/diffStatsFetch.stub.d.ts.map +1 -1
  746. package/dist/tests/stubs/insights.stub.d.ts +2 -2
  747. package/dist/tests/stubs/insights.stub.d.ts.map +1 -1
  748. package/dist/tests/stubs/installTypeDetector.stub.d.ts +8 -0
  749. package/dist/tests/stubs/installTypeDetector.stub.d.ts.map +1 -0
  750. package/dist/tests/stubs/installTypeDetector.stub.js +10 -0
  751. package/dist/tests/stubs/installTypeDetector.stub.js.map +1 -0
  752. package/dist/tests/stubs/packageVersion.stub.d.ts +1 -1
  753. package/dist/tests/stubs/packageVersion.stub.d.ts.map +1 -1
  754. package/dist/tests/stubs/reviewContextGateway.stub.d.ts +4 -3
  755. package/dist/tests/stubs/reviewContextGateway.stub.d.ts.map +1 -1
  756. package/dist/tests/stubs/reviewContextGateway.stub.js.map +1 -1
  757. package/dist/tests/stubs/reviewFile.stub.d.ts +1 -1
  758. package/dist/tests/stubs/reviewFile.stub.d.ts.map +1 -1
  759. package/dist/tests/stubs/reviewLogFile.stub.d.ts +1 -1
  760. package/dist/tests/stubs/reviewLogFile.stub.d.ts.map +1 -1
  761. package/dist/tests/stubs/reviewQueue.stub.d.ts +2 -2
  762. package/dist/tests/stubs/reviewQueue.stub.d.ts.map +1 -1
  763. package/dist/tests/stubs/reviewRequestTracking.stub.d.ts +4 -4
  764. package/dist/tests/stubs/reviewRequestTracking.stub.d.ts.map +1 -1
  765. package/dist/tests/stubs/selfUpdate.stub.d.ts +1 -1
  766. package/dist/tests/stubs/selfUpdate.stub.d.ts.map +1 -1
  767. package/dist/tests/stubs/stats.stub.d.ts +2 -2
  768. package/dist/tests/stubs/stats.stub.d.ts.map +1 -1
  769. package/dist/tests/stubs/threadFetch.stub.d.ts +2 -2
  770. package/dist/tests/stubs/threadFetch.stub.d.ts.map +1 -1
  771. package/dist/tests/stubs/tokenUsage.stub.d.ts +5 -3
  772. package/dist/tests/stubs/tokenUsage.stub.d.ts.map +1 -1
  773. package/dist/tests/stubs/tokenUsage.stub.js +10 -1
  774. package/dist/tests/stubs/tokenUsage.stub.js.map +1 -1
  775. package/dist/tests/stubs/versionCache.stub.d.ts +2 -2
  776. package/dist/tests/stubs/versionCache.stub.d.ts.map +1 -1
  777. package/dist/tests/units/cli/cli.integration.test.js +11 -5
  778. package/dist/tests/units/cli/cli.integration.test.js.map +1 -1
  779. package/dist/tests/units/dashboard/modules/assignee.test.d.ts.map +1 -0
  780. package/dist/tests/units/dashboard/modules/assignee.test.js +35 -0
  781. package/dist/tests/units/dashboard/modules/assignee.test.js.map +1 -0
  782. package/dist/tests/units/dashboard/modules/budgetSettings.test.d.ts +2 -0
  783. package/dist/tests/units/dashboard/modules/budgetSettings.test.d.ts.map +1 -0
  784. package/dist/tests/units/dashboard/modules/budgetSettings.test.js +96 -0
  785. package/dist/tests/units/dashboard/modules/budgetSettings.test.js.map +1 -0
  786. package/dist/tests/units/dashboard/modules/cleanup.test.d.ts +2 -0
  787. package/dist/tests/units/dashboard/modules/cleanup.test.d.ts.map +1 -0
  788. package/dist/tests/units/dashboard/modules/cleanup.test.js +15 -0
  789. package/dist/tests/units/dashboard/modules/cleanup.test.js.map +1 -0
  790. package/dist/tests/units/dashboard/modules/collapsibleList.test.d.ts +2 -0
  791. package/dist/tests/units/dashboard/modules/collapsibleList.test.d.ts.map +1 -0
  792. package/dist/tests/units/dashboard/modules/collapsibleList.test.js +21 -0
  793. package/dist/tests/units/dashboard/modules/collapsibleList.test.js.map +1 -0
  794. package/dist/tests/units/dashboard/modules/constants.test.d.ts.map +1 -0
  795. package/dist/tests/units/dashboard/modules/constants.test.js +17 -0
  796. package/dist/tests/units/dashboard/modules/constants.test.js.map +1 -0
  797. package/dist/tests/units/dashboard/modules/desktopNotifications.test.d.ts.map +1 -0
  798. package/dist/tests/units/dashboard/modules/desktopNotifications.test.js +54 -0
  799. package/dist/tests/units/dashboard/modules/desktopNotifications.test.js.map +1 -0
  800. package/dist/tests/units/dashboard/modules/developerSheet.test.d.ts.map +1 -0
  801. package/dist/tests/units/dashboard/modules/developerSheet.test.js +224 -0
  802. package/dist/tests/units/dashboard/modules/developerSheet.test.js.map +1 -0
  803. package/dist/tests/units/dashboard/modules/formatting.test.d.ts.map +1 -0
  804. package/dist/tests/units/dashboard/modules/formatting.test.js +95 -0
  805. package/dist/tests/units/dashboard/modules/formatting.test.js.map +1 -0
  806. package/dist/tests/units/dashboard/modules/html.test.d.ts.map +1 -0
  807. package/dist/tests/units/dashboard/modules/html.test.js +55 -0
  808. package/dist/tests/units/dashboard/modules/html.test.js.map +1 -0
  809. package/dist/tests/units/dashboard/modules/i18n.test.d.ts.map +1 -0
  810. package/dist/tests/units/dashboard/modules/i18n.test.js +127 -0
  811. package/dist/tests/units/dashboard/modules/i18n.test.js.map +1 -0
  812. package/dist/tests/units/dashboard/modules/icons.test.d.ts.map +1 -0
  813. package/dist/tests/units/dashboard/modules/icons.test.js +28 -0
  814. package/dist/tests/units/dashboard/modules/icons.test.js.map +1 -0
  815. package/dist/tests/units/dashboard/modules/insightsReport.test.d.ts.map +1 -0
  816. package/dist/tests/units/dashboard/modules/insightsReport.test.js +326 -0
  817. package/dist/tests/units/dashboard/modules/insightsReport.test.js.map +1 -0
  818. package/dist/tests/units/dashboard/modules/loading.test.d.ts.map +1 -0
  819. package/dist/tests/units/dashboard/modules/loading.test.js +51 -0
  820. package/dist/tests/units/dashboard/modules/loading.test.js.map +1 -0
  821. package/dist/tests/units/dashboard/modules/mrSheet.test.d.ts +2 -0
  822. package/dist/tests/units/dashboard/modules/mrSheet.test.d.ts.map +1 -0
  823. package/dist/tests/units/dashboard/modules/mrSheet.test.js +29 -0
  824. package/dist/tests/units/dashboard/modules/mrSheet.test.js.map +1 -0
  825. package/dist/tests/units/dashboard/modules/notifications.test.d.ts.map +1 -0
  826. package/dist/tests/units/dashboard/modules/notifications.test.js +43 -0
  827. package/dist/tests/units/dashboard/modules/notifications.test.js.map +1 -0
  828. package/dist/tests/units/dashboard/modules/priority.test.d.ts.map +1 -0
  829. package/dist/tests/units/dashboard/modules/priority.test.js +78 -0
  830. package/dist/tests/units/dashboard/modules/priority.test.js.map +1 -0
  831. package/dist/tests/units/dashboard/modules/quality.test.d.ts.map +1 -0
  832. package/dist/tests/units/dashboard/modules/quality.test.js +87 -0
  833. package/dist/tests/units/dashboard/modules/quality.test.js.map +1 -0
  834. package/dist/tests/units/dashboard/modules/queueLanes.test.d.ts.map +1 -0
  835. package/dist/tests/units/dashboard/modules/queueLanes.test.js +29 -0
  836. package/dist/tests/units/dashboard/modules/queueLanes.test.js.map +1 -0
  837. package/dist/tests/units/dashboard/modules/sessionMetrics.test.d.ts.map +1 -0
  838. package/dist/tests/units/dashboard/modules/sessionMetrics.test.js +60 -0
  839. package/dist/tests/units/dashboard/modules/sessionMetrics.test.js.map +1 -0
  840. package/dist/tests/units/dashboard/modules/sharedViewHelpers.test.d.ts +2 -0
  841. package/dist/tests/units/dashboard/modules/sharedViewHelpers.test.d.ts.map +1 -0
  842. package/dist/tests/units/dashboard/modules/sharedViewHelpers.test.js +44 -0
  843. package/dist/tests/units/dashboard/modules/sharedViewHelpers.test.js.map +1 -0
  844. package/dist/tests/units/dashboard/modules/statsCharts.test.d.ts +2 -0
  845. package/dist/tests/units/dashboard/modules/statsCharts.test.d.ts.map +1 -0
  846. package/dist/tests/units/dashboard/modules/statsCharts.test.js +34 -0
  847. package/dist/tests/units/dashboard/modules/statsCharts.test.js.map +1 -0
  848. package/dist/tests/units/dashboard/modules/teamTab.test.d.ts.map +1 -0
  849. package/dist/tests/units/dashboard/modules/teamTab.test.js +336 -0
  850. package/dist/tests/units/dashboard/modules/teamTab.test.js.map +1 -0
  851. package/dist/tests/units/dashboard/modules/tokenUsage.test.d.ts +2 -0
  852. package/dist/tests/units/dashboard/modules/tokenUsage.test.d.ts.map +1 -0
  853. package/dist/tests/units/dashboard/modules/tokenUsage.test.js +81 -0
  854. package/dist/tests/units/dashboard/modules/tokenUsage.test.js.map +1 -0
  855. package/dist/tests/units/dashboard/modules/versionUpdate.test.d.ts +2 -0
  856. package/dist/tests/units/dashboard/modules/versionUpdate.test.d.ts.map +1 -0
  857. package/dist/tests/units/dashboard/modules/versionUpdate.test.js +30 -0
  858. package/dist/tests/units/dashboard/modules/versionUpdate.test.js.map +1 -0
  859. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js +1 -1
  860. package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js.map +1 -1
  861. package/dist/tests/units/entities/duration.valueObject.test.js +1 -1
  862. package/dist/tests/units/entities/duration.valueObject.test.js.map +1 -1
  863. package/dist/tests/units/entities/github/githubPullRequestEvent.guard.test.js +1 -1
  864. package/dist/tests/units/entities/github/githubPullRequestEvent.guard.test.js.map +1 -1
  865. package/dist/tests/units/entities/gitlab/gitlabMergeRequestEvent.guard.test.js +1 -1
  866. package/dist/tests/units/entities/gitlab/gitlabMergeRequestEvent.guard.test.js.map +1 -1
  867. package/dist/tests/units/entities/insight/aiInsight.schema.test.js +1 -1
  868. package/dist/tests/units/entities/insight/aiInsight.schema.test.js.map +1 -1
  869. package/dist/tests/units/entities/insight/developerInsight.schema.test.js +1 -1
  870. package/dist/tests/units/entities/insight/developerInsight.schema.test.js.map +1 -1
  871. package/dist/tests/units/entities/insight/developerTitle.test.js +1 -1
  872. package/dist/tests/units/entities/insight/developerTitle.test.js.map +1 -1
  873. package/dist/tests/units/entities/insight/insightCategory.test.js +1 -1
  874. package/dist/tests/units/entities/insight/insightCategory.test.js.map +1 -1
  875. package/dist/tests/units/entities/insight/insightTrend.test.js +1 -1
  876. package/dist/tests/units/entities/insight/insightTrend.test.js.map +1 -1
  877. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js +1 -1
  878. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js.map +1 -1
  879. package/dist/tests/units/entities/insight/teamInsight.schema.test.js +1 -1
  880. package/dist/tests/units/entities/insight/teamInsight.schema.test.js.map +1 -1
  881. package/dist/tests/units/entities/language/language.schema.test.js +1 -1
  882. package/dist/tests/units/entities/language/language.schema.test.js.map +1 -1
  883. package/dist/tests/units/entities/mcpSettings/mcpSettings.guard.test.js +1 -1
  884. package/dist/tests/units/entities/mcpSettings/mcpSettings.guard.test.js.map +1 -1
  885. package/dist/tests/units/entities/packageVersion/packageVersion.test.js +8 -2
  886. package/dist/tests/units/entities/packageVersion/packageVersion.test.js.map +1 -1
  887. package/dist/tests/units/entities/progress/progress.test.js +3 -3
  888. package/dist/tests/units/entities/progress/progress.test.js.map +1 -1
  889. package/dist/tests/units/entities/reviewAction/reviewAction.guard.test.js +1 -1
  890. package/dist/tests/units/entities/reviewAction/reviewAction.guard.test.js.map +1 -1
  891. package/dist/tests/units/entities/reviewContext/reviewContext.schema.test.js +1 -1
  892. package/dist/tests/units/entities/reviewContext/reviewContext.schema.test.js.map +1 -1
  893. package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.d.ts +2 -0
  894. package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.d.ts.map +1 -0
  895. package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.js +34 -0
  896. package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.js.map +1 -0
  897. package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.d.ts +2 -0
  898. package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.d.ts.map +1 -0
  899. package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.js +27 -0
  900. package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.js.map +1 -0
  901. package/dist/tests/units/entities/reviewRequestState.valueObject.test.js +1 -1
  902. package/dist/tests/units/entities/reviewRequestState.valueObject.test.js.map +1 -1
  903. package/dist/tests/units/entities/reviewScore.valueObject.test.js +1 -1
  904. package/dist/tests/units/entities/reviewScore.valueObject.test.js.map +1 -1
  905. package/dist/tests/units/factories/packageVersion.factory.test.js +1 -1
  906. package/dist/tests/units/factories/packageVersion.factory.test.js.map +1 -1
  907. package/dist/tests/units/frameworks/claude/broadcastBudgetAfterUsage.test.d.ts +2 -0
  908. package/dist/tests/units/frameworks/claude/broadcastBudgetAfterUsage.test.d.ts.map +1 -0
  909. package/dist/tests/units/frameworks/claude/broadcastBudgetAfterUsage.test.js +37 -0
  910. package/dist/tests/units/frameworks/claude/broadcastBudgetAfterUsage.test.js.map +1 -0
  911. package/dist/tests/units/frameworks/claude/claudeInvoker.test.d.ts +2 -0
  912. package/dist/tests/units/frameworks/claude/claudeInvoker.test.d.ts.map +1 -0
  913. package/dist/tests/units/frameworks/claude/claudeInvoker.test.js +56 -0
  914. package/dist/tests/units/frameworks/claude/claudeInvoker.test.js.map +1 -0
  915. package/dist/tests/units/helpers/entityBuilder.test.d.ts +2 -0
  916. package/dist/tests/units/helpers/entityBuilder.test.d.ts.map +1 -0
  917. package/dist/tests/units/helpers/entityBuilder.test.js +32 -0
  918. package/dist/tests/units/helpers/entityBuilder.test.js.map +1 -0
  919. package/dist/tests/units/interface-adapters/adapters/platformAdapter.test.js +1 -1
  920. package/dist/tests/units/interface-adapters/adapters/platformAdapter.test.js.map +1 -1
  921. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js +1 -1
  922. package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js.map +1 -1
  923. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js +1 -1
  924. package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js.map +1 -1
  925. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js +1 -1
  926. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js.map +1 -1
  927. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js +1 -1
  928. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js.map +1 -1
  929. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js +1 -1
  930. package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js.map +1 -1
  931. package/dist/tests/units/interface-adapters/controllers/http/tokenUsage.routes.test.d.ts +2 -0
  932. package/dist/tests/units/interface-adapters/controllers/http/tokenUsage.routes.test.d.ts.map +1 -0
  933. package/dist/tests/units/interface-adapters/controllers/http/tokenUsage.routes.test.js +107 -0
  934. package/dist/tests/units/interface-adapters/controllers/http/tokenUsage.routes.test.js.map +1 -0
  935. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js +62 -3
  936. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js.map +1 -1
  937. package/dist/tests/units/interface-adapters/controllers/mcp/addAction.handler.test.js +3 -3
  938. package/dist/tests/units/interface-adapters/controllers/mcp/addAction.handler.test.js.map +1 -1
  939. package/dist/tests/units/interface-adapters/controllers/mcp/completeAgent.handler.test.js +2 -2
  940. package/dist/tests/units/interface-adapters/controllers/mcp/completeAgent.handler.test.js.map +1 -1
  941. package/dist/tests/units/interface-adapters/controllers/mcp/getThreads.handler.test.js +3 -3
  942. package/dist/tests/units/interface-adapters/controllers/mcp/getThreads.handler.test.js.map +1 -1
  943. package/dist/tests/units/interface-adapters/controllers/mcp/getWorkflow.handler.test.js +2 -2
  944. package/dist/tests/units/interface-adapters/controllers/mcp/getWorkflow.handler.test.js.map +1 -1
  945. package/dist/tests/units/interface-adapters/controllers/mcp/setPhase.handler.test.js +2 -2
  946. package/dist/tests/units/interface-adapters/controllers/mcp/setPhase.handler.test.js.map +1 -1
  947. package/dist/tests/units/interface-adapters/controllers/mcp/startAgent.handler.test.js +2 -2
  948. package/dist/tests/units/interface-adapters/controllers/mcp/startAgent.handler.test.js.map +1 -1
  949. package/dist/tests/units/interface-adapters/controllers/webhook/eventFilter.test.js +48 -1
  950. package/dist/tests/units/interface-adapters/controllers/webhook/eventFilter.test.js.map +1 -1
  951. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.js +1 -1
  952. package/dist/tests/units/interface-adapters/controllers/webhook/extractBaseUrl.test.js.map +1 -1
  953. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js +181 -1
  954. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js.map +1 -1
  955. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js +71 -10
  956. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js.map +1 -1
  957. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.test.js +1 -1
  958. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.test.js.map +1 -1
  959. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.test.js +1 -1
  960. package/dist/tests/units/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.test.js.map +1 -1
  961. package/dist/tests/units/interface-adapters/gateways/diffMetadataFetch.github.gateway.test.js +1 -1
  962. package/dist/tests/units/interface-adapters/gateways/diffMetadataFetch.github.gateway.test.js.map +1 -1
  963. package/dist/tests/units/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.test.js +1 -1
  964. package/dist/tests/units/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.test.js.map +1 -1
  965. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js +1 -1
  966. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js.map +1 -1
  967. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js +1 -1
  968. package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js.map +1 -1
  969. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js +1 -1
  970. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js.map +1 -1
  971. package/dist/tests/units/interface-adapters/gateways/installTypeDetector.fs.gateway.test.d.ts +2 -0
  972. package/dist/tests/units/interface-adapters/gateways/installTypeDetector.fs.gateway.test.d.ts.map +1 -0
  973. package/dist/tests/units/interface-adapters/gateways/installTypeDetector.fs.gateway.test.js +38 -0
  974. package/dist/tests/units/interface-adapters/gateways/installTypeDetector.fs.gateway.test.js.map +1 -0
  975. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js +1 -1
  976. package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js.map +1 -1
  977. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js +1 -1
  978. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js.map +1 -1
  979. package/dist/tests/units/interface-adapters/gateways/reviewContext.fileSystem.gateway.test.js +1 -1
  980. package/dist/tests/units/interface-adapters/gateways/reviewContext.fileSystem.gateway.test.js.map +1 -1
  981. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js +1 -1
  982. package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js.map +1 -1
  983. package/dist/tests/units/interface-adapters/gateways/reviewProgress.memory.gateway.test.js +1 -1
  984. package/dist/tests/units/interface-adapters/gateways/reviewProgress.memory.gateway.test.js.map +1 -1
  985. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js +1 -1
  986. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js.map +1 -1
  987. package/dist/tests/units/interface-adapters/gateways/threadFetch.github.gateway.test.js +1 -1
  988. package/dist/tests/units/interface-adapters/gateways/threadFetch.github.gateway.test.js.map +1 -1
  989. package/dist/tests/units/interface-adapters/gateways/threadFetch.gitlab.gateway.test.js +1 -1
  990. package/dist/tests/units/interface-adapters/gateways/threadFetch.gitlab.gateway.test.js.map +1 -1
  991. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js +1 -1
  992. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js.map +1 -1
  993. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js +1 -1
  994. package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js.map +1 -1
  995. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js +1 -1
  996. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js.map +1 -1
  997. package/dist/tests/units/interface-adapters/presenters/jobStatus.presenter.test.js +1 -1
  998. package/dist/tests/units/interface-adapters/presenters/jobStatus.presenter.test.js.map +1 -1
  999. package/dist/tests/units/interface-adapters/presenters/projectStats.calculator.test.js +1 -1
  1000. package/dist/tests/units/interface-adapters/presenters/projectStats.calculator.test.js.map +1 -1
  1001. package/dist/tests/units/interface-adapters/presenters/reviewContextProgress.presenter.test.js +1 -1
  1002. package/dist/tests/units/interface-adapters/presenters/reviewContextProgress.presenter.test.js.map +1 -1
  1003. package/dist/tests/units/interface-adapters/presenters/reviewList.presenter.test.js +2 -2
  1004. package/dist/tests/units/interface-adapters/presenters/reviewList.presenter.test.js.map +1 -1
  1005. package/dist/tests/units/interface-adapters/presenters/tokenUsageSummary.presenter.test.d.ts +2 -0
  1006. package/dist/tests/units/interface-adapters/presenters/tokenUsageSummary.presenter.test.d.ts.map +1 -0
  1007. package/dist/tests/units/interface-adapters/presenters/tokenUsageSummary.presenter.test.js +103 -0
  1008. package/dist/tests/units/interface-adapters/presenters/tokenUsageSummary.presenter.test.js.map +1 -0
  1009. package/dist/tests/units/main/budgetBroadcast.test.d.ts +2 -0
  1010. package/dist/tests/units/main/budgetBroadcast.test.d.ts.map +1 -0
  1011. package/dist/tests/units/main/budgetBroadcast.test.js +46 -0
  1012. package/dist/tests/units/main/budgetBroadcast.test.js.map +1 -0
  1013. package/dist/tests/units/main/dependencies.test.js +2 -2
  1014. package/dist/tests/units/main/dependencies.test.js.map +1 -1
  1015. package/dist/tests/units/main/mcpDependencies.test.js +1 -1
  1016. package/dist/tests/units/main/mcpDependencies.test.js.map +1 -1
  1017. package/dist/tests/units/modules/token-accounting/entities/budget/budgetConfig.guard.test.d.ts +2 -0
  1018. package/dist/tests/units/modules/token-accounting/entities/budget/budgetConfig.guard.test.d.ts.map +1 -0
  1019. package/dist/tests/units/modules/token-accounting/entities/budget/budgetConfig.guard.test.js +30 -0
  1020. package/dist/tests/units/modules/token-accounting/entities/budget/budgetConfig.guard.test.js.map +1 -0
  1021. package/dist/tests/units/modules/token-accounting/interface-adapters/controllers/http/budget.routes.test.d.ts +2 -0
  1022. package/dist/tests/units/modules/token-accounting/interface-adapters/controllers/http/budget.routes.test.d.ts.map +1 -0
  1023. package/dist/tests/units/modules/token-accounting/interface-adapters/controllers/http/budget.routes.test.js +116 -0
  1024. package/dist/tests/units/modules/token-accounting/interface-adapters/controllers/http/budget.routes.test.js.map +1 -0
  1025. package/dist/tests/units/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.test.d.ts +2 -0
  1026. package/dist/tests/units/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.test.d.ts.map +1 -0
  1027. package/dist/tests/units/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.test.js +61 -0
  1028. package/dist/tests/units/modules/token-accounting/interface-adapters/gateways/budget/budget.filesystem.gateway.test.js.map +1 -0
  1029. package/dist/tests/units/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.test.d.ts +2 -0
  1030. package/dist/tests/units/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.test.d.ts.map +1 -0
  1031. package/dist/tests/units/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.test.js +40 -0
  1032. package/dist/tests/units/modules/token-accounting/interface-adapters/presenters/budgetStatus.presenter.test.js.map +1 -0
  1033. package/dist/tests/units/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.test.d.ts +2 -0
  1034. package/dist/tests/units/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.test.d.ts.map +1 -0
  1035. package/dist/tests/units/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.test.js +55 -0
  1036. package/dist/tests/units/modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.test.js.map +1 -0
  1037. package/dist/tests/units/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.test.d.ts +2 -0
  1038. package/dist/tests/units/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.test.d.ts.map +1 -0
  1039. package/dist/tests/units/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.test.js +114 -0
  1040. package/dist/tests/units/modules/token-accounting/usecases/getBudgetStatus/getBudgetStatus.usecase.test.js.map +1 -0
  1041. package/dist/tests/units/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.test.d.ts +2 -0
  1042. package/dist/tests/units/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.test.d.ts.map +1 -0
  1043. package/dist/tests/units/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.test.js +51 -0
  1044. package/dist/tests/units/modules/token-accounting/usecases/updateBudget/updateBudget.usecase.test.js.map +1 -0
  1045. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.test.d.ts +2 -0
  1046. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.test.d.ts.map +1 -0
  1047. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.test.js +128 -0
  1048. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTrackingAdvanced.routes.test.js.map +1 -0
  1049. package/dist/tests/units/services/commentLinkEnricher.test.js +1 -1
  1050. package/dist/tests/units/services/commentLinkEnricher.test.js.map +1 -1
  1051. package/dist/tests/units/services/contextActionsExecutor.test.js +1 -1
  1052. package/dist/tests/units/services/contextActionsExecutor.test.js.map +1 -1
  1053. package/dist/tests/units/services/reviewContextWatcher.service.test.js +1 -1
  1054. package/dist/tests/units/services/reviewContextWatcher.service.test.js.map +1 -1
  1055. package/dist/tests/units/services/statsService.addReview.test.js +1 -1
  1056. package/dist/tests/units/services/statsService.addReview.test.js.map +1 -1
  1057. package/dist/tests/units/services/threadActionsExecutor.test.js +1 -1
  1058. package/dist/tests/units/services/threadActionsExecutor.test.js.map +1 -1
  1059. package/dist/tests/units/services/threadActionsParser.test.js +1 -1
  1060. package/dist/tests/units/services/threadActionsParser.test.js.map +1 -1
  1061. package/dist/tests/units/shared/foundation/applicationRuleViolation.test.d.ts +2 -0
  1062. package/dist/tests/units/shared/foundation/applicationRuleViolation.test.d.ts.map +1 -0
  1063. package/dist/tests/units/shared/foundation/applicationRuleViolation.test.js +25 -0
  1064. package/dist/tests/units/shared/foundation/applicationRuleViolation.test.js.map +1 -0
  1065. package/dist/tests/units/shared/foundation/businessRuleViolation.test.d.ts +2 -0
  1066. package/dist/tests/units/shared/foundation/businessRuleViolation.test.d.ts.map +1 -0
  1067. package/dist/tests/units/shared/foundation/businessRuleViolation.test.js +28 -0
  1068. package/dist/tests/units/shared/foundation/businessRuleViolation.test.js.map +1 -0
  1069. package/dist/tests/units/shared/foundation/gatewayError.test.d.ts +2 -0
  1070. package/dist/tests/units/shared/foundation/gatewayError.test.d.ts.map +1 -0
  1071. package/dist/tests/units/shared/foundation/gatewayError.test.js +25 -0
  1072. package/dist/tests/units/shared/foundation/gatewayError.test.js.map +1 -0
  1073. package/dist/tests/units/shared/foundation/guard.base.test.js +4 -4
  1074. package/dist/tests/units/shared/foundation/guard.base.test.js.map +1 -1
  1075. package/dist/tests/units/usecases/cancelReview.usecase.test.js +1 -1
  1076. package/dist/tests/units/usecases/cancelReview.usecase.test.js.map +1 -1
  1077. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js +1 -1
  1078. package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js.map +1 -1
  1079. package/dist/tests/units/usecases/cli/addRepositoriesToConfig.usecase.test.js +1 -1
  1080. package/dist/tests/units/usecases/cli/addRepositoriesToConfig.usecase.test.js.map +1 -1
  1081. package/dist/tests/units/usecases/cli/checkInitPrerequisites.test.js +1 -1
  1082. package/dist/tests/units/usecases/cli/checkInitPrerequisites.test.js.map +1 -1
  1083. package/dist/tests/units/usecases/cli/configureMcp.usecase.test.js +1 -1
  1084. package/dist/tests/units/usecases/cli/configureMcp.usecase.test.js.map +1 -1
  1085. package/dist/tests/units/usecases/cli/discoverRepositories.usecase.test.js +1 -1
  1086. package/dist/tests/units/usecases/cli/discoverRepositories.usecase.test.js.map +1 -1
  1087. package/dist/tests/units/usecases/cli/followupImportants.usecase.test.js +1 -1
  1088. package/dist/tests/units/usecases/cli/followupImportants.usecase.test.js.map +1 -1
  1089. package/dist/tests/units/usecases/cli/queryStatus.usecase.test.js +1 -1
  1090. package/dist/tests/units/usecases/cli/queryStatus.usecase.test.js.map +1 -1
  1091. package/dist/tests/units/usecases/cli/readLogs.usecase.test.js +1 -1
  1092. package/dist/tests/units/usecases/cli/readLogs.usecase.test.js.map +1 -1
  1093. package/dist/tests/units/usecases/cli/startDaemon.usecase.test.js +1 -1
  1094. package/dist/tests/units/usecases/cli/startDaemon.usecase.test.js.map +1 -1
  1095. package/dist/tests/units/usecases/cli/stopDaemon.usecase.test.js +1 -1
  1096. package/dist/tests/units/usecases/cli/stopDaemon.usecase.test.js.map +1 -1
  1097. package/dist/tests/units/usecases/cli/validateConfig.usecase.test.js +1 -1
  1098. package/dist/tests/units/usecases/cli/validateConfig.usecase.test.js.map +1 -1
  1099. package/dist/tests/units/usecases/cli/writeInitConfig.usecase.test.js +1 -1
  1100. package/dist/tests/units/usecases/cli/writeInitConfig.usecase.test.js.map +1 -1
  1101. package/dist/tests/units/usecases/handleReviewRequestPush.usecase.test.js +1 -1
  1102. package/dist/tests/units/usecases/handleReviewRequestPush.usecase.test.js.map +1 -1
  1103. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js +1 -1
  1104. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js.map +1 -1
  1105. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js +1 -1
  1106. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js.map +1 -1
  1107. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js +3 -3
  1108. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js.map +1 -1
  1109. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js +1 -1
  1110. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js.map +1 -1
  1111. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js +1 -1
  1112. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js.map +1 -1
  1113. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js +1 -1
  1114. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js.map +1 -1
  1115. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js +1 -1
  1116. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js.map +1 -1
  1117. package/dist/tests/units/usecases/mcp/addAction.usecase.test.js +3 -3
  1118. package/dist/tests/units/usecases/mcp/addAction.usecase.test.js.map +1 -1
  1119. package/dist/tests/units/usecases/mcp/completeAgent.usecase.test.js +2 -2
  1120. package/dist/tests/units/usecases/mcp/completeAgent.usecase.test.js.map +1 -1
  1121. package/dist/tests/units/usecases/mcp/getThreads.usecase.test.js +3 -3
  1122. package/dist/tests/units/usecases/mcp/getThreads.usecase.test.js.map +1 -1
  1123. package/dist/tests/units/usecases/mcp/getWorkflow.usecase.test.js +2 -2
  1124. package/dist/tests/units/usecases/mcp/getWorkflow.usecase.test.js.map +1 -1
  1125. package/dist/tests/units/usecases/mcp/setPhase.usecase.test.js +2 -2
  1126. package/dist/tests/units/usecases/mcp/setPhase.usecase.test.js.map +1 -1
  1127. package/dist/tests/units/usecases/mcp/startAgent.usecase.test.js +2 -2
  1128. package/dist/tests/units/usecases/mcp/startAgent.usecase.test.js.map +1 -1
  1129. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js +1 -1
  1130. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js.map +1 -1
  1131. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js +1 -1
  1132. package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js.map +1 -1
  1133. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js +1 -1
  1134. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js.map +1 -1
  1135. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js +1 -1
  1136. package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js.map +1 -1
  1137. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js +1 -1
  1138. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js.map +1 -1
  1139. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js +1 -1
  1140. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js.map +1 -1
  1141. package/dist/tests/units/usecases/tracking/checkFollowupNeeded.usecase.test.js +1 -1
  1142. package/dist/tests/units/usecases/tracking/checkFollowupNeeded.usecase.test.js.map +1 -1
  1143. package/dist/tests/units/usecases/tracking/recordPush.usecase.test.js +1 -1
  1144. package/dist/tests/units/usecases/tracking/recordPush.usecase.test.js.map +1 -1
  1145. package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js +1 -1
  1146. package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js.map +1 -1
  1147. package/dist/tests/units/usecases/tracking/syncThreads.usecase.test.js +1 -1
  1148. package/dist/tests/units/usecases/tracking/syncThreads.usecase.test.js.map +1 -1
  1149. package/dist/tests/units/usecases/tracking/trackAssignment.usecase.test.js +1 -1
  1150. package/dist/tests/units/usecases/tracking/trackAssignment.usecase.test.js.map +1 -1
  1151. package/dist/tests/units/usecases/tracking/transitionState.usecase.test.js +1 -1
  1152. package/dist/tests/units/usecases/tracking/transitionState.usecase.test.js.map +1 -1
  1153. package/dist/tests/units/usecases/triggerReview.usecase.test.js +1 -1
  1154. package/dist/tests/units/usecases/triggerReview.usecase.test.js.map +1 -1
  1155. package/dist/tests/units/usecases/version/checkVersion.usecase.test.js +17 -8
  1156. package/dist/tests/units/usecases/version/checkVersion.usecase.test.js.map +1 -1
  1157. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js +16 -5
  1158. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js.map +1 -1
  1159. package/package.json +1 -1
  1160. package/scripts/copyAssets.mjs +2 -2
  1161. package/scripts/hooks/protect-main-branch.sh +6 -1
  1162. package/scripts/hooks/protect-main-push.sh +4 -1
  1163. package/dist/entities/backfill/backfillProgress.d.ts.map +0 -1
  1164. package/dist/entities/backfill/backfillProgress.js.map +0 -1
  1165. package/dist/entities/cleanup/retentionPolicy.valueObject.d.ts.map +0 -1
  1166. package/dist/entities/cleanup/retentionPolicy.valueObject.js.map +0 -1
  1167. package/dist/entities/diffMetadata/diffMetadata.gateway.d.ts +0 -5
  1168. package/dist/entities/diffMetadata/diffMetadata.gateway.d.ts.map +0 -1
  1169. package/dist/entities/diffMetadata/diffMetadata.gateway.js.map +0 -1
  1170. package/dist/entities/diffStats/diffStats.d.ts.map +0 -1
  1171. package/dist/entities/diffStats/diffStats.js.map +0 -1
  1172. package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts +0 -5
  1173. package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts.map +0 -1
  1174. package/dist/entities/diffStats/diffStatsFetch.gateway.js.map +0 -1
  1175. package/dist/entities/github/githubPullRequestEvent.guard.d.ts +0 -199
  1176. package/dist/entities/github/githubPullRequestEvent.guard.d.ts.map +0 -1
  1177. package/dist/entities/github/githubPullRequestEvent.guard.js +0 -28
  1178. package/dist/entities/github/githubPullRequestEvent.guard.js.map +0 -1
  1179. package/dist/entities/gitlab/gitlabMergeRequestEvent.guard.d.ts +0 -231
  1180. package/dist/entities/gitlab/gitlabMergeRequestEvent.guard.d.ts.map +0 -1
  1181. package/dist/entities/gitlab/gitlabMergeRequestEvent.guard.js +0 -52
  1182. package/dist/entities/gitlab/gitlabMergeRequestEvent.guard.js.map +0 -1
  1183. package/dist/entities/insight/aiInsight.d.ts +0 -6
  1184. package/dist/entities/insight/aiInsight.d.ts.map +0 -1
  1185. package/dist/entities/insight/aiInsight.js.map +0 -1
  1186. package/dist/entities/insight/aiInsight.schema.d.ts.map +0 -1
  1187. package/dist/entities/insight/aiInsight.schema.js.map +0 -1
  1188. package/dist/entities/insight/developerInsight.d.ts +0 -8
  1189. package/dist/entities/insight/developerInsight.d.ts.map +0 -1
  1190. package/dist/entities/insight/developerInsight.guard.d.ts +0 -221
  1191. package/dist/entities/insight/developerInsight.guard.d.ts.map +0 -1
  1192. package/dist/entities/insight/developerInsight.guard.js +0 -13
  1193. package/dist/entities/insight/developerInsight.guard.js.map +0 -1
  1194. package/dist/entities/insight/developerInsight.js.map +0 -1
  1195. package/dist/entities/insight/developerInsight.schema.d.ts.map +0 -1
  1196. package/dist/entities/insight/developerInsight.schema.js +0 -43
  1197. package/dist/entities/insight/developerInsight.schema.js.map +0 -1
  1198. package/dist/entities/insight/developerTitle.d.ts.map +0 -1
  1199. package/dist/entities/insight/developerTitle.js.map +0 -1
  1200. package/dist/entities/insight/insightCategory.d.ts.map +0 -1
  1201. package/dist/entities/insight/insightCategory.js.map +0 -1
  1202. package/dist/entities/insight/insightTrend.d.ts.map +0 -1
  1203. package/dist/entities/insight/insightTrend.js.map +0 -1
  1204. package/dist/entities/insight/insights.gateway.d.ts +0 -6
  1205. package/dist/entities/insight/insights.gateway.d.ts.map +0 -1
  1206. package/dist/entities/insight/insights.gateway.js.map +0 -1
  1207. package/dist/entities/insight/persistedInsightsData.d.ts +0 -5
  1208. package/dist/entities/insight/persistedInsightsData.d.ts.map +0 -1
  1209. package/dist/entities/insight/persistedInsightsData.guard.d.ts +0 -271
  1210. package/dist/entities/insight/persistedInsightsData.guard.d.ts.map +0 -1
  1211. package/dist/entities/insight/persistedInsightsData.guard.js +0 -13
  1212. package/dist/entities/insight/persistedInsightsData.guard.js.map +0 -1
  1213. package/dist/entities/insight/persistedInsightsData.js.map +0 -1
  1214. package/dist/entities/insight/persistedInsightsData.schema.d.ts.map +0 -1
  1215. package/dist/entities/insight/persistedInsightsData.schema.js +0 -40
  1216. package/dist/entities/insight/persistedInsightsData.schema.js.map +0 -1
  1217. package/dist/entities/insight/teamInsight.d.ts +0 -5
  1218. package/dist/entities/insight/teamInsight.d.ts.map +0 -1
  1219. package/dist/entities/insight/teamInsight.guard.d.ts +0 -71
  1220. package/dist/entities/insight/teamInsight.guard.d.ts.map +0 -1
  1221. package/dist/entities/insight/teamInsight.guard.js +0 -13
  1222. package/dist/entities/insight/teamInsight.guard.js.map +0 -1
  1223. package/dist/entities/insight/teamInsight.js.map +0 -1
  1224. package/dist/entities/insight/teamInsight.schema.d.ts.map +0 -1
  1225. package/dist/entities/insight/teamInsight.schema.js +0 -17
  1226. package/dist/entities/insight/teamInsight.schema.js.map +0 -1
  1227. package/dist/entities/job/jobContext.gateway.d.ts.map +0 -1
  1228. package/dist/entities/job/jobContext.gateway.js.map +0 -1
  1229. package/dist/entities/language/language.schema.d.ts.map +0 -1
  1230. package/dist/entities/language/language.schema.js.map +0 -1
  1231. package/dist/entities/mcpSettings/mcpSettings.guard.d.ts +0 -12
  1232. package/dist/entities/mcpSettings/mcpSettings.guard.d.ts.map +0 -1
  1233. package/dist/entities/mcpSettings/mcpSettings.guard.js +0 -15
  1234. package/dist/entities/mcpSettings/mcpSettings.guard.js.map +0 -1
  1235. package/dist/entities/mcpSettings/mcpSettings.schema.d.ts.map +0 -1
  1236. package/dist/entities/mcpSettings/mcpSettings.schema.js.map +0 -1
  1237. package/dist/entities/modelRouting/modelRouting.gateway.d.ts +0 -5
  1238. package/dist/entities/modelRouting/modelRouting.gateway.d.ts.map +0 -1
  1239. package/dist/entities/modelRouting/modelRouting.gateway.js.map +0 -1
  1240. package/dist/entities/modelRouting/modelRouting.schema.d.ts.map +0 -1
  1241. package/dist/entities/modelRouting/modelRouting.schema.js.map +0 -1
  1242. package/dist/entities/packageVersion/packageVersion.d.ts +0 -21
  1243. package/dist/entities/packageVersion/packageVersion.d.ts.map +0 -1
  1244. package/dist/entities/packageVersion/packageVersion.gateway.d.ts.map +0 -1
  1245. package/dist/entities/packageVersion/packageVersion.gateway.js.map +0 -1
  1246. package/dist/entities/packageVersion/packageVersion.guard.d.ts +0 -7
  1247. package/dist/entities/packageVersion/packageVersion.guard.d.ts.map +0 -1
  1248. package/dist/entities/packageVersion/packageVersion.guard.js +0 -13
  1249. package/dist/entities/packageVersion/packageVersion.guard.js.map +0 -1
  1250. package/dist/entities/packageVersion/packageVersion.js.map +0 -1
  1251. package/dist/entities/packageVersion/packageVersion.schema.d.ts +0 -12
  1252. package/dist/entities/packageVersion/packageVersion.schema.d.ts.map +0 -1
  1253. package/dist/entities/packageVersion/packageVersion.schema.js +0 -11
  1254. package/dist/entities/packageVersion/packageVersion.schema.js.map +0 -1
  1255. package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +0 -1
  1256. package/dist/entities/packageVersion/selfUpdateCommand.gateway.js.map +0 -1
  1257. package/dist/entities/packageVersion/versionCache.gateway.d.ts +0 -7
  1258. package/dist/entities/packageVersion/versionCache.gateway.d.ts.map +0 -1
  1259. package/dist/entities/packageVersion/versionCache.gateway.js.map +0 -1
  1260. package/dist/entities/progress/agentDefinition.type.d.ts.map +0 -1
  1261. package/dist/entities/progress/agentDefinition.type.js.map +0 -1
  1262. package/dist/entities/progress/progress.calculator.d.ts.map +0 -1
  1263. package/dist/entities/progress/progress.calculator.js.map +0 -1
  1264. package/dist/entities/progress/progress.factory.d.ts.map +0 -1
  1265. package/dist/entities/progress/progress.factory.js.map +0 -1
  1266. package/dist/entities/progress/progress.gateway.d.ts.map +0 -1
  1267. package/dist/entities/progress/progress.gateway.js.map +0 -1
  1268. package/dist/entities/progress/progress.type.d.ts.map +0 -1
  1269. package/dist/entities/progress/progress.type.js.map +0 -1
  1270. package/dist/entities/review/reviewFile.gateway.d.ts.map +0 -1
  1271. package/dist/entities/review/reviewFile.gateway.js.map +0 -1
  1272. package/dist/entities/review/reviewScore.valueObject.d.ts.map +0 -1
  1273. package/dist/entities/review/reviewScore.valueObject.js.map +0 -1
  1274. package/dist/entities/reviewAction/reviewAction.d.ts.map +0 -1
  1275. package/dist/entities/reviewAction/reviewAction.gateway.d.ts.map +0 -1
  1276. package/dist/entities/reviewAction/reviewAction.gateway.js.map +0 -1
  1277. package/dist/entities/reviewAction/reviewAction.guard.d.ts +0 -27
  1278. package/dist/entities/reviewAction/reviewAction.guard.d.ts.map +0 -1
  1279. package/dist/entities/reviewAction/reviewAction.guard.js +0 -8
  1280. package/dist/entities/reviewAction/reviewAction.guard.js.map +0 -1
  1281. package/dist/entities/reviewAction/reviewAction.js.map +0 -1
  1282. package/dist/entities/reviewAction/reviewAction.schema.d.ts.map +0 -1
  1283. package/dist/entities/reviewAction/reviewAction.schema.js.map +0 -1
  1284. package/dist/entities/reviewContext/reviewContext.d.ts +0 -62
  1285. package/dist/entities/reviewContext/reviewContext.d.ts.map +0 -1
  1286. package/dist/entities/reviewContext/reviewContext.gateway.d.ts +0 -16
  1287. package/dist/entities/reviewContext/reviewContext.gateway.d.ts.map +0 -1
  1288. package/dist/entities/reviewContext/reviewContext.gateway.js.map +0 -1
  1289. package/dist/entities/reviewContext/reviewContext.js.map +0 -1
  1290. package/dist/entities/reviewContext/reviewContext.schema.d.ts.map +0 -1
  1291. package/dist/entities/reviewContext/reviewContext.schema.js +0 -42
  1292. package/dist/entities/reviewContext/reviewContext.schema.js.map +0 -1
  1293. package/dist/entities/reviewContext/reviewContextAction.guard.d.ts +0 -247
  1294. package/dist/entities/reviewContext/reviewContextAction.guard.d.ts.map +0 -1
  1295. package/dist/entities/reviewContext/reviewContextAction.guard.js +0 -28
  1296. package/dist/entities/reviewContext/reviewContextAction.guard.js.map +0 -1
  1297. package/dist/entities/reviewContext/reviewContextAction.schema.d.ts +0 -16
  1298. package/dist/entities/reviewContext/reviewContextAction.schema.d.ts.map +0 -1
  1299. package/dist/entities/reviewContext/reviewContextAction.schema.js +0 -13
  1300. package/dist/entities/reviewContext/reviewContextAction.schema.js.map +0 -1
  1301. package/dist/entities/reviewRequest/reviewRequest.entity.d.ts.map +0 -1
  1302. package/dist/entities/reviewRequest/reviewRequest.entity.js.map +0 -1
  1303. package/dist/entities/reviewRequest/reviewRequest.guard.d.ts.map +0 -1
  1304. package/dist/entities/reviewRequest/reviewRequest.guard.js.map +0 -1
  1305. package/dist/entities/reviewRequest/reviewRequestState.valueObject.d.ts.map +0 -1
  1306. package/dist/entities/reviewRequest/reviewRequestState.valueObject.js.map +0 -1
  1307. package/dist/entities/shared/duration.valueObject.d.ts.map +0 -1
  1308. package/dist/entities/shared/duration.valueObject.js.map +0 -1
  1309. package/dist/entities/stats/projectStats.d.ts +0 -39
  1310. package/dist/entities/stats/projectStats.d.ts.map +0 -1
  1311. package/dist/entities/stats/projectStats.js.map +0 -1
  1312. package/dist/entities/stats/recalculateBody.guard.d.ts +0 -11
  1313. package/dist/entities/stats/recalculateBody.guard.d.ts.map +0 -1
  1314. package/dist/entities/stats/recalculateBody.guard.js +0 -9
  1315. package/dist/entities/stats/recalculateBody.guard.js.map +0 -1
  1316. package/dist/entities/stats/stats.gateway.d.ts +0 -7
  1317. package/dist/entities/stats/stats.gateway.d.ts.map +0 -1
  1318. package/dist/entities/stats/stats.gateway.js.map +0 -1
  1319. package/dist/entities/threadFetch/threadFetch.gateway.d.ts +0 -5
  1320. package/dist/entities/threadFetch/threadFetch.gateway.d.ts.map +0 -1
  1321. package/dist/entities/threadFetch/threadFetch.gateway.js.map +0 -1
  1322. package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts +0 -6
  1323. package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts.map +0 -1
  1324. package/dist/entities/tokenUsage/tokenUsage.gateway.js.map +0 -1
  1325. package/dist/entities/tokenUsage/tokenUsage.schema.d.ts.map +0 -1
  1326. package/dist/entities/tokenUsage/tokenUsage.schema.js.map +0 -1
  1327. package/dist/entities/tracking/assignmentInfo.d.ts.map +0 -1
  1328. package/dist/entities/tracking/assignmentInfo.js.map +0 -1
  1329. package/dist/entities/tracking/mrTrackingData.d.ts.map +0 -1
  1330. package/dist/entities/tracking/mrTrackingData.js.map +0 -1
  1331. package/dist/entities/tracking/reviewEvent.d.ts +0 -14
  1332. package/dist/entities/tracking/reviewEvent.d.ts.map +0 -1
  1333. package/dist/entities/tracking/reviewEvent.js.map +0 -1
  1334. package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts +0 -19
  1335. package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts.map +0 -1
  1336. package/dist/entities/tracking/reviewRequestTracking.gateway.js.map +0 -1
  1337. package/dist/entities/tracking/trackedMr.d.ts.map +0 -1
  1338. package/dist/entities/tracking/trackedMr.js.map +0 -1
  1339. package/dist/interface-adapters/adapters/githubPullRequest.adapter.d.ts +0 -6
  1340. package/dist/interface-adapters/adapters/githubPullRequest.adapter.d.ts.map +0 -1
  1341. package/dist/interface-adapters/adapters/githubPullRequest.adapter.js.map +0 -1
  1342. package/dist/interface-adapters/adapters/gitlabMergeRequest.adapter.d.ts +0 -6
  1343. package/dist/interface-adapters/adapters/gitlabMergeRequest.adapter.d.ts.map +0 -1
  1344. package/dist/interface-adapters/adapters/gitlabMergeRequest.adapter.js.map +0 -1
  1345. package/dist/interface-adapters/adapters/platformAdapter.d.ts +0 -9
  1346. package/dist/interface-adapters/adapters/platformAdapter.d.ts.map +0 -1
  1347. package/dist/interface-adapters/adapters/platformAdapter.js +0 -16
  1348. package/dist/interface-adapters/adapters/platformAdapter.js.map +0 -1
  1349. package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts +0 -16
  1350. package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts.map +0 -1
  1351. package/dist/interface-adapters/controllers/http/cleanup.routes.js +0 -44
  1352. package/dist/interface-adapters/controllers/http/cleanup.routes.js.map +0 -1
  1353. package/dist/interface-adapters/controllers/http/cliStatus.routes.d.ts.map +0 -1
  1354. package/dist/interface-adapters/controllers/http/cliStatus.routes.js +0 -173
  1355. package/dist/interface-adapters/controllers/http/cliStatus.routes.js.map +0 -1
  1356. package/dist/interface-adapters/controllers/http/health.routes.d.ts +0 -11
  1357. package/dist/interface-adapters/controllers/http/health.routes.d.ts.map +0 -1
  1358. package/dist/interface-adapters/controllers/http/health.routes.js +0 -27
  1359. package/dist/interface-adapters/controllers/http/health.routes.js.map +0 -1
  1360. package/dist/interface-adapters/controllers/http/index.d.ts +0 -6
  1361. package/dist/interface-adapters/controllers/http/index.d.ts.map +0 -1
  1362. package/dist/interface-adapters/controllers/http/index.js +0 -6
  1363. package/dist/interface-adapters/controllers/http/index.js.map +0 -1
  1364. package/dist/interface-adapters/controllers/http/insights.routes.d.ts +0 -20
  1365. package/dist/interface-adapters/controllers/http/insights.routes.d.ts.map +0 -1
  1366. package/dist/interface-adapters/controllers/http/insights.routes.js +0 -73
  1367. package/dist/interface-adapters/controllers/http/insights.routes.js.map +0 -1
  1368. package/dist/interface-adapters/controllers/http/logs.routes.d.ts.map +0 -1
  1369. package/dist/interface-adapters/controllers/http/logs.routes.js +0 -12
  1370. package/dist/interface-adapters/controllers/http/logs.routes.js.map +0 -1
  1371. package/dist/interface-adapters/controllers/http/mrTracking.routes.d.ts.map +0 -1
  1372. package/dist/interface-adapters/controllers/http/mrTracking.routes.js +0 -63
  1373. package/dist/interface-adapters/controllers/http/mrTracking.routes.js.map +0 -1
  1374. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts +0 -12
  1375. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts.map +0 -1
  1376. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js +0 -336
  1377. package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js.map +0 -1
  1378. package/dist/interface-adapters/controllers/http/projectConfig.routes.d.ts.map +0 -1
  1379. package/dist/interface-adapters/controllers/http/projectConfig.routes.js +0 -75
  1380. package/dist/interface-adapters/controllers/http/projectConfig.routes.js.map +0 -1
  1381. package/dist/interface-adapters/controllers/http/reviews.routes.d.ts +0 -18
  1382. package/dist/interface-adapters/controllers/http/reviews.routes.d.ts.map +0 -1
  1383. package/dist/interface-adapters/controllers/http/reviews.routes.js +0 -96
  1384. package/dist/interface-adapters/controllers/http/reviews.routes.js.map +0 -1
  1385. package/dist/interface-adapters/controllers/http/settings.routes.d.ts.map +0 -1
  1386. package/dist/interface-adapters/controllers/http/settings.routes.js +0 -35
  1387. package/dist/interface-adapters/controllers/http/settings.routes.js.map +0 -1
  1388. package/dist/interface-adapters/controllers/http/stats.routes.d.ts +0 -27
  1389. package/dist/interface-adapters/controllers/http/stats.routes.d.ts.map +0 -1
  1390. package/dist/interface-adapters/controllers/http/stats.routes.js +0 -70
  1391. package/dist/interface-adapters/controllers/http/stats.routes.js.map +0 -1
  1392. package/dist/interface-adapters/controllers/http/version.routes.d.ts +0 -19
  1393. package/dist/interface-adapters/controllers/http/version.routes.d.ts.map +0 -1
  1394. package/dist/interface-adapters/controllers/http/version.routes.js +0 -21
  1395. package/dist/interface-adapters/controllers/http/version.routes.js.map +0 -1
  1396. package/dist/interface-adapters/controllers/mcp/addAction.handler.d.ts +0 -4
  1397. package/dist/interface-adapters/controllers/mcp/addAction.handler.d.ts.map +0 -1
  1398. package/dist/interface-adapters/controllers/mcp/addAction.handler.js.map +0 -1
  1399. package/dist/interface-adapters/controllers/mcp/completeAgent.handler.d.ts +0 -4
  1400. package/dist/interface-adapters/controllers/mcp/completeAgent.handler.d.ts.map +0 -1
  1401. package/dist/interface-adapters/controllers/mcp/completeAgent.handler.js.map +0 -1
  1402. package/dist/interface-adapters/controllers/mcp/getThreads.handler.d.ts +0 -4
  1403. package/dist/interface-adapters/controllers/mcp/getThreads.handler.d.ts.map +0 -1
  1404. package/dist/interface-adapters/controllers/mcp/getThreads.handler.js.map +0 -1
  1405. package/dist/interface-adapters/controllers/mcp/getWorkflow.handler.d.ts +0 -4
  1406. package/dist/interface-adapters/controllers/mcp/getWorkflow.handler.d.ts.map +0 -1
  1407. package/dist/interface-adapters/controllers/mcp/getWorkflow.handler.js.map +0 -1
  1408. package/dist/interface-adapters/controllers/mcp/setPhase.handler.d.ts +0 -4
  1409. package/dist/interface-adapters/controllers/mcp/setPhase.handler.d.ts.map +0 -1
  1410. package/dist/interface-adapters/controllers/mcp/setPhase.handler.js.map +0 -1
  1411. package/dist/interface-adapters/controllers/mcp/startAgent.handler.d.ts +0 -4
  1412. package/dist/interface-adapters/controllers/mcp/startAgent.handler.d.ts.map +0 -1
  1413. package/dist/interface-adapters/controllers/mcp/startAgent.handler.js.map +0 -1
  1414. package/dist/interface-adapters/controllers/webhook/eventFilter.d.ts +0 -71
  1415. package/dist/interface-adapters/controllers/webhook/eventFilter.d.ts.map +0 -1
  1416. package/dist/interface-adapters/controllers/webhook/eventFilter.js +0 -252
  1417. package/dist/interface-adapters/controllers/webhook/eventFilter.js.map +0 -1
  1418. package/dist/interface-adapters/controllers/webhook/github.controller.d.ts +0 -19
  1419. package/dist/interface-adapters/controllers/webhook/github.controller.d.ts.map +0 -1
  1420. package/dist/interface-adapters/controllers/webhook/github.controller.js +0 -264
  1421. package/dist/interface-adapters/controllers/webhook/github.controller.js.map +0 -1
  1422. package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts +0 -28
  1423. package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +0 -1
  1424. package/dist/interface-adapters/controllers/webhook/gitlab.controller.js +0 -480
  1425. package/dist/interface-adapters/controllers/webhook/gitlab.controller.js.map +0 -1
  1426. package/dist/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.d.ts +0 -7
  1427. package/dist/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.d.ts.map +0 -1
  1428. package/dist/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.js +0 -71
  1429. package/dist/interface-adapters/gateways/cli/reviewAction.github.cli.gateway.js.map +0 -1
  1430. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.d.ts +0 -7
  1431. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.d.ts.map +0 -1
  1432. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js +0 -63
  1433. package/dist/interface-adapters/gateways/cli/reviewAction.gitlab.cli.gateway.js.map +0 -1
  1434. package/dist/interface-adapters/gateways/diffMetadataFetch.github.gateway.d.ts +0 -9
  1435. package/dist/interface-adapters/gateways/diffMetadataFetch.github.gateway.d.ts.map +0 -1
  1436. package/dist/interface-adapters/gateways/diffMetadataFetch.github.gateway.js.map +0 -1
  1437. package/dist/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.d.ts +0 -9
  1438. package/dist/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.d.ts.map +0 -1
  1439. package/dist/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.js.map +0 -1
  1440. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts +0 -10
  1441. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts.map +0 -1
  1442. package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.js.map +0 -1
  1443. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts +0 -10
  1444. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts.map +0 -1
  1445. package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js.map +0 -1
  1446. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts +0 -7
  1447. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts.map +0 -1
  1448. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js +0 -33
  1449. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js.map +0 -1
  1450. package/dist/interface-adapters/gateways/fileSystem/reviewFile.fileSystem.d.ts.map +0 -1
  1451. package/dist/interface-adapters/gateways/fileSystem/reviewFile.fileSystem.js.map +0 -1
  1452. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts +0 -7
  1453. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts.map +0 -1
  1454. package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js.map +0 -1
  1455. package/dist/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.d.ts +0 -22
  1456. package/dist/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.d.ts.map +0 -1
  1457. package/dist/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js +0 -142
  1458. package/dist/interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js.map +0 -1
  1459. package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts +0 -8
  1460. package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts.map +0 -1
  1461. package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.js.map +0 -1
  1462. package/dist/interface-adapters/gateways/jobContext.memory.gateway.d.ts.map +0 -1
  1463. package/dist/interface-adapters/gateways/jobContext.memory.gateway.js.map +0 -1
  1464. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts +0 -7
  1465. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts.map +0 -1
  1466. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js +0 -25
  1467. package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js.map +0 -1
  1468. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts +0 -6
  1469. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts.map +0 -1
  1470. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js +0 -8
  1471. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js.map +0 -1
  1472. package/dist/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts +0 -14
  1473. package/dist/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts.map +0 -1
  1474. package/dist/interface-adapters/gateways/reviewContext.fileSystem.gateway.js +0 -87
  1475. package/dist/interface-adapters/gateways/reviewContext.fileSystem.gateway.js.map +0 -1
  1476. package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts +0 -2
  1477. package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts.map +0 -1
  1478. package/dist/interface-adapters/gateways/reviewFile.gateway.js.map +0 -1
  1479. package/dist/interface-adapters/gateways/reviewLogFile.gateway.d.ts.map +0 -1
  1480. package/dist/interface-adapters/gateways/reviewLogFile.gateway.js.map +0 -1
  1481. package/dist/interface-adapters/gateways/reviewProgress.memory.gateway.d.ts.map +0 -1
  1482. package/dist/interface-adapters/gateways/reviewProgress.memory.gateway.js.map +0 -1
  1483. package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts +0 -2
  1484. package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts.map +0 -1
  1485. package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.js.map +0 -1
  1486. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts +0 -20
  1487. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +0 -1
  1488. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js +0 -58
  1489. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +0 -1
  1490. package/dist/interface-adapters/gateways/stats.gateway.d.ts +0 -2
  1491. package/dist/interface-adapters/gateways/stats.gateway.d.ts.map +0 -1
  1492. package/dist/interface-adapters/gateways/stats.gateway.js.map +0 -1
  1493. package/dist/interface-adapters/gateways/threadFetch.github.gateway.d.ts +0 -10
  1494. package/dist/interface-adapters/gateways/threadFetch.github.gateway.d.ts.map +0 -1
  1495. package/dist/interface-adapters/gateways/threadFetch.github.gateway.js.map +0 -1
  1496. package/dist/interface-adapters/gateways/threadFetch.gitlab.gateway.d.ts +0 -10
  1497. package/dist/interface-adapters/gateways/threadFetch.gitlab.gateway.d.ts.map +0 -1
  1498. package/dist/interface-adapters/gateways/threadFetch.gitlab.gateway.js.map +0 -1
  1499. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts +0 -7
  1500. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts.map +0 -1
  1501. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js +0 -37
  1502. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js.map +0 -1
  1503. package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts +0 -12
  1504. package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts.map +0 -1
  1505. package/dist/interface-adapters/gateways/versionCache.memory.gateway.js.map +0 -1
  1506. package/dist/interface-adapters/presenters/insights.presenter.d.ts +0 -41
  1507. package/dist/interface-adapters/presenters/insights.presenter.d.ts.map +0 -1
  1508. package/dist/interface-adapters/presenters/insights.presenter.js.map +0 -1
  1509. package/dist/interface-adapters/presenters/jobStatus.presenter.d.ts +0 -29
  1510. package/dist/interface-adapters/presenters/jobStatus.presenter.d.ts.map +0 -1
  1511. package/dist/interface-adapters/presenters/jobStatus.presenter.js +0 -57
  1512. package/dist/interface-adapters/presenters/jobStatus.presenter.js.map +0 -1
  1513. package/dist/interface-adapters/presenters/projectStats.calculator.d.ts +0 -8
  1514. package/dist/interface-adapters/presenters/projectStats.calculator.d.ts.map +0 -1
  1515. package/dist/interface-adapters/presenters/projectStats.calculator.js.map +0 -1
  1516. package/dist/interface-adapters/presenters/reviewContextProgress.presenter.d.ts +0 -8
  1517. package/dist/interface-adapters/presenters/reviewContextProgress.presenter.d.ts.map +0 -1
  1518. package/dist/interface-adapters/presenters/reviewContextProgress.presenter.js +0 -45
  1519. package/dist/interface-adapters/presenters/reviewContextProgress.presenter.js.map +0 -1
  1520. package/dist/interface-adapters/presenters/reviewList.presenter.d.ts +0 -22
  1521. package/dist/interface-adapters/presenters/reviewList.presenter.d.ts.map +0 -1
  1522. package/dist/interface-adapters/presenters/reviewList.presenter.js.map +0 -1
  1523. package/dist/interface-adapters/views/dashboard/index.html +0 -2682
  1524. package/dist/interface-adapters/views/dashboard/modules/assignee.d.ts.map +0 -1
  1525. package/dist/interface-adapters/views/dashboard/modules/assignee.js.map +0 -1
  1526. package/dist/interface-adapters/views/dashboard/modules/cleanup.d.ts.map +0 -1
  1527. package/dist/interface-adapters/views/dashboard/modules/cleanup.js.map +0 -1
  1528. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.d.ts.map +0 -1
  1529. package/dist/interface-adapters/views/dashboard/modules/collapsibleList.js.map +0 -1
  1530. package/dist/interface-adapters/views/dashboard/modules/constants.d.ts.map +0 -1
  1531. package/dist/interface-adapters/views/dashboard/modules/constants.js.map +0 -1
  1532. package/dist/interface-adapters/views/dashboard/modules/desktopNotifications.d.ts.map +0 -1
  1533. package/dist/interface-adapters/views/dashboard/modules/desktopNotifications.js.map +0 -1
  1534. package/dist/interface-adapters/views/dashboard/modules/developerSheet.d.ts.map +0 -1
  1535. package/dist/interface-adapters/views/dashboard/modules/developerSheet.js.map +0 -1
  1536. package/dist/interface-adapters/views/dashboard/modules/formatting.d.ts.map +0 -1
  1537. package/dist/interface-adapters/views/dashboard/modules/formatting.js.map +0 -1
  1538. package/dist/interface-adapters/views/dashboard/modules/html.d.ts.map +0 -1
  1539. package/dist/interface-adapters/views/dashboard/modules/html.js.map +0 -1
  1540. package/dist/interface-adapters/views/dashboard/modules/i18n.d.ts.map +0 -1
  1541. package/dist/interface-adapters/views/dashboard/modules/i18n.js +0 -796
  1542. package/dist/interface-adapters/views/dashboard/modules/i18n.js.map +0 -1
  1543. package/dist/interface-adapters/views/dashboard/modules/icons.d.ts.map +0 -1
  1544. package/dist/interface-adapters/views/dashboard/modules/icons.js.map +0 -1
  1545. package/dist/interface-adapters/views/dashboard/modules/insightsReport.d.ts.map +0 -1
  1546. package/dist/interface-adapters/views/dashboard/modules/insightsReport.js.map +0 -1
  1547. package/dist/interface-adapters/views/dashboard/modules/loading.d.ts.map +0 -1
  1548. package/dist/interface-adapters/views/dashboard/modules/loading.js.map +0 -1
  1549. package/dist/interface-adapters/views/dashboard/modules/mrSheet.d.ts.map +0 -1
  1550. package/dist/interface-adapters/views/dashboard/modules/mrSheet.js.map +0 -1
  1551. package/dist/interface-adapters/views/dashboard/modules/notifications.d.ts.map +0 -1
  1552. package/dist/interface-adapters/views/dashboard/modules/notifications.js.map +0 -1
  1553. package/dist/interface-adapters/views/dashboard/modules/priority.d.ts.map +0 -1
  1554. package/dist/interface-adapters/views/dashboard/modules/priority.js.map +0 -1
  1555. package/dist/interface-adapters/views/dashboard/modules/quality.d.ts.map +0 -1
  1556. package/dist/interface-adapters/views/dashboard/modules/quality.js.map +0 -1
  1557. package/dist/interface-adapters/views/dashboard/modules/queueLanes.d.ts.map +0 -1
  1558. package/dist/interface-adapters/views/dashboard/modules/queueLanes.js.map +0 -1
  1559. package/dist/interface-adapters/views/dashboard/modules/sessionMetrics.d.ts.map +0 -1
  1560. package/dist/interface-adapters/views/dashboard/modules/sessionMetrics.js.map +0 -1
  1561. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.d.ts.map +0 -1
  1562. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.js.map +0 -1
  1563. package/dist/interface-adapters/views/dashboard/modules/statsCharts.d.ts.map +0 -1
  1564. package/dist/interface-adapters/views/dashboard/modules/statsCharts.js.map +0 -1
  1565. package/dist/interface-adapters/views/dashboard/modules/teamTab.d.ts.map +0 -1
  1566. package/dist/interface-adapters/views/dashboard/modules/teamTab.js.map +0 -1
  1567. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts +0 -16
  1568. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts.map +0 -1
  1569. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js +0 -54
  1570. package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js.map +0 -1
  1571. package/dist/interface-adapters/views/dashboard/styles.css +0 -3973
  1572. package/dist/services/agentInstructionsBuilder.d.ts +0 -4
  1573. package/dist/services/agentInstructionsBuilder.d.ts.map +0 -1
  1574. package/dist/services/agentInstructionsBuilder.js.map +0 -1
  1575. package/dist/services/commentLinkEnricher.d.ts.map +0 -1
  1576. package/dist/services/commentLinkEnricher.js.map +0 -1
  1577. package/dist/services/contextActionsExecutor.d.ts +0 -19
  1578. package/dist/services/contextActionsExecutor.d.ts.map +0 -1
  1579. package/dist/services/contextActionsExecutor.js +0 -19
  1580. package/dist/services/contextActionsExecutor.js.map +0 -1
  1581. package/dist/services/reviewContextWatcher.service.d.ts +0 -15
  1582. package/dist/services/reviewContextWatcher.service.d.ts.map +0 -1
  1583. package/dist/services/reviewContextWatcher.service.js.map +0 -1
  1584. package/dist/services/statsService.d.ts +0 -52
  1585. package/dist/services/statsService.d.ts.map +0 -1
  1586. package/dist/services/statsService.js.map +0 -1
  1587. package/dist/services/threadActionsExecutor.d.ts +0 -26
  1588. package/dist/services/threadActionsExecutor.d.ts.map +0 -1
  1589. package/dist/services/threadActionsExecutor.js +0 -28
  1590. package/dist/services/threadActionsExecutor.js.map +0 -1
  1591. package/dist/services/threadActionsParser.d.ts +0 -4
  1592. package/dist/services/threadActionsParser.d.ts.map +0 -1
  1593. package/dist/services/threadActionsParser.js.map +0 -1
  1594. package/dist/tests/units/entities/reviewContext/reviewContextAction.guard.test.d.ts +0 -2
  1595. package/dist/tests/units/entities/reviewContext/reviewContextAction.guard.test.d.ts.map +0 -1
  1596. package/dist/tests/units/entities/reviewContext/reviewContextAction.guard.test.js +0 -88
  1597. package/dist/tests/units/entities/reviewContext/reviewContextAction.guard.test.js.map +0 -1
  1598. package/dist/tests/units/entities/reviewContext/reviewContextAction.schema.test.d.ts +0 -2
  1599. package/dist/tests/units/entities/reviewContext/reviewContextAction.schema.test.d.ts.map +0 -1
  1600. package/dist/tests/units/entities/reviewContext/reviewContextAction.schema.test.js +0 -132
  1601. package/dist/tests/units/entities/reviewContext/reviewContextAction.schema.test.js.map +0 -1
  1602. package/dist/tests/units/interface-adapters/views/dashboard/modules/assignee.test.d.ts.map +0 -1
  1603. package/dist/tests/units/interface-adapters/views/dashboard/modules/assignee.test.js +0 -35
  1604. package/dist/tests/units/interface-adapters/views/dashboard/modules/assignee.test.js.map +0 -1
  1605. package/dist/tests/units/interface-adapters/views/dashboard/modules/constants.test.d.ts.map +0 -1
  1606. package/dist/tests/units/interface-adapters/views/dashboard/modules/constants.test.js +0 -17
  1607. package/dist/tests/units/interface-adapters/views/dashboard/modules/constants.test.js.map +0 -1
  1608. package/dist/tests/units/interface-adapters/views/dashboard/modules/desktopNotifications.test.d.ts.map +0 -1
  1609. package/dist/tests/units/interface-adapters/views/dashboard/modules/desktopNotifications.test.js +0 -54
  1610. package/dist/tests/units/interface-adapters/views/dashboard/modules/desktopNotifications.test.js.map +0 -1
  1611. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.d.ts.map +0 -1
  1612. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js +0 -224
  1613. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js.map +0 -1
  1614. package/dist/tests/units/interface-adapters/views/dashboard/modules/formatting.test.d.ts.map +0 -1
  1615. package/dist/tests/units/interface-adapters/views/dashboard/modules/formatting.test.js +0 -95
  1616. package/dist/tests/units/interface-adapters/views/dashboard/modules/formatting.test.js.map +0 -1
  1617. package/dist/tests/units/interface-adapters/views/dashboard/modules/html.test.d.ts.map +0 -1
  1618. package/dist/tests/units/interface-adapters/views/dashboard/modules/html.test.js +0 -55
  1619. package/dist/tests/units/interface-adapters/views/dashboard/modules/html.test.js.map +0 -1
  1620. package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.d.ts.map +0 -1
  1621. package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js +0 -127
  1622. package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js.map +0 -1
  1623. package/dist/tests/units/interface-adapters/views/dashboard/modules/icons.test.d.ts.map +0 -1
  1624. package/dist/tests/units/interface-adapters/views/dashboard/modules/icons.test.js +0 -28
  1625. package/dist/tests/units/interface-adapters/views/dashboard/modules/icons.test.js.map +0 -1
  1626. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.d.ts.map +0 -1
  1627. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js +0 -326
  1628. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js.map +0 -1
  1629. package/dist/tests/units/interface-adapters/views/dashboard/modules/loading.test.d.ts.map +0 -1
  1630. package/dist/tests/units/interface-adapters/views/dashboard/modules/loading.test.js +0 -51
  1631. package/dist/tests/units/interface-adapters/views/dashboard/modules/loading.test.js.map +0 -1
  1632. package/dist/tests/units/interface-adapters/views/dashboard/modules/notifications.test.d.ts.map +0 -1
  1633. package/dist/tests/units/interface-adapters/views/dashboard/modules/notifications.test.js +0 -43
  1634. package/dist/tests/units/interface-adapters/views/dashboard/modules/notifications.test.js.map +0 -1
  1635. package/dist/tests/units/interface-adapters/views/dashboard/modules/priority.test.d.ts.map +0 -1
  1636. package/dist/tests/units/interface-adapters/views/dashboard/modules/priority.test.js +0 -78
  1637. package/dist/tests/units/interface-adapters/views/dashboard/modules/priority.test.js.map +0 -1
  1638. package/dist/tests/units/interface-adapters/views/dashboard/modules/quality.test.d.ts.map +0 -1
  1639. package/dist/tests/units/interface-adapters/views/dashboard/modules/quality.test.js +0 -87
  1640. package/dist/tests/units/interface-adapters/views/dashboard/modules/quality.test.js.map +0 -1
  1641. package/dist/tests/units/interface-adapters/views/dashboard/modules/queueLanes.test.d.ts.map +0 -1
  1642. package/dist/tests/units/interface-adapters/views/dashboard/modules/queueLanes.test.js +0 -29
  1643. package/dist/tests/units/interface-adapters/views/dashboard/modules/queueLanes.test.js.map +0 -1
  1644. package/dist/tests/units/interface-adapters/views/dashboard/modules/sessionMetrics.test.d.ts.map +0 -1
  1645. package/dist/tests/units/interface-adapters/views/dashboard/modules/sessionMetrics.test.js +0 -60
  1646. package/dist/tests/units/interface-adapters/views/dashboard/modules/sessionMetrics.test.js.map +0 -1
  1647. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.d.ts.map +0 -1
  1648. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js +0 -336
  1649. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js.map +0 -1
  1650. package/dist/usecases/cancelReview.usecase.d.ts.map +0 -1
  1651. package/dist/usecases/cancelReview.usecase.js.map +0 -1
  1652. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts +0 -13
  1653. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts.map +0 -1
  1654. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js +0 -41
  1655. package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js.map +0 -1
  1656. package/dist/usecases/cli/addRepositoriesToConfig.usecase.d.ts +0 -27
  1657. package/dist/usecases/cli/addRepositoriesToConfig.usecase.d.ts.map +0 -1
  1658. package/dist/usecases/cli/addRepositoriesToConfig.usecase.js.map +0 -1
  1659. package/dist/usecases/cli/checkInitPrerequisites.d.ts.map +0 -1
  1660. package/dist/usecases/cli/checkInitPrerequisites.js.map +0 -1
  1661. package/dist/usecases/cli/configureMcp.usecase.d.ts.map +0 -1
  1662. package/dist/usecases/cli/configureMcp.usecase.js +0 -49
  1663. package/dist/usecases/cli/configureMcp.usecase.js.map +0 -1
  1664. package/dist/usecases/cli/discoverRepositories.usecase.d.ts +0 -34
  1665. package/dist/usecases/cli/discoverRepositories.usecase.d.ts.map +0 -1
  1666. package/dist/usecases/cli/discoverRepositories.usecase.js.map +0 -1
  1667. package/dist/usecases/cli/followupImportants.usecase.d.ts.map +0 -1
  1668. package/dist/usecases/cli/followupImportants.usecase.js.map +0 -1
  1669. package/dist/usecases/cli/queryStatus.usecase.d.ts +0 -21
  1670. package/dist/usecases/cli/queryStatus.usecase.d.ts.map +0 -1
  1671. package/dist/usecases/cli/queryStatus.usecase.js.map +0 -1
  1672. package/dist/usecases/cli/readLogs.usecase.d.ts +0 -29
  1673. package/dist/usecases/cli/readLogs.usecase.d.ts.map +0 -1
  1674. package/dist/usecases/cli/readLogs.usecase.js.map +0 -1
  1675. package/dist/usecases/cli/startDaemon.usecase.d.ts +0 -28
  1676. package/dist/usecases/cli/startDaemon.usecase.d.ts.map +0 -1
  1677. package/dist/usecases/cli/startDaemon.usecase.js.map +0 -1
  1678. package/dist/usecases/cli/stopDaemon.usecase.d.ts +0 -26
  1679. package/dist/usecases/cli/stopDaemon.usecase.d.ts.map +0 -1
  1680. package/dist/usecases/cli/stopDaemon.usecase.js.map +0 -1
  1681. package/dist/usecases/cli/validateConfig.usecase.d.ts.map +0 -1
  1682. package/dist/usecases/cli/validateConfig.usecase.js.map +0 -1
  1683. package/dist/usecases/cli/writeInitConfig.usecase.d.ts.map +0 -1
  1684. package/dist/usecases/cli/writeInitConfig.usecase.js.map +0 -1
  1685. package/dist/usecases/handleReviewRequestPush.usecase.d.ts +0 -26
  1686. package/dist/usecases/handleReviewRequestPush.usecase.d.ts.map +0 -1
  1687. package/dist/usecases/handleReviewRequestPush.usecase.js.map +0 -1
  1688. package/dist/usecases/insights/buildAiInsightsPrompt.d.ts +0 -12
  1689. package/dist/usecases/insights/buildAiInsightsPrompt.d.ts.map +0 -1
  1690. package/dist/usecases/insights/buildAiInsightsPrompt.js.map +0 -1
  1691. package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts +0 -4
  1692. package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts.map +0 -1
  1693. package/dist/usecases/insights/computeDeveloperInsights.usecase.js +0 -226
  1694. package/dist/usecases/insights/computeDeveloperInsights.usecase.js.map +0 -1
  1695. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts +0 -12
  1696. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts.map +0 -1
  1697. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js +0 -340
  1698. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js.map +0 -1
  1699. package/dist/usecases/insights/computeTeamInsights.usecase.d.ts +0 -4
  1700. package/dist/usecases/insights/computeTeamInsights.usecase.d.ts.map +0 -1
  1701. package/dist/usecases/insights/computeTeamInsights.usecase.js +0 -111
  1702. package/dist/usecases/insights/computeTeamInsights.usecase.js.map +0 -1
  1703. package/dist/usecases/insights/generateAiInsights.usecase.d.ts +0 -27
  1704. package/dist/usecases/insights/generateAiInsights.usecase.d.ts.map +0 -1
  1705. package/dist/usecases/insights/generateAiInsights.usecase.js +0 -65
  1706. package/dist/usecases/insights/generateAiInsights.usecase.js.map +0 -1
  1707. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts +0 -18
  1708. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts.map +0 -1
  1709. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js +0 -56
  1710. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js.map +0 -1
  1711. package/dist/usecases/insights/insightLevelComputation.service.d.ts +0 -41
  1712. package/dist/usecases/insights/insightLevelComputation.service.d.ts.map +0 -1
  1713. package/dist/usecases/insights/insightLevelComputation.service.js +0 -313
  1714. package/dist/usecases/insights/insightLevelComputation.service.js.map +0 -1
  1715. package/dist/usecases/mcp/addAction.usecase.d.ts.map +0 -1
  1716. package/dist/usecases/mcp/addAction.usecase.js.map +0 -1
  1717. package/dist/usecases/mcp/completeAgent.usecase.d.ts.map +0 -1
  1718. package/dist/usecases/mcp/completeAgent.usecase.js.map +0 -1
  1719. package/dist/usecases/mcp/getThreads.usecase.d.ts.map +0 -1
  1720. package/dist/usecases/mcp/getThreads.usecase.js.map +0 -1
  1721. package/dist/usecases/mcp/getWorkflow.usecase.d.ts.map +0 -1
  1722. package/dist/usecases/mcp/getWorkflow.usecase.js.map +0 -1
  1723. package/dist/usecases/mcp/setPhase.usecase.d.ts.map +0 -1
  1724. package/dist/usecases/mcp/setPhase.usecase.js.map +0 -1
  1725. package/dist/usecases/mcp/startAgent.usecase.d.ts.map +0 -1
  1726. package/dist/usecases/mcp/startAgent.usecase.js.map +0 -1
  1727. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts +0 -15
  1728. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts.map +0 -1
  1729. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.js.map +0 -1
  1730. package/dist/usecases/stats/backfillDiffStats.usecase.d.ts +0 -18
  1731. package/dist/usecases/stats/backfillDiffStats.usecase.d.ts.map +0 -1
  1732. package/dist/usecases/stats/backfillDiffStats.usecase.js.map +0 -1
  1733. package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts +0 -7
  1734. package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts.map +0 -1
  1735. package/dist/usecases/stats/recalculateProjectStats.usecase.js.map +0 -1
  1736. package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts +0 -22
  1737. package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts.map +0 -1
  1738. package/dist/usecases/stats/recalculateWithBackfill.usecase.js +0 -33
  1739. package/dist/usecases/stats/recalculateWithBackfill.usecase.js.map +0 -1
  1740. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts +0 -23
  1741. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts.map +0 -1
  1742. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js.map +0 -1
  1743. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts +0 -8
  1744. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts.map +0 -1
  1745. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.js.map +0 -1
  1746. package/dist/usecases/tracking/checkFollowupNeeded.usecase.d.ts +0 -14
  1747. package/dist/usecases/tracking/checkFollowupNeeded.usecase.d.ts.map +0 -1
  1748. package/dist/usecases/tracking/checkFollowupNeeded.usecase.js.map +0 -1
  1749. package/dist/usecases/tracking/recordPush.usecase.d.ts +0 -15
  1750. package/dist/usecases/tracking/recordPush.usecase.d.ts.map +0 -1
  1751. package/dist/usecases/tracking/recordPush.usecase.js.map +0 -1
  1752. package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts +0 -26
  1753. package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts.map +0 -1
  1754. package/dist/usecases/tracking/recordReviewCompletion.usecase.js.map +0 -1
  1755. package/dist/usecases/tracking/syncThreads.usecase.d.ts +0 -16
  1756. package/dist/usecases/tracking/syncThreads.usecase.d.ts.map +0 -1
  1757. package/dist/usecases/tracking/syncThreads.usecase.js.map +0 -1
  1758. package/dist/usecases/tracking/trackAssignment.usecase.d.ts +0 -28
  1759. package/dist/usecases/tracking/trackAssignment.usecase.d.ts.map +0 -1
  1760. package/dist/usecases/tracking/trackAssignment.usecase.js +0 -68
  1761. package/dist/usecases/tracking/trackAssignment.usecase.js.map +0 -1
  1762. package/dist/usecases/tracking/transitionState.usecase.d.ts +0 -14
  1763. package/dist/usecases/tracking/transitionState.usecase.d.ts.map +0 -1
  1764. package/dist/usecases/tracking/transitionState.usecase.js.map +0 -1
  1765. package/dist/usecases/triggerReview.usecase.d.ts +0 -43
  1766. package/dist/usecases/triggerReview.usecase.d.ts.map +0 -1
  1767. package/dist/usecases/triggerReview.usecase.js.map +0 -1
  1768. package/dist/usecases/version/checkVersion.usecase.d.ts +0 -13
  1769. package/dist/usecases/version/checkVersion.usecase.d.ts.map +0 -1
  1770. package/dist/usecases/version/checkVersion.usecase.js +0 -20
  1771. package/dist/usecases/version/checkVersion.usecase.js.map +0 -1
  1772. package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts +0 -7
  1773. package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts.map +0 -1
  1774. package/dist/usecases/version/triggerSelfUpdate.usecase.js +0 -12
  1775. package/dist/usecases/version/triggerSelfUpdate.usecase.js.map +0 -1
  1776. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/assignee.d.ts +0 -0
  1777. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/assignee.js +0 -0
  1778. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/cleanup.d.ts +0 -0
  1779. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/cleanup.js +0 -0
  1780. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/collapsibleList.d.ts +0 -0
  1781. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/collapsibleList.js +0 -0
  1782. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/constants.d.ts +0 -0
  1783. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/constants.js +0 -0
  1784. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/desktopNotifications.d.ts +0 -0
  1785. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/desktopNotifications.js +0 -0
  1786. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/developerSheet.d.ts +0 -0
  1787. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/developerSheet.js +0 -0
  1788. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/formatting.d.ts +0 -0
  1789. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/formatting.js +0 -0
  1790. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/html.d.ts +0 -0
  1791. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/html.js +0 -0
  1792. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/i18n.d.ts +0 -0
  1793. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/icons.d.ts +0 -0
  1794. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/icons.js +0 -0
  1795. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/insightsReport.d.ts +0 -0
  1796. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/insightsReport.js +0 -0
  1797. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/loading.d.ts +0 -0
  1798. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/loading.js +0 -0
  1799. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/mrSheet.d.ts +0 -0
  1800. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/mrSheet.js +0 -0
  1801. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/notifications.d.ts +0 -0
  1802. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/notifications.js +0 -0
  1803. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/priority.d.ts +0 -0
  1804. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/priority.js +0 -0
  1805. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/quality.d.ts +0 -0
  1806. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/quality.js +0 -0
  1807. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/queueLanes.d.ts +0 -0
  1808. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/queueLanes.js +0 -0
  1809. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/sessionMetrics.d.ts +0 -0
  1810. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/sessionMetrics.js +0 -0
  1811. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/sharedViewHelpers.d.ts +0 -0
  1812. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/sharedViewHelpers.js +0 -0
  1813. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/statsCharts.d.ts +0 -0
  1814. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/statsCharts.js +0 -0
  1815. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/teamTab.d.ts +0 -0
  1816. /package/dist/{interface-adapters/views/dashboard → dashboard}/modules/teamTab.js +0 -0
  1817. /package/dist/{entities → modules/cli-configuration/entities}/mcpSettings/mcpSettings.schema.d.ts +0 -0
  1818. /package/dist/{entities → modules/cli-configuration/entities}/mcpSettings/mcpSettings.schema.js +0 -0
  1819. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/packageVersion.gateway.d.ts +0 -0
  1820. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/packageVersion.gateway.js +0 -0
  1821. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/packageVersion.js +0 -0
  1822. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/selfUpdateCommand.gateway.d.ts +0 -0
  1823. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/selfUpdateCommand.gateway.js +0 -0
  1824. /package/dist/{entities → modules/cli-configuration/entities}/packageVersion/versionCache.gateway.js +0 -0
  1825. /package/dist/{interface-adapters → modules/cli-configuration/interface-adapters}/controllers/http/cliStatus.routes.d.ts +0 -0
  1826. /package/dist/{interface-adapters → modules/cli-configuration/interface-adapters}/controllers/http/logs.routes.d.ts +0 -0
  1827. /package/dist/{interface-adapters → modules/cli-configuration/interface-adapters}/controllers/http/projectConfig.routes.d.ts +0 -0
  1828. /package/dist/{interface-adapters → modules/cli-configuration/interface-adapters}/controllers/http/settings.routes.d.ts +0 -0
  1829. /package/dist/{interface-adapters → modules/cli-configuration/interface-adapters}/gateways/versionCache.memory.gateway.js +0 -0
  1830. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/addRepositoriesToConfig.usecase.js +0 -0
  1831. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/checkInitPrerequisites.d.ts +0 -0
  1832. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/checkInitPrerequisites.js +0 -0
  1833. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/configureMcp.usecase.d.ts +0 -0
  1834. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/discoverRepositories.usecase.js +0 -0
  1835. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/followupImportants.usecase.d.ts +0 -0
  1836. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/followupImportants.usecase.js +0 -0
  1837. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/queryStatus.usecase.js +0 -0
  1838. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/readLogs.usecase.js +0 -0
  1839. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/startDaemon.usecase.js +0 -0
  1840. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/stopDaemon.usecase.js +0 -0
  1841. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/validateConfig.usecase.d.ts +0 -0
  1842. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/validateConfig.usecase.js +0 -0
  1843. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/writeInitConfig.usecase.d.ts +0 -0
  1844. /package/dist/{usecases → modules/cli-configuration/usecases}/cli/writeInitConfig.usecase.js +0 -0
  1845. /package/dist/{entities → modules/data-lifecycle/entities}/cleanup/retentionPolicy.valueObject.d.ts +0 -0
  1846. /package/dist/{entities → modules/data-lifecycle/entities}/cleanup/retentionPolicy.valueObject.js +0 -0
  1847. /package/dist/{interface-adapters → modules/data-lifecycle/interface-adapters}/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js +0 -0
  1848. /package/dist/{interface-adapters → modules/data-lifecycle/interface-adapters}/gateways/reviewLogFile.gateway.d.ts +0 -0
  1849. /package/dist/{interface-adapters → modules/data-lifecycle/interface-adapters}/gateways/reviewLogFile.gateway.js +0 -0
  1850. /package/dist/{entities → modules/platform-integration/entities}/diffMetadata/diffMetadata.gateway.js +0 -0
  1851. /package/dist/{entities → modules/platform-integration/entities}/threadFetch/threadFetch.gateway.js +0 -0
  1852. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/adapters/githubPullRequest.adapter.js +0 -0
  1853. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/adapters/gitlabMergeRequest.adapter.js +0 -0
  1854. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/gateways/diffMetadataFetch.github.gateway.js +0 -0
  1855. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/gateways/diffMetadataFetch.gitlab.gateway.js +0 -0
  1856. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/gateways/threadFetch.github.gateway.js +0 -0
  1857. /package/dist/{interface-adapters → modules/platform-integration/interface-adapters}/gateways/threadFetch.gitlab.gateway.js +0 -0
  1858. /package/dist/{entities → modules/review-execution/entities}/job/jobContext.gateway.d.ts +0 -0
  1859. /package/dist/{entities → modules/review-execution/entities}/job/jobContext.gateway.js +0 -0
  1860. /package/dist/{entities → modules/review-execution/entities}/modelRouting/modelRouting.gateway.js +0 -0
  1861. /package/dist/{entities → modules/review-execution/entities}/modelRouting/modelRouting.schema.d.ts +0 -0
  1862. /package/dist/{entities → modules/review-execution/entities}/modelRouting/modelRouting.schema.js +0 -0
  1863. /package/dist/{entities → modules/review-execution/entities}/progress/agentDefinition.type.d.ts +0 -0
  1864. /package/dist/{entities → modules/review-execution/entities}/progress/agentDefinition.type.js +0 -0
  1865. /package/dist/{entities → modules/review-execution/entities}/progress/progress.calculator.d.ts +0 -0
  1866. /package/dist/{entities → modules/review-execution/entities}/progress/progress.calculator.js +0 -0
  1867. /package/dist/{entities → modules/review-execution/entities}/progress/progress.factory.d.ts +0 -0
  1868. /package/dist/{entities → modules/review-execution/entities}/progress/progress.factory.js +0 -0
  1869. /package/dist/{entities → modules/review-execution/entities}/progress/progress.gateway.d.ts +0 -0
  1870. /package/dist/{entities → modules/review-execution/entities}/progress/progress.gateway.js +0 -0
  1871. /package/dist/{entities → modules/review-execution/entities}/progress/progress.type.d.ts +0 -0
  1872. /package/dist/{entities → modules/review-execution/entities}/progress/progress.type.js +0 -0
  1873. /package/dist/{entities → modules/review-execution/entities}/review/reviewFile.gateway.d.ts +0 -0
  1874. /package/dist/{entities → modules/review-execution/entities}/review/reviewFile.gateway.js +0 -0
  1875. /package/dist/{entities → modules/review-execution/entities}/review/reviewScore.valueObject.d.ts +0 -0
  1876. /package/dist/{entities → modules/review-execution/entities}/review/reviewScore.valueObject.js +0 -0
  1877. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.d.ts +0 -0
  1878. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.gateway.d.ts +0 -0
  1879. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.gateway.js +0 -0
  1880. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.js +0 -0
  1881. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.schema.d.ts +0 -0
  1882. /package/dist/{entities → modules/review-execution/entities}/reviewAction/reviewAction.schema.js +0 -0
  1883. /package/dist/{entities → modules/review-execution/entities}/reviewContext/reviewContext.gateway.js +0 -0
  1884. /package/dist/{entities → modules/review-execution/entities}/reviewContext/reviewContext.js +0 -0
  1885. /package/dist/{entities → modules/review-execution/entities}/reviewContext/reviewContext.schema.d.ts +0 -0
  1886. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequest.entity.d.ts +0 -0
  1887. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequest.entity.js +0 -0
  1888. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequest.guard.d.ts +0 -0
  1889. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequest.guard.js +0 -0
  1890. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequestState.valueObject.d.ts +0 -0
  1891. /package/dist/{entities → modules/review-execution/entities}/reviewRequest/reviewRequestState.valueObject.js +0 -0
  1892. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/addAction.handler.js +0 -0
  1893. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/completeAgent.handler.js +0 -0
  1894. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/getThreads.handler.js +0 -0
  1895. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/getWorkflow.handler.js +0 -0
  1896. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/setPhase.handler.js +0 -0
  1897. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/controllers/mcp/startAgent.handler.js +0 -0
  1898. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/fileSystem/reviewFile.fileSystem.d.ts +0 -0
  1899. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/fileSystem/reviewFile.fileSystem.js +0 -0
  1900. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/jobContext.memory.gateway.d.ts +0 -0
  1901. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/jobContext.memory.gateway.js +0 -0
  1902. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/reviewFile.gateway.js +0 -0
  1903. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/reviewProgress.memory.gateway.d.ts +0 -0
  1904. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/gateways/reviewProgress.memory.gateway.js +0 -0
  1905. /package/dist/{interface-adapters → modules/review-execution/interface-adapters}/presenters/reviewList.presenter.js +0 -0
  1906. /package/dist/{services → modules/review-execution/services}/agentInstructionsBuilder.js +0 -0
  1907. /package/dist/{services → modules/review-execution/services}/commentLinkEnricher.d.ts +0 -0
  1908. /package/dist/{services → modules/review-execution/services}/commentLinkEnricher.js +0 -0
  1909. /package/dist/{services → modules/review-execution/services}/reviewContextWatcher.service.js +0 -0
  1910. /package/dist/{services → modules/review-execution/services}/threadActionsParser.js +0 -0
  1911. /package/dist/{usecases → modules/review-execution/usecases}/cancelReview.usecase.d.ts +0 -0
  1912. /package/dist/{usecases → modules/review-execution/usecases}/cancelReview.usecase.js +0 -0
  1913. /package/dist/{usecases → modules/review-execution/usecases}/handleReviewRequestPush.usecase.js +0 -0
  1914. /package/dist/{usecases → modules/review-execution/usecases}/mcp/addAction.usecase.d.ts +0 -0
  1915. /package/dist/{usecases → modules/review-execution/usecases}/mcp/addAction.usecase.js +0 -0
  1916. /package/dist/{usecases → modules/review-execution/usecases}/mcp/completeAgent.usecase.d.ts +0 -0
  1917. /package/dist/{usecases → modules/review-execution/usecases}/mcp/completeAgent.usecase.js +0 -0
  1918. /package/dist/{usecases → modules/review-execution/usecases}/mcp/getThreads.usecase.d.ts +0 -0
  1919. /package/dist/{usecases → modules/review-execution/usecases}/mcp/getThreads.usecase.js +0 -0
  1920. /package/dist/{usecases → modules/review-execution/usecases}/mcp/getWorkflow.usecase.d.ts +0 -0
  1921. /package/dist/{usecases → modules/review-execution/usecases}/mcp/getWorkflow.usecase.js +0 -0
  1922. /package/dist/{usecases → modules/review-execution/usecases}/mcp/setPhase.usecase.d.ts +0 -0
  1923. /package/dist/{usecases → modules/review-execution/usecases}/mcp/setPhase.usecase.js +0 -0
  1924. /package/dist/{usecases → modules/review-execution/usecases}/mcp/startAgent.usecase.d.ts +0 -0
  1925. /package/dist/{usecases → modules/review-execution/usecases}/mcp/startAgent.usecase.js +0 -0
  1926. /package/dist/{usecases → modules/review-execution/usecases}/selectModelForReview/selectModelForReview.usecase.js +0 -0
  1927. /package/dist/{usecases → modules/review-execution/usecases}/triggerReview.usecase.js +0 -0
  1928. /package/dist/{entities → modules/shared-kernel/entities}/diffStats/diffStats.d.ts +0 -0
  1929. /package/dist/{entities → modules/shared-kernel/entities}/diffStats/diffStats.js +0 -0
  1930. /package/dist/{entities → modules/shared-kernel/entities}/diffStats/diffStatsFetch.gateway.js +0 -0
  1931. /package/dist/{entities → modules/shared-kernel/entities}/language/language.schema.d.ts +0 -0
  1932. /package/dist/{entities → modules/shared-kernel/entities}/language/language.schema.js +0 -0
  1933. /package/dist/{entities → modules/shared-kernel/entities}/shared/duration.valueObject.d.ts +0 -0
  1934. /package/dist/{entities → modules/shared-kernel/entities}/shared/duration.valueObject.js +0 -0
  1935. /package/dist/{entities → modules/statistics-insights/entities}/backfill/backfillProgress.d.ts +0 -0
  1936. /package/dist/{entities → modules/statistics-insights/entities}/backfill/backfillProgress.js +0 -0
  1937. /package/dist/{entities → modules/statistics-insights/entities}/insight/aiInsight.js +0 -0
  1938. /package/dist/{entities → modules/statistics-insights/entities}/insight/aiInsight.schema.d.ts +0 -0
  1939. /package/dist/{entities → modules/statistics-insights/entities}/insight/aiInsight.schema.js +0 -0
  1940. /package/dist/{entities → modules/statistics-insights/entities}/insight/developerInsight.js +0 -0
  1941. /package/dist/{entities → modules/statistics-insights/entities}/insight/developerInsight.schema.d.ts +0 -0
  1942. /package/dist/{entities → modules/statistics-insights/entities}/insight/developerTitle.d.ts +0 -0
  1943. /package/dist/{entities → modules/statistics-insights/entities}/insight/developerTitle.js +0 -0
  1944. /package/dist/{entities → modules/statistics-insights/entities}/insight/insightCategory.d.ts +0 -0
  1945. /package/dist/{entities → modules/statistics-insights/entities}/insight/insightCategory.js +0 -0
  1946. /package/dist/{entities → modules/statistics-insights/entities}/insight/insightTrend.d.ts +0 -0
  1947. /package/dist/{entities → modules/statistics-insights/entities}/insight/insightTrend.js +0 -0
  1948. /package/dist/{entities → modules/statistics-insights/entities}/insight/insights.gateway.js +0 -0
  1949. /package/dist/{entities → modules/statistics-insights/entities}/insight/persistedInsightsData.js +0 -0
  1950. /package/dist/{entities → modules/statistics-insights/entities}/insight/persistedInsightsData.schema.d.ts +0 -0
  1951. /package/dist/{entities → modules/statistics-insights/entities}/insight/teamInsight.js +0 -0
  1952. /package/dist/{entities → modules/statistics-insights/entities}/insight/teamInsight.schema.d.ts +0 -0
  1953. /package/dist/{entities → modules/statistics-insights/entities}/stats/projectStats.js +0 -0
  1954. /package/dist/{entities → modules/statistics-insights/entities}/stats/stats.gateway.js +0 -0
  1955. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/gateways/diffStatsFetch.github.gateway.js +0 -0
  1956. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/gateways/diffStatsFetch.gitlab.gateway.js +0 -0
  1957. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/gateways/fileSystem/stats.fileSystem.js +0 -0
  1958. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/gateways/stats.gateway.js +0 -0
  1959. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/presenters/insights.presenter.js +0 -0
  1960. /package/dist/{interface-adapters → modules/statistics-insights/interface-adapters}/presenters/projectStats.calculator.js +0 -0
  1961. /package/dist/{services → modules/statistics-insights/services}/statsService.js +0 -0
  1962. /package/dist/{usecases → modules/statistics-insights/usecases}/insights/buildAiInsightsPrompt.js +0 -0
  1963. /package/dist/{usecases → modules/statistics-insights/usecases}/stats/backfillDiffStats.usecase.js +0 -0
  1964. /package/dist/{usecases → modules/statistics-insights/usecases}/stats/recalculateProjectStats.usecase.js +0 -0
  1965. /package/dist/{entities → modules/token-accounting/entities}/tokenUsage/tokenUsage.gateway.js +0 -0
  1966. /package/dist/{entities → modules/token-accounting/entities}/tokenUsage/tokenUsage.schema.d.ts +0 -0
  1967. /package/dist/{entities → modules/token-accounting/entities}/tokenUsage/tokenUsage.schema.js +0 -0
  1968. /package/dist/{usecases → modules/token-accounting/usecases}/summarizeTokenUsage/summarizeTokenUsage.usecase.js +0 -0
  1969. /package/dist/{usecases → modules/token-accounting/usecases}/trackTokenUsage/trackTokenUsage.usecase.js +0 -0
  1970. /package/dist/{entities → modules/tracking/entities}/tracking/assignmentInfo.d.ts +0 -0
  1971. /package/dist/{entities → modules/tracking/entities}/tracking/assignmentInfo.js +0 -0
  1972. /package/dist/{entities → modules/tracking/entities}/tracking/mrTrackingData.d.ts +0 -0
  1973. /package/dist/{entities → modules/tracking/entities}/tracking/mrTrackingData.js +0 -0
  1974. /package/dist/{entities → modules/tracking/entities}/tracking/reviewEvent.js +0 -0
  1975. /package/dist/{entities → modules/tracking/entities}/tracking/reviewRequestTracking.gateway.js +0 -0
  1976. /package/dist/{entities → modules/tracking/entities}/tracking/trackedMr.d.ts +0 -0
  1977. /package/dist/{entities → modules/tracking/entities}/tracking/trackedMr.js +0 -0
  1978. /package/dist/{interface-adapters → modules/tracking/interface-adapters}/controllers/http/mrTracking.routes.d.ts +0 -0
  1979. /package/dist/{interface-adapters → modules/tracking/interface-adapters}/gateways/reviewRequestTracking.gateway.js +0 -0
  1980. /package/dist/{usecases → modules/tracking/usecases}/tracking/checkFollowupNeeded.usecase.js +0 -0
  1981. /package/dist/{usecases → modules/tracking/usecases}/tracking/recordPush.usecase.js +0 -0
  1982. /package/dist/{usecases → modules/tracking/usecases}/tracking/recordReviewCompletion.usecase.js +0 -0
  1983. /package/dist/{usecases → modules/tracking/usecases}/tracking/syncThreads.usecase.js +0 -0
  1984. /package/dist/{usecases → modules/tracking/usecases}/tracking/transitionState.usecase.js +0 -0
  1985. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/assignee.test.d.ts +0 -0
  1986. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/constants.test.d.ts +0 -0
  1987. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/desktopNotifications.test.d.ts +0 -0
  1988. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/developerSheet.test.d.ts +0 -0
  1989. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/formatting.test.d.ts +0 -0
  1990. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/html.test.d.ts +0 -0
  1991. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/i18n.test.d.ts +0 -0
  1992. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/icons.test.d.ts +0 -0
  1993. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/insightsReport.test.d.ts +0 -0
  1994. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/loading.test.d.ts +0 -0
  1995. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/notifications.test.d.ts +0 -0
  1996. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/priority.test.d.ts +0 -0
  1997. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/quality.test.d.ts +0 -0
  1998. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/queueLanes.test.d.ts +0 -0
  1999. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/sessionMetrics.test.d.ts +0 -0
  2000. /package/dist/tests/units/{interface-adapters/views/dashboard → dashboard}/modules/teamTab.test.d.ts +0 -0
@@ -1,2682 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Reviewflow Dashboard</title>
7
- <link rel="stylesheet" href="styles.css">
8
- <script src="https://unpkg.com/lucide@latest"></script>
9
- </head>
10
- <body>
11
- <div class="container">
12
- <header>
13
- <div class="logo"><i data-lucide="bot"></i></div>
14
- <h1>Reviewflow</h1>
15
- <div class="header-actions">
16
- <div class="version-update-wrapper">
17
- <div id="version-update-area" class="version-update-area"></div>
18
- <div id="version-manual-update-container"></div>
19
- </div>
20
- <button id="check-claude-btn" class="btn btn-primary" onclick="checkClaudeStatus()">
21
- <i data-lucide="search"></i> <span id="i18n-check-claude"></span>
22
- </button>
23
- <button id="toggle-logs-btn" class="btn btn-secondary" onclick="toggleLogs()">
24
- <i data-lucide="scroll-text"></i> <span id="i18n-logs-btn"></span>
25
- </button>
26
- <div id="server-status" class="status-indicator connecting">
27
- <span class="status-dot"></span>
28
- <span id="i18n-server-status"></span>
29
- </div>
30
- </div>
31
- </header>
32
-
33
- <div class="cards">
34
- <div class="card card-priority">
35
- <div class="card-label" id="i18n-card-running"></div>
36
- <div id="running-count" class="card-value running">-</div>
37
- </div>
38
- <div class="card card-priority">
39
- <div class="card-label" id="i18n-card-queued"></div>
40
- <div id="queued-count" class="card-value queued">-</div>
41
- </div>
42
- <div class="card">
43
- <div class="card-label" id="i18n-card-completed"></div>
44
- <div id="completed-count" class="card-value">-</div>
45
- </div>
46
- <div class="card">
47
- <div class="card-label" id="i18n-card-claude-cli"></div>
48
- <div id="claude-status" class="card-claude checking">
49
- <span class="status" id="i18n-claude-checking"></span>
50
- <span class="version"></span>
51
- </div>
52
- </div>
53
- <div class="card" id="git-cli-card">
54
- <div class="card-label" id="git-cli-label"></div>
55
- <div id="git-cli-status" class="card-claude checking">
56
- <span class="status" id="i18n-git-load-project"></span>
57
- <span class="version"></span>
58
- </div>
59
- </div>
60
- <div class="card">
61
- <div class="card-label" id="i18n-card-model"></div>
62
- <div class="card-model">
63
- <select id="model-select" class="model-select" onchange="changeModel(this.value)">
64
- <option value="opus" id="i18n-model-opus"></option>
65
- <option value="sonnet" id="i18n-model-sonnet"></option>
66
- </select>
67
- </div>
68
- </div>
69
- <div class="card">
70
- <div class="card-label" id="i18n-card-language"></div>
71
- <div class="card-model">
72
- <select id="language-select" class="model-select" onchange="changeLanguage(this.value)">
73
- <option value="en">English</option>
74
- <option value="fr">Français</option>
75
- </select>
76
- </div>
77
- </div>
78
- </div>
79
-
80
- <div class="focus-strip">
81
- <div class="focus-chip focus-now">
82
- <div class="focus-copy">
83
- <span class="focus-label" id="i18n-strip-now"></span>
84
- <span class="focus-meta" id="i18n-strip-now-meta"></span>
85
- </div>
86
- <span class="focus-value" id="focus-now-count">-</span>
87
- </div>
88
- <div class="focus-chip focus-next">
89
- <div class="focus-copy">
90
- <span class="focus-label" id="i18n-strip-next"></span>
91
- <span class="focus-meta" id="i18n-strip-next-meta"></span>
92
- </div>
93
- <span class="focus-value" id="focus-next-count">-</span>
94
- </div>
95
- <div class="focus-chip focus-blocked">
96
- <div class="focus-copy">
97
- <span class="focus-label" id="i18n-strip-blocked"></span>
98
- <span class="focus-meta" id="i18n-strip-blocked-meta"></span>
99
- </div>
100
- <span class="focus-value" id="focus-blocked-count">-</span>
101
- </div>
102
- <button id="focus-strip-toggle" class="focus-toggle-btn" onclick="toggleFocusStripMode()"></button>
103
- </div>
104
-
105
- <div id="data-loading-state" class="data-loading hidden" role="status" aria-live="polite">
106
- <i data-lucide="loader-circle"></i>
107
- <span id="i18n-loading-data"></span>
108
- </div>
109
-
110
- <div class="project-loader">
111
- <select id="project-select" class="project-input" style="min-width: 350px;" onchange="onProjectSelect(this.value)">
112
- <option value="" id="i18n-project-placeholder"></option>
113
- </select>
114
- <input type="text" id="project-path-input" class="project-input" style="min-width: 250px;"
115
- value="">
116
- <button class="btn btn-primary" onclick="loadProjectConfig()">
117
- <i data-lucide="folder-open"></i> <span id="i18n-project-load"></span>
118
- </button>
119
- <button id="remove-project-btn" class="btn btn-secondary" onclick="removeCurrentProject()">
120
- <i data-lucide="trash-2"></i>
121
- </button>
122
- <span id="config-status" class="config-status hidden"></span>
123
- </div>
124
- <div id="config-info" class="config-info hidden"></div>
125
-
126
- <div id="claude-login-section" class="login-instructions hidden">
127
- <strong><i data-lucide="alert-triangle"></i> <span id="i18n-claude-login-title"></span></strong>
128
- <p style="margin-top: 0.5rem;" id="i18n-claude-login-instruction"></p>
129
- <p style="margin-top: 0.5rem;"><code>claude login</code></p>
130
- <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #a1a1aa;" id="i18n-claude-login-reload"></p>
131
- </div>
132
-
133
- <div id="git-login-section" class="login-instructions hidden">
134
- <strong id="git-login-title"><i data-lucide="alert-triangle"></i> <span id="i18n-git-login-title"></span></strong>
135
- <div style="margin-top: 0.75rem;" id="git-login-instructions"></div>
136
- </div>
137
-
138
- <div id="logs-section" class="section hidden">
139
- <div class="section-header">
140
- <i data-lucide="scroll-text"></i> <span id="i18n-section-logs"></span>
141
- <span id="error-count" class="badge-count hidden"></span>
142
- </div>
143
- <div id="logs-content" class="section-content logs">
144
- <div class="empty-state" id="i18n-empty-logs"></div>
145
- </div>
146
- </div>
147
-
148
- <div id="stats-section" class="section hidden">
149
- <div class="section-header clickable" onclick="toggleStats()" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
150
- <i data-lucide="bar-chart-3"></i> <span id="i18n-section-stats"></span>
151
- <span id="stats-toggle" class="toggle-icon collapsed"><i data-lucide="chevron-down"></i></span>
152
- <button id="recalculate-btn" class="btn btn-sm btn-secondary" onclick="event.stopPropagation(); recalculateStats()" style="margin-left: auto; font-size: 0.75rem; padding: 2px 8px;">
153
- <i data-lucide="refresh-cw" style="width: 12px; height: 12px;"></i>
154
- <span id="recalculate-label"></span>
155
- </button>
156
- <span id="backfill-progress" class="badge-count hidden" style="margin-left: 4px;"></span>
157
- </div>
158
- <div id="project-stats" class="section-content stats-grid hidden">
159
- <div class="empty-state" id="i18n-empty-stats"></div>
160
- </div>
161
- </div>
162
-
163
- <div id="team-section" class="section hidden">
164
- <div class="section-header clickable" onclick="toggleTeamSection()" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
165
- <i data-lucide="users"></i> <span id="i18n-section-team"></span>
166
- <span id="team-toggle" class="toggle-icon collapsed"><i data-lucide="chevron-down"></i></span>
167
- </div>
168
- <div id="team-tab-content" class="section-content hidden">
169
- <div class="empty-state" id="i18n-empty-team"></div>
170
- </div>
171
- </div>
172
-
173
- <div class="section" id="active-reviews-section">
174
- <div class="section-header">
175
- <i data-lucide="file-search"></i> <span id="i18n-section-active-reviews"></span>
176
- <span id="active-reviews-count" class="badge-count hidden">0</span>
177
- </div>
178
- <div id="active-reviews" class="section-content">
179
- <div class="empty-state" id="i18n-empty-active-reviews"></div>
180
- </div>
181
- </div>
182
-
183
- <div class="section hidden" id="active-followups-section">
184
- <div class="section-header clickable" onclick="toggleSection('active-followups-section')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
185
- <i data-lucide="refresh-cw"></i> <span id="i18n-section-active-followups"></span>
186
- <span id="active-followups-count" class="badge-count hidden">0</span>
187
- <span class="section-toggle collapsed"><i data-lucide="chevron-down"></i></span>
188
- </div>
189
- <div id="active-followups" class="section-content">
190
- <div class="empty-state" id="i18n-empty-active-followups"></div>
191
- </div>
192
- </div>
193
-
194
- <div class="section hidden" id="pending-fix-section">
195
- <div class="section-header">
196
- <i data-lucide="wrench"></i> <span id="i18n-section-pending-fix"></span>
197
- <span id="pending-fix-count" class="badge-count hidden">0</span>
198
- <button id="sync-threads-btn" class="btn-icon btn-sync" onclick="syncGitLabThreads()">
199
- <i data-lucide="refresh-cw"></i>
200
- </button>
201
- </div>
202
- <div id="pending-fix-reviews" class="section-content">
203
- <div class="empty-state" id="i18n-empty-pending-fix"></div>
204
- </div>
205
- </div>
206
-
207
- <div class="section hidden" id="pending-approval-section">
208
- <div class="section-header clickable" onclick="toggleSection('pending-approval-section')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
209
- <i data-lucide="circle-check"></i> <span id="i18n-section-pending-approval"></span>
210
- <span id="pending-approval-count" class="badge-count hidden">0</span>
211
- <span class="section-toggle collapsed"><i data-lucide="chevron-down"></i></span>
212
- </div>
213
- <div id="pending-approval-reviews" class="section-content">
214
- <div class="empty-state" id="i18n-empty-pending-approval"></div>
215
- </div>
216
- </div>
217
-
218
- <div class="section" id="completed-reviews-section">
219
- <div class="section-header clickable" onclick="toggleSection('completed-reviews-section')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
220
- <i data-lucide="file-check"></i> <span id="i18n-section-completed-reviews"></span>
221
- <span class="section-toggle collapsed"><i data-lucide="chevron-down"></i></span>
222
- </div>
223
- <div id="recent-reviews" class="section-content">
224
- <div class="empty-state" id="i18n-empty-loading"></div>
225
- </div>
226
- </div>
227
-
228
- <div class="section" id="cleanup-section">
229
- <div class="section-header">
230
- <i data-lucide="trash-2"></i> <span>Nettoyage</span>
231
- </div>
232
- <div class="section-content" id="cleanup-content"></div>
233
- </div>
234
-
235
- <div class="refresh-info">
236
- <span id="connection-mode"></span> • <span id="i18n-connection-fallback"></span>
237
- <span class="refresh-separator"> • </span>
238
- <span id="session-metrics"></span>
239
- </div>
240
- </div>
241
-
242
- <div id="cancel-modal" class="modal-overlay hidden" onclick="closeCancelModal(event)">
243
- <div class="modal-content" onclick="event.stopPropagation()">
244
- <div class="modal-title" id="cancel-modal-title"></div>
245
- <div class="modal-message" id="i18n-modal-message"></div>
246
- <div class="modal-actions">
247
- <button class="btn-modal-back" onclick="closeCancelModal()" id="i18n-modal-back"></button>
248
- <button class="btn-modal-confirm" id="cancel-modal-confirm" onclick="confirmCancelReview()"></button>
249
- </div>
250
- </div>
251
- </div>
252
-
253
- <div id="toast-container" class="toast-container"></div>
254
-
255
- <div id="mr-sheet-overlay" class="sheet-overlay" onclick="closeMrSheet()"></div>
256
- <div id="mr-sheet" class="sheet-panel">
257
- <div id="mr-sheet-content" class="sheet-content"></div>
258
- </div>
259
-
260
- <div id="dev-sheet-overlay" class="sheet-overlay" onclick="closeDevSheet()"></div>
261
- <div id="dev-sheet" class="sheet-panel">
262
- <div id="dev-sheet-content" class="sheet-content"></div>
263
- </div>
264
-
265
- <script type="module">
266
- import { t, setLanguage, getLanguage } from './modules/i18n.js';
267
- import { formatTime, formatDuration, formatPhase, formatLogTime } from './modules/formatting.js';
268
- import { escapeHtml, markdownToHtml, sanitizeHttpUrl } from './modules/html.js';
269
- import { getAgentIcon, icon, refreshIcons } from './modules/icons.js';
270
- import { MAX_RECONNECT_ATTEMPTS, RECONNECT_DELAY, STORAGE_KEY_PROJECTS, STORAGE_KEY_CURRENT, STORAGE_KEY_FOCUS_STRIP_MODE, QUALITY_TARGET_SCORE } from './modules/constants.js';
271
- import { getDesktopNotificationPayload, shouldNotifyDesktop } from './modules/desktopNotifications.js';
272
- import { getLoadingPresentation, getQuietRefreshSectionIdentifiers } from './modules/loading.js';
273
- import { collectReviewNotifications, createReviewNotificationState } from './modules/notifications.js';
274
- import { resolveReviewAssigneeDisplay } from './modules/assignee.js';
275
- import { buildQueueLanesModel } from './modules/queueLanes.js';
276
- import { rankPendingFixForNowLane } from './modules/priority.js';
277
- import { getQualityProgress, getQualityTrend } from './modules/quality.js';
278
- import { createSessionMetricsState, trackSessionAction, updatePriorityItemTracking, getSessionMetricsSnapshot } from './modules/sessionMetrics.js';
279
- import { renderCleanupSection, handleCleanupClick } from './modules/cleanup.js';
280
- import { renderVersionUpdateArea, setVersionCheckState } from './modules/versionUpdate.js';
281
- import { renderCollapsibleList, toggleCollapsibleList } from './modules/collapsibleList.js';
282
- import { renderMrSheetContent, drawScoreTimeline, drawIssuesBreakdown } from './modules/mrSheet.js';
283
- import { drawScoreTrendChart, drawReviewActivityChart, drawScoreDistributionChart, animateCounter } from './modules/statsCharts.js';
284
- import { renderTeamTab, fetchAndRenderTeamTab } from './modules/teamTab.js';
285
- import { renderDeveloperSheetContent, drawRadarChart } from './modules/developerSheet.js';
286
- import { buildInsightsReport } from './modules/insightsReport.js';
287
-
288
- const API_URL = window.location.origin;
289
- const WS_URL = `ws://${window.location.host}/ws`;
290
-
291
- let ws = null;
292
- let wsConnected = false;
293
- let reconnectAttempts = 0;
294
- let logsVisible = false;
295
-
296
- let currentData = { activeReviews: [], recentReviews: [], logs: [], reviewFiles: [], pendingFix: [], pendingApproval: [] };
297
- const mrDataStore = new Map();
298
- let loadedReviews = {};
299
- let statsCollapsed = true;
300
- let currentStatsReviews = [];
301
- let currentDevFilter = 'all';
302
- let focusStripCompact = false;
303
- let teamCollapsed = true;
304
- let currentInsightsData = null;
305
- const loadingState = { status: 0, reviewFiles: 0, stats: 0, mrTracking: 0 };
306
- let hasLoadedStatusOnce = false;
307
- const secondarySections = ['active-followups-section', 'pending-approval-section', 'completed-reviews-section'];
308
- const sectionExpandedState = Object.fromEntries(secondarySections.map((sectionIdentifier) => [sectionIdentifier, false]));
309
- const quietRefreshSections = [
310
- 'active-reviews-section',
311
- 'active-followups-section',
312
- 'completed-reviews-section',
313
- 'pending-fix-section',
314
- ];
315
- const loadingLabelBySource = {
316
- status: 'loading.status',
317
- reviewFiles: 'loading.reviewFiles',
318
- stats: 'loading.stats',
319
- mrTracking: 'loading.mrTracking',
320
- };
321
- let loadingShowTimeout = null;
322
- let loadingHideTimeout = null;
323
- let loadingVisibleSince = null;
324
- const loadingDelayMs = 260;
325
- const loadingMinimumVisibleMs = 420;
326
-
327
- let sessionMetrics = createSessionMetricsState(Date.now());
328
- let reviewNotificationState = createReviewNotificationState();
329
-
330
- function applyFocusStripMode() {
331
- const strip = document.querySelector('.focus-strip');
332
- if (strip) {
333
- strip.classList.toggle('compact', focusStripCompact);
334
- }
335
- document.body.classList.toggle('compact-density', focusStripCompact);
336
- const toggleBtn = document.getElementById('focus-strip-toggle');
337
- if (toggleBtn) {
338
- toggleBtn.textContent = focusStripCompact ? t('strip.modeDetailed') : t('strip.modeCompact');
339
- toggleBtn.setAttribute('aria-pressed', focusStripCompact ? 'true' : 'false');
340
- }
341
- }
342
-
343
- function loadFocusStripMode() {
344
- const mode = localStorage.getItem(STORAGE_KEY_FOCUS_STRIP_MODE);
345
- focusStripCompact = mode === 'compact';
346
- applyFocusStripMode();
347
- }
348
-
349
- function toggleFocusStripMode() {
350
- focusStripCompact = !focusStripCompact;
351
- localStorage.setItem(STORAGE_KEY_FOCUS_STRIP_MODE, focusStripCompact ? 'compact' : 'detailed');
352
- applyFocusStripMode();
353
- }
354
-
355
- function applySectionExpansion(sectionIdentifier) {
356
- const section = document.getElementById(sectionIdentifier);
357
- if (!section) return;
358
- const content = section.querySelector('.section-content');
359
- const toggle = section.querySelector('.section-toggle');
360
- if (!content) return;
361
-
362
- const expanded = sectionExpandedState[sectionIdentifier] === true;
363
- content.classList.toggle('hidden', !expanded);
364
- section.classList.toggle('section-collapsed', !expanded);
365
- if (toggle) {
366
- toggle.classList.toggle('collapsed', !expanded);
367
- }
368
- }
369
-
370
- function toggleSection(sectionIdentifier) {
371
- if (!(sectionIdentifier in sectionExpandedState)) return;
372
- sectionExpandedState[sectionIdentifier] = !sectionExpandedState[sectionIdentifier];
373
- applySectionExpansion(sectionIdentifier);
374
- refreshIcons();
375
- }
376
-
377
- function setLoadingFlag(source, isLoading) {
378
- if (!(source in loadingState)) return;
379
- const nextValue = isLoading
380
- ? loadingState[source] + 1
381
- : Math.max(0, loadingState[source] - 1);
382
- loadingState[source] = nextValue;
383
- updateLoadingStateUI();
384
- }
385
-
386
- function applyQuietRefreshSectionIndicators(sectionIdentifiers) {
387
- quietRefreshSections.forEach((sectionIdentifier) => {
388
- const section = document.getElementById(sectionIdentifier);
389
- if (!section) return;
390
- section.classList.toggle('is-refreshing', sectionIdentifiers.includes(sectionIdentifier));
391
- });
392
- }
393
-
394
- function getLoadingMessageKey() {
395
- const activeSource = Object.entries(loadingState).find(([, value]) => value > 0)?.[0];
396
- return activeSource ? loadingLabelBySource[activeSource] : 'loading.data';
397
- }
398
-
399
- function updateLoadingStateUI() {
400
- const isLoading = Object.values(loadingState).some((value) => value > 0);
401
- const loadingPresentation = getLoadingPresentation(loadingState, { hasLoadedStatusOnce });
402
- const loadingElement = document.getElementById('data-loading-state');
403
- if (!loadingElement) return;
404
-
405
- const loadingLabel = document.getElementById('i18n-loading-data');
406
- if (loadingLabel) {
407
- loadingLabel.textContent = t(getLoadingMessageKey());
408
- }
409
-
410
- if (isLoading) {
411
- document.body.classList.toggle('is-quiet-refresh', loadingPresentation.isQuietRefresh);
412
- const quietSectionIdentifiers = getQuietRefreshSectionIdentifiers(loadingState, { hasLoadedStatusOnce });
413
- applyQuietRefreshSectionIndicators(quietSectionIdentifiers);
414
- if (!loadingPresentation.showGlobalLoading) {
415
- if (loadingShowTimeout) {
416
- clearTimeout(loadingShowTimeout);
417
- loadingShowTimeout = null;
418
- }
419
- if (loadingHideTimeout) {
420
- clearTimeout(loadingHideTimeout);
421
- loadingHideTimeout = null;
422
- }
423
- loadingVisibleSince = null;
424
- loadingElement.classList.add('hidden');
425
- document.body.classList.remove('is-loading-data');
426
- return;
427
- }
428
-
429
- if (loadingHideTimeout) {
430
- clearTimeout(loadingHideTimeout);
431
- loadingHideTimeout = null;
432
- }
433
- if (!loadingVisibleSince && !loadingShowTimeout) {
434
- loadingShowTimeout = setTimeout(() => {
435
- loadingElement.classList.remove('hidden');
436
- document.body.classList.add('is-loading-data');
437
- loadingVisibleSince = Date.now();
438
- loadingShowTimeout = null;
439
- refreshIcons();
440
- }, loadingDelayMs);
441
- }
442
- } else {
443
- document.body.classList.remove('is-quiet-refresh');
444
- applyQuietRefreshSectionIndicators([]);
445
- if (loadingShowTimeout) {
446
- clearTimeout(loadingShowTimeout);
447
- loadingShowTimeout = null;
448
- }
449
- if (!loadingVisibleSince) {
450
- loadingElement.classList.add('hidden');
451
- document.body.classList.remove('is-loading-data');
452
- return;
453
- }
454
- const elapsed = Date.now() - loadingVisibleSince;
455
- const remaining = Math.max(0, loadingMinimumVisibleMs - elapsed);
456
- loadingHideTimeout = setTimeout(() => {
457
- loadingElement.classList.add('hidden');
458
- document.body.classList.remove('is-loading-data');
459
- loadingVisibleSince = null;
460
- loadingHideTimeout = null;
461
- updateUI();
462
- }, remaining);
463
- }
464
- }
465
-
466
- function formatSessionDuration(milliseconds) {
467
- const seconds = Math.max(0, Math.floor(milliseconds / 1000));
468
- if (seconds < 60) return `${seconds}s`;
469
- const minutes = Math.floor(seconds / 60);
470
- const remainingSeconds = seconds % 60;
471
- return `${minutes}m ${remainingSeconds}s`;
472
- }
473
-
474
- function formatActionBreakdown(actionBreakdown) {
475
- return `${t('metrics.action.followup')} ${actionBreakdown.followup}, ${t('metrics.action.open')} ${actionBreakdown.open}, ${t('metrics.action.approve')} ${actionBreakdown.approve}, ${t('metrics.action.cancelReview')} ${actionBreakdown.cancelReview}, ${t('metrics.action.syncThreads')} ${actionBreakdown.syncThreads}`;
476
- }
477
-
478
- function updateSessionMetricsUI() {
479
- const metricsElement = document.getElementById('session-metrics');
480
- if (!metricsElement) return;
481
-
482
- const metricsSnapshot = getSessionMetricsSnapshot(sessionMetrics);
483
- const firstActionLabel = metricsSnapshot.firstUsefulActionDelayMs === null
484
- ? t('metrics.pending')
485
- : formatSessionDuration(metricsSnapshot.firstUsefulActionDelayMs);
486
- const priorityResolutionLabel = metricsSnapshot.averagePriorityResolutionMs === null
487
- ? t('metrics.pending')
488
- : formatSessionDuration(metricsSnapshot.averagePriorityResolutionMs);
489
- const actionBreakdownLabel = formatActionBreakdown(metricsSnapshot.actionBreakdown);
490
- metricsElement.textContent = `${t('metrics.session')}: ${t('metrics.firstAction')} ${firstActionLabel} • ${metricsSnapshot.actionCount} ${t('metrics.actions')} • ${t('metrics.priorityResolution')} ${priorityResolutionLabel} • ${t('metrics.breakdown')} ${actionBreakdownLabel}`;
491
- }
492
-
493
- function trackUsefulAction(actionType = 'other') {
494
- sessionMetrics = trackSessionAction(sessionMetrics, actionType, Date.now());
495
- updateSessionMetricsUI();
496
- }
497
-
498
- function onUsefulLinkAction() {
499
- trackUsefulAction('open');
500
- return true;
501
- }
502
-
503
- function activateOnKeydown(event) {
504
- if (event.key !== 'Enter' && event.key !== ' ') return;
505
- event.preventDefault();
506
- event.currentTarget.click();
507
- }
508
-
509
- function safeDecodeURIComponent(value) {
510
- try {
511
- return decodeURIComponent(String(value ?? ''));
512
- } catch {
513
- return String(value ?? '');
514
- }
515
- }
516
-
517
- function getNotificationMrNumber(review) {
518
- return typeof review.mrNumber === 'number' ? String(review.mrNumber) : '?';
519
- }
520
-
521
- function mapNotificationToToast(notification) {
522
- const mrNumber = getNotificationMrNumber(notification.review);
523
- switch (notification.kind) {
524
- case 'reviewStarted':
525
- return { message: t('notify.reviewStarted', { mrNumber }), type: 'info' };
526
- case 'followupStarted':
527
- return { message: t('notify.followupStarted', { mrNumber }), type: 'info' };
528
- case 'reviewCompleted':
529
- return { message: t('notify.reviewCompleted', { mrNumber }), type: 'success' };
530
- case 'followupCompleted':
531
- return { message: t('notify.followupCompleted', { mrNumber }), type: 'success' };
532
- case 'reviewFailed':
533
- return { message: t('notify.reviewFailed', { mrNumber }), type: 'error' };
534
- default:
535
- return null;
536
- }
537
- }
538
-
539
- function maybeShowDesktopNotification(notification) {
540
- if (typeof Notification === 'undefined') return;
541
-
542
- const shouldNotify = shouldNotifyDesktop({
543
- permission: Notification.permission,
544
- isDocumentHidden: document.visibilityState !== 'visible',
545
- });
546
- if (!shouldNotify) return;
547
-
548
- const desktopPayload = getDesktopNotificationPayload(notification, t);
549
- if (!desktopPayload) return;
550
- new Notification(desktopPayload.title, {
551
- body: desktopPayload.body,
552
- tag: desktopPayload.tag,
553
- });
554
- }
555
-
556
- function dispatchReviewNotifications(activeReviews, recentReviews) {
557
- const result = collectReviewNotifications(reviewNotificationState, activeReviews, recentReviews);
558
- reviewNotificationState = result.nextState;
559
- result.notifications.forEach((notification) => {
560
- const toastPayload = mapNotificationToToast(notification);
561
- if (!toastPayload) return;
562
- showToast(toastPayload.message, toastPayload.type);
563
- maybeShowDesktopNotification(notification);
564
- });
565
- }
566
-
567
- function renderAgentTimeline(progress) {
568
- if (!progress?.agents?.length) return '';
569
- const allowedAgentStatuses = new Set(['running', 'completed', 'failed', 'pending', 'queued']);
570
- const agentsHtml = progress.agents.map(agent => `
571
- <div class="agent-box ${allowedAgentStatuses.has(agent.status) ? agent.status : 'queued'}" title="${escapeHtml(agent.displayName)}: ${escapeHtml(agent.status)}">
572
- <span class="agent-icon">${getAgentIcon(agent.status)}</span>
573
- <span class="agent-name">${escapeHtml(agent.displayName)}</span>
574
- </div>
575
- `).join('');
576
- return `<div class="agent-timeline">${agentsHtml}</div>`;
577
- }
578
-
579
- function renderProgressBar(progress) {
580
- if (!progress) return '';
581
- const overallProgress = typeof progress.overallProgress === 'number'
582
- ? Math.max(0, Math.min(100, progress.overallProgress))
583
- : 0;
584
- return `
585
- <div class="progress-container">
586
- <div class="progress-bar-wrapper">
587
- <div class="progress-bar">
588
- <div class="progress-bar-fill" style="width: ${overallProgress}%"></div>
589
- </div>
590
- <span class="progress-percent">${overallProgress}%</span>
591
- </div>
592
- <div class="progress-phase">${formatPhase(progress.currentPhase)}</div>
593
- </div>
594
- `;
595
- }
596
-
597
- function getReviewStatusPresentation(status) {
598
- const statusMap = {
599
- running: { icon: 'activity', label: t('review.status.running') },
600
- queued: { icon: 'clock-3', label: t('review.status.queued') },
601
- completed: { icon: 'check-circle-2', label: t('review.status.completed') },
602
- failed: { icon: 'triangle-alert', label: t('review.status.failed') },
603
- };
604
- return statusMap[status] || { icon: 'circle-help', label: status };
605
- }
606
-
607
- function renderReview(review, isActive) {
608
- const statusClass = typeof review.status === 'string' ? review.status : 'queued';
609
- const safeStatusClass = ['running', 'queued', 'completed', 'failed'].includes(statusClass) ? statusClass : 'queued';
610
- const statusPresentation = getReviewStatusPresentation(statusClass);
611
- const mrNumber = review.mrNumber;
612
- const project = typeof review.project === 'string' ? review.project.split('/').pop() : '';
613
- const reviewId = typeof review.id === 'string' ? review.id : '';
614
- const reviewIsGitHub = reviewId.startsWith('github');
615
- const mrPrefix = reviewIsGitHub ? '#' : '!';
616
- const mrLabel = getMrLabel(reviewIsGitHub ? 'github' : 'gitlab');
617
- const safeMrUrl = sanitizeHttpUrl(typeof review.mrUrl === 'string' ? review.mrUrl : null);
618
-
619
- const progressHtml = isActive && review.progress ? `
620
- ${renderAgentTimeline(review.progress)}
621
- ${renderProgressBar(review.progress)}
622
- ` : '';
623
-
624
- const trackedMergeRequests = [...currentData.pendingFix, ...currentData.pendingApproval];
625
- const assignerDisplay = resolveReviewAssigneeDisplay(review, trackedMergeRequests);
626
- const assignerInitial = assignerDisplay.charAt(0).toUpperCase();
627
- const safeReviewAccordionId = reviewId.replace(/[^a-zA-Z0-9-]/g, '-');
628
- const safeJobType = review.jobType === 'followup' ? 'followup' : 'review';
629
-
630
- const descriptionHtml = isActive && review.description ? `
631
- <div class="review-description-accordion">
632
- <div class="review-description-toggle" onclick="toggleReviewDescription('${safeReviewAccordionId}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
633
- <i data-lucide="chevron-right"></i> ${t('review.description')}
634
- </div>
635
- <div class="review-description-content" id="review-desc-${safeReviewAccordionId}">
636
- <div class="review-description-text">${escapeHtml(review.description)}</div>
637
- </div>
638
- </div>
639
- ` : '';
640
-
641
- const displayTitle = review.title || project;
642
-
643
- return `
644
- <div class="review-item" data-job-id="${escapeHtml(reviewId)}">
645
- <div class="review-header">
646
- <div class="review-status ${safeStatusClass}" title="${escapeHtml(statusPresentation.label)}"></div>
647
- <div class="review-info">
648
- <div class="review-title">
649
- <a href="${safeMrUrl}" target="_blank" rel="noopener noreferrer">${mrPrefix}${mrNumber}</a> - ${escapeHtml(displayTitle)}
650
- </div>
651
- <div class="review-meta">
652
- <span class="badge ${safeStatusClass}"><i data-lucide="${statusPresentation.icon}"></i> ${escapeHtml(statusPresentation.label)}</span>
653
- ${isActive ? `<i data-lucide="clock"></i> ${formatDuration(review.startedAt)}` : ''}
654
- </div>
655
- ${review.error ? `<div class="error-message">${escapeHtml(review.error)}</div>` : ''}
656
- </div>
657
- ${isActive ? `<button class="btn-cancel-review" onclick="event.stopPropagation(); showCancelModal('${encodeURIComponent(reviewId)}', ${mrNumber}, '${safeJobType}')" title="${t('button.cancel')}"><i data-lucide="x"></i> ${t('button.cancel')}</button>` : ''}
658
- <div class="review-assigner">
659
- <div class="review-assigner-info">
660
- <span class="review-assigner-name">${escapeHtml(assignerDisplay)}</span>
661
- <span class="review-assigner-time">${isActive ? formatTime(review.startedAt) : formatTime(review.completedAt)}</span>
662
- </div>
663
- <div class="review-avatar" title="${escapeHtml(assignerDisplay)}">${escapeHtml(assignerInitial)}</div>
664
- </div>
665
- </div>
666
- ${descriptionHtml}
667
- ${progressHtml}
668
- </div>
669
- `;
670
- }
671
-
672
- function toggleReviewDescription(reviewId) {
673
- const safeId = reviewId.replace(/[^a-zA-Z0-9-]/g, '-');
674
- const content = document.getElementById(`review-desc-${safeId}`);
675
- const toggle = content?.previousElementSibling;
676
- if (!content || !toggle) return;
677
-
678
- const isOpen = content.classList.contains('open');
679
- if (isOpen) {
680
- content.classList.remove('open');
681
- toggle.classList.remove('open');
682
- } else {
683
- content.classList.add('open');
684
- toggle.classList.add('open');
685
- refreshIcons();
686
- }
687
- }
688
-
689
- function renderLog(log) {
690
- const dataStr = log.data ? escapeHtml(JSON.stringify(log.data, null, 2)) : '';
691
- const logLevel = typeof log.level === 'string' ? log.level : 'info';
692
- const safeLogLevelClass = logLevel.replace(/[^a-zA-Z0-9-]/g, '-');
693
- return `
694
- <div class="log-entry">
695
- <span class="log-time">${formatLogTime(log.timestamp)}</span>
696
- <span class="log-level ${safeLogLevelClass}">${escapeHtml(logLevel.toUpperCase())}</span>
697
- <div class="log-message">
698
- ${escapeHtml(String(log.message ?? ''))}
699
- ${dataStr ? `<div class="log-data">${dataStr}</div>` : ''}
700
- </div>
701
- </div>
702
- `;
703
- }
704
-
705
- function updateUI() {
706
- const reviews = currentData.activeReviews.filter(r => r.jobType !== 'followup');
707
- const followups = currentData.activeReviews.filter(r => r.jobType === 'followup');
708
-
709
- const running = currentData.activeReviews.filter(r => r.status === 'running').length;
710
- const queued = currentData.activeReviews.filter(r => r.status === 'queued').length;
711
- const blocked = currentData.pendingFix.length;
712
- const nowCount = running + blocked;
713
- const nextCount = queued + currentData.pendingApproval.length;
714
- document.getElementById('running-count').textContent = running;
715
- document.getElementById('queued-count').textContent = queued;
716
- document.getElementById('completed-count').textContent = currentData.reviewFiles.length;
717
- document.getElementById('focus-now-count').textContent = String(nowCount);
718
- document.getElementById('focus-next-count').textContent = String(nextCount);
719
- document.getElementById('focus-blocked-count').textContent = String(blocked);
720
-
721
- const activeReviewsSection = document.getElementById('active-reviews-section');
722
- const activeReviewsEl = document.getElementById('active-reviews');
723
- const activeReviewsCount = document.getElementById('active-reviews-count');
724
-
725
- activeReviewsSection.classList.remove('hidden');
726
- if (reviews.length === 0) {
727
- const showInitialLoadingState = !hasLoadedStatusOnce && loadingState.status > 0;
728
- activeReviewsEl.innerHTML = `<div class="empty-state">${showInitialLoadingState ? t('loading.section') : t('empty.activeReviews')}</div>`;
729
- activeReviewsCount.classList.add('hidden');
730
- } else {
731
- activeReviewsEl.innerHTML = reviews.map(r => renderReview(r, true)).join('');
732
- activeReviewsCount.textContent = reviews.length;
733
- activeReviewsCount.classList.remove('hidden');
734
- }
735
-
736
- const activeFollowupsSection = document.getElementById('active-followups-section');
737
- const activeFollowupsEl = document.getElementById('active-followups');
738
- const activeFollowupsCount = document.getElementById('active-followups-count');
739
-
740
- if (followups.length === 0) {
741
- activeFollowupsSection.classList.add('hidden');
742
- } else {
743
- activeFollowupsSection.classList.remove('hidden');
744
- activeFollowupsEl.innerHTML = followups.map(r => renderReview(r, true)).join('');
745
- activeFollowupsCount.textContent = followups.length;
746
- activeFollowupsCount.classList.remove('hidden');
747
- applySectionExpansion('active-followups-section');
748
- }
749
-
750
- refreshIcons();
751
- }
752
-
753
- function updateLogs() {
754
- const sheetLogsEl = document.querySelector('.sheet-logs-content');
755
- if (sheetLogsEl && logsVisible) {
756
- if (currentData.logs.length === 0) {
757
- sheetLogsEl.innerHTML = `<div class="empty-state">${t('empty.logs')}</div>`;
758
- } else {
759
- sheetLogsEl.innerHTML = currentData.logs.slice().reverse().map(renderLog).join('');
760
- }
761
- }
762
- }
763
-
764
- function updateConnectionStatus(status, textKey, textFallback) {
765
- const statusEl = document.getElementById('server-status');
766
- statusEl.className = `status-indicator ${status}`;
767
- const displayText = textKey ? t(textKey) : textFallback;
768
- statusEl.innerHTML = `<span class="status-dot"></span><span>${escapeHtml(String(displayText ?? ''))}</span>`;
769
-
770
- const modeEl = document.getElementById('connection-mode');
771
- modeEl.textContent = status === 'online' && wsConnected
772
- ? t('connection.websocket')
773
- : status === 'online' ? t('connection.polling') : t('connection.disconnected');
774
- }
775
-
776
- function renderReviewFile(review) {
777
- const typeIcon = review.type === 'review' ? 'file-text' : review.type === 'followup' ? 'refresh-cw' : 'file';
778
- const typeLabel = review.type === 'review' ? t('review.type.review') : review.type === 'followup' ? t('review.type.followup') : review.type;
779
- const sizeKb = (review.size / 1024).toFixed(1);
780
- const mrLabel = getMrLabel();
781
- const encodedFilename = encodeURIComponent(String(review.filename ?? ''));
782
- const filenameDomId = encodedFilename.replace(/[^a-zA-Z0-9-]/g, '-');
783
-
784
- return `
785
- <div class="review-accordion" data-filename="${encodedFilename}">
786
- <div class="review-accordion-header">
787
- <div class="review-accordion-toggle" onclick="toggleReviewAccordion('${encodedFilename}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)"><i data-lucide="chevron-right"></i></div>
788
- <div class="review-status completed" onclick="toggleReviewAccordion('${encodedFilename}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)"></div>
789
- <div class="review-info" onclick="toggleReviewAccordion('${encodedFilename}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)" style="cursor: pointer;">
790
- <div class="review-title">${mrLabel} ${review.mrNumber}${review.title ? ` - ${escapeHtml(String(review.title))}` : ''}</div>
791
- <div class="review-meta">
792
- <span class="badge completed"><i data-lucide="${typeIcon}"></i> ${typeLabel}</span>
793
- <span style="margin-left: 0.5rem; color: #71717a;">${sizeKb} KB</span>
794
- </div>
795
- </div>
796
- <div class="review-time" onclick="toggleReviewAccordion('${encodedFilename}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)" style="cursor: pointer;">${escapeHtml(String(review.date ?? ''))}</div>
797
- <button class="btn-delete" onclick="deleteReviewFile('${encodedFilename}')" title="${t('button.delete')}"><i data-lucide="trash-2"></i></button>
798
- </div>
799
- <div class="review-accordion-content">
800
- <div class="markdown-content" id="review-content-${filenameDomId}">
801
- <div class="empty-state">${t('status.loading')}</div>
802
- </div>
803
- </div>
804
- </div>
805
- `;
806
- }
807
-
808
- async function toggleReviewAccordion(encodedFilename) {
809
- const filename = safeDecodeURIComponent(encodedFilename);
810
- const accordion = document.querySelector(`.review-accordion[data-filename="${encodedFilename}"]`);
811
- const isOpen = accordion.classList.contains('open');
812
-
813
- document.querySelectorAll('.review-accordion.open').forEach(el => {
814
- if (el !== accordion) el.classList.remove('open');
815
- });
816
-
817
- if (isOpen) {
818
- accordion.classList.remove('open');
819
- return;
820
- }
821
-
822
- accordion.classList.add('open');
823
- const contentId = `review-content-${encodedFilename.replace(/[^a-zA-Z0-9-]/g, '-')}`;
824
- const contentEl = document.getElementById(contentId);
825
-
826
- if (!loadedReviews[filename]) {
827
- try {
828
- const response = await fetch(`${API_URL}/api/reviews/${filename}`);
829
- const data = await response.json();
830
- loadedReviews[filename] = data.content;
831
- } catch (error) {
832
- contentEl.innerHTML = `<div class="empty-state">${t('error.loading')}</div>`;
833
- return;
834
- }
835
- }
836
-
837
- contentEl.innerHTML = markdownToHtml(loadedReviews[filename]);
838
- }
839
-
840
- async function fetchReviewFiles() {
841
- setLoadingFlag('reviewFiles', true);
842
- try {
843
- const url = currentProjectPath
844
- ? `${API_URL}/api/reviews?path=${encodeURIComponent(currentProjectPath)}`
845
- : `${API_URL}/api/reviews`;
846
- const response = await fetch(url);
847
- const data = await response.json();
848
- currentData.reviewFiles = data.reviews || [];
849
- updateReviewFilesUI();
850
- } catch (error) {
851
- console.error('Error fetching review files:', error);
852
- } finally {
853
- setLoadingFlag('reviewFiles', false);
854
- }
855
- }
856
-
857
- async function fetchProjectStats() {
858
- const statsEl = document.getElementById('project-stats');
859
- setLoadingFlag('stats', true);
860
-
861
- if (!currentProjectPath) {
862
- statsEl.innerHTML = `<div class="empty-state">${t('empty.statsNoProject')}</div>`;
863
- setLoadingFlag('stats', false);
864
- return;
865
- }
866
-
867
- try {
868
- const response = await fetch(`${API_URL}/api/stats?path=${encodeURIComponent(currentProjectPath)}`);
869
- const data = await response.json();
870
-
871
- if (data.summary) {
872
- const s = data.summary;
873
- const reviews = data.stats?.reviews || [];
874
- const trendIcon = (trend) => trend === 'up'
875
- ? '<span class="stat-trend up"><i data-lucide="trending-up"></i></span>'
876
- : trend === 'down'
877
- ? '<span class="stat-trend down"><i data-lucide="trending-down"></i></span>'
878
- : '<span class="stat-trend flat"><i data-lucide="minus"></i></span>';
879
-
880
- const numericScore = parseFloat(s.averageScore);
881
- const isScoreNumeric = !isNaN(numericScore);
882
-
883
- statsEl.innerHTML = `
884
- <div class="stat-card metric-reviews">
885
- <div class="stat-value"><span class="stat-main" data-target="${s.totalReviews}">0</span></div>
886
- <div class="stat-label"><i data-lucide="file-search"></i> ${t('stats.reviews')}</div>
887
- </div>
888
- <div class="stat-card metric-score">
889
- <div class="stat-value"><span class="stat-main" ${isScoreNumeric ? `data-target="${numericScore}" data-suffix="/10"` : ''}>${isScoreNumeric ? '0' : s.averageScore}</span>${!isScoreNumeric ? '<span class="stat-denominator">/10</span>' : ''}${trendIcon(s.trend.score)}</div>
890
- <div class="stat-label"><i data-lucide="star"></i> ${t('stats.averageScore')}</div>
891
- </div>
892
- <div class="stat-card metric-time">
893
- <div class="stat-value"><span class="stat-main">${s.totalTime}</span></div>
894
- <div class="stat-label"><i data-lucide="timer"></i> ${t('stats.totalTime')}</div>
895
- </div>
896
- <div class="stat-card metric-average-time">
897
- <div class="stat-value"><span class="stat-main">${s.averageTime}</span></div>
898
- <div class="stat-label"><i data-lucide="clock"></i> ${t('stats.averageTime')}</div>
899
- </div>
900
- <div class="stat-card warning metric-blocking">
901
- <div class="stat-value"><span class="stat-main" data-target="${s.totalBlocking}">0</span>${trendIcon(s.trend.blocking)}</div>
902
- <div class="stat-label"><i data-lucide="octagon-alert"></i> ${t('stats.blocking')}</div>
903
- </div>
904
- <div class="stat-card metric-warnings">
905
- <div class="stat-value"><span class="stat-main" data-target="${s.totalWarnings}">0</span></div>
906
- <div class="stat-label"><i data-lucide="alert-triangle"></i> ${t('stats.warnings')}</div>
907
- </div>
908
- <div class="stats-charts-row">
909
- <div class="stats-chart-card">
910
- <div class="stats-chart-title"><i data-lucide="trending-up"></i> ${t('stats.scoreTrend')}</div>
911
- <div class="dev-filter" id="dev-filter-container">
912
- <button class="dev-filter-btn ${currentDevFilter === 'all' ? 'active' : ''}" data-dev="all" onclick="filterScoreTrend('all')">${t('stats.allDevs')}</button>
913
- ${[...new Set(reviews.map(r => r.assignedBy).filter(Boolean))].map(dev =>
914
- '<button class="dev-filter-btn ' + (currentDevFilter === dev ? 'active' : '') + '" data-dev="' + dev + '" onclick="filterScoreTrend(\'' + dev + '\')">' + dev + '</button>'
915
- ).join('')}
916
- </div>
917
- <canvas id="stats-score-trend" class="stats-canvas"></canvas>
918
- </div>
919
- <div class="stats-chart-card">
920
- <div class="stats-chart-title"><i data-lucide="bar-chart-3"></i> ${t('stats.reviewActivity')}</div>
921
- <canvas id="stats-activity" class="stats-canvas"></canvas>
922
- </div>
923
- </div>
924
- <div class="stats-charts-row">
925
- <div class="stats-chart-card full-width">
926
- <div class="stats-chart-title"><i data-lucide="pie-chart"></i> ${t('stats.scoreDistribution')}</div>
927
- <canvas id="stats-distribution" class="stats-canvas-wide"></canvas>
928
- </div>
929
- </div>
930
- `;
931
- refreshIcons();
932
-
933
- statsEl.querySelectorAll('.stat-main[data-target]').forEach(element => {
934
- const target = parseFloat(element.dataset.target);
935
- if (!isNaN(target)) {
936
- animateCounter(element, target, 800, element.dataset.suffix || '');
937
- }
938
- });
939
-
940
- currentStatsReviews = reviews;
941
-
942
- requestAnimationFrame(() => {
943
- if (reviews.length) {
944
- const trendReviews = currentDevFilter === 'all'
945
- ? reviews
946
- : reviews.filter(r => r.assignedBy === currentDevFilter);
947
- drawScoreTrendChart('stats-score-trend', trendReviews);
948
- drawReviewActivityChart('stats-activity', reviews);
949
- drawScoreDistributionChart('stats-distribution', reviews);
950
- }
951
- });
952
- } else {
953
- statsEl.innerHTML = `<div class="empty-state">${t('empty.statsNoData')}</div>`;
954
- }
955
- } catch (error) {
956
- console.error('Error fetching stats:', error);
957
- statsEl.innerHTML = `<div class="empty-state">${t('error.loadingStats')}</div>`;
958
- } finally {
959
- setLoadingFlag('stats', false);
960
- }
961
- }
962
-
963
- function updateReviewFilesUI() {
964
- const recentEl = document.getElementById('recent-reviews');
965
- const completedSection = document.getElementById('completed-reviews-section');
966
-
967
- if (currentData.reviewFiles.length === 0) {
968
- completedSection?.classList.remove('hidden');
969
- recentEl.innerHTML = `<div class="empty-state">${loadingState.reviewFiles ? t('loading.section') : t('empty.reviewFiles')}</div>`;
970
- applySectionExpansion('completed-reviews-section');
971
- return;
972
- }
973
-
974
- completedSection?.classList.remove('hidden');
975
- recentEl.innerHTML = renderCollapsibleList(
976
- currentData.reviewFiles.map(renderReviewFile),
977
- 'completed-reviews', t
978
- );
979
- applySectionExpansion('completed-reviews-section');
980
- refreshIcons();
981
- }
982
-
983
- async function deleteReviewFile(encodedFilename) {
984
- const filename = safeDecodeURIComponent(encodedFilename);
985
- if (!confirm(t('confirm.deleteReview', { filename }))) return;
986
-
987
- try {
988
- const response = await fetch(`${API_URL}/api/reviews/${filename}`, {
989
- method: 'DELETE'
990
- });
991
- const data = await response.json();
992
-
993
- if (data.success) {
994
- delete loadedReviews[filename];
995
- currentData.reviewFiles = currentData.reviewFiles.filter(r => r.filename !== filename);
996
- updateReviewFilesUI();
997
- updateUI();
998
- } else {
999
- alert(t('error.deleteReview') + ': ' + data.error);
1000
- }
1001
- } catch (error) {
1002
- console.error('Error deleting review:', error);
1003
- alert(t('error.deleteReview'));
1004
- }
1005
- }
1006
-
1007
- async function checkClaudeStatus() {
1008
- const claudeEl = document.getElementById('claude-status');
1009
- const loginSection = document.getElementById('claude-login-section');
1010
-
1011
- claudeEl.className = 'card-claude checking';
1012
- claudeEl.innerHTML = `<span class="status">${t('status.checking')}</span>`;
1013
-
1014
- try {
1015
- const response = await fetch(`${API_URL}/api/claude/status`);
1016
- const data = await response.json();
1017
-
1018
- if (data.available) {
1019
- claudeEl.className = 'card-claude available';
1020
- claudeEl.innerHTML = `
1021
- <span class="status"><i data-lucide="check-circle"></i> ${t('status.operational')}</span>
1022
- <span class="version">${escapeHtml(String(data.version ?? ''))}</span>
1023
- `;
1024
- loginSection.classList.add('hidden');
1025
- refreshIcons();
1026
- } else {
1027
- claudeEl.className = 'card-claude unavailable';
1028
- claudeEl.innerHTML = `
1029
- <span class="status"><i data-lucide="x-circle"></i> ${escapeHtml(String(data.message ?? ''))}</span>
1030
- `;
1031
- refreshIcons();
1032
- if (data.message.includes('authentifié') || data.message.includes('login') || data.message.includes('authenticated')) {
1033
- loginSection.classList.remove('hidden');
1034
- }
1035
- }
1036
- } catch (error) {
1037
- claudeEl.className = 'card-claude unavailable';
1038
- claudeEl.innerHTML = `<span class="status"><i data-lucide="x-circle"></i> ${t('error.checkStatus')}</span>`;
1039
- refreshIcons();
1040
- }
1041
- }
1042
-
1043
- let activePlatform = null;
1044
-
1045
- function updateGitCliUI() {
1046
- const labelEl = document.getElementById('git-cli-label');
1047
- const statusEl = document.getElementById('git-cli-status');
1048
- const loginSection = document.getElementById('git-login-section');
1049
-
1050
- if (!activePlatform) {
1051
- labelEl.textContent = t('card.gitCli');
1052
- statusEl.className = 'card-claude checking';
1053
- statusEl.innerHTML = `<span class="status">${t('status.loadProject')}</span>`;
1054
- loginSection.classList.add('hidden');
1055
- return;
1056
- }
1057
-
1058
- const isGitlab = activePlatform === 'gitlab';
1059
- labelEl.textContent = isGitlab ? t('card.gitlabCli') : t('card.githubCli');
1060
-
1061
- const titleEl = document.getElementById('git-login-title');
1062
- const instructionsEl = document.getElementById('git-login-instructions');
1063
-
1064
- if (isGitlab) {
1065
- titleEl.innerHTML = `<i data-lucide="alert-triangle"></i> ${t('login.gitlab.title')}`;
1066
- instructionsEl.innerHTML = `
1067
- <p><strong>${t('setup.installAndAuth', { cli: 'glab' })}</strong></p>
1068
- <p style="margin: 0.5rem 0;"><code>sudo apt install glab</code></p>
1069
- <p style="margin: 0.5rem 0;"><code>glab auth login</code></p>
1070
- <p style="margin-top: 1rem;"><strong>${t('setup.configureWebhook', { platform: 'GitLab' })}</strong></p>
1071
- <p style="margin: 0.5rem 0; font-size: 0.8rem;">${t('setup.webhookPath')}</p>
1072
- <p style="margin: 0.25rem 0; font-size: 0.8rem;">URL: <code>http://&lt;your-server&gt;:3847/webhooks/gitlab</code></p>
1073
- <p style="margin: 0.25rem 0; font-size: 0.8rem;">${t('setup.gitlab.trigger')}</p>
1074
- <p style="margin-top: 0.75rem; font-size: 0.75rem; color: #a1a1aa;">${t('setup.reload')}</p>
1075
- `;
1076
- } else {
1077
- titleEl.innerHTML = `<i data-lucide="alert-triangle"></i> ${t('login.github.title')}`;
1078
- instructionsEl.innerHTML = `
1079
- <p><strong>${t('setup.installAndAuth', { cli: 'gh' })}</strong></p>
1080
- <p style="margin: 0.5rem 0;"><code>sudo apt install gh</code></p>
1081
- <p style="margin: 0.5rem 0;"><code>gh auth login</code></p>
1082
- <p style="margin-top: 1rem;"><strong>${t('setup.configureWebhook', { platform: 'GitHub' })}</strong></p>
1083
- <p style="margin: 0.5rem 0; font-size: 0.8rem;">${t('setup.webhookPath')}</p>
1084
- <p style="margin: 0.25rem 0; font-size: 0.8rem;">Payload URL: <code>http://&lt;your-server&gt;:3847/webhooks/github</code></p>
1085
- <p style="margin: 0.25rem 0; font-size: 0.8rem;">${t('setup.github.contentType')}</p>
1086
- <p style="margin: 0.25rem 0; font-size: 0.8rem;">${t('setup.github.events')}</p>
1087
- <p style="margin-top: 0.75rem; font-size: 0.75rem; color: #a1a1aa;">${t('setup.reload')}</p>
1088
- `;
1089
- }
1090
-
1091
- refreshIcons();
1092
- checkGitCliStatus();
1093
- }
1094
-
1095
- async function checkGitCliStatus() {
1096
- if (!activePlatform) return;
1097
-
1098
- const statusEl = document.getElementById('git-cli-status');
1099
- const loginSection = document.getElementById('git-login-section');
1100
- const isGitlab = activePlatform === 'gitlab';
1101
- const endpoint = isGitlab ? '/api/gitlab/status' : '/api/github/status';
1102
-
1103
- statusEl.className = 'card-claude checking';
1104
- statusEl.innerHTML = `<span class="status">${t('status.checking')}</span>`;
1105
-
1106
- try {
1107
- const response = await fetch(`${API_URL}${endpoint}`);
1108
- const data = await response.json();
1109
-
1110
- if (data.available && data.authenticated) {
1111
- statusEl.className = 'card-claude available';
1112
- statusEl.innerHTML = `
1113
- <span class="status"><i data-lucide="check-circle"></i> ${t('status.operational')}</span>
1114
- <span class="version">@${escapeHtml(String(data.username ?? ''))}</span>
1115
- `;
1116
- loginSection.classList.add('hidden');
1117
- refreshIcons();
1118
- } else if (data.available && !data.authenticated) {
1119
- statusEl.className = 'card-claude unavailable';
1120
- statusEl.innerHTML = `<span class="status"><i data-lucide="x-circle"></i> ${escapeHtml(String(data.message ?? ''))}</span>`;
1121
- loginSection.classList.remove('hidden');
1122
- refreshIcons();
1123
- } else {
1124
- statusEl.className = 'card-claude unavailable';
1125
- statusEl.innerHTML = `<span class="status"><i data-lucide="x-circle"></i> ${escapeHtml(String(data.message ?? ''))}</span>`;
1126
- loginSection.classList.remove('hidden');
1127
- refreshIcons();
1128
- }
1129
- } catch (error) {
1130
- statusEl.className = 'card-claude unavailable';
1131
- statusEl.innerHTML = `<span class="status"><i data-lucide="x-circle"></i> ${t('error.checkStatus')}</span>`;
1132
- refreshIcons();
1133
- }
1134
- }
1135
-
1136
- function toggleLogs() {
1137
- const sheetPanel = document.getElementById('mr-sheet');
1138
- const isOpen = sheetPanel.classList.contains('open') && logsVisible;
1139
-
1140
- if (isOpen) {
1141
- closeMrSheet();
1142
- logsVisible = false;
1143
- return;
1144
- }
1145
-
1146
- logsVisible = true;
1147
- const openLogsSheet = () => {
1148
- const contentEl = document.getElementById('mr-sheet-content');
1149
- contentEl.innerHTML = renderLogsSheetContent();
1150
- document.getElementById('mr-sheet-overlay').classList.add('open');
1151
- sheetPanel.classList.add('open');
1152
- document.body.style.overflow = 'hidden';
1153
- refreshIcons();
1154
- };
1155
- fetchLogs().then(openLogsSheet).catch(openLogsSheet);
1156
- }
1157
-
1158
- function renderLogsSheetContent() {
1159
- const errorCount = currentData.logs.filter(l => l.level === 'error' || l.level === 'warn').length;
1160
- const errorBadge = errorCount > 0
1161
- ? ` <span class="section-header badge-count">${t('logs.errorCount', { count: errorCount })}</span>`
1162
- : '';
1163
-
1164
- const logsHtml = currentData.logs.length === 0
1165
- ? `<div class="empty-state">${t('empty.logs')}</div>`
1166
- : currentData.logs.slice().reverse().map(renderLog).join('');
1167
-
1168
- return `
1169
- <button class="sheet-close" onclick="closeMrSheet()"><i data-lucide="x"></i></button>
1170
- <div class="sheet-mr-header">
1171
- <div>
1172
- <div class="sheet-mr-title"><i data-lucide="scroll-text"></i> ${t('section.logs')}${errorBadge}</div>
1173
- </div>
1174
- </div>
1175
- <div class="sheet-logs-body">
1176
- <div class="sheet-logs-content section-content logs">${logsHtml}</div>
1177
- </div>
1178
- <div class="sheet-logs-footer">
1179
- <button class="btn btn-secondary sheet-clear-btn" onclick="clearLogs()">
1180
- <i data-lucide="trash-2"></i> ${t('logs.clear')}
1181
- </button>
1182
- </div>
1183
- `;
1184
- }
1185
-
1186
- function clearLogs() {
1187
- currentData.logs = [];
1188
- updateLogs();
1189
- }
1190
-
1191
- function toggleStats() {
1192
- statsCollapsed = !statsCollapsed;
1193
- const content = document.getElementById('project-stats');
1194
- const toggle = document.getElementById('stats-toggle');
1195
-
1196
- if (statsCollapsed) {
1197
- content.classList.add('hidden');
1198
- toggle.classList.add('collapsed');
1199
- } else {
1200
- content.classList.remove('hidden');
1201
- toggle.classList.remove('collapsed');
1202
- }
1203
- }
1204
-
1205
- function toggleTeamSection() {
1206
- teamCollapsed = !teamCollapsed;
1207
- const content = document.getElementById('team-tab-content');
1208
- const toggle = document.getElementById('team-toggle');
1209
-
1210
- if (teamCollapsed) {
1211
- content.classList.add('hidden');
1212
- toggle.classList.add('collapsed');
1213
- } else {
1214
- content.classList.remove('hidden');
1215
- toggle.classList.remove('collapsed');
1216
- }
1217
- }
1218
-
1219
- let teamAnalysisCollapsed = false;
1220
-
1221
- function toggleTeamAnalysis() {
1222
- teamAnalysisCollapsed = !teamAnalysisCollapsed;
1223
- const body = document.getElementById('team-analysis-body');
1224
- const toggle = document.getElementById('team-analysis-toggle');
1225
- if (body) {
1226
- body.classList.toggle('hidden', teamAnalysisCollapsed);
1227
- }
1228
- if (toggle) {
1229
- toggle.classList.toggle('collapsed', teamAnalysisCollapsed);
1230
- }
1231
- refreshIcons();
1232
- }
1233
-
1234
- let aiGenerationInProgress = false;
1235
-
1236
- async function fetchTeamInsights() {
1237
- if (!currentProjectPath) return;
1238
- if (aiGenerationInProgress) return;
1239
- const container = document.getElementById('team-tab-content');
1240
- if (!container) return;
1241
-
1242
- container.innerHTML = `<div class="empty-state team-loading">${icon('loader-circle', 'spinning')} ${t('team.loading')}</div>`;
1243
- refreshIcons();
1244
-
1245
- try {
1246
- const response = await fetch(`${API_URL}/api/insights?path=${encodeURIComponent(currentProjectPath)}`);
1247
- const data = await response.json();
1248
- currentInsightsData = data;
1249
-
1250
- container.innerHTML = renderTeamTab(data, t);
1251
- refreshIcons();
1252
-
1253
- setTimeout(() => {
1254
- container.querySelectorAll('.stat-bar-fill[data-target-width]').forEach((bar) => {
1255
- bar.style.width = bar.dataset.targetWidth;
1256
- });
1257
- }, 50);
1258
- } catch (error) {
1259
- console.error('Error fetching team insights:', error);
1260
- container.innerHTML = `<div class="empty-state">${t('team.noData')}</div>`;
1261
- }
1262
- }
1263
-
1264
- async function generateAiInsights() {
1265
- if (!currentProjectPath || aiGenerationInProgress) return;
1266
- aiGenerationInProgress = true;
1267
- const button = document.querySelector('.ai-generate-btn');
1268
- if (button) {
1269
- button.disabled = true;
1270
- button.classList.add('loading');
1271
- button.innerHTML = `${icon('loader-circle', 'spinning')} ${t('ai.generating')}`;
1272
- refreshIcons();
1273
- }
1274
- try {
1275
- const response = await fetch(`${API_URL}/api/insights/generate`, {
1276
- method: 'POST',
1277
- headers: { 'Content-Type': 'application/json' },
1278
- body: JSON.stringify({ path: currentProjectPath, language: getLanguage() }),
1279
- });
1280
- if (!response.ok) {
1281
- const errorData = await response.json().catch(() => ({}));
1282
- throw new Error(errorData.error || t('ai.error'));
1283
- }
1284
- aiGenerationInProgress = false;
1285
- await fetchTeamInsights();
1286
- } catch (error) {
1287
- aiGenerationInProgress = false;
1288
- console.error('Error generating AI insights:', error);
1289
- showToast(error.message || t('ai.error'), 'error');
1290
- if (button) {
1291
- button.disabled = false;
1292
- button.classList.remove('loading');
1293
- button.innerHTML = `${icon('sparkles')} ${t('ai.generate')}`;
1294
- refreshIcons();
1295
- }
1296
- }
1297
- }
1298
-
1299
- function openDevSheet(encodedName) {
1300
- const developerName = decodeURIComponent(encodedName);
1301
- if (!currentInsightsData || !currentInsightsData.developers) return;
1302
- const developer = currentInsightsData.developers.find(
1303
- (dev) => dev.developerName === developerName
1304
- );
1305
- if (!developer) return;
1306
-
1307
- const aiDevelopers = currentInsightsData.aiInsights?.developers || [];
1308
- const aiDeveloper = aiDevelopers.find(
1309
- (aiDev) => aiDev.developerName === developerName
1310
- ) || null;
1311
-
1312
- const contentEl = document.getElementById('dev-sheet-content');
1313
- contentEl.innerHTML = renderDeveloperSheetContent(developer, t, aiDeveloper);
1314
-
1315
- document.getElementById('dev-sheet-overlay').classList.add('open');
1316
- document.getElementById('dev-sheet').classList.add('open');
1317
- document.body.style.overflow = 'hidden';
1318
-
1319
- refreshIcons();
1320
-
1321
- requestAnimationFrame(() => {
1322
- drawRadarChart('dev-radar-canvas', developer.categoryLevels, t);
1323
- const developerReviews = currentStatsReviews.filter(
1324
- (review) => review.assignedBy === developerName
1325
- );
1326
- drawScoreTrendChart('dev-score-trend-canvas', developerReviews);
1327
- contentEl.querySelectorAll('.stat-bar-fill[data-target-width]').forEach((bar) => {
1328
- setTimeout(() => { bar.style.width = bar.dataset.targetWidth; }, 50);
1329
- });
1330
- });
1331
- }
1332
-
1333
- function closeDevSheet() {
1334
- document.getElementById('dev-sheet-overlay').classList.remove('open');
1335
- document.getElementById('dev-sheet').classList.remove('open');
1336
- document.body.style.overflow = '';
1337
- }
1338
-
1339
- function exportInsightsPdf() {
1340
- if (!currentInsightsData || currentInsightsData.isEmpty) return;
1341
-
1342
- const reportHtml = buildInsightsReport(currentInsightsData, t);
1343
-
1344
- const iframe = document.createElement('iframe');
1345
- iframe.style.position = 'fixed';
1346
- iframe.style.right = '0';
1347
- iframe.style.bottom = '0';
1348
- iframe.style.width = '0';
1349
- iframe.style.height = '0';
1350
- iframe.style.border = 'none';
1351
- document.body.appendChild(iframe);
1352
-
1353
- const document_ = iframe.contentDocument || iframe.contentWindow.document;
1354
- document_.open();
1355
- document_.write(reportHtml);
1356
- document_.close();
1357
-
1358
- iframe.contentWindow.addEventListener('afterprint', () => {
1359
- if (iframe.parentNode) document.body.removeChild(iframe);
1360
- });
1361
-
1362
- setTimeout(() => {
1363
- iframe.contentWindow.print();
1364
- setTimeout(() => {
1365
- if (iframe.parentNode) document.body.removeChild(iframe);
1366
- }, 60000);
1367
- }, 250);
1368
- }
1369
-
1370
- async function recalculateStats() {
1371
- if (!currentProjectPath) return;
1372
- const button = document.getElementById('recalculate-btn');
1373
- const progressBadge = document.getElementById('backfill-progress');
1374
- if (button) button.disabled = true;
1375
-
1376
- try {
1377
- const response = await fetch(`${API_URL}/api/stats/recalculate`, {
1378
- method: 'POST',
1379
- headers: { 'Content-Type': 'application/json' },
1380
- body: JSON.stringify({ path: currentProjectPath, backfill: true }),
1381
- });
1382
-
1383
- if (!response.ok) {
1384
- throw new Error('Recalculation failed');
1385
- }
1386
-
1387
- if (progressBadge) {
1388
- progressBadge.textContent = '...';
1389
- progressBadge.classList.remove('hidden');
1390
- }
1391
- } catch (error) {
1392
- console.error('Error recalculating stats:', error);
1393
- if (button) button.disabled = false;
1394
- if (progressBadge) progressBadge.classList.add('hidden');
1395
- }
1396
- }
1397
- window.recalculateStats = recalculateStats;
1398
-
1399
- function filterScoreTrend(selectedDev) {
1400
- currentDevFilter = selectedDev;
1401
- document.querySelectorAll('.dev-filter-btn').forEach(btn => {
1402
- btn.classList.toggle('active', btn.dataset.dev === selectedDev);
1403
- });
1404
-
1405
- const filtered = selectedDev === 'all'
1406
- ? currentStatsReviews
1407
- : currentStatsReviews.filter(r => r.assignedBy === selectedDev);
1408
-
1409
- drawScoreTrendChart('stats-score-trend', filtered);
1410
- }
1411
- window.filterScoreTrend = filterScoreTrend;
1412
-
1413
- function renderMrItem(mr, type) {
1414
- const mrPrefix = mr.platform === 'github' ? '#' : '!';
1415
- const encodedMrId = encodeURIComponent(String(mr.id ?? ''));
1416
- const threadInfo = type === 'pending-fix'
1417
- ? `<span class="mr-threads has-open"><i data-lucide="message-circle"></i> ${t('mr.threads.openAction', { count: mr.openThreads })}</span>`
1418
- : (type === 'pending-approval' && mr.totalWarnings > 0)
1419
- ? `<span class="mr-threads has-warnings"><i data-lucide="alert-triangle"></i> ${t('mr.threads.warningAction', { count: mr.totalWarnings })}</span>`
1420
- : `<span class="mr-threads all-resolved"><i data-lucide="check-circle"></i> ${t('mr.threads.resolvedAction')}</span>`;
1421
-
1422
- const openBtn = `<a href="${sanitizeHttpUrl(mr.url)}" target="_blank" rel="noopener noreferrer" class="btn-action open" onclick="return onUsefulLinkAction()"><i data-lucide="external-link"></i> ${t('button.open')}</a>`;
1423
- const autoFollowupChecked = mr.autoFollowup !== false ? 'checked' : '';
1424
- const showFollowupActions = type === 'pending-fix' ||
1425
- (type === 'pending-approval' && mr.totalWarnings > 0);
1426
-
1427
- const actions = showFollowupActions
1428
- ? `<label class="auto-followup-toggle" onclick="event.stopPropagation()" title="${t('button.autoFollowup')}">
1429
- <input type="checkbox" ${autoFollowupChecked} onchange="toggleAutoFollowup('${encodedMrId}', this.checked)">
1430
- ${t('button.autoFollowup')}
1431
- </label>
1432
- <button class="btn-action" onclick="triggerFollowup('${encodedMrId}')"><i data-lucide="refresh-cw"></i> ${t('button.followup')}</button>${openBtn}`
1433
- : openBtn;
1434
-
1435
- const statsBadges = [];
1436
- if (mr.totalBlocking > 0) statsBadges.push(`<span class="stat-badge blocking"><i data-lucide="octagon-alert"></i> ${mr.totalBlocking}</span>`);
1437
- if (mr.totalWarnings > 0) statsBadges.push(`<span class="stat-badge warning"><i data-lucide="alert-triangle"></i> ${mr.totalWarnings}</span>`);
1438
- if (mr.totalFollowups > 0) statsBadges.push(`<span class="stat-badge followup"><i data-lucide="refresh-cw"></i> ${mr.totalFollowups}</span>`);
1439
- if (mr.latestScore !== null) statsBadges.push(`<span class="stat-badge score"><i data-lucide="star"></i> ${mr.latestScore.toFixed(1)}/10</span>`);
1440
-
1441
- const durationFormatted = mr.totalDurationMs ? formatDuration(null, null, mr.totalDurationMs) : '';
1442
-
1443
- const assignerUsername = mr.assignment?.username || 'unknown';
1444
- const assignerDisplay = mr.assignment?.displayName || assignerUsername;
1445
- const assignerInitial = assignerDisplay.charAt(0).toUpperCase();
1446
- const assignedAt = mr.assignment?.assignedAt ? formatTime(mr.assignment.assignedAt) : '';
1447
-
1448
- const accordionId = mr.id.replace(/[^a-zA-Z0-9-]/g, '-');
1449
-
1450
- return `
1451
- <div class="mr-item-accordion" data-mr-id="${mr.id}">
1452
- <div class="mr-item-header" onclick="openMrSheet('${encodedMrId}')" role="button" tabindex="0" onkeydown="activateOnKeydown(event)">
1453
- <div class="review-status ${type === 'pending-fix' ? 'running' : (type === 'pending-approval' && mr.totalWarnings > 0) ? 'warnings' : 'completed'}"></div>
1454
- <div class="mr-info">
1455
- <div class="mr-title">
1456
- <a href="${sanitizeHttpUrl(mr.url)}" target="_blank" rel="noopener noreferrer" onclick="event.stopPropagation()">${mrPrefix}${mr.mrNumber}</a> - ${escapeHtml(String(mr.title ?? ''))}
1457
- </div>
1458
- <div class="mr-meta">
1459
- ${threadInfo}
1460
- ${statsBadges.join('')}
1461
- <span><i data-lucide="clock"></i> ${durationFormatted || '-'}</span>
1462
- </div>
1463
- </div>
1464
- <div class="mr-assigner">
1465
- <div class="mr-assigner-info">
1466
- <span class="mr-assigner-name">${escapeHtml(assignerDisplay)}</span>
1467
- <span class="mr-assigner-time">${assignedAt}</span>
1468
- </div>
1469
- <div class="mr-avatar" title="${escapeHtml(assignerDisplay)}">${escapeHtml(assignerInitial)}</div>
1470
- </div>
1471
- <div class="mr-toggle"><i data-lucide="chevron-down"></i></div>
1472
- </div>
1473
- <div class="mr-item-content" id="mr-content-${accordionId}">
1474
- <div class="mr-details">
1475
- <div class="mr-detail-row">
1476
- <span class="mr-detail-label"><i data-lucide="git-branch"></i> ${t('mr.detail.source')}</span>
1477
- <span class="mr-detail-value">${escapeHtml(String(mr.sourceBranch ?? ''))}</span>
1478
- </div>
1479
- <div class="mr-detail-row">
1480
- <span class="mr-detail-label"><i data-lucide="git-merge"></i> ${t('mr.detail.target')}</span>
1481
- <span class="mr-detail-value">${escapeHtml(String(mr.targetBranch ?? ''))}</span>
1482
- </div>
1483
- <div class="mr-detail-row">
1484
- <span class="mr-detail-label"><i data-lucide="calendar"></i> ${t('mr.detail.created')}</span>
1485
- <span class="mr-detail-value">${formatTime(mr.createdAt)}</span>
1486
- </div>
1487
- ${mr.lastReviewAt ? `
1488
- <div class="mr-detail-row">
1489
- <span class="mr-detail-label"><i data-lucide="file-search"></i> ${t('mr.detail.lastReview')}</span>
1490
- <span class="mr-detail-value">${formatTime(mr.lastReviewAt)}</span>
1491
- </div>
1492
- ` : ''}
1493
- ${mr.reviews?.length ? `
1494
- <div class="mr-reviews-history">
1495
- <div class="mr-detail-label"><i data-lucide="history"></i> ${t('mr.detail.history', { count: mr.reviews.length })}</div>
1496
- <div class="mr-reviews-list">
1497
- ${mr.reviews.slice(-5).reverse().map(r => `
1498
- <div class="mr-review-event ${r.type}">
1499
- <span class="review-event-type">${r.type === 'review' ? t('review.type.review') : t('review.type.followup')}</span>
1500
- <span class="review-event-time">${formatTime(r.timestamp)}</span>
1501
- ${r.score !== null ? `<span class="review-event-score">${r.score}/10</span>` : ''}
1502
- ${r.blocking > 0 ? `<span class="review-event-blocking">${t('mr.review.blocking', { count: r.blocking })}</span>` : ''}
1503
- </div>
1504
- `).join('')}
1505
- </div>
1506
- </div>
1507
- ` : ''}
1508
- </div>
1509
- <div class="mr-item-actions" onclick="event.stopPropagation()">
1510
- ${actions}
1511
- </div>
1512
- </div>
1513
- </div>
1514
- `;
1515
- }
1516
-
1517
- function renderNowLane(mr) {
1518
- const mrPrefix = mr.platform === 'github' ? '#' : '!';
1519
- const assigneeUsername = mr.assignment?.username || 'unknown';
1520
- const assigneeDisplay = mr.assignment?.displayName || assigneeUsername;
1521
- const ownerLabel = t('lane.owner', { owner: assigneeDisplay });
1522
- const qualityScore = typeof mr.latestScore === 'number' ? mr.latestScore : null;
1523
- const qualityProgress = getQualityProgress(qualityScore, QUALITY_TARGET_SCORE);
1524
- const qualityTarget = qualityProgress.qualityTarget;
1525
- const qualityDelta = qualityProgress.targetDelta;
1526
- const qualityState = qualityScore === null
1527
- ? 'unknown'
1528
- : qualityScore >= QUALITY_TARGET_SCORE
1529
- ? 'excellent'
1530
- : qualityScore >= 6
1531
- ? 'warning'
1532
- : 'critical';
1533
- const qualityLabel = qualityScore === null
1534
- ? t('quality.notAvailable')
1535
- : qualityScore >= 10
1536
- ? t('quality.perfect')
1537
- : qualityScore >= QUALITY_TARGET_SCORE
1538
- ? t('quality.onTarget')
1539
- : qualityScore >= 6
1540
- ? t('quality.belowTarget')
1541
- : t('quality.lovableQuality');
1542
- const deltaLabel = qualityProgress.targetDeltaLabel;
1543
- const qualityTrend = getQualityTrend(mr);
1544
- const qualityTrendLabel = qualityTrend.direction === 'up'
1545
- ? t('quality.trendUp', { delta: qualityTrend.label })
1546
- : qualityTrend.direction === 'down'
1547
- ? t('quality.trendDown', { delta: qualityTrend.label })
1548
- : qualityTrend.direction === 'flat'
1549
- ? t('quality.trendFlat')
1550
- : t('quality.trendUnknown');
1551
- const qualityTrendIcon = qualityTrend.direction === 'up'
1552
- ? 'trending-up'
1553
- : qualityTrend.direction === 'down'
1554
- ? 'trending-down'
1555
- : qualityTrend.direction === 'flat'
1556
- ? 'minus'
1557
- : 'circle-help';
1558
-
1559
- return `
1560
- <div class="now-lane">
1561
- <div class="now-lane-copy">
1562
- <span class="now-lane-kicker">${t('lane.nowKicker')}</span>
1563
- <div class="now-lane-title">${mrPrefix}${mr.mrNumber} - ${escapeHtml(String(mr.title ?? ''))}</div>
1564
- <div class="now-lane-meta">${t('lane.nowMeta', { count: mr.openThreads })}</div>
1565
- <div class="now-lane-owner">${escapeHtml(ownerLabel)}</div>
1566
- </div>
1567
- <div class="now-lane-quality ${qualityState}">
1568
- <span class="quality-kicker">${t('quality.kicker')}</span>
1569
- <div class="quality-main">
1570
- <span class="quality-score">${qualityScore !== null ? qualityScore.toFixed(1) : '-'}</span>
1571
- <span class="quality-over">/10</span>
1572
- </div>
1573
- <div class="quality-target">${t('quality.target', { target: qualityTarget })} ${deltaLabel ? `(${deltaLabel})` : ''}</div>
1574
- <div class="quality-progress">
1575
- <div class="quality-progress-track">
1576
- <div class="quality-progress-fill ${qualityState}" style="width: ${qualityProgress.clampedProgressPercent}%"></div>
1577
- </div>
1578
- <span class="quality-progress-value">${qualityProgress.progressPercent !== null ? `${qualityProgress.clampedProgressPercent.toFixed(0)}%` : '-'}</span>
1579
- </div>
1580
- <div class="quality-label">${qualityLabel}</div>
1581
- <div class="quality-trend ${qualityTrend.direction}">
1582
- <i data-lucide="${qualityTrendIcon}"></i>
1583
- <span>${qualityTrendLabel}</span>
1584
- </div>
1585
- <div class="now-lane-actions">
1586
- <button class="btn-action" onclick="triggerFollowup('${encodeURIComponent(String(mr.id ?? ''))}')"><i data-lucide="refresh-cw"></i> ${t('button.followup')}</button>
1587
- <a href="${sanitizeHttpUrl(mr.url)}" target="_blank" rel="noopener noreferrer" class="btn-action open" onclick="return onUsefulLinkAction()"><i data-lucide="external-link"></i> ${t('button.open')}</a>
1588
- </div>
1589
- </div>
1590
- </div>
1591
- `;
1592
- }
1593
-
1594
- function renderQueueLanes(queueLanesModel) {
1595
- const nowLaneContent = queueLanesModel.nowLaneItem
1596
- ? renderNowLane(queueLanesModel.nowLaneItem)
1597
- : `<div class="empty-state">${t('queueLane.emptyNow')}</div>`;
1598
- const needsFixContent = queueLanesModel.needsFixItems.length > 0
1599
- ? renderCollapsibleList(
1600
- queueLanesModel.needsFixItems.map((mergeRequest) => renderMrItem(mergeRequest, 'pending-fix')),
1601
- 'needs-fix', t
1602
- )
1603
- : `<div class="empty-state">${t('queueLane.emptyNeedsFix')}</div>`;
1604
- const readyToApproveContent = queueLanesModel.readyToApproveItems.length > 0
1605
- ? renderCollapsibleList(
1606
- queueLanesModel.readyToApproveItems.map((mergeRequest) => renderMrItem(mergeRequest, 'pending-approval')),
1607
- 'ready-to-approve', t
1608
- )
1609
- : `<div class="empty-state">${t('queueLane.emptyReadyToApprove')}</div>`;
1610
-
1611
- return `
1612
- <div class="queue-lanes-grid">
1613
- <div class="queue-lane">
1614
- <div class="queue-lane-header">
1615
- <span class="queue-lane-title">${t('queueLane.now')}</span>
1616
- <span class="queue-lane-count">${queueLanesModel.nowLaneCount}</span>
1617
- </div>
1618
- <div class="queue-lane-body">${nowLaneContent}</div>
1619
- </div>
1620
- <div class="queue-lane">
1621
- <div class="queue-lane-header">
1622
- <span class="queue-lane-title">${t('queueLane.needsFix')}</span>
1623
- <span class="queue-lane-count">${queueLanesModel.needsFixCount}</span>
1624
- </div>
1625
- <div class="queue-lane-body">${needsFixContent}</div>
1626
- </div>
1627
- <div class="queue-lane">
1628
- <div class="queue-lane-header">
1629
- <span class="queue-lane-title">${t('queueLane.readyToApprove')}</span>
1630
- <span class="queue-lane-count">${queueLanesModel.readyToApproveCount}</span>
1631
- </div>
1632
- <div class="queue-lane-body">${readyToApproveContent}</div>
1633
- </div>
1634
- </div>
1635
- `;
1636
- }
1637
-
1638
- function toggleMrAccordion(accordionId) {
1639
- const content = document.getElementById(`mr-content-${accordionId}`);
1640
- const accordion = content?.closest('.mr-item-accordion');
1641
- if (!content || !accordion) return;
1642
-
1643
- const isOpen = accordion.classList.contains('open');
1644
-
1645
- document.querySelectorAll('.mr-item-accordion.open').forEach(el => {
1646
- if (el !== accordion) {
1647
- el.classList.remove('open');
1648
- }
1649
- });
1650
-
1651
- if (isOpen) {
1652
- accordion.classList.remove('open');
1653
- } else {
1654
- accordion.classList.add('open');
1655
- refreshIcons();
1656
- }
1657
- }
1658
-
1659
- function updateMrTrackingUI() {
1660
- const pendingFixSection = document.getElementById('pending-fix-section');
1661
- const pendingFixEl = document.getElementById('pending-fix-reviews');
1662
- const pendingApprovalSection = document.getElementById('pending-approval-section');
1663
- const pendingFixCount = document.getElementById('pending-fix-count');
1664
- const pendingApprovalCount = document.getElementById('pending-approval-count');
1665
-
1666
- pendingFixSection.classList.remove('hidden');
1667
- const rankedPendingFix = rankPendingFixForNowLane(currentData.pendingFix);
1668
- const queueLanesModel = buildQueueLanesModel(rankedPendingFix, currentData.pendingApproval);
1669
-
1670
- mrDataStore.clear();
1671
- if (queueLanesModel.nowLaneItem) mrDataStore.set(queueLanesModel.nowLaneItem.id, { ...queueLanesModel.nowLaneItem, _sheetType: 'pending-fix' });
1672
- queueLanesModel.needsFixItems.forEach(mr => mrDataStore.set(mr.id, { ...mr, _sheetType: 'pending-fix' }));
1673
- queueLanesModel.readyToApproveItems.forEach(mr => mrDataStore.set(mr.id, { ...mr, _sheetType: 'pending-approval' }));
1674
- sessionMetrics = updatePriorityItemTracking(sessionMetrics, {
1675
- nowLaneItemId: queueLanesModel.nowLaneItem?.id ?? null,
1676
- pendingFixIds: rankedPendingFix.map((mergeRequest) => String(mergeRequest.id)),
1677
- nowMs: Date.now(),
1678
- });
1679
- updateSessionMetricsUI();
1680
- if (queueLanesModel.nowLaneCount + queueLanesModel.needsFixCount + queueLanesModel.readyToApproveCount === 0) {
1681
- pendingFixEl.innerHTML = `<div class="empty-state">${loadingState.mrTracking ? t('loading.section') : t('empty.pendingFix')}</div>`;
1682
- } else {
1683
- pendingFixEl.innerHTML = renderQueueLanes(queueLanesModel);
1684
- }
1685
- pendingFixCount.textContent = String(queueLanesModel.nowLaneCount + queueLanesModel.needsFixCount + queueLanesModel.readyToApproveCount);
1686
- pendingFixCount.classList.remove('hidden');
1687
-
1688
- pendingApprovalSection.classList.add('hidden');
1689
- pendingApprovalCount.classList.add('hidden');
1690
-
1691
- refreshIcons();
1692
- }
1693
-
1694
- async function fetchMrTracking() {
1695
- setLoadingFlag('mrTracking', true);
1696
- if (!currentProjectPath) {
1697
- currentData.pendingFix = [];
1698
- currentData.pendingApproval = [];
1699
- document.getElementById('pending-fix-section').classList.add('hidden');
1700
- document.getElementById('pending-approval-section').classList.add('hidden');
1701
- setLoadingFlag('mrTracking', false);
1702
- return;
1703
- }
1704
-
1705
- try {
1706
- const response = await fetch(`${API_URL}/api/mr-tracking?path=${encodeURIComponent(currentProjectPath)}`);
1707
- const data = await response.json();
1708
- if (data.success) {
1709
- currentData.pendingFix = data.pendingFix || [];
1710
- currentData.pendingApproval = data.pendingApproval || [];
1711
- }
1712
- updateMrTrackingUI();
1713
- } catch (error) {
1714
- console.error('Error fetching MR tracking:', error);
1715
- } finally {
1716
- setLoadingFlag('mrTracking', false);
1717
- }
1718
- }
1719
-
1720
- async function triggerFollowup(encodedMrId) {
1721
- const mrId = safeDecodeURIComponent(encodedMrId);
1722
- trackUsefulAction('followup');
1723
- try {
1724
- const response = await fetch(`${API_URL}/api/mr-tracking/followup`, {
1725
- method: 'POST',
1726
- headers: { 'Content-Type': 'application/json' },
1727
- body: JSON.stringify({ mrId, projectPath: currentProjectPath })
1728
- });
1729
- const data = await response.json();
1730
- if (data.success) {
1731
- console.log('Followup triggered for MR:', mrId);
1732
- showToast(t('notify.followupRequested', { mrNumber: String(data.mrNumber ?? '?') }), 'info');
1733
- } else {
1734
- alert(t('error.triggerFollowup') + ': ' + data.error);
1735
- }
1736
- } catch (error) {
1737
- console.error('Error triggering followup:', error);
1738
- alert(t('error.triggerFollowup'));
1739
- }
1740
- }
1741
-
1742
- async function toggleAutoFollowup(encodedMrId, enabled) {
1743
- const mrId = safeDecodeURIComponent(encodedMrId);
1744
- try {
1745
- const response = await fetch(`${API_URL}/api/mr-tracking/auto-followup`, {
1746
- method: 'POST',
1747
- headers: { 'Content-Type': 'application/json' },
1748
- body: JSON.stringify({ mrId, projectPath: currentProjectPath, enabled })
1749
- });
1750
- const data = await response.json();
1751
- if (!data.success) {
1752
- alert(t('error.toggleAutoFollowup') + ': ' + data.error);
1753
- }
1754
- } catch (error) {
1755
- console.error('Error toggling auto-followup:', error);
1756
- alert(t('error.toggleAutoFollowup'));
1757
- }
1758
- }
1759
-
1760
- async function approveMr(encodedMrId) {
1761
- const mrId = safeDecodeURIComponent(encodedMrId);
1762
- if (!confirm(t('confirm.approveMr', { label: getMrLabel() }))) return;
1763
- trackUsefulAction('approve');
1764
-
1765
- try {
1766
- const response = await fetch(`${API_URL}/api/mr-tracking/approve`, {
1767
- method: 'POST',
1768
- headers: { 'Content-Type': 'application/json' },
1769
- body: JSON.stringify({ mrId, projectPath: currentProjectPath })
1770
- });
1771
- const data = await response.json();
1772
- if (data.success) {
1773
- currentData.pendingApproval = currentData.pendingApproval.filter(mr => mr.id !== mrId);
1774
- updateMrTrackingUI();
1775
- } else {
1776
- alert(t('error.approveMr') + ': ' + data.error);
1777
- }
1778
- } catch (error) {
1779
- console.error('Error approving MR:', error);
1780
- alert(t('error.approveMr'));
1781
- }
1782
- }
1783
-
1784
- async function syncGitLabThreads() {
1785
- if (!currentProjectPath) {
1786
- alert(t('error.projectNotLoaded'));
1787
- return;
1788
- }
1789
- trackUsefulAction('syncThreads');
1790
-
1791
- const btn = document.getElementById('sync-threads-btn');
1792
- const iconEl = btn.querySelector('i');
1793
-
1794
- btn.disabled = true;
1795
- iconEl.classList.add('spinning');
1796
-
1797
- try {
1798
- const response = await fetch(`${API_URL}/api/mr-tracking/sync`, {
1799
- method: 'POST',
1800
- headers: { 'Content-Type': 'application/json' },
1801
- body: JSON.stringify({ projectPath: currentProjectPath })
1802
- });
1803
- const data = await response.json();
1804
- if (data.success) {
1805
- await fetchMrTracking();
1806
- console.log('Threads synchronized successfully');
1807
- } else {
1808
- alert(t('error.syncThreads') + ': ' + data.error);
1809
- }
1810
- } catch (error) {
1811
- console.error('Error syncing threads:', error);
1812
- alert(t('error.syncThreads'));
1813
- } finally {
1814
- btn.disabled = false;
1815
- iconEl.classList.remove('spinning');
1816
- }
1817
- }
1818
-
1819
- async function fetchLogs() {
1820
- try {
1821
- const response = await fetch(`${API_URL}/api/logs`);
1822
- const data = await response.json();
1823
- currentData.logs = data.logs || [];
1824
- updateLogs();
1825
- } catch (error) {
1826
- console.error('Error fetching logs:', error);
1827
- }
1828
- }
1829
-
1830
- function handleProgressUpdate(message) {
1831
- const { jobId, progress } = message;
1832
- const review = currentData.activeReviews.find(r => r.id === jobId);
1833
- if (review) {
1834
- review.progress = progress;
1835
- updateUI();
1836
- }
1837
- }
1838
-
1839
- function handleLogMessage(log) {
1840
- currentData.logs.push(log);
1841
- if (currentData.logs.length > 200) currentData.logs.shift();
1842
- if (logsVisible) updateLogs();
1843
- }
1844
-
1845
- function connectWebSocket() {
1846
- if (ws?.readyState === WebSocket.OPEN) return;
1847
-
1848
- updateConnectionStatus('connecting', 'status.connecting');
1849
-
1850
- try {
1851
- ws = new WebSocket(WS_URL);
1852
-
1853
- ws.onopen = () => {
1854
- wsConnected = true;
1855
- reconnectAttempts = 0;
1856
- updateConnectionStatus('online', 'connection.online');
1857
- };
1858
-
1859
- ws.onmessage = (event) => {
1860
- try {
1861
- const message = JSON.parse(event.data);
1862
- switch (message.type) {
1863
- case 'init':
1864
- case 'state':
1865
- console.log(`[WS] ${message.type}: ${message.activeReviews?.length || 0} active reviews`, message.activeReviews);
1866
- currentData.activeReviews = message.activeReviews || [];
1867
- currentData.recentReviews = message.recentReviews || [];
1868
- dispatchReviewNotifications(currentData.activeReviews, currentData.recentReviews);
1869
- updateUI();
1870
- if (message.type === 'state') {
1871
- fetchMrTracking();
1872
- }
1873
- break;
1874
- case 'progress':
1875
- handleProgressUpdate(message);
1876
- break;
1877
- case 'log':
1878
- handleLogMessage(message.log);
1879
- break;
1880
- case 'backfill-progress': {
1881
- const progressBadge = document.getElementById('backfill-progress');
1882
- if (progressBadge) {
1883
- progressBadge.textContent = t('stats.backfillProgress', { completed: message.data.completed, total: message.data.total });
1884
- progressBadge.classList.remove('hidden');
1885
- }
1886
- break;
1887
- }
1888
- case 'backfill-complete': {
1889
- const completeBadge = document.getElementById('backfill-progress');
1890
- const recalcButton = document.getElementById('recalculate-btn');
1891
- if (completeBadge) {
1892
- completeBadge.textContent = t('stats.backfillComplete');
1893
- setTimeout(() => completeBadge.classList.add('hidden'), 3000);
1894
- }
1895
- if (recalcButton) recalcButton.disabled = false;
1896
- fetchProjectStats();
1897
- fetchTeamInsights();
1898
- break;
1899
- }
1900
- case 'pong':
1901
- break;
1902
- }
1903
- } catch (e) {
1904
- console.error('WebSocket message error:', e);
1905
- }
1906
- };
1907
-
1908
- ws.onclose = () => {
1909
- wsConnected = false;
1910
- ws = null;
1911
- updateConnectionStatus('offline', 'connection.offline');
1912
- if (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) {
1913
- reconnectAttempts++;
1914
- setTimeout(connectWebSocket, RECONNECT_DELAY);
1915
- }
1916
- };
1917
-
1918
- ws.onerror = (error) => console.error('WebSocket error:', error);
1919
-
1920
- } catch (error) {
1921
- console.error('WebSocket creation failed:', error);
1922
- wsConnected = false;
1923
- }
1924
- }
1925
-
1926
- setInterval(() => {
1927
- if (ws?.readyState === WebSocket.OPEN) {
1928
- ws.send(JSON.stringify({ type: 'ping' }));
1929
- }
1930
- }, 30000);
1931
-
1932
- async function fetchStatus() {
1933
- setLoadingFlag('status', true);
1934
- try {
1935
- const response = await fetch(`${API_URL}/api/status`);
1936
- const data = await response.json();
1937
- currentData.activeReviews = data.jobs?.active || [];
1938
- currentData.recentReviews = data.jobs?.recent || [];
1939
- dispatchReviewNotifications(currentData.activeReviews, currentData.recentReviews);
1940
- const versionUpdateArea = document.getElementById('version-update-area');
1941
- if (versionUpdateArea) {
1942
- versionUpdateArea.innerHTML = renderVersionUpdateArea(
1943
- { currentVersion: data.version || '?', updateAvailable: data.updateAvailable || false, latestVersion: data.latestVersion || null },
1944
- t
1945
- );
1946
- if (typeof lucide !== 'undefined') lucide.createIcons();
1947
- }
1948
- if (!wsConnected) updateConnectionStatus('online', 'connection.onlinePolling');
1949
- updateUI();
1950
- } catch (error) {
1951
- if (!wsConnected) {
1952
- updateConnectionStatus('offline', 'connection.offline');
1953
- document.getElementById('running-count').textContent = '-';
1954
- document.getElementById('queued-count').textContent = '-';
1955
- document.getElementById('completed-count').textContent = '-';
1956
- document.getElementById('active-reviews').innerHTML = `<div class="empty-state">${t('empty.serverNotAccessible')}</div>`;
1957
- document.getElementById('recent-reviews').innerHTML = `<div class="empty-state">${t('empty.serverNotAccessible')}</div>`;
1958
- }
1959
- } finally {
1960
- hasLoadedStatusOnce = true;
1961
- setLoadingFlag('status', false);
1962
- }
1963
- }
1964
-
1965
- async function loadModelSetting() {
1966
- try {
1967
- const response = await fetch(`${API_URL}/api/settings/model`);
1968
- const data = await response.json();
1969
- const select = document.getElementById('model-select');
1970
- if (select && data.model) {
1971
- select.value = data.model;
1972
- }
1973
- } catch (error) {
1974
- console.error('Error loading model setting:', error);
1975
- }
1976
- }
1977
-
1978
- async function changeModel(model) {
1979
- try {
1980
- const response = await fetch(`${API_URL}/api/settings/model`, {
1981
- method: 'POST',
1982
- headers: { 'Content-Type': 'application/json' },
1983
- body: JSON.stringify({ model })
1984
- });
1985
- const data = await response.json();
1986
- if (data.success) {
1987
- console.log('Model changed to:', model);
1988
- }
1989
- } catch (error) {
1990
- console.error('Error changing model:', error);
1991
- }
1992
- }
1993
-
1994
- async function loadLanguageSetting() {
1995
- try {
1996
- const response = await fetch(`${API_URL}/api/settings`);
1997
- const data = await response.json();
1998
- const select = document.getElementById('language-select');
1999
- if (select && data.language) {
2000
- select.value = data.language;
2001
- setLanguage(data.language);
2002
- document.documentElement.lang = data.language;
2003
- renderStaticLabels();
2004
- }
2005
- } catch (error) {
2006
- console.error('Error loading language setting:', error);
2007
- }
2008
- }
2009
-
2010
- async function changeLanguage(language) {
2011
- setLanguage(language);
2012
- document.documentElement.lang = language;
2013
- renderStaticLabels();
2014
- // Re-render all dynamic content
2015
- updateUI();
2016
- updateLogs();
2017
- updateReviewFilesUI();
2018
- updateMrTrackingUI();
2019
- updateGitCliUI();
2020
- // Also persist on server
2021
- try {
2022
- const response = await fetch(`${API_URL}/api/settings/language`, {
2023
- method: 'POST',
2024
- headers: { 'Content-Type': 'application/json' },
2025
- body: JSON.stringify({ language })
2026
- });
2027
- const data = await response.json();
2028
- if (data.success) {
2029
- console.log('Language changed to:', language);
2030
- }
2031
- } catch (error) {
2032
- console.error('Error changing language:', error);
2033
- }
2034
- }
2035
-
2036
- let currentProjectConfig = null;
2037
- let currentProjectPath = null;
2038
-
2039
- function getStoredProjects() {
2040
- try {
2041
- return JSON.parse(localStorage.getItem(STORAGE_KEY_PROJECTS) || '[]');
2042
- } catch {
2043
- return [];
2044
- }
2045
- }
2046
-
2047
- function saveProjects(projects) {
2048
- localStorage.setItem(STORAGE_KEY_PROJECTS, JSON.stringify(projects));
2049
- }
2050
-
2051
- function addProjectToHistory(path) {
2052
- const projects = getStoredProjects();
2053
- const filtered = projects.filter(p => p !== path);
2054
- filtered.unshift(path);
2055
- saveProjects(filtered.slice(0, 10));
2056
- updateProjectSelect();
2057
- }
2058
-
2059
- function removeProjectFromHistory(path) {
2060
- const projects = getStoredProjects().filter(p => p !== path);
2061
- saveProjects(projects);
2062
- updateProjectSelect();
2063
- }
2064
-
2065
- function updateProjectSelect() {
2066
- const select = document.getElementById('project-select');
2067
- const projects = getStoredProjects();
2068
- const current = localStorage.getItem(STORAGE_KEY_CURRENT) || '';
2069
-
2070
- select.innerHTML = `<option value="">${t('project.selectPlaceholder')}</option>`;
2071
- for (const path of projects) {
2072
- const shortName = path.split('/').slice(-2).join('/');
2073
- const option = document.createElement('option');
2074
- option.value = path;
2075
- option.textContent = shortName;
2076
- option.title = path;
2077
- if (path === current) option.selected = true;
2078
- select.appendChild(option);
2079
- }
2080
- }
2081
-
2082
- function onProjectSelect(path) {
2083
- if (path) {
2084
- document.getElementById('project-path-input').value = '';
2085
- loadProjectConfigFromPath(path);
2086
- }
2087
- }
2088
-
2089
- async function loadProjectConfig() {
2090
- const input = document.getElementById('project-path-input');
2091
- const select = document.getElementById('project-select');
2092
- const projectPath = input.value.trim() || select.value;
2093
-
2094
- if (!projectPath) {
2095
- showConfigStatus(t('error.selectOrEnterPath'), 'error');
2096
- return;
2097
- }
2098
-
2099
- await loadProjectConfigFromPath(projectPath);
2100
- }
2101
-
2102
- async function loadProjectConfigFromPath(projectPath) {
2103
- const status = document.getElementById('config-status');
2104
- const info = document.getElementById('config-info');
2105
-
2106
- showConfigStatus(t('status.loading'), 'loading');
2107
- info.classList.add('hidden');
2108
-
2109
- try {
2110
- const response = await fetch(`${API_URL}/api/project-config?path=${encodeURIComponent(projectPath)}`);
2111
- const data = await response.json();
2112
-
2113
- if (data.success) {
2114
- currentProjectConfig = data.config;
2115
- currentProjectPath = projectPath;
2116
-
2117
- addProjectToHistory(projectPath);
2118
- localStorage.setItem(STORAGE_KEY_CURRENT, projectPath);
2119
-
2120
- document.getElementById('project-select').value = projectPath;
2121
- document.getElementById('project-path-input').value = '';
2122
-
2123
- const shortName = projectPath.split('/').slice(-2).join('/');
2124
- showConfigStatus(`<i data-lucide="check-circle"></i> ${escapeHtml(shortName)}`, 'success');
2125
- refreshIcons();
2126
-
2127
- if (data.config.defaultModel) {
2128
- const modelSelect = document.getElementById('model-select');
2129
- if (modelSelect) {
2130
- modelSelect.value = data.config.defaultModel;
2131
- changeModel(data.config.defaultModel);
2132
- }
2133
- }
2134
-
2135
- activePlatform = data.config.gitlab ? 'gitlab' : (data.config.github ? 'github' : null);
2136
- updateGitCliUI();
2137
-
2138
- fetchReviewFiles();
2139
- fetchProjectStats();
2140
- fetchMrTracking();
2141
- fetchTeamInsights();
2142
-
2143
- document.getElementById('stats-section').classList.remove('hidden');
2144
- document.getElementById('team-section').classList.remove('hidden');
2145
-
2146
- const platformIcon = activePlatform === 'gitlab' ? '<i data-lucide="gitlab"></i> GitLab' : '<i data-lucide="github"></i> GitHub';
2147
- info.innerHTML = `
2148
- <span>${platformIcon}</span>
2149
- <span><i data-lucide="bot"></i> ${escapeHtml(String(data.config.defaultModel || t('status.undefined')))}</span>
2150
- <span><i data-lucide="file-text"></i> ${escapeHtml(String(data.config.reviewSkill ?? ''))}</span>
2151
- <span><i data-lucide="refresh-cw"></i> ${escapeHtml(String(data.config.reviewFollowupSkill ?? ''))}</span>
2152
- `;
2153
- info.classList.remove('hidden');
2154
- refreshIcons();
2155
- } else {
2156
- showConfigStatus('<i data-lucide="x-circle"></i> ' + escapeHtml(String(data.error ?? '')), 'error');
2157
- refreshIcons();
2158
- }
2159
- } catch (error) {
2160
- showConfigStatus(`<i data-lucide="x-circle"></i> ${t('error.loadingConfig')}`, 'error');
2161
- refreshIcons();
2162
- console.error('Error loading project config:', error);
2163
- }
2164
- }
2165
-
2166
- function showConfigStatus(text, type) {
2167
- const status = document.getElementById('config-status');
2168
- status.innerHTML = text;
2169
- status.className = `config-status ${type}`;
2170
- status.classList.remove('hidden');
2171
- refreshIcons();
2172
- }
2173
-
2174
- function removeCurrentProject() {
2175
- const select = document.getElementById('project-select');
2176
- const path = select.value;
2177
- if (!path) {
2178
- showConfigStatus(t('project.noProjectSelected'), 'error');
2179
- return;
2180
- }
2181
- const shortName = path.split('/').slice(-2).join('/');
2182
- if (confirm(t('confirm.removeProject', { name: shortName }))) {
2183
- removeProjectFromHistory(path);
2184
- localStorage.removeItem(STORAGE_KEY_CURRENT);
2185
- currentProjectPath = null;
2186
- currentProjectConfig = null;
2187
- document.getElementById('config-info').classList.add('hidden');
2188
- showConfigStatus(t('project.removed'), 'success');
2189
- }
2190
- }
2191
-
2192
- async function syncServerRepositories() {
2193
- try {
2194
- const response = await fetch(`${API_URL}/api/repositories`);
2195
- const data = await response.json();
2196
- if (!data.repositories) return;
2197
-
2198
- const stored = getStoredProjects();
2199
- for (const repository of data.repositories) {
2200
- if (repository.enabled && !stored.includes(repository.localPath)) {
2201
- stored.push(repository.localPath);
2202
- }
2203
- }
2204
- saveProjects(stored);
2205
- updateProjectSelect();
2206
- } catch {
2207
- // Server unreachable — use localStorage only
2208
- }
2209
- }
2210
-
2211
- async function initProjectLoader() {
2212
- await syncServerRepositories();
2213
- updateProjectSelect();
2214
- const lastProject = localStorage.getItem(STORAGE_KEY_CURRENT);
2215
- if (lastProject) {
2216
- loadProjectConfigFromPath(lastProject);
2217
- } else {
2218
- const storedProjects = getStoredProjects();
2219
- if (storedProjects.length > 0) {
2220
- loadProjectConfigFromPath(storedProjects[0]);
2221
- } else {
2222
- document.getElementById('recent-reviews').innerHTML =
2223
- `<div class="empty-state">${t('empty.reviewsNoProject')}</div>`;
2224
- document.getElementById('project-stats').innerHTML =
2225
- `<div class="empty-state">${t('empty.statsNoProject')}</div>`;
2226
- }
2227
- }
2228
- }
2229
-
2230
- function getMrLabel(platform = activePlatform) {
2231
- return platform === 'github' ? 'PR' : 'MR';
2232
- }
2233
-
2234
- let cancelModalJobId = null;
2235
-
2236
- function showCancelModal(encodedJobId, mrNumber, jobType) {
2237
- cancelModalJobId = safeDecodeURIComponent(encodedJobId);
2238
- const typeLabel = jobType === 'followup' ? t('review.type.followup').toLowerCase() : t('review.type.review').toLowerCase();
2239
- document.getElementById('cancel-modal-title').textContent = t('modal.cancel.title', { type: typeLabel, label: getMrLabel(), number: mrNumber });
2240
- const modal = document.getElementById('cancel-modal');
2241
- modal.classList.remove('hidden');
2242
- requestAnimationFrame(() => modal.classList.add('visible'));
2243
- }
2244
-
2245
- function closeCancelModal(event) {
2246
- if (event && event.target !== event.currentTarget) return;
2247
- const modal = document.getElementById('cancel-modal');
2248
- modal.classList.remove('visible');
2249
- setTimeout(() => modal.classList.add('hidden'), 200);
2250
- cancelModalJobId = null;
2251
- }
2252
-
2253
- async function confirmCancelReview() {
2254
- if (!cancelModalJobId) return;
2255
- trackUsefulAction('cancelReview');
2256
-
2257
- const jobId = cancelModalJobId;
2258
- closeCancelModal();
2259
-
2260
- try {
2261
- const response = await fetch(`${API_URL}/api/reviews/cancel/${encodeURIComponent(jobId)}`, {
2262
- method: 'POST',
2263
- headers: { 'Content-Type': 'application/json' },
2264
- body: JSON.stringify({
2265
- projectPath: currentProjectPath || undefined,
2266
- mrId: jobId,
2267
- }),
2268
- });
2269
- const data = await response.json();
2270
-
2271
- if (data.success) {
2272
- const card = document.querySelector(`.review-item[data-job-id="${jobId}"]`);
2273
- if (card) card.remove();
2274
- showToast(t('success.reviewCancelled'), 'success');
2275
- fetchStatus();
2276
- } else if (data.status === 'already-completed') {
2277
- showToast(t('success.reviewAlreadyCompleted'), 'info');
2278
- fetchStatus();
2279
- } else {
2280
- showToast(data.error || t('error.cancelReview'), 'error');
2281
- }
2282
- } catch (error) {
2283
- console.error('Error cancelling review:', error);
2284
- showToast(t('error.cancelReview'), 'error');
2285
- }
2286
- }
2287
-
2288
- function showToast(message, type) {
2289
- const container = document.getElementById('toast-container');
2290
- const iconName = type === 'success' ? 'check-circle' : type === 'info' ? 'info' : 'alert-circle';
2291
- const toast = document.createElement('div');
2292
- toast.className = `toast ${type}`;
2293
- toast.innerHTML = `<i data-lucide="${iconName}"></i> ${escapeHtml(message)}`;
2294
- container.appendChild(toast);
2295
- refreshIcons();
2296
- requestAnimationFrame(() => toast.classList.add('visible'));
2297
- setTimeout(() => {
2298
- toast.classList.remove('visible');
2299
- setTimeout(() => toast.remove(), 300);
2300
- }, 3000);
2301
- }
2302
-
2303
- function renderStaticLabels() {
2304
- // Header buttons
2305
- const checkClaudeSpan = document.getElementById('i18n-check-claude');
2306
- if (checkClaudeSpan) checkClaudeSpan.textContent = t('header.checkClaude');
2307
-
2308
- const logsBtnSpan = document.getElementById('i18n-logs-btn');
2309
- if (logsBtnSpan) logsBtnSpan.textContent = logsVisible ? t('header.hideLogs') : t('header.logs');
2310
-
2311
- const serverStatusSpan = document.getElementById('i18n-server-status');
2312
- if (serverStatusSpan) serverStatusSpan.textContent = t('status.connecting');
2313
-
2314
- // Cards
2315
- const cardRunning = document.getElementById('i18n-card-running');
2316
- if (cardRunning) cardRunning.textContent = t('card.running');
2317
-
2318
- const cardQueued = document.getElementById('i18n-card-queued');
2319
- if (cardQueued) cardQueued.textContent = t('card.queued');
2320
-
2321
- const cardCompleted = document.getElementById('i18n-card-completed');
2322
- if (cardCompleted) cardCompleted.textContent = t('card.completed');
2323
-
2324
- const cardClaudeCli = document.getElementById('i18n-card-claude-cli');
2325
- if (cardClaudeCli) cardClaudeCli.textContent = t('card.claudeCli');
2326
-
2327
- const claudeChecking = document.getElementById('i18n-claude-checking');
2328
- if (claudeChecking) claudeChecking.textContent = t('status.checking');
2329
-
2330
- const gitLoadProject = document.getElementById('i18n-git-load-project');
2331
- if (gitLoadProject) gitLoadProject.textContent = t('status.loadProject');
2332
-
2333
- const gitCliLabel = document.getElementById('git-cli-label');
2334
- if (gitCliLabel && !activePlatform) gitCliLabel.textContent = t('card.gitCli');
2335
-
2336
- const cardModel = document.getElementById('i18n-card-model');
2337
- if (cardModel) cardModel.textContent = t('card.model');
2338
-
2339
- const cardLanguage = document.getElementById('i18n-card-language');
2340
- if (cardLanguage) cardLanguage.textContent = t('card.language');
2341
-
2342
- const stripNow = document.getElementById('i18n-strip-now');
2343
- if (stripNow) stripNow.textContent = t('strip.now');
2344
- const stripNowMeta = document.getElementById('i18n-strip-now-meta');
2345
- if (stripNowMeta) stripNowMeta.textContent = t('strip.nowMeta');
2346
-
2347
- const stripNext = document.getElementById('i18n-strip-next');
2348
- if (stripNext) stripNext.textContent = t('strip.next');
2349
- const stripNextMeta = document.getElementById('i18n-strip-next-meta');
2350
- if (stripNextMeta) stripNextMeta.textContent = t('strip.nextMeta');
2351
-
2352
- const stripBlocked = document.getElementById('i18n-strip-blocked');
2353
- if (stripBlocked) stripBlocked.textContent = t('strip.blocked');
2354
- const stripBlockedMeta = document.getElementById('i18n-strip-blocked-meta');
2355
- if (stripBlockedMeta) stripBlockedMeta.textContent = t('strip.blockedMeta');
2356
- applyFocusStripMode();
2357
-
2358
- const loadingDataLabel = document.getElementById('i18n-loading-data');
2359
- if (loadingDataLabel) loadingDataLabel.textContent = t(getLoadingMessageKey());
2360
- updateSessionMetricsUI();
2361
-
2362
- // Model options
2363
- const modelOpus = document.getElementById('i18n-model-opus');
2364
- if (modelOpus) modelOpus.textContent = t('model.opus');
2365
-
2366
- const modelSonnet = document.getElementById('i18n-model-sonnet');
2367
- if (modelSonnet) modelSonnet.textContent = t('model.sonnet');
2368
-
2369
- // Project loader
2370
- const projectPlaceholder = document.getElementById('i18n-project-placeholder');
2371
- if (projectPlaceholder) projectPlaceholder.textContent = t('project.selectPlaceholder');
2372
-
2373
- const projectPathInput = document.getElementById('project-path-input');
2374
- if (projectPathInput) projectPathInput.placeholder = t('project.inputPlaceholder');
2375
-
2376
- const projectLoad = document.getElementById('i18n-project-load');
2377
- if (projectLoad) projectLoad.textContent = t('project.load');
2378
-
2379
- const removeProjectBtn = document.getElementById('remove-project-btn');
2380
- if (removeProjectBtn) removeProjectBtn.title = t('project.removeTooltip');
2381
-
2382
- // Login sections
2383
- const claudeLoginTitle = document.getElementById('i18n-claude-login-title');
2384
- if (claudeLoginTitle) claudeLoginTitle.textContent = t('login.claude.title');
2385
-
2386
- const claudeLoginInstruction = document.getElementById('i18n-claude-login-instruction');
2387
- if (claudeLoginInstruction) claudeLoginInstruction.textContent = t('login.claude.instruction');
2388
-
2389
- const claudeLoginReload = document.getElementById('i18n-claude-login-reload');
2390
- if (claudeLoginReload) claudeLoginReload.textContent = t('login.claude.reload');
2391
-
2392
- const gitLoginTitle = document.getElementById('i18n-git-login-title');
2393
- if (gitLoginTitle) gitLoginTitle.textContent = t('login.git.title');
2394
-
2395
- // Section headers
2396
- const sectionLogs = document.getElementById('i18n-section-logs');
2397
- if (sectionLogs) sectionLogs.textContent = t('section.logs');
2398
-
2399
- const sectionStats = document.getElementById('i18n-section-stats');
2400
- if (sectionStats) sectionStats.textContent = t('section.stats');
2401
-
2402
- const recalculateLabel = document.getElementById('recalculate-label');
2403
- if (recalculateLabel) recalculateLabel.textContent = t('stats.recalculate');
2404
-
2405
- const sectionTeam = document.getElementById('i18n-section-team');
2406
- if (sectionTeam) sectionTeam.textContent = t('team.title');
2407
-
2408
- const sectionActiveReviews = document.getElementById('i18n-section-active-reviews');
2409
- if (sectionActiveReviews) sectionActiveReviews.textContent = t('section.activeReviews');
2410
-
2411
- const sectionActiveFollowups = document.getElementById('i18n-section-active-followups');
2412
- if (sectionActiveFollowups) sectionActiveFollowups.textContent = t('section.activeFollowups');
2413
-
2414
- const sectionPendingFix = document.getElementById('i18n-section-pending-fix');
2415
- if (sectionPendingFix) sectionPendingFix.textContent = t('section.queueLanes');
2416
-
2417
- const sectionPendingApproval = document.getElementById('i18n-section-pending-approval');
2418
- if (sectionPendingApproval) sectionPendingApproval.textContent = t('section.pendingApproval');
2419
-
2420
- const sectionCompletedReviews = document.getElementById('i18n-section-completed-reviews');
2421
- if (sectionCompletedReviews) sectionCompletedReviews.textContent = t('section.completedReviews');
2422
-
2423
- // Empty states
2424
- const emptyLogs = document.getElementById('i18n-empty-logs');
2425
- if (emptyLogs) emptyLogs.textContent = t('empty.logs');
2426
-
2427
- const emptyStats = document.getElementById('i18n-empty-stats');
2428
- if (emptyStats) emptyStats.textContent = t('empty.stats');
2429
-
2430
- const emptyActiveReviews = document.getElementById('i18n-empty-active-reviews');
2431
- if (emptyActiveReviews) emptyActiveReviews.textContent = t('empty.activeReviews');
2432
-
2433
- const emptyActiveFollowups = document.getElementById('i18n-empty-active-followups');
2434
- if (emptyActiveFollowups) emptyActiveFollowups.textContent = t('empty.activeFollowups');
2435
-
2436
- const emptyPendingFix = document.getElementById('i18n-empty-pending-fix');
2437
- if (emptyPendingFix) emptyPendingFix.textContent = t('empty.pendingFix');
2438
-
2439
- const emptyPendingApproval = document.getElementById('i18n-empty-pending-approval');
2440
- if (emptyPendingApproval) emptyPendingApproval.textContent = t('empty.pendingApproval');
2441
-
2442
- const emptyTeam = document.getElementById('i18n-empty-team');
2443
- if (emptyTeam) emptyTeam.textContent = t('team.noData');
2444
-
2445
- const emptyLoading = document.getElementById('i18n-empty-loading');
2446
- if (emptyLoading) emptyLoading.textContent = t('status.loading');
2447
-
2448
- // Sync threads button
2449
- const syncThreadsBtn = document.getElementById('sync-threads-btn');
2450
- if (syncThreadsBtn) syncThreadsBtn.title = t('button.syncThreads');
2451
-
2452
- // Connection footer
2453
- const connectionFallback = document.getElementById('i18n-connection-fallback');
2454
- if (connectionFallback) connectionFallback.textContent = t('connection.fallback');
2455
-
2456
- // Modal
2457
- const modalMessage = document.getElementById('i18n-modal-message');
2458
- if (modalMessage) modalMessage.textContent = t('modal.cancel.message');
2459
-
2460
- const modalBack = document.getElementById('i18n-modal-back');
2461
- if (modalBack) modalBack.textContent = t('modal.back');
2462
-
2463
- const modalConfirm = document.getElementById('cancel-modal-confirm');
2464
- if (modalConfirm) modalConfirm.textContent = t('modal.confirm');
2465
-
2466
- // Update project select placeholder (re-render the select)
2467
- updateProjectSelect();
2468
- }
2469
-
2470
- async function checkForUpdates() {
2471
- setVersionCheckState('checking', t);
2472
- try {
2473
- const response = await fetch(`${API_URL}/api/version/check`);
2474
- const data = await response.json();
2475
- const versionUpdateArea = document.getElementById('version-update-area');
2476
- if (versionUpdateArea) {
2477
- versionUpdateArea.innerHTML = renderVersionUpdateArea(
2478
- { currentVersion: data.currentVersion || '?', updateAvailable: data.updateAvailable || false, latestVersion: data.latestVersion || null },
2479
- t
2480
- );
2481
- if (typeof lucide !== 'undefined') lucide.createIcons();
2482
- }
2483
- if (!data.updateAvailable) {
2484
- showToast(t('version.upToDate'), 'success');
2485
- }
2486
- } catch (error) {
2487
- console.error('Error checking for updates:', error);
2488
- showToast(t('version.updateFailed'), 'error');
2489
- } finally {
2490
- setVersionCheckState('idle', t);
2491
- }
2492
- }
2493
-
2494
- async function triggerVersionUpdate() {
2495
- setVersionCheckState('updating', t);
2496
- try {
2497
- const response = await fetch(`${API_URL}/api/version/update`, { method: 'POST' });
2498
- const data = await response.json();
2499
- if (data.status === 'started') {
2500
- setVersionCheckState('restarting', t);
2501
- showToast(t('version.restarting'), 'info');
2502
- setTimeout(() => {
2503
- const checkInterval = setInterval(async () => {
2504
- try {
2505
- const healthResponse = await fetch(`${API_URL}/health`);
2506
- if (healthResponse.ok) {
2507
- clearInterval(checkInterval);
2508
- window.location.reload();
2509
- }
2510
- } catch {
2511
- // Server still restarting, keep polling
2512
- }
2513
- }, 2000);
2514
- setTimeout(() => clearInterval(checkInterval), 60000);
2515
- }, 3000);
2516
- } else if (data.status === 'permission-denied') {
2517
- setVersionCheckState('idle', t);
2518
- showManualUpdateCommand(data.command);
2519
- } else {
2520
- showToast(data.error || t('version.updateFailed'), 'error');
2521
- setVersionCheckState('idle', t);
2522
- }
2523
- } catch (error) {
2524
- console.error('Error triggering update:', error);
2525
- showToast(t('version.updateFailed'), 'error');
2526
- setVersionCheckState('idle', t);
2527
- }
2528
- }
2529
-
2530
- function showManualUpdateCommand(command) {
2531
- const container = document.getElementById('version-manual-update-container');
2532
- if (!container) return;
2533
-
2534
- if (container.children.length > 0) {
2535
- container.innerHTML = '';
2536
- return;
2537
- }
2538
-
2539
- container.innerHTML = `
2540
- <div class="version-manual-dropdown">
2541
- <p>${t('version.permissionDenied')}</p>
2542
- <div class="version-command-row">
2543
- <code>${command}</code>
2544
- <button class="btn btn-icon btn-copy" title="${t('version.copyCommand')}" onclick="copyUpdateCommand('${command}')">
2545
- <i data-lucide="copy"></i>
2546
- </button>
2547
- </div>
2548
- </div>
2549
- `;
2550
- refreshIcons();
2551
- }
2552
-
2553
- function copyUpdateCommand(command) {
2554
- navigator.clipboard.writeText(command).then(() => {
2555
- showToast(t('version.commandCopied'), 'success');
2556
- });
2557
- }
2558
-
2559
- function openMrSheet(encodedMrId) {
2560
- const mrId = safeDecodeURIComponent(encodedMrId);
2561
- const mr = mrDataStore.get(mrId);
2562
- if (!mr) return;
2563
-
2564
- const contentEl = document.getElementById('mr-sheet-content');
2565
- contentEl.innerHTML = renderMrSheetContent(mr, t, mr._sheetType);
2566
-
2567
- document.getElementById('mr-sheet-overlay').classList.add('open');
2568
- document.getElementById('mr-sheet').classList.add('open');
2569
- document.body.style.overflow = 'hidden';
2570
-
2571
- refreshIcons();
2572
-
2573
- requestAnimationFrame(() => {
2574
- if (mr.reviews?.length) {
2575
- drawScoreTimeline('sheet-score-canvas', mr.reviews);
2576
- }
2577
- const totalResolved = (mr.openThreads ?? 0) === 0 ? 1 : 0;
2578
- drawIssuesBreakdown('sheet-issues-canvas', mr.totalBlocking || 0, mr.totalWarnings || 0, totalResolved);
2579
- });
2580
- }
2581
-
2582
- function closeMrSheet() {
2583
- document.getElementById('mr-sheet-overlay').classList.remove('open');
2584
- document.getElementById('mr-sheet').classList.remove('open');
2585
- document.body.style.overflow = '';
2586
- logsVisible = false;
2587
- }
2588
-
2589
- document.addEventListener('keydown', (e) => {
2590
- if (e.key === 'Escape') {
2591
- closeMrSheet();
2592
- closeDevSheet();
2593
- }
2594
- });
2595
-
2596
- // Expose functions to HTML onclick handlers
2597
- window.checkForUpdates = checkForUpdates;
2598
- window.triggerVersionUpdate = triggerVersionUpdate;
2599
- window.copyUpdateCommand = copyUpdateCommand;
2600
- window.toggleCollapsibleList = toggleCollapsibleList;
2601
- window.checkClaudeStatus = checkClaudeStatus;
2602
- window.toggleLogs = toggleLogs;
2603
- window.toggleStats = toggleStats;
2604
- window.changeModel = changeModel;
2605
- window.changeLanguage = changeLanguage;
2606
- window.onProjectSelect = onProjectSelect;
2607
- window.loadProjectConfig = loadProjectConfig;
2608
- window.removeCurrentProject = removeCurrentProject;
2609
- window.toggleReviewAccordion = toggleReviewAccordion;
2610
- window.toggleReviewDescription = toggleReviewDescription;
2611
- window.deleteReviewFile = deleteReviewFile;
2612
- window.toggleMrAccordion = toggleMrAccordion;
2613
- window.triggerFollowup = triggerFollowup;
2614
- window.toggleAutoFollowup = toggleAutoFollowup;
2615
- window.approveMr = approveMr;
2616
- window.syncGitLabThreads = syncGitLabThreads;
2617
- window.showCancelModal = showCancelModal;
2618
- window.closeCancelModal = closeCancelModal;
2619
- window.confirmCancelReview = confirmCancelReview;
2620
- window.toggleFocusStripMode = toggleFocusStripMode;
2621
- window.toggleSection = toggleSection;
2622
- window.onUsefulLinkAction = onUsefulLinkAction;
2623
- window.activateOnKeydown = activateOnKeydown;
2624
- window.handleCleanupClick = handleCleanupClick;
2625
- window.openMrSheet = openMrSheet;
2626
- window.closeMrSheet = closeMrSheet;
2627
- window.openDevSheet = openDevSheet;
2628
- window.closeDevSheet = closeDevSheet;
2629
- window.generateAiInsights = generateAiInsights;
2630
- window.exportInsightsPdf = exportInsightsPdf;
2631
- window.toggleTeamAnalysis = toggleTeamAnalysis;
2632
- window.toggleTeamSection = toggleTeamSection;
2633
- window.clearLogs = clearLogs;
2634
-
2635
- // Init cleanup section
2636
- const cleanupContent = document.getElementById('cleanup-content');
2637
- if (cleanupContent) {
2638
- cleanupContent.innerHTML = renderCleanupSection(14);
2639
- }
2640
-
2641
- // Init
2642
- if (typeof Notification !== 'undefined' && Notification.permission === 'default') {
2643
- Notification.requestPermission().catch(() => {});
2644
- }
2645
- loadFocusStripMode();
2646
- renderStaticLabels();
2647
- updateSessionMetricsUI();
2648
- connectWebSocket();
2649
- fetchStatus();
2650
- checkClaudeStatus();
2651
- loadModelSetting();
2652
- loadLanguageSetting();
2653
- initProjectLoader();
2654
-
2655
- // Initialize Lucide icons
2656
- refreshIcons();
2657
-
2658
- setInterval(fetchStatus, 5000);
2659
- setInterval(() => {
2660
- fetchReviewFiles();
2661
- fetchProjectStats();
2662
- fetchMrTracking();
2663
- fetchTeamInsights();
2664
- }, 30000);
2665
-
2666
- setInterval(() => {
2667
- document.querySelectorAll('.review-item').forEach(el => {
2668
- const jobId = el.dataset.jobId;
2669
- const review = currentData.activeReviews.find(r => r.id === jobId);
2670
- if (review?.startedAt) {
2671
- const metaEl = el.querySelector('.review-meta');
2672
- if (metaEl) {
2673
- const badge = metaEl.querySelector('.badge');
2674
- metaEl.innerHTML = `${badge?.outerHTML || ''} ${icon('clock')} ${formatDuration(review.startedAt)}`;
2675
- refreshIcons();
2676
- }
2677
- }
2678
- });
2679
- }, 1000);
2680
- </script>
2681
- </body>
2682
- </html>