codereview-aia 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/dist/index.js +0 -2
  2. package/docs/opt-in-full-context.md +27 -0
  3. package/package.json +11 -11
  4. package/reports/cr-cr-aia-17-11-2025-20-13.md +354 -0
  5. package/src/clients/implementations/openRouterClient.ts +2 -0
  6. package/src/clients/openRouterClient.ts +8 -1
  7. package/src/clients/utils/promptFormatter.ts +97 -20
  8. package/src/core/handlers/FileProcessingHandler.ts +6 -0
  9. package/src/index.ts +0 -3
  10. package/src/runtime/cliEntry.ts +21 -3
  11. package/src/runtime/fileCollector.ts +278 -5
  12. package/src/runtime/reviewPipeline.ts +46 -7
  13. package/src/runtime/runAiCodeReview.ts +161 -6
  14. package/src/runtime/ui/RuntimeApp.tsx +34 -5
  15. package/src/runtime/ui/screens/ProgressScreen.tsx +49 -1
  16. package/src/runtime/ui/screens/ResultsScreen.tsx +29 -9
  17. package/src/types/review.ts +18 -0
  18. package/dist/analysis/FindingsExtractor.d.ts +0 -105
  19. package/dist/analysis/FindingsExtractor.js +0 -363
  20. package/dist/analysis/FindingsExtractor.js.map +0 -1
  21. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +0 -111
  22. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +0 -215
  23. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +0 -1
  24. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +0 -142
  25. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +0 -503
  26. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +0 -1
  27. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +0 -88
  28. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +0 -343
  29. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +0 -1
  30. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +0 -104
  31. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +0 -369
  32. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +0 -1
  33. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +0 -364
  34. package/dist/analysis/ai-detection/types/DetectionTypes.js +0 -32
  35. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +0 -1
  36. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +0 -97
  37. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +0 -339
  38. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +0 -1
  39. package/dist/analysis/context/ReviewContext.d.ts +0 -184
  40. package/dist/analysis/context/ReviewContext.js +0 -294
  41. package/dist/analysis/context/ReviewContext.js.map +0 -1
  42. package/dist/analysis/context/index.d.ts +0 -6
  43. package/dist/analysis/context/index.js +0 -23
  44. package/dist/analysis/context/index.js.map +0 -1
  45. package/dist/analysis/index.d.ts +0 -7
  46. package/dist/analysis/index.js +0 -24
  47. package/dist/analysis/index.js.map +0 -1
  48. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +0 -27
  49. package/dist/analysis/tokens/TokenAnalysisFormatter.js +0 -143
  50. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +0 -1
  51. package/dist/analysis/tokens/TokenAnalyzer.d.ts +0 -155
  52. package/dist/analysis/tokens/TokenAnalyzer.js +0 -502
  53. package/dist/analysis/tokens/TokenAnalyzer.js.map +0 -1
  54. package/dist/analysis/tokens/index.d.ts +0 -7
  55. package/dist/analysis/tokens/index.js +0 -24
  56. package/dist/analysis/tokens/index.js.map +0 -1
  57. package/dist/clients/base/abstractClient.d.ts +0 -99
  58. package/dist/clients/base/abstractClient.js +0 -98
  59. package/dist/clients/base/abstractClient.js.map +0 -1
  60. package/dist/clients/base/httpClient.d.ts +0 -24
  61. package/dist/clients/base/httpClient.js +0 -147
  62. package/dist/clients/base/httpClient.js.map +0 -1
  63. package/dist/clients/base/index.d.ts +0 -11
  64. package/dist/clients/base/index.js +0 -28
  65. package/dist/clients/base/index.js.map +0 -1
  66. package/dist/clients/base/modelDetection.d.ts +0 -41
  67. package/dist/clients/base/modelDetection.js +0 -88
  68. package/dist/clients/base/modelDetection.js.map +0 -1
  69. package/dist/clients/base/responseProcessor.d.ts +0 -45
  70. package/dist/clients/base/responseProcessor.js +0 -495
  71. package/dist/clients/base/responseProcessor.js.map +0 -1
  72. package/dist/clients/factory/clientFactory.d.ts +0 -23
  73. package/dist/clients/factory/clientFactory.js +0 -50
  74. package/dist/clients/factory/clientFactory.js.map +0 -1
  75. package/dist/clients/factory/index.d.ts +0 -7
  76. package/dist/clients/factory/index.js +0 -24
  77. package/dist/clients/factory/index.js.map +0 -1
  78. package/dist/clients/implementations/index.d.ts +0 -7
  79. package/dist/clients/implementations/index.js +0 -24
  80. package/dist/clients/implementations/index.js.map +0 -1
  81. package/dist/clients/implementations/openRouterClient.d.ts +0 -69
  82. package/dist/clients/implementations/openRouterClient.js +0 -294
  83. package/dist/clients/implementations/openRouterClient.js.map +0 -1
  84. package/dist/clients/openRouterClient.d.ts +0 -42
  85. package/dist/clients/openRouterClient.js +0 -738
  86. package/dist/clients/openRouterClient.js.map +0 -1
  87. package/dist/clients/openRouterClientWrapper.d.ts +0 -22
  88. package/dist/clients/openRouterClientWrapper.js +0 -64
  89. package/dist/clients/openRouterClientWrapper.js.map +0 -1
  90. package/dist/clients/utils/directoryStructure.d.ts +0 -14
  91. package/dist/clients/utils/directoryStructure.js +0 -48
  92. package/dist/clients/utils/directoryStructure.js.map +0 -1
  93. package/dist/clients/utils/index.d.ts +0 -10
  94. package/dist/clients/utils/index.js +0 -31
  95. package/dist/clients/utils/index.js.map +0 -1
  96. package/dist/clients/utils/languageDetection.d.ts +0 -13
  97. package/dist/clients/utils/languageDetection.js +0 -46
  98. package/dist/clients/utils/languageDetection.js.map +0 -1
  99. package/dist/clients/utils/promptFormatter.d.ts +0 -36
  100. package/dist/clients/utils/promptFormatter.js +0 -92
  101. package/dist/clients/utils/promptFormatter.js.map +0 -1
  102. package/dist/clients/utils/promptLoader.d.ts +0 -27
  103. package/dist/clients/utils/promptLoader.js +0 -49
  104. package/dist/clients/utils/promptLoader.js.map +0 -1
  105. package/dist/clients/utils/tokenCounter.d.ts +0 -81
  106. package/dist/clients/utils/tokenCounter.js +0 -209
  107. package/dist/clients/utils/tokenCounter.js.map +0 -1
  108. package/dist/core/ApiClientSelector.d.ts +0 -8
  109. package/dist/core/ApiClientSelector.js +0 -29
  110. package/dist/core/ApiClientSelector.js.map +0 -1
  111. package/dist/core/ConfigurationService.d.ts +0 -286
  112. package/dist/core/ConfigurationService.js +0 -477
  113. package/dist/core/ConfigurationService.js.map +0 -1
  114. package/dist/core/ConsolidationService.d.ts +0 -99
  115. package/dist/core/ConsolidationService.js +0 -341
  116. package/dist/core/ConsolidationService.js.map +0 -1
  117. package/dist/core/InteractiveDisplayManager.d.ts +0 -22
  118. package/dist/core/InteractiveDisplayManager.js +0 -70
  119. package/dist/core/InteractiveDisplayManager.js.map +0 -1
  120. package/dist/core/OutputManager.d.ts +0 -26
  121. package/dist/core/OutputManager.js +0 -217
  122. package/dist/core/OutputManager.js.map +0 -1
  123. package/dist/core/ReviewGenerator.d.ts +0 -13
  124. package/dist/core/ReviewGenerator.js +0 -102
  125. package/dist/core/ReviewGenerator.js.map +0 -1
  126. package/dist/core/fileDiscovery.d.ts +0 -35
  127. package/dist/core/fileDiscovery.js +0 -202
  128. package/dist/core/fileDiscovery.js.map +0 -1
  129. package/dist/core/handlers/EstimationHandler.d.ts +0 -18
  130. package/dist/core/handlers/EstimationHandler.js +0 -110
  131. package/dist/core/handlers/EstimationHandler.js.map +0 -1
  132. package/dist/core/handlers/FileProcessingHandler.d.ts +0 -31
  133. package/dist/core/handlers/FileProcessingHandler.js +0 -159
  134. package/dist/core/handlers/FileProcessingHandler.js.map +0 -1
  135. package/dist/core/handlers/OutputHandler.d.ts +0 -27
  136. package/dist/core/handlers/OutputHandler.js +0 -127
  137. package/dist/core/handlers/OutputHandler.js.map +0 -1
  138. package/dist/core/handlers/ReviewExecutor.d.ts +0 -32
  139. package/dist/core/handlers/ReviewExecutor.js +0 -111
  140. package/dist/core/handlers/ReviewExecutor.js.map +0 -1
  141. package/dist/core/reviewOrchestrator.d.ts +0 -24
  142. package/dist/core/reviewOrchestrator.js +0 -294
  143. package/dist/core/reviewOrchestrator.js.map +0 -1
  144. package/dist/core/utils/ModelInfoUtils.d.ts +0 -16
  145. package/dist/core/utils/ModelInfoUtils.js +0 -54
  146. package/dist/core/utils/ModelInfoUtils.js.map +0 -1
  147. package/dist/formatters/outputFormatter.d.ts +0 -31
  148. package/dist/formatters/outputFormatter.js +0 -65
  149. package/dist/formatters/outputFormatter.js.map +0 -1
  150. package/dist/formatters/utils/IssueFormatters.d.ts +0 -20
  151. package/dist/formatters/utils/IssueFormatters.js +0 -67
  152. package/dist/formatters/utils/IssueFormatters.js.map +0 -1
  153. package/dist/formatters/utils/JsonFormatter.d.ts +0 -13
  154. package/dist/formatters/utils/JsonFormatter.js +0 -57
  155. package/dist/formatters/utils/JsonFormatter.js.map +0 -1
  156. package/dist/formatters/utils/MarkdownFormatters.d.ts +0 -51
  157. package/dist/formatters/utils/MarkdownFormatters.js +0 -456
  158. package/dist/formatters/utils/MarkdownFormatters.js.map +0 -1
  159. package/dist/formatters/utils/MetadataFormatter.d.ts +0 -65
  160. package/dist/formatters/utils/MetadataFormatter.js +0 -219
  161. package/dist/formatters/utils/MetadataFormatter.js.map +0 -1
  162. package/dist/formatters/utils/ModelInfoExtractor.d.ts +0 -33
  163. package/dist/formatters/utils/ModelInfoExtractor.js +0 -111
  164. package/dist/formatters/utils/ModelInfoExtractor.js.map +0 -1
  165. package/dist/index.d.ts +0 -2
  166. package/dist/index.js.map +0 -1
  167. package/dist/plugins/PluginInterface.d.ts +0 -44
  168. package/dist/plugins/PluginInterface.js +0 -9
  169. package/dist/plugins/PluginInterface.js.map +0 -1
  170. package/dist/plugins/PluginManager.d.ts +0 -51
  171. package/dist/plugins/PluginManager.js +0 -151
  172. package/dist/plugins/PluginManager.js.map +0 -1
  173. package/dist/prompts/PromptManager.d.ts +0 -30
  174. package/dist/prompts/PromptManager.js +0 -62
  175. package/dist/prompts/PromptManager.js.map +0 -1
  176. package/dist/prompts/cache/PromptCache.d.ts +0 -32
  177. package/dist/prompts/cache/PromptCache.js +0 -48
  178. package/dist/prompts/cache/PromptCache.js.map +0 -1
  179. package/dist/runtime/auth/service.d.ts +0 -2
  180. package/dist/runtime/auth/service.js +0 -41
  181. package/dist/runtime/auth/service.js.map +0 -1
  182. package/dist/runtime/auth/session.d.ts +0 -5
  183. package/dist/runtime/auth/session.js +0 -87
  184. package/dist/runtime/auth/session.js.map +0 -1
  185. package/dist/runtime/auth/types.d.ts +0 -9
  186. package/dist/runtime/auth/types.js +0 -3
  187. package/dist/runtime/auth/types.js.map +0 -1
  188. package/dist/runtime/cliEntry.d.ts +0 -1
  189. package/dist/runtime/cliEntry.js +0 -213
  190. package/dist/runtime/cliEntry.js.map +0 -1
  191. package/dist/runtime/debug/logManager.d.ts +0 -5
  192. package/dist/runtime/debug/logManager.js +0 -31
  193. package/dist/runtime/debug/logManager.js.map +0 -1
  194. package/dist/runtime/errors.d.ts +0 -5
  195. package/dist/runtime/errors.js +0 -15
  196. package/dist/runtime/errors.js.map +0 -1
  197. package/dist/runtime/fileCollector.d.ts +0 -5
  198. package/dist/runtime/fileCollector.js +0 -167
  199. package/dist/runtime/fileCollector.js.map +0 -1
  200. package/dist/runtime/manifest.d.ts +0 -1
  201. package/dist/runtime/manifest.js +0 -65
  202. package/dist/runtime/manifest.js.map +0 -1
  203. package/dist/runtime/openrouterProxy.d.ts +0 -4
  204. package/dist/runtime/openrouterProxy.js +0 -43
  205. package/dist/runtime/openrouterProxy.js.map +0 -1
  206. package/dist/runtime/preprod/webCheck.d.ts +0 -1
  207. package/dist/runtime/preprod/webCheck.js +0 -98
  208. package/dist/runtime/preprod/webCheck.js.map +0 -1
  209. package/dist/runtime/proxyConfig.d.ts +0 -6
  210. package/dist/runtime/proxyConfig.js +0 -86
  211. package/dist/runtime/proxyConfig.js.map +0 -1
  212. package/dist/runtime/proxyEnvironment.d.ts +0 -3
  213. package/dist/runtime/proxyEnvironment.js +0 -63
  214. package/dist/runtime/proxyEnvironment.js.map +0 -1
  215. package/dist/runtime/reportMerge.d.ts +0 -30
  216. package/dist/runtime/reportMerge.js +0 -70
  217. package/dist/runtime/reportMerge.js.map +0 -1
  218. package/dist/runtime/reporting/markdownReportBuilder.d.ts +0 -15
  219. package/dist/runtime/reporting/markdownReportBuilder.js +0 -97
  220. package/dist/runtime/reporting/markdownReportBuilder.js.map +0 -1
  221. package/dist/runtime/reporting/reportDataCollector.d.ts +0 -31
  222. package/dist/runtime/reporting/reportDataCollector.js +0 -170
  223. package/dist/runtime/reporting/reportDataCollector.js.map +0 -1
  224. package/dist/runtime/reporting/summaryGenerator.d.ts +0 -10
  225. package/dist/runtime/reporting/summaryGenerator.js +0 -67
  226. package/dist/runtime/reporting/summaryGenerator.js.map +0 -1
  227. package/dist/runtime/reviewPipeline.d.ts +0 -28
  228. package/dist/runtime/reviewPipeline.js +0 -122
  229. package/dist/runtime/reviewPipeline.js.map +0 -1
  230. package/dist/runtime/runAiCodeReview.d.ts +0 -10
  231. package/dist/runtime/runAiCodeReview.js +0 -138
  232. package/dist/runtime/runAiCodeReview.js.map +0 -1
  233. package/dist/runtime/runtimeConfig.d.ts +0 -4
  234. package/dist/runtime/runtimeConfig.js +0 -7
  235. package/dist/runtime/runtimeConfig.js.map +0 -1
  236. package/dist/runtime/ui/Layout.d.ts +0 -11
  237. package/dist/runtime/ui/Layout.js +0 -47
  238. package/dist/runtime/ui/Layout.js.map +0 -1
  239. package/dist/runtime/ui/RuntimeApp.d.ts +0 -6
  240. package/dist/runtime/ui/RuntimeApp.js +0 -161
  241. package/dist/runtime/ui/RuntimeApp.js.map +0 -1
  242. package/dist/runtime/ui/inkModules.d.ts +0 -10
  243. package/dist/runtime/ui/inkModules.js +0 -63
  244. package/dist/runtime/ui/inkModules.js.map +0 -1
  245. package/dist/runtime/ui/screens/AuthScreen.d.ts +0 -6
  246. package/dist/runtime/ui/screens/AuthScreen.js +0 -67
  247. package/dist/runtime/ui/screens/AuthScreen.js.map +0 -1
  248. package/dist/runtime/ui/screens/ModeSelection.d.ts +0 -10
  249. package/dist/runtime/ui/screens/ModeSelection.js +0 -100
  250. package/dist/runtime/ui/screens/ModeSelection.js.map +0 -1
  251. package/dist/runtime/ui/screens/ProgressScreen.d.ts +0 -7
  252. package/dist/runtime/ui/screens/ProgressScreen.js +0 -38
  253. package/dist/runtime/ui/screens/ProgressScreen.js.map +0 -1
  254. package/dist/runtime/ui/screens/ResultsScreen.d.ts +0 -7
  255. package/dist/runtime/ui/screens/ResultsScreen.js +0 -22
  256. package/dist/runtime/ui/screens/ResultsScreen.js.map +0 -1
  257. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +0 -29
  258. package/dist/strategies/ArchitecturalReviewStrategy.js +0 -42
  259. package/dist/strategies/ArchitecturalReviewStrategy.js.map +0 -1
  260. package/dist/strategies/CodingTestReviewStrategy.d.ts +0 -194
  261. package/dist/strategies/CodingTestReviewStrategy.js +0 -681
  262. package/dist/strategies/CodingTestReviewStrategy.js.map +0 -1
  263. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +0 -25
  264. package/dist/strategies/ConsolidatedReviewStrategy.js +0 -45
  265. package/dist/strategies/ConsolidatedReviewStrategy.js.map +0 -1
  266. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +0 -30
  267. package/dist/strategies/ExtractPatternsReviewStrategy.js +0 -51
  268. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +0 -1
  269. package/dist/strategies/MultiPassReviewStrategy.d.ts +0 -86
  270. package/dist/strategies/MultiPassReviewStrategy.js +0 -590
  271. package/dist/strategies/MultiPassReviewStrategy.js.map +0 -1
  272. package/dist/strategies/ReviewStrategy.d.ts +0 -45
  273. package/dist/strategies/ReviewStrategy.js +0 -24
  274. package/dist/strategies/ReviewStrategy.js.map +0 -1
  275. package/dist/strategies/StrategyFactory.d.ts +0 -19
  276. package/dist/strategies/StrategyFactory.js +0 -72
  277. package/dist/strategies/StrategyFactory.js.map +0 -1
  278. package/dist/strategies/index.d.ts +0 -13
  279. package/dist/strategies/index.js +0 -30
  280. package/dist/strategies/index.js.map +0 -1
  281. package/dist/tokenizers/baseTokenizer.d.ts +0 -25
  282. package/dist/tokenizers/baseTokenizer.js +0 -48
  283. package/dist/tokenizers/baseTokenizer.js.map +0 -1
  284. package/dist/tokenizers/gptTokenizer.d.ts +0 -7
  285. package/dist/tokenizers/gptTokenizer.js +0 -28
  286. package/dist/tokenizers/gptTokenizer.js.map +0 -1
  287. package/dist/tokenizers/index.d.ts +0 -7
  288. package/dist/tokenizers/index.js +0 -24
  289. package/dist/tokenizers/index.js.map +0 -1
  290. package/dist/types/apiResponses.d.ts +0 -39
  291. package/dist/types/apiResponses.js +0 -9
  292. package/dist/types/apiResponses.js.map +0 -1
  293. package/dist/types/cli.d.ts +0 -22
  294. package/dist/types/cli.js +0 -3
  295. package/dist/types/cli.js.map +0 -1
  296. package/dist/types/common.d.ts +0 -22
  297. package/dist/types/common.js +0 -14
  298. package/dist/types/common.js.map +0 -1
  299. package/dist/types/configuration.d.ts +0 -682
  300. package/dist/types/configuration.js +0 -65
  301. package/dist/types/configuration.js.map +0 -1
  302. package/dist/types/review.d.ts +0 -258
  303. package/dist/types/review.js +0 -8
  304. package/dist/types/review.js.map +0 -1
  305. package/dist/types/reviewSchema.d.ts +0 -543
  306. package/dist/types/reviewSchema.js +0 -121
  307. package/dist/types/reviewSchema.js.map +0 -1
  308. package/dist/types/structuredReview.d.ts +0 -119
  309. package/dist/types/structuredReview.js +0 -6
  310. package/dist/types/structuredReview.js.map +0 -1
  311. package/dist/types/tokenAnalysis.d.ts +0 -44
  312. package/dist/types/tokenAnalysis.js +0 -4
  313. package/dist/types/tokenAnalysis.js.map +0 -1
  314. package/dist/utils/FileReader.d.ts +0 -33
  315. package/dist/utils/FileReader.js +0 -88
  316. package/dist/utils/FileReader.js.map +0 -1
  317. package/dist/utils/FileWriter.d.ts +0 -26
  318. package/dist/utils/FileWriter.js +0 -76
  319. package/dist/utils/FileWriter.js.map +0 -1
  320. package/dist/utils/PathGenerator.d.ts +0 -30
  321. package/dist/utils/PathGenerator.js +0 -82
  322. package/dist/utils/PathGenerator.js.map +0 -1
  323. package/dist/utils/api/apiUtils.d.ts +0 -3
  324. package/dist/utils/api/apiUtils.js +0 -20
  325. package/dist/utils/api/apiUtils.js.map +0 -1
  326. package/dist/utils/api/index.d.ts +0 -1
  327. package/dist/utils/api/index.js +0 -18
  328. package/dist/utils/api/index.js.map +0 -1
  329. package/dist/utils/apiErrorHandler.d.ts +0 -130
  330. package/dist/utils/apiErrorHandler.js +0 -256
  331. package/dist/utils/apiErrorHandler.js.map +0 -1
  332. package/dist/utils/ciDataCollector.d.ts +0 -51
  333. package/dist/utils/ciDataCollector.js +0 -197
  334. package/dist/utils/ciDataCollector.js.map +0 -1
  335. package/dist/utils/codingTestConfigLoader.d.ts +0 -66
  336. package/dist/utils/codingTestConfigLoader.js +0 -420
  337. package/dist/utils/codingTestConfigLoader.js.map +0 -1
  338. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +0 -30
  339. package/dist/utils/dependencies/aiDependencyAnalyzer.js +0 -343
  340. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +0 -1
  341. package/dist/utils/detection/frameworkDetector.d.ts +0 -43
  342. package/dist/utils/detection/frameworkDetector.js +0 -795
  343. package/dist/utils/detection/frameworkDetector.js.map +0 -1
  344. package/dist/utils/detection/index.d.ts +0 -9
  345. package/dist/utils/detection/index.js +0 -28
  346. package/dist/utils/detection/index.js.map +0 -1
  347. package/dist/utils/detection/projectTypeDetector.d.ts +0 -27
  348. package/dist/utils/detection/projectTypeDetector.js +0 -469
  349. package/dist/utils/detection/projectTypeDetector.js.map +0 -1
  350. package/dist/utils/diagramGenerator.d.ts +0 -49
  351. package/dist/utils/diagramGenerator.js +0 -218
  352. package/dist/utils/diagramGenerator.js.map +0 -1
  353. package/dist/utils/errorLogger.d.ts +0 -24
  354. package/dist/utils/errorLogger.js +0 -59
  355. package/dist/utils/errorLogger.js.map +0 -1
  356. package/dist/utils/estimationUtils.d.ts +0 -139
  357. package/dist/utils/estimationUtils.js +0 -329
  358. package/dist/utils/estimationUtils.js.map +0 -1
  359. package/dist/utils/fileFilters.d.ts +0 -72
  360. package/dist/utils/fileFilters.js +0 -338
  361. package/dist/utils/fileFilters.js.map +0 -1
  362. package/dist/utils/fileSystem.d.ts +0 -22
  363. package/dist/utils/fileSystem.js +0 -45
  364. package/dist/utils/fileSystem.js.map +0 -1
  365. package/dist/utils/index.d.ts +0 -22
  366. package/dist/utils/index.js +0 -52
  367. package/dist/utils/index.js.map +0 -1
  368. package/dist/utils/logger.d.ts +0 -77
  369. package/dist/utils/logger.js +0 -271
  370. package/dist/utils/logger.js.map +0 -1
  371. package/dist/utils/pathValidator.d.ts +0 -40
  372. package/dist/utils/pathValidator.js +0 -98
  373. package/dist/utils/pathValidator.js.map +0 -1
  374. package/dist/utils/priorityFilter.d.ts +0 -34
  375. package/dist/utils/priorityFilter.js +0 -54
  376. package/dist/utils/priorityFilter.js.map +0 -1
  377. package/dist/utils/projectDocs.d.ts +0 -47
  378. package/dist/utils/projectDocs.js +0 -158
  379. package/dist/utils/projectDocs.js.map +0 -1
  380. package/dist/utils/promptPaths.d.ts +0 -6
  381. package/dist/utils/promptPaths.js +0 -33
  382. package/dist/utils/promptPaths.js.map +0 -1
  383. package/dist/utils/promptTemplateManager.d.ts +0 -34
  384. package/dist/utils/promptTemplateManager.js +0 -140
  385. package/dist/utils/promptTemplateManager.js.map +0 -1
  386. package/dist/utils/review/consolidateReview.d.ts +0 -15
  387. package/dist/utils/review/consolidateReview.js +0 -481
  388. package/dist/utils/review/consolidateReview.js.map +0 -1
  389. package/dist/utils/review/fixDisplay.d.ts +0 -20
  390. package/dist/utils/review/fixDisplay.js +0 -84
  391. package/dist/utils/review/fixDisplay.js.map +0 -1
  392. package/dist/utils/review/fixImplementation.d.ts +0 -28
  393. package/dist/utils/review/fixImplementation.js +0 -60
  394. package/dist/utils/review/fixImplementation.js.map +0 -1
  395. package/dist/utils/review/index.d.ts +0 -13
  396. package/dist/utils/review/index.js +0 -50
  397. package/dist/utils/review/index.js.map +0 -1
  398. package/dist/utils/review/interactiveProcessing.d.ts +0 -25
  399. package/dist/utils/review/interactiveProcessing.js +0 -251
  400. package/dist/utils/review/interactiveProcessing.js.map +0 -1
  401. package/dist/utils/review/progressTracker.d.ts +0 -106
  402. package/dist/utils/review/progressTracker.js +0 -227
  403. package/dist/utils/review/progressTracker.js.map +0 -1
  404. package/dist/utils/review/reviewExtraction.d.ts +0 -31
  405. package/dist/utils/review/reviewExtraction.js +0 -324
  406. package/dist/utils/review/reviewExtraction.js.map +0 -1
  407. package/dist/utils/review/types.d.ts +0 -45
  408. package/dist/utils/review/types.js +0 -18
  409. package/dist/utils/review/types.js.map +0 -1
  410. package/dist/utils/reviewActionHandler.d.ts +0 -16
  411. package/dist/utils/reviewActionHandler.js +0 -34
  412. package/dist/utils/reviewActionHandler.js.map +0 -1
  413. package/dist/utils/reviewParser.d.ts +0 -34
  414. package/dist/utils/reviewParser.js +0 -218
  415. package/dist/utils/reviewParser.js.map +0 -1
  416. package/dist/utils/sanitizer.d.ts +0 -82
  417. package/dist/utils/sanitizer.js +0 -239
  418. package/dist/utils/sanitizer.js.map +0 -1
  419. package/dist/utils/smartFileSelector.d.ts +0 -50
  420. package/dist/utils/smartFileSelector.js +0 -261
  421. package/dist/utils/smartFileSelector.js.map +0 -1
  422. package/dist/utils/templateLoader.d.ts +0 -44
  423. package/dist/utils/templateLoader.js +0 -431
  424. package/dist/utils/templateLoader.js.map +0 -1
  425. package/dist/utils/treeGenerator.d.ts +0 -12
  426. package/dist/utils/treeGenerator.js +0 -133
  427. package/dist/utils/treeGenerator.js.map +0 -1
@@ -1,503 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Documentation analyzer for detecting AI-generated content patterns.
4
- *
5
- * This analyzer examines README files, code comments, and documentation structure
6
- * to identify characteristics commonly associated with AI-generated documentation.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DocumentationAnalyzer = void 0;
10
- const BaseAnalyzer_1 = require("./BaseAnalyzer");
11
- /**
12
- * Analyzer for documentation patterns that may indicate AI generation
13
- */
14
- class DocumentationAnalyzer extends BaseAnalyzer_1.BaseAnalyzer {
15
- /**
16
- * Get analyzer name
17
- */
18
- getAnalyzerName() {
19
- return 'documentation';
20
- }
21
- /**
22
- * Analyze documentation for AI-generated patterns
23
- * @param submission Code submission to analyze
24
- * @returns Documentation analysis result
25
- */
26
- async analyze(submission) {
27
- this.startTimer();
28
- const patterns = [];
29
- try {
30
- const { documentation } = submission;
31
- // Pattern H2.1: Template README Structure
32
- if (documentation.readme) {
33
- const readmeResult = this.analyzeREADMEStructure(documentation.readme);
34
- if (readmeResult.detected) {
35
- patterns.push(this.createDetectedPattern('H2.1', 'Template README Structure', 'high', readmeResult.score, 'README follows AI-generated template structure with standard sections', readmeResult.evidence || {}));
36
- }
37
- }
38
- // Pattern H2.2: Excessive Comment Density
39
- const commentResult = this.analyzeCommentDensity(documentation.codeFiles);
40
- if (commentResult.detected) {
41
- patterns.push(this.createDetectedPattern('H2.2', 'Excessive Comment Density', 'high', commentResult.score, 'Unusually high and uniform comment density across files', commentResult.evidence || {}));
42
- }
43
- // Pattern H2.3: AI-Style Documentation
44
- if (documentation.readme) {
45
- const aiStyleResult = this.detectAIStyleDocumentation(documentation.readme);
46
- if (aiStyleResult.detected) {
47
- patterns.push(this.createDetectedPattern('H2.3', 'AI-Style Documentation', 'high', aiStyleResult.score, 'Documentation exhibits characteristics typical of AI-generated content', aiStyleResult.evidence || {}));
48
- }
49
- }
50
- // Pattern M2.4: Uniform Comment Patterns
51
- const uniformCommentResult = this.analyzeUniformCommentPatterns(documentation.codeFiles);
52
- if (uniformCommentResult.detected) {
53
- patterns.push(this.createDetectedPattern('M2.4', 'Uniform Comment Patterns', 'medium', uniformCommentResult.score, 'Comments follow suspiciously uniform patterns across files', uniformCommentResult.evidence || {}));
54
- }
55
- const avgCommentDensity = this.calculateAverageCommentDensity(documentation.codeFiles);
56
- return {
57
- analyzer: 'documentation',
58
- patterns,
59
- metadata: {
60
- filesAnalyzed: documentation.codeFiles.length,
61
- hasReadme: !!documentation.readme,
62
- avgCommentDensity,
63
- },
64
- };
65
- }
66
- catch (error) {
67
- console.error('Error in DocumentationAnalyzer:', error);
68
- return this.createEmptyResult();
69
- }
70
- }
71
- /**
72
- * Analyze README structure for template patterns
73
- * @param readme README content
74
- * @returns Pattern detection result
75
- */
76
- analyzeREADMEStructure(readme) {
77
- const standardSections = [
78
- 'installation',
79
- 'usage',
80
- 'api',
81
- 'contributing',
82
- 'license',
83
- 'features',
84
- 'requirements',
85
- 'examples',
86
- 'documentation',
87
- 'getting started',
88
- 'quick start',
89
- 'configuration',
90
- 'support',
91
- ];
92
- const sections = this.extractSections(readme);
93
- const sectionLower = sections.map((s) => s.toLowerCase());
94
- const matchedStandard = sectionLower.filter((section) => standardSections.some((std) => section.includes(std) || std.includes(section)));
95
- const completeness = matchedStandard.length / standardSections.length;
96
- // High completeness (>60%) suggests template usage
97
- if (completeness > 0.6 && sections.length >= 5) {
98
- const badges = this.countBadges(readme);
99
- const genericPhrases = this.countGenericPhrases(readme);
100
- const templateIndicators = this.countTemplateIndicators(readme);
101
- const score = Math.min(0.95, 0.5 +
102
- completeness * 0.25 +
103
- Math.min(badges, 5) * 0.03 +
104
- Math.min(genericPhrases, 10) * 0.02 +
105
- templateIndicators * 0.05);
106
- return this.createPatternResult(true, score, {
107
- completeness,
108
- matchedSections: matchedStandard,
109
- totalSections: sections.length,
110
- badgeCount: badges,
111
- genericPhraseCount: genericPhrases,
112
- templateIndicatorCount: templateIndicators,
113
- sectionOrder: this.analyzeSectionOrder(sections),
114
- standardSections,
115
- });
116
- }
117
- return this.createPatternResult(false, completeness * 0.3);
118
- }
119
- /**
120
- * Analyze comment density across code files
121
- * @param codeFiles Array of code files
122
- * @returns Pattern detection result
123
- */
124
- analyzeCommentDensity(codeFiles) {
125
- if (codeFiles.length === 0) {
126
- return this.createPatternResult(false, 0);
127
- }
128
- const densities = codeFiles.map((file) => this.calculateCommentDensity(file.content));
129
- const averageDensity = densities.reduce((a, b) => a + b, 0) / densities.length;
130
- const uniformity = this.calculateUniformity(densities);
131
- // High density (>40%) with high uniformity (>0.8) suggests AI generation
132
- if (averageDensity > 0.4 && uniformity > 0.8 && codeFiles.length >= 3) {
133
- const score = Math.min(0.95, 0.5 + averageDensity * 0.3 + uniformity * 0.2);
134
- return this.createPatternResult(true, score, {
135
- averageDensity,
136
- uniformity,
137
- fileCount: codeFiles.length,
138
- densityDistribution: densities,
139
- threshold: { density: 0.4, uniformity: 0.8 },
140
- filesWithHighDensity: densities.filter((d) => d > 0.5).length,
141
- });
142
- }
143
- return this.createPatternResult(false, Math.max(averageDensity - 0.2, 0) * 0.5);
144
- }
145
- /**
146
- * Detect AI-style documentation patterns
147
- * @param readme README content
148
- * @returns Pattern detection result
149
- */
150
- detectAIStyleDocumentation(readme) {
151
- const aiIndicators = {
152
- overlyFormal: this.countOverlyFormalLanguage(readme),
153
- perfectGrammar: this.checkPerfectGrammar(readme),
154
- templatePhrases: this.countTemplatePhrases(readme),
155
- comprehensiveStructure: this.checkComprehensiveStructure(readme),
156
- technicalPrecision: this.checkTechnicalPrecision(readme),
157
- lackOfPersonality: this.checkLackOfPersonality(readme),
158
- };
159
- const totalIndicators = Object.keys(aiIndicators).length;
160
- const positiveIndicators = Object.values(aiIndicators).filter(Boolean).length;
161
- const ratio = positiveIndicators / totalIndicators;
162
- // If most indicators are present, suggest AI generation
163
- if (ratio > 0.6) {
164
- const score = Math.min(0.9, 0.5 + ratio * 0.4);
165
- return this.createPatternResult(true, score, {
166
- indicators: aiIndicators,
167
- positiveIndicators,
168
- totalIndicators,
169
- ratio,
170
- readmeLength: readme.length,
171
- wordCount: readme.split(/\s+/).length,
172
- });
173
- }
174
- return this.createPatternResult(false, ratio * 0.4);
175
- }
176
- /**
177
- * Analyze uniform comment patterns across files
178
- * @param codeFiles Array of code files
179
- * @returns Pattern detection result
180
- */
181
- analyzeUniformCommentPatterns(codeFiles) {
182
- if (codeFiles.length < 3) {
183
- return this.createPatternResult(false, 0);
184
- }
185
- const commentPatterns = codeFiles.map((file) => this.extractCommentPatterns(file.content));
186
- const uniformityScore = this.calculateCommentPatternUniformity(commentPatterns);
187
- // High uniformity suggests AI-generated comments
188
- if (uniformityScore > 0.8) {
189
- const score = Math.min(0.85, 0.4 + uniformityScore * 0.4);
190
- return this.createPatternResult(true, score, {
191
- uniformityScore,
192
- fileCount: codeFiles.length,
193
- commonPatterns: this.findCommonCommentPatterns(commentPatterns),
194
- threshold: 0.8,
195
- });
196
- }
197
- return this.createPatternResult(false, uniformityScore * 0.3);
198
- }
199
- /**
200
- * Calculate comment density for a single file
201
- * @param content File content
202
- * @returns Comment density ratio (0.0 to 1.0)
203
- */
204
- calculateCommentDensity(content) {
205
- const lines = content.split('\n');
206
- const codeLines = lines.filter((line) => {
207
- const trimmed = line.trim();
208
- return (trimmed &&
209
- !trimmed.startsWith('//') &&
210
- !trimmed.startsWith('/*') &&
211
- !trimmed.startsWith('*') &&
212
- !trimmed.startsWith('#') && // Python/shell comments
213
- !trimmed.match(/^\s*\/\*/) && // Multi-line comment start
214
- !trimmed.match(/\*\/\s*$/)); // Multi-line comment end
215
- });
216
- const commentLines = lines.length - codeLines.length;
217
- return lines.length > 0 ? commentLines / lines.length : 0;
218
- }
219
- /**
220
- * Calculate average comment density across files
221
- * @param codeFiles Array of code files
222
- * @returns Average comment density
223
- */
224
- calculateAverageCommentDensity(codeFiles) {
225
- if (codeFiles.length === 0)
226
- return 0;
227
- const densities = codeFiles.map((file) => this.calculateCommentDensity(file.content));
228
- return densities.reduce((sum, density) => sum + density, 0) / densities.length;
229
- }
230
- /**
231
- * Count template indicators in README
232
- * @param readme README content
233
- * @returns Number of template indicators
234
- */
235
- countTemplateIndicators(readme) {
236
- const templatePatterns = [
237
- /\[!\[.*?\]\(.*?\)\]\(.*?\)/g, // Nested badge syntax
238
- /## Table of Contents/gi,
239
- /\*\*Note:\*\*/gi,
240
- /Replace `.*?` with/gi,
241
- /\$\{.*?\}/g, // Template variables
242
- /\[\[.*?\]\]/g, // Wiki-style links
243
- ];
244
- let count = 0;
245
- for (const pattern of templatePatterns) {
246
- const matches = readme.match(pattern);
247
- if (matches) {
248
- count += matches.length;
249
- }
250
- }
251
- return count;
252
- }
253
- /**
254
- * Analyze section ordering for template patterns
255
- * @param sections Array of section names
256
- * @returns Section order analysis
257
- */
258
- analyzeSectionOrder(sections) {
259
- const standardOrder = [
260
- 'title',
261
- 'description',
262
- 'installation',
263
- 'usage',
264
- 'api',
265
- 'examples',
266
- 'contributing',
267
- 'license',
268
- ];
269
- let orderScore = 0;
270
- let lastIndex = -1;
271
- sections.forEach((section) => {
272
- const sectionLower = section.toLowerCase();
273
- const standardIndex = standardOrder.findIndex((std) => sectionLower.includes(std) || std.includes(sectionLower));
274
- if (standardIndex > lastIndex) {
275
- orderScore++;
276
- lastIndex = standardIndex;
277
- }
278
- });
279
- return {
280
- orderScore,
281
- maxPossibleScore: Math.min(sections.length, standardOrder.length),
282
- followsStandardOrder: orderScore / Math.min(sections.length, standardOrder.length) > 0.8,
283
- };
284
- }
285
- /**
286
- * Count overly formal language patterns
287
- * @param content Text content
288
- * @returns Count of formal language indicators
289
- */
290
- countOverlyFormalLanguage(content) {
291
- const formalPatterns = [
292
- /furthermore/gi,
293
- /moreover/gi,
294
- /in addition/gi,
295
- /consequently/gi,
296
- /subsequently/gi,
297
- /comprehensive/gi,
298
- /sophisticated/gi,
299
- /facilitate/gi,
300
- /utilize/gi,
301
- /implement.*functionality/gi,
302
- ];
303
- let count = 0;
304
- for (const pattern of formalPatterns) {
305
- const matches = content.match(pattern);
306
- if (matches) {
307
- count += matches.length;
308
- }
309
- }
310
- return count;
311
- }
312
- /**
313
- * Check for perfect grammar indicators
314
- * @param content Text content
315
- * @returns True if grammar seems too perfect
316
- */
317
- checkPerfectGrammar(content) {
318
- // Simple heuristics for "too perfect" grammar
319
- const sentences = content.split(/[.!?]+/).filter((s) => s.trim().length > 10);
320
- if (sentences.length < 5)
321
- return false;
322
- const indicators = {
323
- noContractions: !content.match(/\b(don't|won't|can't|it's|you're|we're)\b/i),
324
- consistentCapitalization: this.hasConsistentCapitalization(content),
325
- noTypos: !content.match(/\b(teh|recieve|seperate|definately)\b/i),
326
- perfectPunctuation: this.hasPerfectPunctuation(content),
327
- };
328
- const positiveCount = Object.values(indicators).filter(Boolean).length;
329
- return positiveCount >= 3;
330
- }
331
- /**
332
- * Count template phrases
333
- * @param content Text content
334
- * @returns Number of template phrases
335
- */
336
- countTemplatePhrases(content) {
337
- const templatePhrases = [
338
- /this project provides/gi,
339
- /easy to use/gi,
340
- /getting started is simple/gi,
341
- /follow these steps/gi,
342
- /comprehensive solution/gi,
343
- /powerful and flexible/gi,
344
- /designed to be/gi,
345
- /built with.*in mind/gi,
346
- ];
347
- let count = 0;
348
- for (const pattern of templatePhrases) {
349
- const matches = content.match(pattern);
350
- if (matches) {
351
- count += matches.length;
352
- }
353
- }
354
- return count;
355
- }
356
- /**
357
- * Check for comprehensive structure
358
- * @param content Text content
359
- * @returns True if structure is suspiciously comprehensive
360
- */
361
- checkComprehensiveStructure(content) {
362
- const sections = this.extractSections(content);
363
- return sections.length > 8 && content.length > 2000;
364
- }
365
- /**
366
- * Check for technical precision
367
- * @param content Text content
368
- * @returns True if technically precise in AI-like way
369
- */
370
- checkTechnicalPrecision(content) {
371
- const technicalIndicators = [
372
- /version \d+\.\d+\.\d+/gi,
373
- /node\.js \d+\.\d+/gi,
374
- /typescript \d+\.\d+/gi,
375
- /npm install/gi,
376
- /yarn add/gi,
377
- /pnpm install/gi,
378
- ];
379
- let count = 0;
380
- for (const pattern of technicalIndicators) {
381
- const matches = content.match(pattern);
382
- if (matches) {
383
- count += matches.length;
384
- }
385
- }
386
- return count > 5;
387
- }
388
- /**
389
- * Check for lack of personality
390
- * @param content Text content
391
- * @returns True if lacks personal touches
392
- */
393
- checkLackOfPersonality(content) {
394
- const personalityIndicators = [
395
- /\bi\b/gi, // First person
396
- /my/gi,
397
- /personally/gi,
398
- /in my opinion/gi,
399
- /i think/gi,
400
- /i believe/gi,
401
- /hope/gi,
402
- /feel free/gi,
403
- ];
404
- let count = 0;
405
- for (const pattern of personalityIndicators) {
406
- const matches = content.match(pattern);
407
- if (matches) {
408
- count += matches.length;
409
- }
410
- }
411
- return count < 3 && content.length > 1000;
412
- }
413
- /**
414
- * Extract comment patterns from code
415
- * @param content Code content
416
- * @returns Comment pattern analysis
417
- */
418
- extractCommentPatterns(content) {
419
- const lines = content.split('\n');
420
- const commentLines = lines.filter((line) => {
421
- const trimmed = line.trim();
422
- return trimmed.startsWith('//') || trimmed.startsWith('/*') || trimmed.startsWith('*');
423
- });
424
- return {
425
- density: commentLines.length / lines.length,
426
- avgLength: commentLines.reduce((sum, line) => sum + line.length, 0) / (commentLines.length || 1),
427
- patterns: commentLines.map((line) => line.trim().substring(0, 20)), // First 20 chars
428
- };
429
- }
430
- /**
431
- * Calculate uniformity of comment patterns across files
432
- * @param patterns Array of comment patterns
433
- * @returns Uniformity score
434
- */
435
- calculateCommentPatternUniformity(patterns) {
436
- if (patterns.length < 2)
437
- return 0;
438
- const densities = patterns.map((p) => p.density);
439
- const avgLengths = patterns.map((p) => p.avgLength);
440
- const densityUniformity = this.calculateUniformity(densities);
441
- const lengthUniformity = this.calculateUniformity(avgLengths);
442
- return (densityUniformity + lengthUniformity) / 2;
443
- }
444
- /**
445
- * Find common comment patterns
446
- * @param patterns Array of comment patterns
447
- * @returns Common patterns found
448
- */
449
- findCommonCommentPatterns(patterns) {
450
- const allPatterns = patterns.flatMap((p) => p.patterns);
451
- const patternCounts = new Map();
452
- allPatterns.forEach((pattern) => {
453
- patternCounts.set(pattern, (patternCounts.get(pattern) || 0) + 1);
454
- });
455
- return Array.from(patternCounts.entries())
456
- .filter(([, count]) => count > 1)
457
- .map(([pattern]) => pattern)
458
- .slice(0, 10); // Top 10 common patterns
459
- }
460
- /**
461
- * Check for consistent capitalization
462
- * @param content Text content
463
- * @returns True if capitalization is very consistent
464
- */
465
- hasConsistentCapitalization(content) {
466
- const sentences = content.split(/[.!?]+/).filter((s) => s.trim().length > 5);
467
- if (sentences.length < 3)
468
- return false;
469
- const capitalizedSentences = sentences.filter((s) => {
470
- const trimmed = s.trim();
471
- return trimmed.length > 0 && trimmed[0] === trimmed[0].toUpperCase();
472
- });
473
- return capitalizedSentences.length / sentences.length > 0.95;
474
- }
475
- /**
476
- * Check for perfect punctuation
477
- * @param content Text content
478
- * @returns True if punctuation is suspiciously perfect
479
- */
480
- hasPerfectPunctuation(content) {
481
- // Check for consistent spacing after punctuation
482
- const punctuationSpacing = content.match(/[.!?]\s{2,}/g);
483
- const inconsistentSpacing = content.match(/[.!?][^\s]/g);
484
- return !inconsistentSpacing && (punctuationSpacing?.length || 0) > 0;
485
- }
486
- /**
487
- * Create empty result for error cases
488
- * @returns Empty documentation analysis result
489
- */
490
- createEmptyResult() {
491
- return {
492
- analyzer: 'documentation',
493
- patterns: [],
494
- metadata: {
495
- filesAnalyzed: 0,
496
- hasReadme: false,
497
- avgCommentDensity: 0,
498
- },
499
- };
500
- }
501
- }
502
- exports.DocumentationAnalyzer = DocumentationAnalyzer;
503
- //# sourceMappingURL=DocumentationAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocumentationAnalyzer.js","sourceRoot":"","sources":["../../../../src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- /**
2
- * @fileoverview Git history analyzer for detecting AI-generated code patterns.
3
- *
4
- * This analyzer examines git commit history, patterns, and metadata to identify
5
- * characteristics commonly associated with AI-generated code submissions.
6
- */
7
- import type { CodeSubmission, GitAnalysisResult } from '../types/DetectionTypes';
8
- import { BaseAnalyzer } from './BaseAnalyzer';
9
- /**
10
- * Analyzer for git history patterns that may indicate AI generation
11
- */
12
- export declare class GitHistoryAnalyzer extends BaseAnalyzer {
13
- /**
14
- * Get analyzer name
15
- */
16
- getAnalyzerName(): string;
17
- /**
18
- * Analyze git history for AI-generated patterns
19
- * @param submission Code submission to analyze
20
- * @returns Git analysis result
21
- */
22
- analyze(submission: CodeSubmission): Promise<GitAnalysisResult>;
23
- /**
24
- * Detect bulk file creation in initial commit
25
- * @param commits Array of git commits
26
- * @returns Pattern detection result
27
- */
28
- private detectBulkFileCreation;
29
- /**
30
- * Detect AI-generated commit message patterns
31
- * @param commits Array of git commits
32
- * @returns Pattern detection result
33
- */
34
- private detectAICommitMessages;
35
- /**
36
- * Detect absence of typical debugging/development commits
37
- * @param commits Array of git commits
38
- * @returns Pattern detection result
39
- */
40
- private detectDebuggingAbsence;
41
- /**
42
- * Detect perfect initial commit without development artifacts
43
- * @param commits Array of git commits
44
- * @returns Pattern detection result
45
- */
46
- private detectPerfectInitialCommit;
47
- /**
48
- * Check if commit has complete project structure
49
- * @param files Array of file paths
50
- * @returns True if has complete structure
51
- */
52
- private hasCompleteProjectStructure;
53
- /**
54
- * Check if commit has configuration files
55
- * @param files Array of file paths
56
- * @returns True if has config files
57
- */
58
- private hasConfigurationFiles;
59
- /**
60
- * Check if commit has documentation files
61
- * @param files Array of file paths
62
- * @returns True if has documentation
63
- */
64
- private hasDocumentationFiles;
65
- /**
66
- * Check if commit has test files
67
- * @param files Array of file paths
68
- * @returns True if has tests
69
- */
70
- private hasTestFiles;
71
- /**
72
- * Check if initial commit message is "perfect" (suggests AI)
73
- * @param message Commit message
74
- * @returns True if message seems AI-generated
75
- */
76
- private isPerfectInitialMessage;
77
- /**
78
- * Categorize files by type
79
- * @param files Array of file paths
80
- * @returns Object with file type counts
81
- */
82
- private categorizeFiles;
83
- /**
84
- * Create empty result for error cases
85
- * @returns Empty git analysis result
86
- */
87
- private createEmptyResult;
88
- }