codereview-aia 0.1.3 → 0.1.4

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 (549) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +738 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +209 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +266 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +382 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  193. package/dist/runtime/preprod/webCheck.js +98 -0
  194. package/dist/runtime/preprod/webCheck.js.map +1 -0
  195. package/dist/runtime/proxyConfig.d.ts +6 -0
  196. package/dist/runtime/proxyConfig.js +86 -0
  197. package/dist/runtime/proxyConfig.js.map +1 -0
  198. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  199. package/dist/runtime/proxyEnvironment.js +63 -0
  200. package/dist/runtime/proxyEnvironment.js.map +1 -0
  201. package/dist/runtime/reportMerge.d.ts +30 -0
  202. package/dist/runtime/reportMerge.js +70 -0
  203. package/dist/runtime/reportMerge.js.map +1 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  205. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  206. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  207. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  208. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  209. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  210. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  211. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  212. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  213. package/dist/runtime/reviewPipeline.d.ts +47 -0
  214. package/dist/runtime/reviewPipeline.js +161 -0
  215. package/dist/runtime/reviewPipeline.js.map +1 -0
  216. package/dist/runtime/runAiCodeReview.d.ts +28 -0
  217. package/dist/runtime/runAiCodeReview.js +373 -0
  218. package/dist/runtime/runAiCodeReview.js.map +1 -0
  219. package/dist/runtime/runtimeConfig.d.ts +4 -0
  220. package/dist/runtime/runtimeConfig.js +7 -0
  221. package/dist/runtime/runtimeConfig.js.map +1 -0
  222. package/dist/runtime/ui/Layout.d.ts +11 -0
  223. package/dist/runtime/ui/Layout.js +47 -0
  224. package/dist/runtime/ui/Layout.js.map +1 -0
  225. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  226. package/dist/runtime/ui/RuntimeApp.js +172 -0
  227. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  228. package/dist/runtime/ui/inkModules.d.ts +10 -0
  229. package/dist/runtime/ui/inkModules.js +63 -0
  230. package/dist/runtime/ui/inkModules.js.map +1 -0
  231. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  232. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  233. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  234. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  235. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  236. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
  238. package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
  239. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  241. package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
  242. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  244. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  245. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  246. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  247. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  248. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  250. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  251. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  253. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  254. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  255. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  256. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  257. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  259. package/dist/strategies/ReviewStrategy.js +24 -0
  260. package/dist/strategies/ReviewStrategy.js.map +1 -0
  261. package/dist/strategies/StrategyFactory.d.ts +19 -0
  262. package/dist/strategies/StrategyFactory.js +72 -0
  263. package/dist/strategies/StrategyFactory.js.map +1 -0
  264. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  265. package/dist/strategies/index.js +30 -0
  266. package/dist/strategies/index.js.map +1 -0
  267. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  268. package/dist/tokenizers/baseTokenizer.js +48 -0
  269. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  270. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  271. package/dist/tokenizers/gptTokenizer.js +28 -0
  272. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  273. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  274. package/dist/tokenizers/index.js +24 -0
  275. package/dist/tokenizers/index.js.map +1 -0
  276. package/dist/types/apiResponses.d.ts +39 -0
  277. package/dist/types/apiResponses.js +9 -0
  278. package/dist/types/apiResponses.js.map +1 -0
  279. package/dist/types/cli.d.ts +22 -0
  280. package/dist/types/cli.js +3 -0
  281. package/dist/types/cli.js.map +1 -0
  282. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  283. package/dist/types/common.js +14 -0
  284. package/dist/types/common.js.map +1 -0
  285. package/dist/types/configuration.d.ts +682 -0
  286. package/dist/types/configuration.js +65 -0
  287. package/dist/types/configuration.js.map +1 -0
  288. package/dist/types/review.d.ts +318 -0
  289. package/dist/types/review.js +8 -0
  290. package/dist/types/review.js.map +1 -0
  291. package/dist/types/reviewSchema.d.ts +543 -0
  292. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  293. package/dist/types/reviewSchema.js.map +1 -0
  294. package/dist/types/structuredReview.d.ts +119 -0
  295. package/dist/types/structuredReview.js +6 -0
  296. package/dist/types/structuredReview.js.map +1 -0
  297. package/dist/types/tokenAnalysis.d.ts +44 -0
  298. package/dist/types/tokenAnalysis.js +4 -0
  299. package/dist/types/tokenAnalysis.js.map +1 -0
  300. package/dist/utils/FileReader.d.ts +33 -0
  301. package/dist/utils/FileReader.js +88 -0
  302. package/dist/utils/FileReader.js.map +1 -0
  303. package/dist/utils/FileWriter.d.ts +26 -0
  304. package/dist/utils/FileWriter.js +76 -0
  305. package/dist/utils/FileWriter.js.map +1 -0
  306. package/dist/utils/PathGenerator.d.ts +30 -0
  307. package/dist/utils/PathGenerator.js +82 -0
  308. package/dist/utils/PathGenerator.js.map +1 -0
  309. package/dist/utils/api/apiUtils.d.ts +3 -0
  310. package/dist/utils/api/apiUtils.js +20 -0
  311. package/dist/utils/api/apiUtils.js.map +1 -0
  312. package/dist/utils/api/index.js +18 -0
  313. package/dist/utils/api/index.js.map +1 -0
  314. package/dist/utils/apiErrorHandler.d.ts +130 -0
  315. package/dist/utils/apiErrorHandler.js +256 -0
  316. package/dist/utils/apiErrorHandler.js.map +1 -0
  317. package/dist/utils/ciDataCollector.d.ts +51 -0
  318. package/dist/utils/ciDataCollector.js +197 -0
  319. package/dist/utils/ciDataCollector.js.map +1 -0
  320. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  321. package/dist/utils/codingTestConfigLoader.js +420 -0
  322. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  325. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  326. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  327. package/dist/utils/detection/frameworkDetector.js +850 -0
  328. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  329. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  330. package/dist/utils/detection/index.js +28 -0
  331. package/dist/utils/detection/index.js.map +1 -0
  332. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  333. package/dist/utils/detection/projectTypeDetector.js +469 -0
  334. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  335. package/dist/utils/diagramGenerator.d.ts +49 -0
  336. package/dist/utils/diagramGenerator.js +218 -0
  337. package/dist/utils/diagramGenerator.js.map +1 -0
  338. package/dist/utils/errorLogger.d.ts +24 -0
  339. package/dist/utils/errorLogger.js +59 -0
  340. package/dist/utils/errorLogger.js.map +1 -0
  341. package/dist/utils/estimationUtils.d.ts +139 -0
  342. package/dist/utils/estimationUtils.js +329 -0
  343. package/dist/utils/estimationUtils.js.map +1 -0
  344. package/dist/utils/fileFilters.d.ts +72 -0
  345. package/dist/utils/fileFilters.js +338 -0
  346. package/dist/utils/fileFilters.js.map +1 -0
  347. package/dist/utils/fileSystem.d.ts +22 -0
  348. package/dist/utils/fileSystem.js +45 -0
  349. package/dist/utils/fileSystem.js.map +1 -0
  350. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  351. package/dist/utils/index.js +52 -0
  352. package/dist/utils/index.js.map +1 -0
  353. package/dist/utils/logger.d.ts +77 -0
  354. package/dist/utils/logger.js +271 -0
  355. package/dist/utils/logger.js.map +1 -0
  356. package/dist/utils/pathValidator.d.ts +40 -0
  357. package/dist/utils/pathValidator.js +98 -0
  358. package/dist/utils/pathValidator.js.map +1 -0
  359. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  360. package/dist/utils/priorityFilter.js +54 -0
  361. package/dist/utils/priorityFilter.js.map +1 -0
  362. package/dist/utils/projectDocs.d.ts +47 -0
  363. package/dist/utils/projectDocs.js +158 -0
  364. package/dist/utils/projectDocs.js.map +1 -0
  365. package/dist/utils/promptPaths.d.ts +6 -0
  366. package/dist/utils/promptPaths.js +33 -0
  367. package/dist/utils/promptPaths.js.map +1 -0
  368. package/dist/utils/promptTemplateManager.d.ts +34 -0
  369. package/dist/utils/promptTemplateManager.js +141 -0
  370. package/dist/utils/promptTemplateManager.js.map +1 -0
  371. package/dist/utils/review/consolidateReview.d.ts +15 -0
  372. package/dist/utils/review/consolidateReview.js +481 -0
  373. package/dist/utils/review/consolidateReview.js.map +1 -0
  374. package/dist/utils/review/fixDisplay.d.ts +20 -0
  375. package/dist/utils/review/fixDisplay.js +84 -0
  376. package/dist/utils/review/fixDisplay.js.map +1 -0
  377. package/dist/utils/review/fixImplementation.d.ts +28 -0
  378. package/dist/utils/review/fixImplementation.js +60 -0
  379. package/dist/utils/review/fixImplementation.js.map +1 -0
  380. package/dist/utils/review/index.d.ts +13 -0
  381. package/dist/utils/review/index.js +50 -0
  382. package/dist/utils/review/index.js.map +1 -0
  383. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  384. package/dist/utils/review/interactiveProcessing.js +251 -0
  385. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  386. package/dist/utils/review/progressTracker.d.ts +106 -0
  387. package/dist/utils/review/progressTracker.js +227 -0
  388. package/dist/utils/review/progressTracker.js.map +1 -0
  389. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  390. package/dist/utils/review/reviewExtraction.js +324 -0
  391. package/dist/utils/review/reviewExtraction.js.map +1 -0
  392. package/dist/utils/review/types.d.ts +45 -0
  393. package/dist/utils/review/types.js +18 -0
  394. package/dist/utils/review/types.js.map +1 -0
  395. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  396. package/dist/utils/reviewActionHandler.js +34 -0
  397. package/dist/utils/reviewActionHandler.js.map +1 -0
  398. package/dist/utils/reviewParser.d.ts +34 -0
  399. package/dist/utils/reviewParser.js +218 -0
  400. package/dist/utils/reviewParser.js.map +1 -0
  401. package/dist/utils/sanitizer.d.ts +82 -0
  402. package/dist/utils/sanitizer.js +239 -0
  403. package/dist/utils/sanitizer.js.map +1 -0
  404. package/dist/utils/smartFileSelector.d.ts +50 -0
  405. package/dist/utils/smartFileSelector.js +261 -0
  406. package/dist/utils/smartFileSelector.js.map +1 -0
  407. package/dist/utils/templateLoader.d.ts +44 -0
  408. package/dist/utils/templateLoader.js +431 -0
  409. package/dist/utils/templateLoader.js.map +1 -0
  410. package/dist/utils/treeGenerator.d.ts +12 -0
  411. package/dist/utils/treeGenerator.js +133 -0
  412. package/dist/utils/treeGenerator.js.map +1 -0
  413. package/package.json +5 -2
  414. package/.cr-aia.yml +0 -23
  415. package/.crignore +0 -0
  416. package/docs/opt-in-full-context.md +0 -27
  417. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  418. package/src/analysis/FindingsExtractor.ts +0 -431
  419. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  420. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  421. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  422. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  423. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  424. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  425. package/src/analysis/context/ReviewContext.ts +0 -378
  426. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  427. package/src/clients/base/abstractClient.ts +0 -190
  428. package/src/clients/base/httpClient.ts +0 -160
  429. package/src/clients/base/modelDetection.ts +0 -107
  430. package/src/clients/base/responseProcessor.ts +0 -586
  431. package/src/clients/factory/clientFactory.ts +0 -55
  432. package/src/clients/implementations/openRouterClient.ts +0 -413
  433. package/src/clients/openRouterClient.ts +0 -870
  434. package/src/clients/utils/directoryStructure.ts +0 -52
  435. package/src/clients/utils/languageDetection.ts +0 -44
  436. package/src/clients/utils/promptFormatter.ts +0 -182
  437. package/src/clients/utils/tokenCounter.ts +0 -297
  438. package/src/core/ApiClientSelector.ts +0 -37
  439. package/src/core/ConfigurationService.ts +0 -591
  440. package/src/core/ConsolidationService.ts +0 -423
  441. package/src/core/InteractiveDisplayManager.ts +0 -81
  442. package/src/core/OutputManager.ts +0 -275
  443. package/src/core/ReviewGenerator.ts +0 -140
  444. package/src/core/fileDiscovery.ts +0 -237
  445. package/src/core/handlers/EstimationHandler.ts +0 -104
  446. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  447. package/src/core/handlers/OutputHandler.ts +0 -125
  448. package/src/core/handlers/ReviewExecutor.ts +0 -104
  449. package/src/core/reviewOrchestrator.ts +0 -333
  450. package/src/core/utils/ModelInfoUtils.ts +0 -56
  451. package/src/formatters/utils/IssueFormatters.ts +0 -83
  452. package/src/formatters/utils/JsonFormatter.ts +0 -77
  453. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  454. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  455. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  456. package/src/index.ts +0 -25
  457. package/src/plugins/PluginInterface.ts +0 -50
  458. package/src/plugins/PluginManager.ts +0 -126
  459. package/src/prompts/PromptManager.ts +0 -69
  460. package/src/prompts/cache/PromptCache.ts +0 -50
  461. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  462. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  463. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  464. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  465. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  466. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  467. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  468. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  469. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  470. package/src/runtime/auth/service.ts +0 -58
  471. package/src/runtime/auth/session.ts +0 -103
  472. package/src/runtime/auth/types.ts +0 -11
  473. package/src/runtime/cliEntry.ts +0 -214
  474. package/src/runtime/debug/logManager.ts +0 -37
  475. package/src/runtime/errors.ts +0 -13
  476. package/src/runtime/fileCollector.ts +0 -495
  477. package/src/runtime/manifest.ts +0 -64
  478. package/src/runtime/openrouterProxy.ts +0 -45
  479. package/src/runtime/preprod/webCheck.ts +0 -104
  480. package/src/runtime/proxyConfig.ts +0 -94
  481. package/src/runtime/proxyEnvironment.ts +0 -71
  482. package/src/runtime/reportMerge.ts +0 -102
  483. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  484. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  485. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  486. package/src/runtime/reviewPipeline.ts +0 -200
  487. package/src/runtime/runAiCodeReview.ts +0 -308
  488. package/src/runtime/runtimeConfig.ts +0 -5
  489. package/src/runtime/ui/Layout.tsx +0 -57
  490. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  491. package/src/runtime/ui/inkModules.ts +0 -73
  492. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  493. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  494. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  495. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  496. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  497. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  498. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  499. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  500. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  501. package/src/strategies/ReviewStrategy.ts +0 -64
  502. package/src/strategies/StrategyFactory.ts +0 -79
  503. package/src/tokenizers/baseTokenizer.ts +0 -61
  504. package/src/tokenizers/gptTokenizer.ts +0 -27
  505. package/src/types/apiResponses.ts +0 -40
  506. package/src/types/cli.ts +0 -24
  507. package/src/types/configuration.ts +0 -201
  508. package/src/types/handlebars.d.ts +0 -5
  509. package/src/types/patch.d.ts +0 -25
  510. package/src/types/review.ts +0 -312
  511. package/src/types/reviewContext.d.ts +0 -65
  512. package/src/types/structuredReview.ts +0 -167
  513. package/src/types/tokenAnalysis.ts +0 -56
  514. package/src/utils/FileReader.ts +0 -93
  515. package/src/utils/FileWriter.ts +0 -76
  516. package/src/utils/PathGenerator.ts +0 -97
  517. package/src/utils/api/apiUtils.ts +0 -14
  518. package/src/utils/apiErrorHandler.ts +0 -287
  519. package/src/utils/ciDataCollector.ts +0 -252
  520. package/src/utils/codingTestConfigLoader.ts +0 -466
  521. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  522. package/src/utils/detection/frameworkDetector.ts +0 -879
  523. package/src/utils/detection/projectTypeDetector.ts +0 -518
  524. package/src/utils/diagramGenerator.ts +0 -206
  525. package/src/utils/errorLogger.ts +0 -60
  526. package/src/utils/estimationUtils.ts +0 -407
  527. package/src/utils/fileFilters.ts +0 -373
  528. package/src/utils/fileSystem.ts +0 -57
  529. package/src/utils/logger.ts +0 -290
  530. package/src/utils/pathValidator.ts +0 -98
  531. package/src/utils/projectDocs.ts +0 -189
  532. package/src/utils/promptPaths.ts +0 -29
  533. package/src/utils/promptTemplateManager.ts +0 -157
  534. package/src/utils/review/consolidateReview.ts +0 -553
  535. package/src/utils/review/fixDisplay.ts +0 -100
  536. package/src/utils/review/fixImplementation.ts +0 -61
  537. package/src/utils/review/index.ts +0 -36
  538. package/src/utils/review/interactiveProcessing.ts +0 -294
  539. package/src/utils/review/progressTracker.ts +0 -296
  540. package/src/utils/review/reviewExtraction.ts +0 -382
  541. package/src/utils/review/types.ts +0 -46
  542. package/src/utils/reviewParser.ts +0 -253
  543. package/src/utils/sanitizer.ts +0 -238
  544. package/src/utils/smartFileSelector.ts +0 -255
  545. package/src/utils/templateLoader.ts +0 -514
  546. package/src/utils/treeGenerator.ts +0 -153
  547. package/tsconfig.build.json +0 -14
  548. package/tsconfig.json +0 -59
  549. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Git history analyzer for detecting AI-generated code patterns.
4
+ *
5
+ * This analyzer examines git commit history, patterns, and metadata to identify
6
+ * characteristics commonly associated with AI-generated code submissions.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.GitHistoryAnalyzer = void 0;
10
+ const BaseAnalyzer_1 = require("./BaseAnalyzer");
11
+ /**
12
+ * Analyzer for git history patterns that may indicate AI generation
13
+ */
14
+ class GitHistoryAnalyzer extends BaseAnalyzer_1.BaseAnalyzer {
15
+ /**
16
+ * Get analyzer name
17
+ */
18
+ getAnalyzerName() {
19
+ return 'git';
20
+ }
21
+ /**
22
+ * Analyze git history for AI-generated patterns
23
+ * @param submission Code submission to analyze
24
+ * @returns Git analysis result
25
+ */
26
+ async analyze(submission) {
27
+ this.startTimer();
28
+ const patterns = [];
29
+ try {
30
+ const commits = submission.repository.commits;
31
+ if (commits.length === 0) {
32
+ return this.createEmptyResult();
33
+ }
34
+ // Pattern H1.1: Simultaneous File Creation
35
+ const bulkCreationResult = this.detectBulkFileCreation(commits);
36
+ if (bulkCreationResult.detected) {
37
+ patterns.push(this.createDetectedPattern('H1.1', 'Simultaneous File Creation', 'high', bulkCreationResult.score, 'Initial commit contains unusually large number of files, suggesting bulk generation', bulkCreationResult.evidence || {}));
38
+ }
39
+ // Pattern H1.2: AI-Generated Commit Messages
40
+ const aiCommitResult = this.detectAICommitMessages(commits);
41
+ if (aiCommitResult.detected) {
42
+ patterns.push(this.createDetectedPattern('H1.2', 'AI-Generated Commit Messages', 'high', aiCommitResult.score, 'Commit messages follow AI-generated patterns and templates', aiCommitResult.evidence || {}));
43
+ }
44
+ // Pattern H1.3: Absence of Debugging Commits
45
+ const debuggingAbsenceResult = this.detectDebuggingAbsence(commits);
46
+ if (debuggingAbsenceResult.detected) {
47
+ patterns.push(this.createDetectedPattern('H1.3', 'Missing Developer Workflow', 'high', debuggingAbsenceResult.score, 'Lacks typical developer debugging and iteration patterns', debuggingAbsenceResult.evidence || {}));
48
+ }
49
+ // Pattern H1.4: Perfect Initial Commit
50
+ const perfectInitialResult = this.detectPerfectInitialCommit(commits);
51
+ if (perfectInitialResult.detected) {
52
+ patterns.push(this.createDetectedPattern('H1.4', 'Perfect Initial Commit', 'high', perfectInitialResult.score, 'Initial commit contains complete, working project without typical development artifacts', perfectInitialResult.evidence || {}));
53
+ }
54
+ return {
55
+ analyzer: 'git-history',
56
+ patterns,
57
+ metadata: {
58
+ totalCommits: commits.length,
59
+ analysisTime: this.getElapsedTime(),
60
+ sufficientHistory: commits.length >= 3,
61
+ },
62
+ };
63
+ }
64
+ catch (error) {
65
+ console.error('Error in GitHistoryAnalyzer:', error);
66
+ return this.createEmptyResult();
67
+ }
68
+ }
69
+ /**
70
+ * Detect bulk file creation in initial commit
71
+ * @param commits Array of git commits
72
+ * @returns Pattern detection result
73
+ */
74
+ detectBulkFileCreation(commits) {
75
+ if (commits.length === 0) {
76
+ return this.createPatternResult(false, 0);
77
+ }
78
+ const initialCommit = commits[0];
79
+ const fileCount = initialCommit.changedFiles.length;
80
+ // Threshold: >15 files in initial commit is suspicious
81
+ // More files = higher suspicion
82
+ if (fileCount > 15) {
83
+ const score = Math.min(0.95, 0.6 + (fileCount - 15) * 0.02);
84
+ return this.createPatternResult(true, score, {
85
+ fileCount,
86
+ commitHash: initialCommit.hash,
87
+ message: initialCommit.message,
88
+ files: initialCommit.changedFiles.slice(0, 10), // First 10 files for evidence
89
+ timestamp: initialCommit.timestamp,
90
+ threshold: 15,
91
+ });
92
+ }
93
+ return this.createPatternResult(false, 0);
94
+ }
95
+ /**
96
+ * Detect AI-generated commit message patterns
97
+ * @param commits Array of git commits
98
+ * @returns Pattern detection result
99
+ */
100
+ detectAICommitMessages(commits) {
101
+ const aiPatterns = [
102
+ // Conventional commit patterns (overly consistent usage)
103
+ /^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .{20,}/,
104
+ // Template-like descriptive messages
105
+ /^(Add|Update|Fix|Implement|Create) .+ (feature|functionality|component|module)$/i,
106
+ // Overly formal initial commit messages
107
+ /^Initial (commit|implementation) with (complete|full) .+ structure$/i,
108
+ // Perfect grammar and structure
109
+ /^(Implement|Add|Create) comprehensive .+ with .+ support$/i,
110
+ // Emoji usage patterns common in AI
111
+ /^(✨|🚀|🎉|🔧|📝|🐛|💡) /,
112
+ ];
113
+ let matches = 0;
114
+ const evidence = [];
115
+ const totalCommits = commits.length;
116
+ commits.forEach((commit, index) => {
117
+ const isAIPattern = aiPatterns.some((pattern) => pattern.test(commit.message));
118
+ if (isAIPattern) {
119
+ matches++;
120
+ evidence.push({
121
+ hash: commit.hash,
122
+ message: commit.message,
123
+ timestamp: commit.timestamp,
124
+ position: index === 0 ? 'initial' : index === totalCommits - 1 ? 'latest' : 'middle',
125
+ });
126
+ }
127
+ });
128
+ const ratio = matches / totalCommits;
129
+ // >70% of commits match AI patterns is highly suspicious
130
+ if (ratio > 0.7 && totalCommits >= 3) {
131
+ const score = Math.min(0.95, 0.6 + ratio * 0.3);
132
+ return this.createPatternResult(true, score, {
133
+ matchingCommits: matches,
134
+ totalCommits,
135
+ ratio,
136
+ examples: evidence.slice(0, 5), // Top 5 examples
137
+ patterns: aiPatterns.map((p) => p.source),
138
+ });
139
+ }
140
+ return this.createPatternResult(false, ratio * 0.4); // Partial score for moderate usage
141
+ }
142
+ /**
143
+ * Detect absence of typical debugging/development commits
144
+ * @param commits Array of git commits
145
+ * @returns Pattern detection result
146
+ */
147
+ detectDebuggingAbsence(commits) {
148
+ if (commits.length < 3) {
149
+ return this.createPatternResult(false, 0); // Need sufficient history
150
+ }
151
+ const developmentPatterns = [
152
+ // Work in progress indicators
153
+ /\bwip\b/i,
154
+ /work.?in.?progress/i,
155
+ // Quick fixes and debugging
156
+ /\bfix\b(?!:)/i, // "fix" but not "fix:" (conventional commits)
157
+ /\bbug\b/i,
158
+ /\bdebug\b/i,
159
+ /oops/i,
160
+ /typo/i,
161
+ // Experimental work
162
+ /test/i,
163
+ /experiment/i,
164
+ /try/i,
165
+ /attempt/i,
166
+ // Informal language
167
+ /\btodo\b/i,
168
+ /\bfixme\b/i,
169
+ /wtf/i,
170
+ /hack/i,
171
+ ];
172
+ let humanLikeCommits = 0;
173
+ const totalCommits = commits.length;
174
+ commits.forEach((commit) => {
175
+ const isHumanLike = developmentPatterns.some((pattern) => pattern.test(commit.message));
176
+ if (isHumanLike) {
177
+ humanLikeCommits++;
178
+ }
179
+ });
180
+ const humanRatio = humanLikeCommits / totalCommits;
181
+ // Very low ratio of human-like commits suggests AI generation
182
+ if (humanRatio < 0.1 && totalCommits >= 5) {
183
+ const score = Math.min(0.88, 0.5 + (0.1 - humanRatio) * 3);
184
+ return this.createPatternResult(true, score, {
185
+ humanLikeCommits,
186
+ totalCommits,
187
+ humanRatio,
188
+ missingPatterns: developmentPatterns.map((p) => p.source),
189
+ threshold: 0.1,
190
+ });
191
+ }
192
+ return this.createPatternResult(false, 0);
193
+ }
194
+ /**
195
+ * Detect perfect initial commit without development artifacts
196
+ * @param commits Array of git commits
197
+ * @returns Pattern detection result
198
+ */
199
+ detectPerfectInitialCommit(commits) {
200
+ if (commits.length === 0) {
201
+ return this.createPatternResult(false, 0);
202
+ }
203
+ const initialCommit = commits[0];
204
+ const fileCount = initialCommit.changedFiles.length;
205
+ // Indicators of "perfect" initial commit
206
+ const indicators = {
207
+ largeFileCount: fileCount > 20,
208
+ hasCompleteStructure: this.hasCompleteProjectStructure(initialCommit.changedFiles),
209
+ hasConfigFiles: this.hasConfigurationFiles(initialCommit.changedFiles),
210
+ hasDocumentation: this.hasDocumentationFiles(initialCommit.changedFiles),
211
+ hasTests: this.hasTestFiles(initialCommit.changedFiles),
212
+ perfectMessage: this.isPerfectInitialMessage(initialCommit.message),
213
+ };
214
+ const indicatorCount = Object.values(indicators).filter(Boolean).length;
215
+ const totalIndicators = Object.keys(indicators).length;
216
+ // If most indicators are present, it suggests AI generation
217
+ if (indicatorCount >= 4) {
218
+ const score = Math.min(0.92, 0.5 + (indicatorCount / totalIndicators) * 0.4);
219
+ return this.createPatternResult(true, score, {
220
+ indicators,
221
+ indicatorCount,
222
+ totalIndicators,
223
+ fileCount,
224
+ commitMessage: initialCommit.message,
225
+ fileTypes: this.categorizeFiles(initialCommit.changedFiles),
226
+ });
227
+ }
228
+ return this.createPatternResult(false, (indicatorCount / totalIndicators) * 0.3);
229
+ }
230
+ /**
231
+ * Check if commit has complete project structure
232
+ * @param files Array of file paths
233
+ * @returns True if has complete structure
234
+ */
235
+ hasCompleteProjectStructure(files) {
236
+ const structureFiles = [
237
+ 'package.json',
238
+ 'tsconfig.json',
239
+ 'webpack.config.js',
240
+ 'vite.config.js',
241
+ 'babel.config.js',
242
+ '.eslintrc',
243
+ '.prettierrc',
244
+ 'jest.config.js',
245
+ ];
246
+ const foundStructureFiles = files.filter((file) => structureFiles.some((sf) => file.endsWith(sf))).length;
247
+ return foundStructureFiles >= 3;
248
+ }
249
+ /**
250
+ * Check if commit has configuration files
251
+ * @param files Array of file paths
252
+ * @returns True if has config files
253
+ */
254
+ hasConfigurationFiles(files) {
255
+ const configPatterns = [/\.config\.(js|ts|json)$/, /^\.env/, /^\.git/, /^\.vscode/, /^\.idea/];
256
+ return files.some((file) => configPatterns.some((pattern) => pattern.test(file)));
257
+ }
258
+ /**
259
+ * Check if commit has documentation files
260
+ * @param files Array of file paths
261
+ * @returns True if has documentation
262
+ */
263
+ hasDocumentationFiles(files) {
264
+ const docPatterns = [/README/i, /CHANGELOG/i, /LICENSE/i, /CONTRIBUTING/i, /\.md$/];
265
+ return files.some((file) => docPatterns.some((pattern) => pattern.test(file)));
266
+ }
267
+ /**
268
+ * Check if commit has test files
269
+ * @param files Array of file paths
270
+ * @returns True if has tests
271
+ */
272
+ hasTestFiles(files) {
273
+ const testPatterns = [/\.(test|spec)\.(js|ts|jsx|tsx)$/, /^test\//, /^tests\//, /__tests__/];
274
+ return files.some((file) => testPatterns.some((pattern) => pattern.test(file)));
275
+ }
276
+ /**
277
+ * Check if initial commit message is "perfect" (suggests AI)
278
+ * @param message Commit message
279
+ * @returns True if message seems AI-generated
280
+ */
281
+ isPerfectInitialMessage(message) {
282
+ const perfectPatterns = [
283
+ /^Initial commit with complete .+ implementation$/i,
284
+ /^feat: initial .+ setup with .+ integration$/i,
285
+ /^🎉 Initial release with comprehensive .+ support$/i,
286
+ /^Add complete .+ project structure$/i,
287
+ ];
288
+ return perfectPatterns.some((pattern) => pattern.test(message));
289
+ }
290
+ /**
291
+ * Categorize files by type
292
+ * @param files Array of file paths
293
+ * @returns Object with file type counts
294
+ */
295
+ categorizeFiles(files) {
296
+ const categories = {
297
+ source: 0,
298
+ config: 0,
299
+ test: 0,
300
+ documentation: 0,
301
+ assets: 0,
302
+ other: 0,
303
+ };
304
+ files.forEach((file) => {
305
+ if (/\.(js|ts|jsx|tsx|py|java|go|rb|php)$/.test(file)) {
306
+ categories.source++;
307
+ }
308
+ else if (/\.(json|yaml|yml|toml|ini|env)$/.test(file) || file.includes('config')) {
309
+ categories.config++;
310
+ }
311
+ else if (/\.(test|spec)\./.test(file) || file.includes('test')) {
312
+ categories.test++;
313
+ }
314
+ else if (/\.(md|txt|rst)$/.test(file) || /README|LICENSE|CHANGELOG/i.test(file)) {
315
+ categories.documentation++;
316
+ }
317
+ else if (/\.(png|jpg|jpeg|gif|svg|ico|woff|ttf)$/.test(file)) {
318
+ categories.assets++;
319
+ }
320
+ else {
321
+ categories.other++;
322
+ }
323
+ });
324
+ return categories;
325
+ }
326
+ /**
327
+ * Create empty result for error cases
328
+ * @returns Empty git analysis result
329
+ */
330
+ createEmptyResult() {
331
+ return {
332
+ analyzer: 'git-history',
333
+ patterns: [],
334
+ metadata: {
335
+ totalCommits: 0,
336
+ analysisTime: this.getElapsedTime(),
337
+ sufficientHistory: false,
338
+ },
339
+ };
340
+ }
341
+ }
342
+ exports.GitHistoryAnalyzer = GitHistoryAnalyzer;
343
+ //# sourceMappingURL=GitHistoryAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHistoryAnalyzer.js","sourceRoot":"","sources":["../../../../src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @fileoverview Main AI detection engine that orchestrates analysis across multiple analyzers.
3
+ *
4
+ * This module provides the central detection engine that coordinates various analyzers
5
+ * to determine if code was generated by AI, aggregating results and calculating confidence scores.
6
+ */
7
+ import type { CodeSubmission, DetectionConfig, DetectionResult } from '../types/DetectionTypes';
8
+ /**
9
+ * Core AI detection engine interface
10
+ */
11
+ export interface IAIDetectionEngine {
12
+ analyze(submission: CodeSubmission): Promise<DetectionResult>;
13
+ getConfig(): DetectionConfig;
14
+ setConfig(config: Partial<DetectionConfig>): void;
15
+ }
16
+ /**
17
+ * Main AI detection engine that orchestrates analysis
18
+ */
19
+ export declare class AIDetectionEngine implements IAIDetectionEngine {
20
+ private config;
21
+ private analyzers;
22
+ private cache;
23
+ /**
24
+ * Create a new AI detection engine
25
+ * @param config Detection configuration
26
+ */
27
+ constructor(config?: Partial<DetectionConfig>);
28
+ /**
29
+ * Analyze code submission for AI-generated patterns
30
+ * @param submission Code submission to analyze
31
+ * @returns Detection result with confidence score and patterns
32
+ */
33
+ analyze(submission: CodeSubmission): Promise<DetectionResult>;
34
+ /**
35
+ * Get current configuration
36
+ * @returns Current detection configuration
37
+ */
38
+ getConfig(): DetectionConfig;
39
+ /**
40
+ * Update configuration
41
+ * @param config Partial configuration to merge
42
+ */
43
+ setConfig(config: Partial<DetectionConfig>): void;
44
+ /**
45
+ * Validate detection configuration
46
+ * @param config Configuration to validate
47
+ */
48
+ private validateConfig;
49
+ /**
50
+ * Initialize all available analyzers
51
+ */
52
+ private initializeAnalyzers;
53
+ /**
54
+ * Get enabled analyzers based on configuration
55
+ * @returns Array of enabled analyzers
56
+ */
57
+ private getEnabledAnalyzers;
58
+ /**
59
+ * Run analyzer with timeout protection
60
+ * @param analyzer Analyzer to run
61
+ * @param submission Code submission
62
+ * @returns Analysis result or timeout error
63
+ */
64
+ private runAnalyzerWithTimeout;
65
+ /**
66
+ * Calculate overall confidence score from detected patterns
67
+ * @param patterns Array of detected patterns
68
+ * @returns Confidence score between 0.0 and 1.0
69
+ */
70
+ private calculateConfidenceScore;
71
+ /**
72
+ * Create analysis breakdown from results
73
+ * @param results Array of analysis results
74
+ * @returns Analysis breakdown object
75
+ */
76
+ private createAnalysisBreakdown;
77
+ /**
78
+ * Generate actionable recommendations based on detected patterns
79
+ * @param patterns Detected patterns
80
+ * @param isAIGenerated Whether code is determined to be AI-generated
81
+ * @returns Array of recommendation strings
82
+ */
83
+ private generateRecommendations;
84
+ /**
85
+ * Create detection metadata
86
+ * @param startTime Analysis start time
87
+ * @param warnings Array of warning messages
88
+ * @returns Detection metadata object
89
+ */
90
+ private createMetadata;
91
+ /**
92
+ * Generate cache key for a submission
93
+ * @param submission Code submission
94
+ * @returns Cache key string
95
+ */
96
+ private generateCacheKey;
97
+ /**
98
+ * Create error result for failed analyses
99
+ * @param startTime Analysis start time
100
+ * @param error Error that occurred
101
+ * @returns Error detection result
102
+ */
103
+ private createErrorResult;
104
+ }