reviewflow 3.6.0 → 3.8.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.
- package/CHANGELOG.md +40 -0
- package/dist/config/projectConfig.d.ts +2 -0
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js +17 -0
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/entities/backfill/backfillProgress.d.ts +7 -0
- package/dist/entities/backfill/backfillProgress.d.ts.map +1 -0
- package/dist/entities/backfill/backfillProgress.js +2 -0
- package/dist/entities/backfill/backfillProgress.js.map +1 -0
- package/dist/entities/cleanup/retentionPolicy.valueObject.d.ts +8 -0
- package/dist/entities/cleanup/retentionPolicy.valueObject.d.ts.map +1 -0
- package/dist/entities/cleanup/retentionPolicy.valueObject.js +21 -0
- package/dist/entities/cleanup/retentionPolicy.valueObject.js.map +1 -0
- package/dist/entities/diffStats/diffStats.d.ts +6 -0
- package/dist/entities/diffStats/diffStats.d.ts.map +1 -0
- package/dist/entities/diffStats/diffStats.js +2 -0
- package/dist/entities/diffStats/diffStats.js.map +1 -0
- package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts +5 -0
- package/dist/entities/diffStats/diffStatsFetch.gateway.d.ts.map +1 -0
- package/dist/entities/diffStats/diffStatsFetch.gateway.js +2 -0
- package/dist/entities/diffStats/diffStatsFetch.gateway.js.map +1 -0
- package/dist/entities/insight/aiInsight.d.ts +6 -0
- package/dist/entities/insight/aiInsight.d.ts.map +1 -0
- package/dist/entities/insight/aiInsight.js +2 -0
- package/dist/entities/insight/aiInsight.js.map +1 -0
- package/dist/entities/insight/aiInsight.schema.d.ts +55 -0
- package/dist/entities/insight/aiInsight.schema.d.ts.map +1 -0
- package/dist/entities/insight/aiInsight.schema.js +25 -0
- package/dist/entities/insight/aiInsight.schema.js.map +1 -0
- package/dist/entities/insight/developerInsight.d.ts +8 -0
- package/dist/entities/insight/developerInsight.d.ts.map +1 -0
- package/dist/entities/insight/developerInsight.guard.d.ts +221 -0
- package/dist/entities/insight/developerInsight.guard.d.ts.map +1 -0
- package/dist/entities/insight/developerInsight.guard.js +13 -0
- package/dist/entities/insight/developerInsight.guard.js.map +1 -0
- package/dist/entities/insight/developerInsight.js +2 -0
- package/dist/entities/insight/developerInsight.js.map +1 -0
- package/dist/entities/insight/developerInsight.schema.d.ts +157 -0
- package/dist/entities/insight/developerInsight.schema.d.ts.map +1 -0
- package/dist/entities/insight/developerInsight.schema.js +43 -0
- package/dist/entities/insight/developerInsight.schema.js.map +1 -0
- package/dist/entities/insight/developerTitle.d.ts +12 -0
- package/dist/entities/insight/developerTitle.d.ts.map +1 -0
- package/dist/entities/insight/developerTitle.js +11 -0
- package/dist/entities/insight/developerTitle.js.map +1 -0
- package/dist/entities/insight/insightCategory.d.ts +10 -0
- package/dist/entities/insight/insightCategory.d.ts.map +1 -0
- package/dist/entities/insight/insightCategory.js +4 -0
- package/dist/entities/insight/insightCategory.js.map +1 -0
- package/dist/entities/insight/insightTrend.d.ts +9 -0
- package/dist/entities/insight/insightTrend.d.ts.map +1 -0
- package/dist/entities/insight/insightTrend.js +4 -0
- package/dist/entities/insight/insightTrend.js.map +1 -0
- package/dist/entities/insight/insights.gateway.d.ts +6 -0
- package/dist/entities/insight/insights.gateway.d.ts.map +1 -0
- package/dist/entities/insight/insights.gateway.js +2 -0
- package/dist/entities/insight/insights.gateway.js.map +1 -0
- package/dist/entities/insight/persistedInsightsData.d.ts +5 -0
- package/dist/entities/insight/persistedInsightsData.d.ts.map +1 -0
- package/dist/entities/insight/persistedInsightsData.guard.d.ts +271 -0
- package/dist/entities/insight/persistedInsightsData.guard.d.ts.map +1 -0
- package/dist/entities/insight/persistedInsightsData.guard.js +13 -0
- package/dist/entities/insight/persistedInsightsData.guard.js.map +1 -0
- package/dist/entities/insight/persistedInsightsData.js +2 -0
- package/dist/entities/insight/persistedInsightsData.js.map +1 -0
- package/dist/entities/insight/persistedInsightsData.schema.d.ts +84 -0
- package/dist/entities/insight/persistedInsightsData.schema.d.ts.map +1 -0
- package/dist/entities/insight/persistedInsightsData.schema.js +40 -0
- package/dist/entities/insight/persistedInsightsData.schema.js.map +1 -0
- package/dist/entities/insight/teamInsight.d.ts +5 -0
- package/dist/entities/insight/teamInsight.d.ts.map +1 -0
- package/dist/entities/insight/teamInsight.guard.d.ts +71 -0
- package/dist/entities/insight/teamInsight.guard.d.ts.map +1 -0
- package/dist/entities/insight/teamInsight.guard.js +13 -0
- package/dist/entities/insight/teamInsight.guard.js.map +1 -0
- package/dist/entities/insight/teamInsight.js +2 -0
- package/dist/entities/insight/teamInsight.js.map +1 -0
- package/dist/entities/insight/teamInsight.schema.d.ts +31 -0
- package/dist/entities/insight/teamInsight.schema.d.ts.map +1 -0
- package/dist/entities/insight/teamInsight.schema.js +17 -0
- package/dist/entities/insight/teamInsight.schema.js.map +1 -0
- package/dist/entities/packageVersion/packageVersion.d.ts +21 -0
- package/dist/entities/packageVersion/packageVersion.d.ts.map +1 -0
- package/dist/entities/packageVersion/packageVersion.gateway.d.ts +4 -0
- package/dist/entities/packageVersion/packageVersion.gateway.d.ts.map +1 -0
- package/dist/entities/packageVersion/packageVersion.gateway.js +2 -0
- package/dist/entities/packageVersion/packageVersion.gateway.js.map +1 -0
- package/dist/entities/packageVersion/packageVersion.guard.d.ts +7 -0
- package/dist/entities/packageVersion/packageVersion.guard.d.ts.map +1 -0
- package/dist/entities/packageVersion/packageVersion.guard.js +13 -0
- package/dist/entities/packageVersion/packageVersion.guard.js.map +1 -0
- package/dist/entities/packageVersion/packageVersion.js +2 -0
- package/dist/entities/packageVersion/packageVersion.js.map +1 -0
- package/dist/entities/packageVersion/packageVersion.schema.d.ts +12 -0
- package/dist/entities/packageVersion/packageVersion.schema.d.ts.map +1 -0
- package/dist/entities/packageVersion/packageVersion.schema.js +11 -0
- package/dist/entities/packageVersion/packageVersion.schema.js.map +1 -0
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts +9 -0
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +1 -0
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.js +2 -0
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.js.map +1 -0
- package/dist/entities/packageVersion/versionCache.gateway.d.ts +7 -0
- package/dist/entities/packageVersion/versionCache.gateway.d.ts.map +1 -0
- package/dist/entities/packageVersion/versionCache.gateway.js +2 -0
- package/dist/entities/packageVersion/versionCache.gateway.js.map +1 -0
- package/dist/entities/review/reviewFile.gateway.d.ts +18 -0
- package/dist/entities/review/reviewFile.gateway.d.ts.map +1 -0
- package/dist/entities/review/reviewFile.gateway.js +2 -0
- package/dist/entities/review/reviewFile.gateway.js.map +1 -0
- package/dist/entities/stats/projectStats.d.ts +39 -0
- package/dist/entities/stats/projectStats.d.ts.map +1 -0
- package/dist/entities/stats/projectStats.js +2 -0
- package/dist/entities/stats/projectStats.js.map +1 -0
- package/dist/entities/stats/recalculateBody.guard.d.ts +11 -0
- package/dist/entities/stats/recalculateBody.guard.d.ts.map +1 -0
- package/dist/entities/stats/recalculateBody.guard.js +9 -0
- package/dist/entities/stats/recalculateBody.guard.js.map +1 -0
- package/dist/entities/stats/stats.gateway.d.ts +7 -0
- package/dist/entities/stats/stats.gateway.d.ts.map +1 -0
- package/dist/entities/stats/stats.gateway.js +2 -0
- package/dist/entities/stats/stats.gateway.js.map +1 -0
- package/dist/entities/tracking/reviewEvent.d.ts +2 -0
- package/dist/entities/tracking/reviewEvent.d.ts.map +1 -1
- package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts +19 -0
- package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts.map +1 -0
- package/dist/entities/tracking/reviewRequestTracking.gateway.js +2 -0
- package/dist/entities/tracking/reviewRequestTracking.gateway.js.map +1 -0
- package/dist/frameworks/claude/claudeInsightsInvoker.d.ts +3 -0
- package/dist/frameworks/claude/claudeInsightsInvoker.d.ts.map +1 -0
- package/dist/frameworks/claude/claudeInsightsInvoker.js +58 -0
- package/dist/frameworks/claude/claudeInsightsInvoker.js.map +1 -0
- package/dist/frameworks/claude/claudeInvoker.d.ts.map +1 -1
- package/dist/frameworks/claude/claudeInvoker.js +15 -1
- package/dist/frameworks/claude/claudeInvoker.js.map +1 -1
- package/dist/frameworks/scheduler/cleanupScheduler.d.ts +16 -0
- package/dist/frameworks/scheduler/cleanupScheduler.d.ts.map +1 -0
- package/dist/frameworks/scheduler/cleanupScheduler.js +35 -0
- package/dist/frameworks/scheduler/cleanupScheduler.js.map +1 -0
- package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts +16 -0
- package/dist/interface-adapters/controllers/http/cleanup.routes.d.ts.map +1 -0
- package/dist/interface-adapters/controllers/http/cleanup.routes.js +44 -0
- package/dist/interface-adapters/controllers/http/cleanup.routes.js.map +1 -0
- package/dist/interface-adapters/controllers/http/health.routes.d.ts +3 -1
- package/dist/interface-adapters/controllers/http/health.routes.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/http/health.routes.js +5 -1
- package/dist/interface-adapters/controllers/http/health.routes.js.map +1 -1
- package/dist/interface-adapters/controllers/http/insights.routes.d.ts +20 -0
- package/dist/interface-adapters/controllers/http/insights.routes.d.ts.map +1 -0
- package/dist/interface-adapters/controllers/http/insights.routes.js +73 -0
- package/dist/interface-adapters/controllers/http/insights.routes.js.map +1 -0
- package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js +13 -2
- package/dist/interface-adapters/controllers/http/mrTrackingAdvanced.routes.js.map +1 -1
- package/dist/interface-adapters/controllers/http/settings.routes.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/http/settings.routes.js +3 -0
- package/dist/interface-adapters/controllers/http/settings.routes.js.map +1 -1
- package/dist/interface-adapters/controllers/http/stats.routes.d.ts +20 -6
- package/dist/interface-adapters/controllers/http/stats.routes.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/http/stats.routes.js +35 -2
- package/dist/interface-adapters/controllers/http/stats.routes.js.map +1 -1
- package/dist/interface-adapters/controllers/http/version.routes.d.ts +19 -0
- package/dist/interface-adapters/controllers/http/version.routes.d.ts.map +1 -0
- package/dist/interface-adapters/controllers/http/version.routes.js +21 -0
- package/dist/interface-adapters/controllers/http/version.routes.js.map +1 -0
- package/dist/interface-adapters/controllers/webhook/github.controller.d.ts +2 -0
- package/dist/interface-adapters/controllers/webhook/github.controller.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/webhook/github.controller.js +9 -3
- package/dist/interface-adapters/controllers/webhook/github.controller.js.map +1 -1
- package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts +2 -0
- package/dist/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/webhook/gitlab.controller.js +17 -5
- package/dist/interface-adapters/controllers/webhook/gitlab.controller.js.map +1 -1
- package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts +10 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.js +26 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.github.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts +10 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js +28 -0
- package/dist/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts +7 -0
- package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js +33 -0
- package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js.map +1 -0
- package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts +7 -0
- package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js +47 -0
- package/dist/interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts +2 -2
- package/dist/interface-adapters/gateways/fileSystem/stats.fileSystem.d.ts.map +1 -1
- package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts +7 -0
- package/dist/interface-adapters/gateways/packageVersion.npm.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js +25 -0
- package/dist/interface-adapters/gateways/packageVersion.npm.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts +1 -17
- package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts.map +1 -1
- package/dist/interface-adapters/gateways/reviewLogFile.gateway.d.ts +12 -0
- package/dist/interface-adapters/gateways/reviewLogFile.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/reviewLogFile.gateway.js +2 -0
- package/dist/interface-adapters/gateways/reviewLogFile.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts +1 -18
- package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts.map +1 -1
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts +20 -0
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js +58 -0
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/stats.gateway.d.ts +1 -6
- package/dist/interface-adapters/gateways/stats.gateway.d.ts.map +1 -1
- package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts +12 -0
- package/dist/interface-adapters/gateways/versionCache.memory.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/versionCache.memory.gateway.js +22 -0
- package/dist/interface-adapters/gateways/versionCache.memory.gateway.js.map +1 -0
- package/dist/interface-adapters/presenters/insights.presenter.d.ts +41 -0
- package/dist/interface-adapters/presenters/insights.presenter.d.ts.map +1 -0
- package/dist/interface-adapters/presenters/insights.presenter.js +36 -0
- package/dist/interface-adapters/presenters/insights.presenter.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/index.html +599 -40
- package/dist/interface-adapters/views/dashboard/modules/cleanup.d.ts +10 -0
- package/dist/interface-adapters/views/dashboard/modules/cleanup.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/cleanup.js +45 -0
- package/dist/interface-adapters/views/dashboard/modules/cleanup.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/collapsibleList.d.ts +13 -0
- package/dist/interface-adapters/views/dashboard/modules/collapsibleList.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/collapsibleList.js +71 -0
- package/dist/interface-adapters/views/dashboard/modules/collapsibleList.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/developerSheet.d.ts +14 -0
- package/dist/interface-adapters/views/dashboard/modules/developerSheet.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/developerSheet.js +359 -0
- package/dist/interface-adapters/views/dashboard/modules/developerSheet.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/i18n.d.ts.map +1 -1
- package/dist/interface-adapters/views/dashboard/modules/i18n.js +296 -0
- package/dist/interface-adapters/views/dashboard/modules/i18n.js.map +1 -1
- package/dist/interface-adapters/views/dashboard/modules/insightsReport.d.ts +7 -0
- package/dist/interface-adapters/views/dashboard/modules/insightsReport.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/insightsReport.js +509 -0
- package/dist/interface-adapters/views/dashboard/modules/insightsReport.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/mrSheet.d.ts +25 -0
- package/dist/interface-adapters/views/dashboard/modules/mrSheet.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/mrSheet.js +414 -0
- package/dist/interface-adapters/views/dashboard/modules/mrSheet.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.d.ts +40 -0
- package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.js +106 -0
- package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/statsCharts.d.ts +35 -0
- package/dist/interface-adapters/views/dashboard/modules/statsCharts.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/statsCharts.js +476 -0
- package/dist/interface-adapters/views/dashboard/modules/statsCharts.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/teamTab.d.ts +13 -0
- package/dist/interface-adapters/views/dashboard/modules/teamTab.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/teamTab.js +296 -0
- package/dist/interface-adapters/views/dashboard/modules/teamTab.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts +16 -0
- package/dist/interface-adapters/views/dashboard/modules/versionUpdate.d.ts.map +1 -0
- package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js +54 -0
- package/dist/interface-adapters/views/dashboard/modules/versionUpdate.js.map +1 -0
- package/dist/interface-adapters/views/dashboard/styles.css +1906 -0
- package/dist/main/dependencies.d.ts +4 -0
- package/dist/main/dependencies.d.ts.map +1 -1
- package/dist/main/dependencies.js +4 -0
- package/dist/main/dependencies.js.map +1 -1
- package/dist/main/routes.d.ts.map +1 -1
- package/dist/main/routes.js +68 -2
- package/dist/main/routes.js.map +1 -1
- package/dist/main/server.d.ts.map +1 -1
- package/dist/main/server.js +8 -0
- package/dist/main/server.js.map +1 -1
- package/dist/main/websocket.d.ts +2 -0
- package/dist/main/websocket.d.ts.map +1 -1
- package/dist/main/websocket.js +13 -0
- package/dist/main/websocket.js.map +1 -1
- package/dist/services/statsService.d.ts +8 -32
- package/dist/services/statsService.d.ts.map +1 -1
- package/dist/services/statsService.js +60 -36
- package/dist/services/statsService.js.map +1 -1
- package/dist/shared/foundation/commandExecutor.d.ts +2 -0
- package/dist/shared/foundation/commandExecutor.d.ts.map +1 -0
- package/dist/shared/foundation/commandExecutor.js +2 -0
- package/dist/shared/foundation/commandExecutor.js.map +1 -0
- package/dist/tests/factories/developerInsight.factory.d.ts +6 -0
- package/dist/tests/factories/developerInsight.factory.d.ts.map +1 -0
- package/dist/tests/factories/developerInsight.factory.js +61 -0
- package/dist/tests/factories/developerInsight.factory.js.map +1 -0
- package/dist/tests/factories/diffStats.factory.d.ts +5 -0
- package/dist/tests/factories/diffStats.factory.d.ts.map +1 -0
- package/dist/tests/factories/diffStats.factory.js +11 -0
- package/dist/tests/factories/diffStats.factory.js.map +1 -0
- package/dist/tests/factories/packageVersion.factory.d.ts +7 -0
- package/dist/tests/factories/packageVersion.factory.d.ts.map +1 -0
- package/dist/tests/factories/packageVersion.factory.js +18 -0
- package/dist/tests/factories/packageVersion.factory.js.map +1 -0
- package/dist/tests/factories/persistedInsightsData.factory.d.ts +11 -0
- package/dist/tests/factories/persistedInsightsData.factory.d.ts.map +1 -0
- package/dist/tests/factories/persistedInsightsData.factory.js +41 -0
- package/dist/tests/factories/persistedInsightsData.factory.js.map +1 -0
- package/dist/tests/factories/projectStats.factory.d.ts +3 -1
- package/dist/tests/factories/projectStats.factory.d.ts.map +1 -1
- package/dist/tests/factories/projectStats.factory.js +17 -3
- package/dist/tests/factories/projectStats.factory.js.map +1 -1
- package/dist/tests/factories/teamInsight.factory.d.ts +6 -0
- package/dist/tests/factories/teamInsight.factory.d.ts.map +1 -0
- package/dist/tests/factories/teamInsight.factory.js +35 -0
- package/dist/tests/factories/teamInsight.factory.js.map +1 -0
- package/dist/tests/stubs/diffStatsFetch.stub.d.ts +11 -0
- package/dist/tests/stubs/diffStatsFetch.stub.d.ts.map +1 -0
- package/dist/tests/stubs/diffStatsFetch.stub.js +19 -0
- package/dist/tests/stubs/diffStatsFetch.stub.js.map +1 -0
- package/dist/tests/stubs/insights.stub.d.ts +9 -0
- package/dist/tests/stubs/insights.stub.d.ts.map +1 -0
- package/dist/tests/stubs/insights.stub.js +13 -0
- package/dist/tests/stubs/insights.stub.js.map +1 -0
- package/dist/tests/stubs/packageVersion.stub.d.ts +7 -0
- package/dist/tests/stubs/packageVersion.stub.d.ts.map +1 -0
- package/dist/tests/stubs/packageVersion.stub.js +10 -0
- package/dist/tests/stubs/packageVersion.stub.js.map +1 -0
- package/dist/tests/stubs/reviewFile.stub.d.ts +1 -1
- package/dist/tests/stubs/reviewFile.stub.d.ts.map +1 -1
- package/dist/tests/stubs/reviewLogFile.stub.d.ts +15 -0
- package/dist/tests/stubs/reviewLogFile.stub.d.ts.map +1 -0
- package/dist/tests/stubs/reviewLogFile.stub.js +35 -0
- package/dist/tests/stubs/reviewLogFile.stub.js.map +1 -0
- package/dist/tests/stubs/reviewRequestTracking.stub.d.ts +1 -1
- package/dist/tests/stubs/reviewRequestTracking.stub.d.ts.map +1 -1
- package/dist/tests/stubs/selfUpdate.stub.d.ts +14 -0
- package/dist/tests/stubs/selfUpdate.stub.d.ts.map +1 -0
- package/dist/tests/stubs/selfUpdate.stub.js +20 -0
- package/dist/tests/stubs/selfUpdate.stub.js.map +1 -0
- package/dist/tests/stubs/stats.stub.d.ts +2 -2
- package/dist/tests/stubs/stats.stub.d.ts.map +1 -1
- package/dist/tests/stubs/versionCache.stub.d.ts +11 -0
- package/dist/tests/stubs/versionCache.stub.d.ts.map +1 -0
- package/dist/tests/stubs/versionCache.stub.js +18 -0
- package/dist/tests/stubs/versionCache.stub.js.map +1 -0
- package/dist/tests/units/config/projectConfig.test.js +60 -1
- package/dist/tests/units/config/projectConfig.test.js.map +1 -1
- package/dist/tests/units/entities/backfill/backfillProgress.test.d.ts +2 -0
- package/dist/tests/units/entities/backfill/backfillProgress.test.d.ts.map +1 -0
- package/dist/tests/units/entities/backfill/backfillProgress.test.js +40 -0
- package/dist/tests/units/entities/backfill/backfillProgress.test.js.map +1 -0
- package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.d.ts +2 -0
- package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.d.ts.map +1 -0
- package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js +47 -0
- package/dist/tests/units/entities/cleanup/retentionPolicy.valueObject.test.js.map +1 -0
- package/dist/tests/units/entities/diffStats/diffStats.test.d.ts +2 -0
- package/dist/tests/units/entities/diffStats/diffStats.test.d.ts.map +1 -0
- package/dist/tests/units/entities/diffStats/diffStats.test.js +27 -0
- package/dist/tests/units/entities/diffStats/diffStats.test.js.map +1 -0
- package/dist/tests/units/entities/insight/aiInsight.schema.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/aiInsight.schema.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/aiInsight.schema.test.js +123 -0
- package/dist/tests/units/entities/insight/aiInsight.schema.test.js.map +1 -0
- package/dist/tests/units/entities/insight/developerInsight.schema.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/developerInsight.schema.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/developerInsight.schema.test.js +140 -0
- package/dist/tests/units/entities/insight/developerInsight.schema.test.js.map +1 -0
- package/dist/tests/units/entities/insight/developerTitle.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/developerTitle.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/developerTitle.test.js +23 -0
- package/dist/tests/units/entities/insight/developerTitle.test.js.map +1 -0
- package/dist/tests/units/entities/insight/insightCategory.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/insightCategory.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/insightCategory.test.js +16 -0
- package/dist/tests/units/entities/insight/insightCategory.test.js.map +1 -0
- package/dist/tests/units/entities/insight/insightTrend.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/insightTrend.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/insightTrend.test.js +16 -0
- package/dist/tests/units/entities/insight/insightTrend.test.js.map +1 -0
- package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js +160 -0
- package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js.map +1 -0
- package/dist/tests/units/entities/insight/teamInsight.schema.test.d.ts +2 -0
- package/dist/tests/units/entities/insight/teamInsight.schema.test.d.ts.map +1 -0
- package/dist/tests/units/entities/insight/teamInsight.schema.test.js +57 -0
- package/dist/tests/units/entities/insight/teamInsight.schema.test.js.map +1 -0
- package/dist/tests/units/entities/packageVersion/packageVersion.test.d.ts +2 -0
- package/dist/tests/units/entities/packageVersion/packageVersion.test.d.ts.map +1 -0
- package/dist/tests/units/entities/packageVersion/packageVersion.test.js +154 -0
- package/dist/tests/units/entities/packageVersion/packageVersion.test.js.map +1 -0
- package/dist/tests/units/factories/packageVersion.factory.test.d.ts +2 -0
- package/dist/tests/units/factories/packageVersion.factory.test.d.ts.map +1 -0
- package/dist/tests/units/factories/packageVersion.factory.test.js +37 -0
- package/dist/tests/units/factories/packageVersion.factory.test.js.map +1 -0
- package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.d.ts +2 -0
- package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.d.ts.map +1 -0
- package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.js +74 -0
- package/dist/tests/units/frameworks/scheduler/cleanupScheduler.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js +62 -0
- package/dist/tests/units/interface-adapters/controllers/http/cleanup.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js +96 -0
- package/dist/tests/units/interface-adapters/controllers/http/health.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js +390 -0
- package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js +25 -0
- package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js +82 -0
- package/dist/tests/units/interface-adapters/controllers/http/statsRecalculate.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js +108 -0
- package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js +3 -0
- package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js +1 -0
- package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js +63 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.github.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js +94 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js +117 -0
- package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js +42 -0
- package/dist/tests/units/interface-adapters/gateways/packageVersion.npm.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js +65 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.fileSystem.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.js +63 -0
- package/dist/tests/units/interface-adapters/gateways/reviewLogFile.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/reviewRequestTracking.gateway.test.js +2 -0
- package/dist/tests/units/interface-adapters/gateways/reviewRequestTracking.gateway.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js +101 -0
- package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js +38 -0
- package/dist/tests/units/interface-adapters/gateways/versionCache.memory.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js +194 -0
- package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js +224 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js +29 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js +326 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js +336 -0
- package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js.map +1 -0
- package/dist/tests/units/services/statsService.addReview.test.d.ts +2 -0
- package/dist/tests/units/services/statsService.addReview.test.d.ts.map +1 -0
- package/dist/tests/units/services/statsService.addReview.test.js +103 -0
- package/dist/tests/units/services/statsService.addReview.test.js.map +1 -0
- package/dist/tests/units/services/statsService.diffStats.test.d.ts +2 -0
- package/dist/tests/units/services/statsService.diffStats.test.d.ts.map +1 -0
- package/dist/tests/units/services/statsService.diffStats.test.js +61 -0
- package/dist/tests/units/services/statsService.diffStats.test.js.map +1 -0
- package/dist/tests/units/stubs/packageVersion.stub.test.d.ts +2 -0
- package/dist/tests/units/stubs/packageVersion.stub.test.d.ts.map +1 -0
- package/dist/tests/units/stubs/packageVersion.stub.test.js +20 -0
- package/dist/tests/units/stubs/packageVersion.stub.test.js.map +1 -0
- package/dist/tests/units/stubs/selfUpdate.stub.test.d.ts +2 -0
- package/dist/tests/units/stubs/selfUpdate.stub.test.d.ts.map +1 -0
- package/dist/tests/units/stubs/selfUpdate.stub.test.js +30 -0
- package/dist/tests/units/stubs/selfUpdate.stub.test.js.map +1 -0
- package/dist/tests/units/stubs/versionCache.stub.test.d.ts +2 -0
- package/dist/tests/units/stubs/versionCache.stub.test.d.ts.map +1 -0
- package/dist/tests/units/stubs/versionCache.stub.test.js +34 -0
- package/dist/tests/units/stubs/versionCache.stub.test.js.map +1 -0
- package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js +83 -0
- package/dist/tests/units/usecases/cleanup/cleanupExpiredReviews.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js +172 -0
- package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js +449 -0
- package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js +326 -0
- package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js +172 -0
- package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js +253 -0
- package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js +160 -0
- package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.d.ts +2 -0
- package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js +125 -0
- package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js.map +1 -0
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js +186 -0
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js +130 -0
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js +138 -0
- package/dist/tests/units/usecases/stats/recalculateWithBackfill.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js +31 -2
- package/dist/tests/units/usecases/tracking/recordReviewCompletion.usecase.test.js.map +1 -1
- package/dist/tests/units/usecases/version/checkVersion.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/version/checkVersion.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/version/checkVersion.usecase.test.js +63 -0
- package/dist/tests/units/usecases/version/checkVersion.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js +26 -0
- package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js.map +1 -0
- package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts +13 -0
- package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.d.ts.map +1 -0
- package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js +41 -0
- package/dist/usecases/cleanup/cleanupExpiredReviews.usecase.js.map +1 -0
- package/dist/usecases/insights/buildAiInsightsPrompt.d.ts +12 -0
- package/dist/usecases/insights/buildAiInsightsPrompt.d.ts.map +1 -0
- package/dist/usecases/insights/buildAiInsightsPrompt.js +220 -0
- package/dist/usecases/insights/buildAiInsightsPrompt.js.map +1 -0
- package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts +4 -0
- package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts.map +1 -0
- package/dist/usecases/insights/computeDeveloperInsights.usecase.js +226 -0
- package/dist/usecases/insights/computeDeveloperInsights.usecase.js.map +1 -0
- package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts +12 -0
- package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts.map +1 -0
- package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js +340 -0
- package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js.map +1 -0
- package/dist/usecases/insights/computeTeamInsights.usecase.d.ts +4 -0
- package/dist/usecases/insights/computeTeamInsights.usecase.d.ts.map +1 -0
- package/dist/usecases/insights/computeTeamInsights.usecase.js +111 -0
- package/dist/usecases/insights/computeTeamInsights.usecase.js.map +1 -0
- package/dist/usecases/insights/generateAiInsights.usecase.d.ts +27 -0
- package/dist/usecases/insights/generateAiInsights.usecase.d.ts.map +1 -0
- package/dist/usecases/insights/generateAiInsights.usecase.js +65 -0
- package/dist/usecases/insights/generateAiInsights.usecase.js.map +1 -0
- package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts +18 -0
- package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts.map +1 -0
- package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js +56 -0
- package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js.map +1 -0
- package/dist/usecases/insights/insightLevelComputation.service.d.ts +41 -0
- package/dist/usecases/insights/insightLevelComputation.service.d.ts.map +1 -0
- package/dist/usecases/insights/insightLevelComputation.service.js +313 -0
- package/dist/usecases/insights/insightLevelComputation.service.js.map +1 -0
- package/dist/usecases/stats/backfillDiffStats.usecase.d.ts +18 -0
- package/dist/usecases/stats/backfillDiffStats.usecase.d.ts.map +1 -0
- package/dist/usecases/stats/backfillDiffStats.usecase.js +43 -0
- package/dist/usecases/stats/backfillDiffStats.usecase.js.map +1 -0
- package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts +7 -0
- package/dist/usecases/stats/recalculateProjectStats.usecase.d.ts.map +1 -0
- package/dist/usecases/stats/recalculateProjectStats.usecase.js +47 -0
- package/dist/usecases/stats/recalculateProjectStats.usecase.js.map +1 -0
- package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts +22 -0
- package/dist/usecases/stats/recalculateWithBackfill.usecase.d.ts.map +1 -0
- package/dist/usecases/stats/recalculateWithBackfill.usecase.js +33 -0
- package/dist/usecases/stats/recalculateWithBackfill.usecase.js.map +1 -0
- package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts +2 -0
- package/dist/usecases/tracking/recordReviewCompletion.usecase.d.ts.map +1 -1
- package/dist/usecases/tracking/recordReviewCompletion.usecase.js +1 -0
- package/dist/usecases/tracking/recordReviewCompletion.usecase.js.map +1 -1
- package/dist/usecases/version/checkVersion.usecase.d.ts +13 -0
- package/dist/usecases/version/checkVersion.usecase.d.ts.map +1 -0
- package/dist/usecases/version/checkVersion.usecase.js +20 -0
- package/dist/usecases/version/checkVersion.usecase.js.map +1 -0
- package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts +7 -0
- package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts.map +1 -0
- package/dist/usecases/version/triggerSelfUpdate.usecase.js +12 -0
- package/dist/usecases/version/triggerSelfUpdate.usecase.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,7 +2,9 @@ import type { Config } from '../config/loader.js';
|
|
|
2
2
|
import type { ReviewRequestTrackingGateway } from '../interface-adapters/gateways/reviewRequestTracking.gateway.js';
|
|
3
3
|
import type { StatsGateway } from '../interface-adapters/gateways/stats.gateway.js';
|
|
4
4
|
import type { ReviewFileGateway } from '../interface-adapters/gateways/reviewFile.gateway.js';
|
|
5
|
+
import type { ReviewLogFileGateway } from '../interface-adapters/gateways/reviewLogFile.gateway.js';
|
|
5
6
|
import type { ReviewContextGateway } from '../entities/reviewContext/reviewContext.gateway.js';
|
|
7
|
+
import type { InsightsGateway } from '../entities/insight/insights.gateway.js';
|
|
6
8
|
import { ReviewContextWatcherService } from '../services/reviewContextWatcher.service.js';
|
|
7
9
|
import { ReviewContextProgressPresenter } from '../interface-adapters/presenters/reviewContextProgress.presenter.js';
|
|
8
10
|
import { type Logger } from 'pino';
|
|
@@ -10,7 +12,9 @@ export interface Dependencies {
|
|
|
10
12
|
reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
|
|
11
13
|
statsGateway: StatsGateway;
|
|
12
14
|
reviewFileGateway: ReviewFileGateway;
|
|
15
|
+
reviewLogFileGateway: ReviewLogFileGateway;
|
|
13
16
|
reviewContextGateway: ReviewContextGateway;
|
|
17
|
+
insightsGateway: InsightsGateway;
|
|
14
18
|
reviewContextWatcher: ReviewContextWatcherService;
|
|
15
19
|
progressPresenter: ReviewContextProgressPresenter;
|
|
16
20
|
logger: Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/main/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AACpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/main/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AACpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAO9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,qEAAqE,CAAC;AAErH,OAAO,EAAQ,KAAK,MAAM,EAAsB,MAAM,MAAM,CAAC;AAI7D,MAAM,WAAW,YAAY;IAC3B,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,eAAe,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,2BAA2B,CAAC;IAClD,iBAAiB,EAAE,8BAA8B,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAiB/D"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FileSystemReviewRequestTrackingGateway } from '../interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js';
|
|
2
2
|
import { FileSystemStatsGateway } from '../interface-adapters/gateways/fileSystem/stats.fileSystem.js';
|
|
3
|
+
import { FileSystemInsightsGateway } from '../interface-adapters/gateways/fileSystem/insights.fileSystem.js';
|
|
3
4
|
import { FileSystemReviewFileGateway } from '../interface-adapters/gateways/fileSystem/reviewFile.fileSystem.js';
|
|
5
|
+
import { FileSystemReviewLogFileGateway } from '../interface-adapters/gateways/fileSystem/reviewLogFile.fileSystem.gateway.js';
|
|
4
6
|
import { ReviewContextFileSystemGateway } from '../interface-adapters/gateways/reviewContext.fileSystem.gateway.js';
|
|
5
7
|
import { ReviewContextWatcherService } from '../services/reviewContextWatcher.service.js';
|
|
6
8
|
import { ReviewContextProgressPresenter } from '../interface-adapters/presenters/reviewContextProgress.presenter.js';
|
|
@@ -38,7 +40,9 @@ export function createDependencies(config) {
|
|
|
38
40
|
reviewRequestTrackingGateway: new FileSystemReviewRequestTrackingGateway(new ProjectStatsCalculator()),
|
|
39
41
|
statsGateway: new FileSystemStatsGateway(),
|
|
40
42
|
reviewFileGateway: new FileSystemReviewFileGateway(),
|
|
43
|
+
reviewLogFileGateway: new FileSystemReviewLogFileGateway(),
|
|
41
44
|
reviewContextGateway,
|
|
45
|
+
insightsGateway: new FileSystemInsightsGateway(),
|
|
42
46
|
reviewContextWatcher: new ReviewContextWatcherService(reviewContextGateway),
|
|
43
47
|
progressPresenter: new ReviewContextProgressPresenter(),
|
|
44
48
|
logger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/main/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/main/dependencies.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sCAAsC,EAAE,MAAM,+EAA+E,CAAC;AACvI,OAAO,EAAE,sBAAsB,EAAE,MAAM,+DAA+D,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iEAAiE,CAAC;AAC5G,OAAO,EAAE,2BAA2B,EAAE,MAAM,oEAAoE,CAAC;AACjH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+EAA+E,CAAC;AAC/H,OAAO,EAAE,8BAA8B,EAAE,MAAM,oEAAoE,CAAC;AACpH,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,qEAAqE,CAAC;AACrH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AACrG,OAAO,EAAE,IAAI,EAAmC,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAe3E,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;IAEvD,IAAI,QAAQ,EAAE,CAAC;QACb,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;SACvC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACxD,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEtC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,oBAAoB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAElE,OAAO;QACL,4BAA4B,EAAE,IAAI,sCAAsC,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACtG,YAAY,EAAE,IAAI,sBAAsB,EAAE;QAC1C,iBAAiB,EAAE,IAAI,2BAA2B,EAAE;QACpD,oBAAoB,EAAE,IAAI,8BAA8B,EAAE;QAC1D,oBAAoB;QACpB,eAAe,EAAE,IAAI,yBAAyB,EAAE;QAChD,oBAAoB,EAAE,IAAI,2BAA2B,CAAC,oBAAoB,CAAC;QAC3E,iBAAiB,EAAE,IAAI,8BAA8B,EAAE;QACvD,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoD3D,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA0If"}
|
package/dist/main/routes.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fastifyStatic from '@fastify/static';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
2
3
|
import { fileURLToPath } from 'node:url';
|
|
3
4
|
import { dirname, join } from 'node:path';
|
|
4
5
|
import { healthRoutes } from '../interface-adapters/controllers/http/health.routes.js';
|
|
@@ -10,6 +11,9 @@ import { mrTrackingAdvancedRoutes } from '../interface-adapters/controllers/http
|
|
|
10
11
|
import { logsRoutes } from '../interface-adapters/controllers/http/logs.routes.js';
|
|
11
12
|
import { cliStatusRoutes } from '../interface-adapters/controllers/http/cliStatus.routes.js';
|
|
12
13
|
import { projectConfigRoutes } from '../interface-adapters/controllers/http/projectConfig.routes.js';
|
|
14
|
+
import { cleanupRoutes } from '../interface-adapters/controllers/http/cleanup.routes.js';
|
|
15
|
+
import { versionRoutes } from '../interface-adapters/controllers/http/version.routes.js';
|
|
16
|
+
import { insightsRoutes } from '../interface-adapters/controllers/http/insights.routes.js';
|
|
13
17
|
import { registerWebSocketRoutes } from '../main/websocket.js';
|
|
14
18
|
import { handleGitLabWebhook } from '../interface-adapters/controllers/webhook/gitlab.controller.js';
|
|
15
19
|
import { handleGitHubWebhook } from '../interface-adapters/controllers/webhook/github.controller.js';
|
|
@@ -18,21 +22,41 @@ import { GitLabThreadFetchGateway, defaultGitLabExecutor } from '../interface-ad
|
|
|
18
22
|
import { GitLabDiffMetadataFetchGateway } from '../interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.js';
|
|
19
23
|
import { GitHubThreadFetchGateway, defaultGitHubExecutor } from '../interface-adapters/gateways/threadFetch.github.gateway.js';
|
|
20
24
|
import { GitHubDiffMetadataFetchGateway } from '../interface-adapters/gateways/diffMetadataFetch.github.gateway.js';
|
|
25
|
+
import { GitLabDiffStatsFetchGateway } from '../interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js';
|
|
26
|
+
import { GitHubDiffStatsFetchGateway } from '../interface-adapters/gateways/diffStatsFetch.github.gateway.js';
|
|
21
27
|
import { TrackAssignmentUseCase } from '../usecases/tracking/trackAssignment.usecase.js';
|
|
22
28
|
import { RecordReviewCompletionUseCase } from '../usecases/tracking/recordReviewCompletion.usecase.js';
|
|
23
29
|
import { RecordPushUseCase } from '../usecases/tracking/recordPush.usecase.js';
|
|
24
30
|
import { TransitionStateUseCase } from '../usecases/tracking/transitionState.usecase.js';
|
|
25
31
|
import { CheckFollowupNeededUseCase } from '../usecases/tracking/checkFollowupNeeded.usecase.js';
|
|
26
32
|
import { SyncThreadsUseCase } from '../usecases/tracking/syncThreads.usecase.js';
|
|
33
|
+
import { checkVersion } from '../usecases/version/checkVersion.usecase.js';
|
|
34
|
+
import { triggerSelfUpdate } from '../usecases/version/triggerSelfUpdate.usecase.js';
|
|
35
|
+
import { NpmPackageVersionGateway } from '../interface-adapters/gateways/packageVersion.npm.gateway.js';
|
|
36
|
+
import { VersionCacheMemoryGateway } from '../interface-adapters/gateways/versionCache.memory.gateway.js';
|
|
37
|
+
import { SelfUpdateCliGateway } from '../interface-adapters/gateways/selfUpdate.cli.gateway.js';
|
|
38
|
+
import { broadcastBackfillProgress } from '../main/websocket.js';
|
|
39
|
+
import { createClaudeInsightsInvoker } from '../frameworks/claude/claudeInsightsInvoker.js';
|
|
40
|
+
import { getDefaultLanguage } from '../frameworks/settings/runtimeSettings.js';
|
|
27
41
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
42
|
const __dirname = dirname(__filename);
|
|
43
|
+
function readVersion() {
|
|
44
|
+
const packageJsonPath = join(__dirname, '..', '..', 'package.json');
|
|
45
|
+
const raw = readFileSync(packageJsonPath, 'utf-8');
|
|
46
|
+
return JSON.parse(raw).version;
|
|
47
|
+
}
|
|
48
|
+
const currentVersion = readVersion();
|
|
49
|
+
const packageVersionGateway = new NpmPackageVersionGateway();
|
|
50
|
+
const versionCache = new VersionCacheMemoryGateway();
|
|
51
|
+
const selfUpdateCommand = new SelfUpdateCliGateway();
|
|
29
52
|
export async function registerRoutes(app, deps) {
|
|
30
53
|
await app.register(fastifyStatic, {
|
|
31
54
|
root: join(__dirname, '..', 'interface-adapters', 'views', 'dashboard'),
|
|
32
55
|
prefix: '/dashboard/',
|
|
33
56
|
});
|
|
34
57
|
await app.register(healthRoutes, {
|
|
35
|
-
getConfig: () => ({ version:
|
|
58
|
+
getConfig: () => ({ version: currentVersion }),
|
|
59
|
+
versionCache,
|
|
36
60
|
});
|
|
37
61
|
await app.register(settingsRoutes);
|
|
38
62
|
await app.register(reviewRoutes, {
|
|
@@ -45,6 +69,12 @@ export async function registerRoutes(app, deps) {
|
|
|
45
69
|
await app.register(statsRoutes, {
|
|
46
70
|
statsGateway: deps.statsGateway,
|
|
47
71
|
getRepositories: () => deps.config.repositories,
|
|
72
|
+
diffStatsFetchGateways: {
|
|
73
|
+
gitlab: new GitLabDiffStatsFetchGateway(defaultGitLabExecutor),
|
|
74
|
+
github: new GitHubDiffStatsFetchGateway(defaultGitHubExecutor),
|
|
75
|
+
},
|
|
76
|
+
broadcastBackfillProgress,
|
|
77
|
+
logger: deps.logger,
|
|
48
78
|
});
|
|
49
79
|
await app.register(mrTrackingRoutes, {
|
|
50
80
|
reviewRequestTrackingGateway: deps.reviewRequestTrackingGateway,
|
|
@@ -54,6 +84,30 @@ export async function registerRoutes(app, deps) {
|
|
|
54
84
|
reviewRequestTrackingGateway: deps.reviewRequestTrackingGateway,
|
|
55
85
|
logger: deps.logger,
|
|
56
86
|
});
|
|
87
|
+
await app.register(cleanupRoutes, {
|
|
88
|
+
reviewFileGateway: deps.reviewFileGateway,
|
|
89
|
+
reviewLogFileGateway: deps.reviewLogFileGateway,
|
|
90
|
+
getRepositories: () => deps.config.repositories,
|
|
91
|
+
logger: deps.logger,
|
|
92
|
+
});
|
|
93
|
+
await app.register(versionRoutes, {
|
|
94
|
+
checkVersion,
|
|
95
|
+
triggerSelfUpdate,
|
|
96
|
+
currentVersion,
|
|
97
|
+
packageVersionGateway,
|
|
98
|
+
versionCache,
|
|
99
|
+
selfUpdateCommand,
|
|
100
|
+
serverPort: deps.config.server.port,
|
|
101
|
+
});
|
|
102
|
+
await app.register(insightsRoutes, {
|
|
103
|
+
statsGateway: deps.statsGateway,
|
|
104
|
+
insightsGateway: deps.insightsGateway,
|
|
105
|
+
reviewFileGateway: deps.reviewFileGateway,
|
|
106
|
+
reviewRequestTrackingGateway: deps.reviewRequestTrackingGateway,
|
|
107
|
+
logger: deps.logger,
|
|
108
|
+
claudeInvoker: createClaudeInsightsInvoker(),
|
|
109
|
+
language: getDefaultLanguage(),
|
|
110
|
+
});
|
|
57
111
|
await app.register(logsRoutes);
|
|
58
112
|
await app.register(cliStatusRoutes);
|
|
59
113
|
await app.register(projectConfigRoutes);
|
|
@@ -65,6 +119,7 @@ export async function registerRoutes(app, deps) {
|
|
|
65
119
|
reviewContextGateway: deps.reviewContextGateway,
|
|
66
120
|
threadFetchGateway: threadFetchGw,
|
|
67
121
|
diffMetadataFetchGateway: new GitLabDiffMetadataFetchGateway(defaultGitLabExecutor),
|
|
122
|
+
diffStatsFetchGateway: new GitLabDiffStatsFetchGateway(defaultGitLabExecutor),
|
|
68
123
|
trackAssignment: new TrackAssignmentUseCase(trackingGw),
|
|
69
124
|
recordCompletion: new RecordReviewCompletionUseCase(trackingGw),
|
|
70
125
|
recordPush: new RecordPushUseCase(trackingGw),
|
|
@@ -79,6 +134,7 @@ export async function registerRoutes(app, deps) {
|
|
|
79
134
|
reviewContextGateway: deps.reviewContextGateway,
|
|
80
135
|
threadFetchGateway: gitHubThreadFetchGw,
|
|
81
136
|
diffMetadataFetchGateway: new GitHubDiffMetadataFetchGateway(defaultGitHubExecutor),
|
|
137
|
+
diffStatsFetchGateway: new GitHubDiffStatsFetchGateway(defaultGitHubExecutor),
|
|
82
138
|
trackAssignment: new TrackAssignmentUseCase(trackingGw),
|
|
83
139
|
recordCompletion: new RecordReviewCompletionUseCase(trackingGw),
|
|
84
140
|
});
|
|
@@ -86,10 +142,19 @@ export async function registerRoutes(app, deps) {
|
|
|
86
142
|
app.get('/', async (_request, reply) => {
|
|
87
143
|
reply.redirect('/dashboard/');
|
|
88
144
|
});
|
|
145
|
+
app.get('/api/repositories', async () => {
|
|
146
|
+
return {
|
|
147
|
+
repositories: deps.config.repositories.map((repository) => ({
|
|
148
|
+
name: repository.name,
|
|
149
|
+
localPath: repository.localPath,
|
|
150
|
+
enabled: repository.enabled,
|
|
151
|
+
})),
|
|
152
|
+
};
|
|
153
|
+
});
|
|
89
154
|
app.get('/api', async () => {
|
|
90
155
|
return {
|
|
91
156
|
name: 'reviewflow',
|
|
92
|
-
version:
|
|
157
|
+
version: currentVersion,
|
|
93
158
|
endpoints: {
|
|
94
159
|
dashboard: '/dashboard/',
|
|
95
160
|
health: '/health',
|
|
@@ -99,5 +164,6 @@ export async function registerRoutes(app, deps) {
|
|
|
99
164
|
},
|
|
100
165
|
};
|
|
101
166
|
});
|
|
167
|
+
checkVersion({ currentVersion, forceRefresh: false }, { packageVersionGateway, cache: versionCache }).catch(() => { });
|
|
102
168
|
}
|
|
103
169
|
//# sourceMappingURL=routes.js.map
|
package/dist/main/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,wDAAwD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,uDAAuD,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,MAAM,sDAAsD,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC9H,OAAO,EAAE,8BAA8B,EAAE,MAAM,mEAAmE,CAAC;AACnH,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC9H,OAAO,EAAE,8BAA8B,EAAE,MAAM,mEAAmE,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/main/server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/main/server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS9D,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4BD,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKxF;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqCvF"}
|
package/dist/main/server.js
CHANGED
|
@@ -7,6 +7,7 @@ import { setupWebSocketCallbacks } from './websocket.js';
|
|
|
7
7
|
import { initQueue } from '../frameworks/queue/pQueueAdapter.js';
|
|
8
8
|
import { removePidFile } from '../shared/services/pidFileManager.js';
|
|
9
9
|
import { PID_FILE_PATH } from '../shared/services/daemonPaths.js';
|
|
10
|
+
import { startCleanupScheduler } from '../frameworks/scheduler/cleanupScheduler.js';
|
|
10
11
|
function addRawBodyParser(app) {
|
|
11
12
|
app.addContentTypeParser('application/json', { parseAs: 'buffer' }, (req, body, done) => {
|
|
12
13
|
req.rawBody = body;
|
|
@@ -41,12 +42,19 @@ export async function startServer(options = {}) {
|
|
|
41
42
|
});
|
|
42
43
|
const app = await buildServer(deps);
|
|
43
44
|
const port = options.portOverride ?? config.server.port;
|
|
45
|
+
const cleanupScheduler = startCleanupScheduler({
|
|
46
|
+
reviewFileGateway: deps.reviewFileGateway,
|
|
47
|
+
reviewLogFileGateway: deps.reviewLogFileGateway,
|
|
48
|
+
getRepositories: () => config.repositories,
|
|
49
|
+
logger: deps.logger,
|
|
50
|
+
});
|
|
44
51
|
await app.listen({
|
|
45
52
|
port,
|
|
46
53
|
host: '0.0.0.0',
|
|
47
54
|
});
|
|
48
55
|
const shutdown = async () => {
|
|
49
56
|
deps.logger.info('Shutting down...');
|
|
57
|
+
cleanupScheduler.stop();
|
|
50
58
|
removePidFile(PID_FILE_PATH);
|
|
51
59
|
await app.close();
|
|
52
60
|
process.exit(0);
|
package/dist/main/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/main/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/main/server.ts"],"names":[],"mappings":"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"}
|
package/dist/main/websocket.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { FastifyInstance } from 'fastify';
|
|
2
2
|
import type { ReviewProgress, ProgressEvent } from '../entities/progress/progress.type.js';
|
|
3
|
+
import type { BackfillProgress } from '../entities/backfill/backfillProgress.js';
|
|
3
4
|
import type { Dependencies } from './dependencies.js';
|
|
4
5
|
export declare function getWsClientsCount(): number;
|
|
5
6
|
export declare function broadcastProgress(jobId: string, progress: ReviewProgress, event?: ProgressEvent): void;
|
|
7
|
+
export declare function broadcastBackfillProgress(progress: BackfillProgress): void;
|
|
6
8
|
export declare function setupWebSocketCallbacks(deps: Pick<Dependencies, 'reviewContextWatcher' | 'progressPresenter'>): void;
|
|
7
9
|
export declare function startWatchingReviewContext(jobId: string, localPath: string, mergeRequestId: string): void;
|
|
8
10
|
export declare function stopWatchingReviewContext(mergeRequestId: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/main/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CActG;AAkCD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,mBAAmB,CAAC,GAAG,IAAI,CASpH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CASzG;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAKtE;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/main/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CActG;AAkCD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAa1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,mBAAmB,CAAC,GAAG,IAAI,CASpH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CASzG;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAKtE;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
package/dist/main/websocket.js
CHANGED
|
@@ -46,6 +46,19 @@ function broadcastStateChange() {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
export function broadcastBackfillProgress(progress) {
|
|
50
|
+
const messageType = progress.status === 'completed' ? 'backfill-complete' : 'backfill-progress';
|
|
51
|
+
const message = JSON.stringify({
|
|
52
|
+
type: messageType,
|
|
53
|
+
data: progress,
|
|
54
|
+
timestamp: new Date().toISOString(),
|
|
55
|
+
});
|
|
56
|
+
for (const client of wsClients) {
|
|
57
|
+
if (client.readyState === 1) {
|
|
58
|
+
client.send(message);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
49
62
|
export function setupWebSocketCallbacks(deps) {
|
|
50
63
|
injectedDeps = deps;
|
|
51
64
|
onLog(broadcastLogEntry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/main/websocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/main/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export interface ReviewStats {
|
|
5
|
-
id: string;
|
|
6
|
-
timestamp: string;
|
|
7
|
-
mrNumber: number;
|
|
8
|
-
duration: number;
|
|
9
|
-
score: number | null;
|
|
10
|
-
blocking: number;
|
|
11
|
-
warnings: number;
|
|
12
|
-
suggestions?: number;
|
|
13
|
-
assignedBy?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Aggregated project statistics
|
|
17
|
-
*/
|
|
18
|
-
export interface ProjectStats {
|
|
19
|
-
totalReviews: number;
|
|
20
|
-
totalDuration: number;
|
|
21
|
-
averageScore: number | null;
|
|
22
|
-
averageDuration: number;
|
|
23
|
-
totalBlocking: number;
|
|
24
|
-
totalWarnings: number;
|
|
25
|
-
reviews: ReviewStats[];
|
|
26
|
-
lastUpdated: string;
|
|
27
|
-
}
|
|
1
|
+
import type { ReviewStats, ProjectStats } from '../entities/stats/projectStats.js';
|
|
2
|
+
import type { DiffStats } from '../entities/diffStats/diffStats.js';
|
|
3
|
+
export type { ReviewStats, ProjectStats };
|
|
28
4
|
/**
|
|
29
5
|
* Load project statistics
|
|
30
6
|
*/
|
|
@@ -38,15 +14,15 @@ export declare function saveProjectStats(projectPath: string, stats: ProjectStat
|
|
|
38
14
|
*
|
|
39
15
|
* Supports two formats:
|
|
40
16
|
* 1. Summary format (from skill output):
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
17
|
+
* Score global : X/10
|
|
18
|
+
* Bloquants : X
|
|
19
|
+
* Importants : X
|
|
44
20
|
*
|
|
45
21
|
* 2. Structured stats line:
|
|
46
22
|
* [REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X]
|
|
47
23
|
*
|
|
48
24
|
* 3. Inline markers (fallback):
|
|
49
|
-
*
|
|
25
|
+
* [BLOQUANT], [IMPORTANT], [SUGGESTION]
|
|
50
26
|
*/
|
|
51
27
|
export declare function parseReviewOutput(stdout: string): {
|
|
52
28
|
score: number | null;
|
|
@@ -57,7 +33,7 @@ export declare function parseReviewOutput(stdout: string): {
|
|
|
57
33
|
/**
|
|
58
34
|
* Add a review to project statistics
|
|
59
35
|
*/
|
|
60
|
-
export declare function addReviewStats(projectPath: string, mrNumber: number, duration: number, stdout: string, assignedBy?: string): ReviewStats;
|
|
36
|
+
export declare function addReviewStats(projectPath: string, mrNumber: number, duration: number, stdout: string, assignedBy?: string, diffStats?: DiffStats | null): ReviewStats;
|
|
61
37
|
/**
|
|
62
38
|
* Get statistics summary for display
|
|
63
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsService.d.ts","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statsService.d.ts","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAsB1C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAuBlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAW/E;AAsBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CA2FA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAC3B,WAAW,CA8Bb;AAyCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CAChF,CAyCA"}
|
|
@@ -6,6 +6,16 @@ import { join, dirname } from 'node:path';
|
|
|
6
6
|
function getStatsPath(projectPath) {
|
|
7
7
|
return join(projectPath, '.claude', 'reviews', 'stats.json');
|
|
8
8
|
}
|
|
9
|
+
function hasProperty(object, key) {
|
|
10
|
+
return key in object;
|
|
11
|
+
}
|
|
12
|
+
function isProjectStatsShape(value) {
|
|
13
|
+
if (typeof value !== 'object' || value === null)
|
|
14
|
+
return false;
|
|
15
|
+
return (hasProperty(value, 'totalReviews') && typeof value.totalReviews === 'number' &&
|
|
16
|
+
hasProperty(value, 'totalDuration') && typeof value.totalDuration === 'number' &&
|
|
17
|
+
hasProperty(value, 'lastUpdated') && typeof value.lastUpdated === 'string');
|
|
18
|
+
}
|
|
9
19
|
/**
|
|
10
20
|
* Load project statistics
|
|
11
21
|
*/
|
|
@@ -16,12 +26,14 @@ export function loadProjectStats(projectPath) {
|
|
|
16
26
|
}
|
|
17
27
|
try {
|
|
18
28
|
const content = readFileSync(statsPath, 'utf-8');
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
stats.reviews = [];
|
|
29
|
+
const parsed = JSON.parse(content);
|
|
30
|
+
if (!isProjectStatsShape(parsed)) {
|
|
31
|
+
return createEmptyStats();
|
|
23
32
|
}
|
|
24
|
-
|
|
33
|
+
if (!Array.isArray(parsed.reviews)) {
|
|
34
|
+
parsed.reviews = [];
|
|
35
|
+
}
|
|
36
|
+
return parsed;
|
|
25
37
|
}
|
|
26
38
|
catch {
|
|
27
39
|
return createEmptyStats();
|
|
@@ -51,6 +63,10 @@ function createEmptyStats() {
|
|
|
51
63
|
averageDuration: 0,
|
|
52
64
|
totalBlocking: 0,
|
|
53
65
|
totalWarnings: 0,
|
|
66
|
+
totalAdditions: 0,
|
|
67
|
+
totalDeletions: 0,
|
|
68
|
+
averageAdditions: null,
|
|
69
|
+
averageDeletions: null,
|
|
54
70
|
reviews: [],
|
|
55
71
|
lastUpdated: new Date().toISOString(),
|
|
56
72
|
};
|
|
@@ -60,15 +76,15 @@ function createEmptyStats() {
|
|
|
60
76
|
*
|
|
61
77
|
* Supports two formats:
|
|
62
78
|
* 1. Summary format (from skill output):
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
79
|
+
* Score global : X/10
|
|
80
|
+
* Bloquants : X
|
|
81
|
+
* Importants : X
|
|
66
82
|
*
|
|
67
83
|
* 2. Structured stats line:
|
|
68
84
|
* [REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X]
|
|
69
85
|
*
|
|
70
86
|
* 3. Inline markers (fallback):
|
|
71
|
-
*
|
|
87
|
+
* [BLOQUANT], [IMPORTANT], [SUGGESTION]
|
|
72
88
|
*/
|
|
73
89
|
export function parseReviewOutput(stdout) {
|
|
74
90
|
let score = null;
|
|
@@ -95,22 +111,18 @@ export function parseReviewOutput(stdout) {
|
|
|
95
111
|
return { score, blocking, warnings, suggestions };
|
|
96
112
|
}
|
|
97
113
|
// Method 2: Parse summary format (skill output)
|
|
98
|
-
// 📊 Score global : X/10
|
|
99
114
|
const scoreMatch = stdout.match(/Score\s+[Gg]lobal\s*:\s*(\d+(?:\.\d+)?)\s*\/\s*10/i);
|
|
100
115
|
if (scoreMatch) {
|
|
101
116
|
score = Number.parseFloat(scoreMatch[1]);
|
|
102
117
|
}
|
|
103
|
-
// 🚨 Bloquants : X (summary count)
|
|
104
118
|
const blockingSummary = stdout.match(/🚨\s*Bloquants?\s*:\s*(\d+)/i);
|
|
105
119
|
if (blockingSummary) {
|
|
106
120
|
blocking = Number.parseInt(blockingSummary[1], 10);
|
|
107
121
|
}
|
|
108
|
-
// ⚠️ Importants : X (summary count)
|
|
109
122
|
const warningsSummary = stdout.match(/⚠️\s*Importants?\s*:\s*(\d+)/i);
|
|
110
123
|
if (warningsSummary) {
|
|
111
124
|
warnings = Number.parseInt(warningsSummary[1], 10);
|
|
112
125
|
}
|
|
113
|
-
// 📝 Améliorations/Suggestions : X (summary count)
|
|
114
126
|
const suggestionsSummary = stdout.match(/(?:📝|💡)\s*(?:Améliorations?|Suggestions?)[^:]*:\s*(\d+)/i);
|
|
115
127
|
if (suggestionsSummary) {
|
|
116
128
|
suggestions = Number.parseInt(suggestionsSummary[1], 10);
|
|
@@ -120,12 +132,10 @@ export function parseReviewOutput(stdout) {
|
|
|
120
132
|
return { score, blocking, warnings, suggestions };
|
|
121
133
|
}
|
|
122
134
|
// Method 3: Fallback - count inline markers
|
|
123
|
-
// 🚨 [BLOQUANT] or 🚨 **[BLOQUANT]**
|
|
124
135
|
const blockingMatches = stdout.match(/🚨\s*\*?\*?\[BLOQUANT\]/gi);
|
|
125
136
|
if (blockingMatches) {
|
|
126
137
|
blocking = blockingMatches.length;
|
|
127
138
|
}
|
|
128
|
-
// Alternative: count "### " headers under "## Corrections Bloquantes"
|
|
129
139
|
const blockingSection = stdout.match(/##\s+Corrections?\s+Bloquantes?[\s\S]*?(?=##\s|$)/i);
|
|
130
140
|
if (blockingSection) {
|
|
131
141
|
const blockingHeaders = blockingSection[0].match(/^###\s+\d+\./gm);
|
|
@@ -133,12 +143,10 @@ export function parseReviewOutput(stdout) {
|
|
|
133
143
|
blocking = blockingHeaders.length;
|
|
134
144
|
}
|
|
135
145
|
}
|
|
136
|
-
// ⚠️ [IMPORTANT] or ⚠️ **[IMPORTANT]**
|
|
137
146
|
const warningMatches = stdout.match(/⚠️\s*\*?\*?\[IMPORTANT\]/gi);
|
|
138
147
|
if (warningMatches) {
|
|
139
148
|
warnings = warningMatches.length;
|
|
140
149
|
}
|
|
141
|
-
// Alternative: count "### " headers under "## Corrections Importantes"
|
|
142
150
|
const warningSection = stdout.match(/##\s+Corrections?\s+Importantes?[\s\S]*?(?=##\s|$)/i);
|
|
143
151
|
if (warningSection) {
|
|
144
152
|
const warningHeaders = warningSection[0].match(/^###\s+\d+\./gm);
|
|
@@ -146,12 +154,10 @@ export function parseReviewOutput(stdout) {
|
|
|
146
154
|
warnings = warningHeaders.length;
|
|
147
155
|
}
|
|
148
156
|
}
|
|
149
|
-
// 💡 [SUGGESTION] or 💡 **[SUGGESTION]**
|
|
150
157
|
const suggestionMatches = stdout.match(/💡\s*\*?\*?\[SUGGESTION\]/gi);
|
|
151
158
|
if (suggestionMatches) {
|
|
152
159
|
suggestions = suggestionMatches.length;
|
|
153
160
|
}
|
|
154
|
-
// Alternative: count "### " headers under "## Suggestions"
|
|
155
161
|
const suggestionSection = stdout.match(/##\s+Suggestions?[\s\S]*?(?=##\s|$)/i);
|
|
156
162
|
if (suggestionSection) {
|
|
157
163
|
const suggestionHeaders = suggestionSection[0].match(/^###\s+\d+\./gm);
|
|
@@ -164,7 +170,7 @@ export function parseReviewOutput(stdout) {
|
|
|
164
170
|
/**
|
|
165
171
|
* Add a review to project statistics
|
|
166
172
|
*/
|
|
167
|
-
export function addReviewStats(projectPath, mrNumber, duration, stdout, assignedBy) {
|
|
173
|
+
export function addReviewStats(projectPath, mrNumber, duration, stdout, assignedBy, diffStats) {
|
|
168
174
|
const stats = loadProjectStats(projectPath);
|
|
169
175
|
const parsed = parseReviewOutput(stdout);
|
|
170
176
|
const now = new Date();
|
|
@@ -178,30 +184,48 @@ export function addReviewStats(projectPath, mrNumber, duration, stdout, assigned
|
|
|
178
184
|
warnings: parsed.warnings,
|
|
179
185
|
suggestions: parsed.suggestions,
|
|
180
186
|
assignedBy,
|
|
187
|
+
diffStats: diffStats ?? null,
|
|
181
188
|
};
|
|
182
|
-
|
|
189
|
+
initializeCumulativeCounters(stats);
|
|
183
190
|
stats.reviews.push(reviewStats);
|
|
184
|
-
|
|
191
|
+
updateAggregatesForNewReview(stats, reviewStats);
|
|
185
192
|
if (stats.reviews.length > 100) {
|
|
186
193
|
stats.reviews = stats.reviews.slice(-100);
|
|
187
194
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
// Calculate average score (only from reviews with scores)
|
|
195
|
+
saveProjectStats(projectPath, stats);
|
|
196
|
+
return reviewStats;
|
|
197
|
+
}
|
|
198
|
+
function initializeCumulativeCounters(stats) {
|
|
199
|
+
if (stats.totalScoreSum !== undefined)
|
|
200
|
+
return;
|
|
195
201
|
const reviewsWithScore = stats.reviews.filter((r) => r.score !== null);
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
202
|
+
stats.totalScoreSum = reviewsWithScore.reduce((sum, r) => sum + (r.score ?? 0), 0);
|
|
203
|
+
stats.scoredReviewCount = reviewsWithScore.length;
|
|
204
|
+
const reviewsWithDiffStats = stats.reviews.filter((r) => r.diffStats != null);
|
|
205
|
+
stats.diffStatsReviewCount = reviewsWithDiffStats.length;
|
|
206
|
+
}
|
|
207
|
+
function updateAggregatesForNewReview(stats, review) {
|
|
208
|
+
stats.totalReviews += 1;
|
|
209
|
+
stats.totalDuration += review.duration;
|
|
210
|
+
stats.averageDuration = stats.totalDuration / stats.totalReviews;
|
|
211
|
+
stats.totalBlocking += review.blocking;
|
|
212
|
+
stats.totalWarnings += review.warnings;
|
|
213
|
+
if (review.score !== null) {
|
|
214
|
+
stats.totalScoreSum = (stats.totalScoreSum ?? 0) + review.score;
|
|
215
|
+
stats.scoredReviewCount = (stats.scoredReviewCount ?? 0) + 1;
|
|
199
216
|
}
|
|
200
|
-
|
|
201
|
-
stats.averageScore =
|
|
217
|
+
if (stats.scoredReviewCount && stats.scoredReviewCount > 0) {
|
|
218
|
+
stats.averageScore = (stats.totalScoreSum ?? 0) / stats.scoredReviewCount;
|
|
219
|
+
}
|
|
220
|
+
if (review.diffStats) {
|
|
221
|
+
stats.totalAdditions += review.diffStats.additions;
|
|
222
|
+
stats.totalDeletions += review.diffStats.deletions;
|
|
223
|
+
stats.diffStatsReviewCount = (stats.diffStatsReviewCount ?? 0) + 1;
|
|
224
|
+
}
|
|
225
|
+
if (stats.diffStatsReviewCount && stats.diffStatsReviewCount > 0) {
|
|
226
|
+
stats.averageAdditions = stats.totalAdditions / stats.diffStatsReviewCount;
|
|
227
|
+
stats.averageDeletions = stats.totalDeletions / stats.diffStatsReviewCount;
|
|
202
228
|
}
|
|
203
|
-
saveProjectStats(projectPath, stats);
|
|
204
|
-
return reviewStats;
|
|
205
229
|
}
|
|
206
230
|
/**
|
|
207
231
|
* Get statistics summary for display
|