reviewflow 3.7.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 +12 -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 +3 -0
- package/dist/entities/packageVersion/packageVersion.d.ts.map +1 -1
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts +2 -1
- package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +1 -1
- 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 +3 -0
- package/dist/entities/stats/projectStats.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/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/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/version.routes.d.ts +1 -0
- package/dist/interface-adapters/controllers/http/version.routes.d.ts.map +1 -1
- package/dist/interface-adapters/controllers/http/version.routes.js +4 -1
- package/dist/interface-adapters/controllers/http/version.routes.js.map +1 -1
- 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/reviewFile.gateway.d.ts +1 -17
- package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts.map +1 -1
- 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 +3 -2
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +1 -1
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js +29 -15
- package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +1 -1
- 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 +242 -2
- 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 +201 -1
- 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/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/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/styles.css +967 -0
- package/dist/main/dependencies.d.ts +2 -0
- package/dist/main/dependencies.d.ts.map +1 -1
- package/dist/main/dependencies.js +2 -0
- package/dist/main/dependencies.js.map +1 -1
- package/dist/main/routes.d.ts.map +1 -1
- package/dist/main/routes.js +13 -0
- package/dist/main/routes.js.map +1 -1
- package/dist/services/statsService.d.ts.map +1 -1
- package/dist/services/statsService.js +46 -27
- package/dist/services/statsService.js.map +1 -1
- 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/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/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/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/reviewFile.stub.d.ts +1 -1
- package/dist/tests/stubs/reviewFile.stub.d.ts.map +1 -1
- 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 +4 -2
- package/dist/tests/stubs/selfUpdate.stub.d.ts.map +1 -1
- package/dist/tests/stubs/selfUpdate.stub.js +6 -4
- package/dist/tests/stubs/selfUpdate.stub.js.map +1 -1
- 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/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/version.routes.test.js +25 -0
- package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js.map +1 -1
- 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/selfUpdate.cli.gateway.test.js +84 -16
- package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js.map +1 -1
- 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/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/version/triggerSelfUpdate.usecase.test.js +5 -0
- package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js.map +1 -1
- 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/version/triggerSelfUpdate.usecase.d.ts.map +1 -1
- package/dist/usecases/version/triggerSelfUpdate.usecase.js +3 -0
- package/dist/usecases/version/triggerSelfUpdate.usecase.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfUpdate.cli.gateway.js","sourceRoot":"","sources":["../../../src/interface-adapters/gateways/selfUpdate.cli.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"selfUpdate.cli.gateway.js","sourceRoot":"","sources":["../../../src/interface-adapters/gateways/selfUpdate.cli.gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Presenter } from '../../shared/foundation/presenter.base.js';
|
|
2
|
+
import type { DeveloperInsight, CategoryLevels, DeveloperMetrics, InsightDescription } from '../../entities/insight/developerInsight.js';
|
|
3
|
+
import type { TeamInsight, AverageLevels } from '../../entities/insight/teamInsight.js';
|
|
4
|
+
import type { DeveloperTitle } from '../../entities/insight/developerTitle.js';
|
|
5
|
+
import type { InsightCategory } from '../../entities/insight/insightCategory.js';
|
|
6
|
+
export interface DeveloperInsightViewModel {
|
|
7
|
+
developerName: string;
|
|
8
|
+
title: DeveloperTitle;
|
|
9
|
+
overallLevel: number;
|
|
10
|
+
categoryLevels: CategoryLevels;
|
|
11
|
+
strengths: InsightCategory[];
|
|
12
|
+
weaknesses: InsightCategory[];
|
|
13
|
+
topPriority: InsightCategory | null;
|
|
14
|
+
reviewCount: number;
|
|
15
|
+
metrics: DeveloperMetrics;
|
|
16
|
+
insightDescriptions: InsightDescription[];
|
|
17
|
+
}
|
|
18
|
+
export interface TeamInsightViewModel {
|
|
19
|
+
developerCount: number;
|
|
20
|
+
totalReviewCount: number;
|
|
21
|
+
averageLevels: AverageLevels;
|
|
22
|
+
strengths: InsightCategory[];
|
|
23
|
+
weaknesses: InsightCategory[];
|
|
24
|
+
tips: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface InsightsViewModel {
|
|
27
|
+
isEmpty: boolean;
|
|
28
|
+
developers: DeveloperInsightViewModel[];
|
|
29
|
+
team: TeamInsightViewModel;
|
|
30
|
+
}
|
|
31
|
+
interface InsightsPresenterInput {
|
|
32
|
+
developerInsights: DeveloperInsight[];
|
|
33
|
+
teamInsight: TeamInsight;
|
|
34
|
+
}
|
|
35
|
+
export declare class InsightsPresenter implements Presenter<InsightsPresenterInput, InsightsViewModel> {
|
|
36
|
+
present(data: InsightsPresenterInput): InsightsViewModel;
|
|
37
|
+
private presentDeveloper;
|
|
38
|
+
private presentTeam;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=insights.presenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.presenter.d.ts","sourceRoot":"","sources":["../../../src/interface-adapters/presenters/insights.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACrI,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,UAAU,sBAAsB;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,iBAAkB,YAAW,SAAS,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;IAC5F,OAAO,CAAC,IAAI,EAAE,sBAAsB,GAAG,iBAAiB;IAcxD,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,WAAW;CAUpB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class InsightsPresenter {
|
|
2
|
+
present(data) {
|
|
3
|
+
const { developerInsights, teamInsight } = data;
|
|
4
|
+
const sortedDevelopers = [...developerInsights].sort((a, b) => b.overallLevel - a.overallLevel);
|
|
5
|
+
return {
|
|
6
|
+
isEmpty: developerInsights.length === 0,
|
|
7
|
+
developers: sortedDevelopers.map((insight) => this.presentDeveloper(insight)),
|
|
8
|
+
team: this.presentTeam(teamInsight),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
presentDeveloper(insight) {
|
|
12
|
+
return {
|
|
13
|
+
developerName: insight.developerName,
|
|
14
|
+
title: insight.title,
|
|
15
|
+
overallLevel: insight.overallLevel,
|
|
16
|
+
categoryLevels: insight.categoryLevels,
|
|
17
|
+
strengths: insight.strengths,
|
|
18
|
+
weaknesses: insight.weaknesses,
|
|
19
|
+
topPriority: insight.topPriority,
|
|
20
|
+
reviewCount: insight.reviewCount,
|
|
21
|
+
metrics: insight.metrics,
|
|
22
|
+
insightDescriptions: insight.insightDescriptions,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
presentTeam(teamInsight) {
|
|
26
|
+
return {
|
|
27
|
+
developerCount: teamInsight.developerCount,
|
|
28
|
+
totalReviewCount: teamInsight.totalReviewCount,
|
|
29
|
+
averageLevels: teamInsight.averageLevels,
|
|
30
|
+
strengths: teamInsight.strengths,
|
|
31
|
+
weaknesses: teamInsight.weaknesses,
|
|
32
|
+
tips: teamInsight.tips,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=insights.presenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.presenter.js","sourceRoot":"","sources":["../../../src/interface-adapters/presenters/insights.presenter.ts"],"names":[],"mappings":"AAuCA,MAAM,OAAO,iBAAiB;IAC5B,OAAO,CAAC,IAA4B;QAClC,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAEhD,MAAM,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAC1C,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,iBAAiB,CAAC,MAAM,KAAK,CAAC;YACvC,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7E,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;SACpC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,OAAyB;QAChD,OAAO;YACL,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,WAAwB;QAC1C,OAAO;YACL,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
<div class="logo"><i data-lucide="bot"></i></div>
|
|
14
14
|
<h1>Reviewflow</h1>
|
|
15
15
|
<div class="header-actions">
|
|
16
|
-
<div
|
|
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>
|
|
17
20
|
<button id="check-claude-btn" class="btn btn-primary" onclick="checkClaudeStatus()">
|
|
18
21
|
<i data-lucide="search"></i> <span id="i18n-check-claude"></span>
|
|
19
22
|
</button>
|
|
@@ -157,6 +160,16 @@
|
|
|
157
160
|
</div>
|
|
158
161
|
</div>
|
|
159
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
|
+
|
|
160
173
|
<div class="section" id="active-reviews-section">
|
|
161
174
|
<div class="section-header">
|
|
162
175
|
<i data-lucide="file-search"></i> <span id="i18n-section-active-reviews"></span>
|
|
@@ -244,6 +257,11 @@
|
|
|
244
257
|
<div id="mr-sheet-content" class="sheet-content"></div>
|
|
245
258
|
</div>
|
|
246
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
|
+
|
|
247
265
|
<script type="module">
|
|
248
266
|
import { t, setLanguage, getLanguage } from './modules/i18n.js';
|
|
249
267
|
import { formatTime, formatDuration, formatPhase, formatLogTime } from './modules/formatting.js';
|
|
@@ -263,6 +281,9 @@
|
|
|
263
281
|
import { renderCollapsibleList, toggleCollapsibleList } from './modules/collapsibleList.js';
|
|
264
282
|
import { renderMrSheetContent, drawScoreTimeline, drawIssuesBreakdown } from './modules/mrSheet.js';
|
|
265
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';
|
|
266
287
|
|
|
267
288
|
const API_URL = window.location.origin;
|
|
268
289
|
const WS_URL = `ws://${window.location.host}/ws`;
|
|
@@ -279,6 +300,8 @@
|
|
|
279
300
|
let currentStatsReviews = [];
|
|
280
301
|
let currentDevFilter = 'all';
|
|
281
302
|
let focusStripCompact = false;
|
|
303
|
+
let teamCollapsed = true;
|
|
304
|
+
let currentInsightsData = null;
|
|
282
305
|
const loadingState = { status: 0, reviewFiles: 0, stats: 0, mrTracking: 0 };
|
|
283
306
|
let hasLoadedStatusOnce = false;
|
|
284
307
|
const secondarySections = ['active-followups-section', 'pending-approval-section', 'completed-reviews-section'];
|
|
@@ -1179,6 +1202,171 @@
|
|
|
1179
1202
|
}
|
|
1180
1203
|
}
|
|
1181
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
|
+
|
|
1182
1370
|
async function recalculateStats() {
|
|
1183
1371
|
if (!currentProjectPath) return;
|
|
1184
1372
|
const button = document.getElementById('recalculate-btn');
|
|
@@ -1706,6 +1894,7 @@
|
|
|
1706
1894
|
}
|
|
1707
1895
|
if (recalcButton) recalcButton.disabled = false;
|
|
1708
1896
|
fetchProjectStats();
|
|
1897
|
+
fetchTeamInsights();
|
|
1709
1898
|
break;
|
|
1710
1899
|
}
|
|
1711
1900
|
case 'pong':
|
|
@@ -1949,8 +2138,10 @@
|
|
|
1949
2138
|
fetchReviewFiles();
|
|
1950
2139
|
fetchProjectStats();
|
|
1951
2140
|
fetchMrTracking();
|
|
2141
|
+
fetchTeamInsights();
|
|
1952
2142
|
|
|
1953
2143
|
document.getElementById('stats-section').classList.remove('hidden');
|
|
2144
|
+
document.getElementById('team-section').classList.remove('hidden');
|
|
1954
2145
|
|
|
1955
2146
|
const platformIcon = activePlatform === 'gitlab' ? '<i data-lucide="gitlab"></i> GitLab' : '<i data-lucide="github"></i> GitHub';
|
|
1956
2147
|
info.innerHTML = `
|
|
@@ -2211,6 +2402,9 @@
|
|
|
2211
2402
|
const recalculateLabel = document.getElementById('recalculate-label');
|
|
2212
2403
|
if (recalculateLabel) recalculateLabel.textContent = t('stats.recalculate');
|
|
2213
2404
|
|
|
2405
|
+
const sectionTeam = document.getElementById('i18n-section-team');
|
|
2406
|
+
if (sectionTeam) sectionTeam.textContent = t('team.title');
|
|
2407
|
+
|
|
2214
2408
|
const sectionActiveReviews = document.getElementById('i18n-section-active-reviews');
|
|
2215
2409
|
if (sectionActiveReviews) sectionActiveReviews.textContent = t('section.activeReviews');
|
|
2216
2410
|
|
|
@@ -2245,6 +2439,9 @@
|
|
|
2245
2439
|
const emptyPendingApproval = document.getElementById('i18n-empty-pending-approval');
|
|
2246
2440
|
if (emptyPendingApproval) emptyPendingApproval.textContent = t('empty.pendingApproval');
|
|
2247
2441
|
|
|
2442
|
+
const emptyTeam = document.getElementById('i18n-empty-team');
|
|
2443
|
+
if (emptyTeam) emptyTeam.textContent = t('team.noData');
|
|
2444
|
+
|
|
2248
2445
|
const emptyLoading = document.getElementById('i18n-empty-loading');
|
|
2249
2446
|
if (emptyLoading) emptyLoading.textContent = t('status.loading');
|
|
2250
2447
|
|
|
@@ -2316,6 +2513,9 @@
|
|
|
2316
2513
|
}, 2000);
|
|
2317
2514
|
setTimeout(() => clearInterval(checkInterval), 60000);
|
|
2318
2515
|
}, 3000);
|
|
2516
|
+
} else if (data.status === 'permission-denied') {
|
|
2517
|
+
setVersionCheckState('idle', t);
|
|
2518
|
+
showManualUpdateCommand(data.command);
|
|
2319
2519
|
} else {
|
|
2320
2520
|
showToast(data.error || t('version.updateFailed'), 'error');
|
|
2321
2521
|
setVersionCheckState('idle', t);
|
|
@@ -2327,6 +2527,35 @@
|
|
|
2327
2527
|
}
|
|
2328
2528
|
}
|
|
2329
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
|
+
|
|
2330
2559
|
function openMrSheet(encodedMrId) {
|
|
2331
2560
|
const mrId = safeDecodeURIComponent(encodedMrId);
|
|
2332
2561
|
const mr = mrDataStore.get(mrId);
|
|
@@ -2358,12 +2587,16 @@
|
|
|
2358
2587
|
}
|
|
2359
2588
|
|
|
2360
2589
|
document.addEventListener('keydown', (e) => {
|
|
2361
|
-
if (e.key === 'Escape')
|
|
2590
|
+
if (e.key === 'Escape') {
|
|
2591
|
+
closeMrSheet();
|
|
2592
|
+
closeDevSheet();
|
|
2593
|
+
}
|
|
2362
2594
|
});
|
|
2363
2595
|
|
|
2364
2596
|
// Expose functions to HTML onclick handlers
|
|
2365
2597
|
window.checkForUpdates = checkForUpdates;
|
|
2366
2598
|
window.triggerVersionUpdate = triggerVersionUpdate;
|
|
2599
|
+
window.copyUpdateCommand = copyUpdateCommand;
|
|
2367
2600
|
window.toggleCollapsibleList = toggleCollapsibleList;
|
|
2368
2601
|
window.checkClaudeStatus = checkClaudeStatus;
|
|
2369
2602
|
window.toggleLogs = toggleLogs;
|
|
@@ -2391,6 +2624,12 @@
|
|
|
2391
2624
|
window.handleCleanupClick = handleCleanupClick;
|
|
2392
2625
|
window.openMrSheet = openMrSheet;
|
|
2393
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;
|
|
2394
2633
|
window.clearLogs = clearLogs;
|
|
2395
2634
|
|
|
2396
2635
|
// Init cleanup section
|
|
@@ -2421,6 +2660,7 @@
|
|
|
2421
2660
|
fetchReviewFiles();
|
|
2422
2661
|
fetchProjectStats();
|
|
2423
2662
|
fetchMrTracking();
|
|
2663
|
+
fetchTeamInsights();
|
|
2424
2664
|
}, 30000);
|
|
2425
2665
|
|
|
2426
2666
|
setInterval(() => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} developer
|
|
3
|
+
* @param {(key: string, params?: Record<string, string|number>) => string} translate
|
|
4
|
+
* @param {object|null} [aiDeveloper]
|
|
5
|
+
* @returns {string}
|
|
6
|
+
*/
|
|
7
|
+
export function renderDeveloperSheetContent(developer: object, translate: (key: string, params?: Record<string, string | number>) => string, aiDeveloper?: object | null): string;
|
|
8
|
+
/**
|
|
9
|
+
* @param {string} canvasId
|
|
10
|
+
* @param {object} categoryLevels
|
|
11
|
+
* @param {(key: string, params?: Record<string, string|number>) => string} translate
|
|
12
|
+
*/
|
|
13
|
+
export function drawRadarChart(canvasId: string, categoryLevels: object, translate: (key: string, params?: Record<string, string | number>) => string): void;
|
|
14
|
+
//# sourceMappingURL=developerSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developerSheet.d.ts","sourceRoot":"","sources":["../../../../../src/interface-adapters/views/dashboard/modules/developerSheet.js"],"names":[],"mappings":"AAsJA;;;;;GAKG;AACH,uDALW,MAAM,aACN,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAC,MAAM,CAAC,KAAK,MAAM,gBAC/D,MAAM,GAAC,IAAI,GACT,MAAM,CA+FlB;AAED;;;;GAIG;AACH,yCAJW,MAAM,kBACN,MAAM,aACN,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAC,MAAM,CAAC,KAAK,MAAM,QAwGzE"}
|