couchloop-eq-mcp 1.0.3 → 1.0.5

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 (285) hide show
  1. package/README.md +24 -11
  2. package/dist/clients/shrinkChatClient.js +1 -1
  3. package/dist/clients/shrinkChatClient.js.map +1 -1
  4. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  5. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  6. package/dist/developer/analyzers/bloat-detector.js +483 -0
  7. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  8. package/dist/developer/backup/auto-backup.d.ts +96 -0
  9. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  10. package/dist/developer/backup/auto-backup.js +346 -0
  11. package/dist/developer/backup/auto-backup.js.map +1 -0
  12. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  13. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  14. package/dist/developer/blockers/package-blocker.js +224 -0
  15. package/dist/developer/blockers/package-blocker.js.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  17. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  18. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  19. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  21. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  22. package/dist/developer/evaluators/build-context-detector.js +258 -0
  23. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  25. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  26. package/dist/developer/evaluators/package-evaluator.js +278 -0
  27. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  28. package/dist/developer/guards/file-guardian.d.ts +79 -0
  29. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  30. package/dist/developer/guards/file-guardian.js +309 -0
  31. package/dist/developer/guards/file-guardian.js.map +1 -0
  32. package/dist/developer/managers/context-manager.d.ts +61 -0
  33. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  34. package/dist/developer/managers/context-manager.js +302 -0
  35. package/dist/developer/managers/context-manager.js.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  37. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  38. package/dist/developer/metrics/complexity-calculator.js +259 -0
  39. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  40. package/dist/developer/reports/review-summary.d.ts +49 -0
  41. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  42. package/dist/developer/reports/review-summary.js +249 -0
  43. package/dist/developer/reports/review-summary.js.map +1 -0
  44. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  45. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  46. package/dist/developer/scanners/review-assistant.js +374 -0
  47. package/dist/developer/scanners/review-assistant.js.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  49. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  50. package/dist/developer/scanners/secret-scanner.js +287 -0
  51. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  53. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  54. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  55. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  56. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  57. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  58. package/dist/developer/scanners/xss-detector.js +229 -0
  59. package/dist/developer/scanners/xss-detector.js.map +1 -0
  60. package/dist/developer/types/ai-errors.d.ts +34 -0
  61. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  62. package/dist/developer/types/ai-errors.js +271 -0
  63. package/dist/developer/types/ai-errors.js.map +1 -0
  64. package/dist/developer/types/package.d.ts +32 -0
  65. package/dist/developer/types/package.d.ts.map +1 -0
  66. package/dist/developer/types/package.js +5 -0
  67. package/dist/developer/types/package.js.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  69. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  70. package/dist/developer/updaters/dependency-updater.js +472 -0
  71. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  72. package/dist/developer/validators/cargo.d.ts +14 -0
  73. package/dist/developer/validators/cargo.d.ts.map +1 -0
  74. package/dist/developer/validators/cargo.js +132 -0
  75. package/dist/developer/validators/cargo.js.map +1 -0
  76. package/dist/developer/validators/gem.d.ts +14 -0
  77. package/dist/developer/validators/gem.d.ts.map +1 -0
  78. package/dist/developer/validators/gem.js +85 -0
  79. package/dist/developer/validators/gem.js.map +1 -0
  80. package/dist/developer/validators/go.d.ts +14 -0
  81. package/dist/developer/validators/go.d.ts.map +1 -0
  82. package/dist/developer/validators/go.js +138 -0
  83. package/dist/developer/validators/go.js.map +1 -0
  84. package/dist/developer/validators/maven.d.ts +14 -0
  85. package/dist/developer/validators/maven.d.ts.map +1 -0
  86. package/dist/developer/validators/maven.js +99 -0
  87. package/dist/developer/validators/maven.js.map +1 -0
  88. package/dist/developer/validators/npm.d.ts +14 -0
  89. package/dist/developer/validators/npm.d.ts.map +1 -0
  90. package/dist/developer/validators/npm.js +96 -0
  91. package/dist/developer/validators/npm.js.map +1 -0
  92. package/dist/developer/validators/nuget.d.ts +15 -0
  93. package/dist/developer/validators/nuget.d.ts.map +1 -0
  94. package/dist/developer/validators/nuget.js +107 -0
  95. package/dist/developer/validators/nuget.js.map +1 -0
  96. package/dist/developer/validators/pypi.d.ts +14 -0
  97. package/dist/developer/validators/pypi.d.ts.map +1 -0
  98. package/dist/developer/validators/pypi.js +118 -0
  99. package/dist/developer/validators/pypi.js.map +1 -0
  100. package/dist/developer/validators/registry-manager.d.ts +37 -0
  101. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  102. package/dist/developer/validators/registry-manager.js +89 -0
  103. package/dist/developer/validators/registry-manager.js.map +1 -0
  104. package/dist/developer/validators/version-checker.d.ts +145 -0
  105. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  106. package/dist/developer/validators/version-checker.js +529 -0
  107. package/dist/developer/validators/version-checker.js.map +1 -0
  108. package/dist/server/index.js.map +1 -1
  109. package/dist/server/middleware/auth.d.ts +7 -9
  110. package/dist/server/middleware/auth.d.ts.map +1 -1
  111. package/dist/server/middleware/auth.js.map +1 -1
  112. package/dist/tools/check-versions.d.ts +100 -0
  113. package/dist/tools/check-versions.d.ts.map +1 -0
  114. package/dist/tools/check-versions.js +328 -0
  115. package/dist/tools/check-versions.js.map +1 -0
  116. package/dist/tools/detect-code-smell.d.ts +9 -0
  117. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  118. package/dist/tools/detect-code-smell.js +231 -0
  119. package/dist/tools/detect-code-smell.js.map +1 -0
  120. package/dist/tools/index.d.ts +471 -0
  121. package/dist/tools/index.d.ts.map +1 -1
  122. package/dist/tools/index.js +178 -0
  123. package/dist/tools/index.js.map +1 -1
  124. package/dist/tools/journey.js +1 -1
  125. package/dist/tools/journey.js.map +1 -1
  126. package/dist/tools/pre-review-code.d.ts +71 -0
  127. package/dist/tools/pre-review-code.d.ts.map +1 -0
  128. package/dist/tools/pre-review-code.js +159 -0
  129. package/dist/tools/pre-review-code.js.map +1 -0
  130. package/dist/tools/preserve-context.d.ts +27 -0
  131. package/dist/tools/preserve-context.d.ts.map +1 -0
  132. package/dist/tools/preserve-context.js +98 -0
  133. package/dist/tools/preserve-context.js.map +1 -0
  134. package/dist/tools/protect-files.d.ts +224 -0
  135. package/dist/tools/protect-files.d.ts.map +1 -0
  136. package/dist/tools/protect-files.js +286 -0
  137. package/dist/tools/protect-files.js.map +1 -0
  138. package/dist/tools/scan-security.d.ts +38 -0
  139. package/dist/tools/scan-security.d.ts.map +1 -0
  140. package/dist/tools/scan-security.js +237 -0
  141. package/dist/tools/scan-security.js.map +1 -0
  142. package/dist/tools/validate_packages.d.ts +8 -0
  143. package/dist/tools/validate_packages.d.ts.map +1 -0
  144. package/dist/tools/validate_packages.js +159 -0
  145. package/dist/tools/validate_packages.js.map +1 -0
  146. package/dist/types/auth.d.ts +18 -18
  147. package/dist/types/auth.d.ts.map +1 -1
  148. package/dist/types/auth.js +91 -36
  149. package/dist/types/auth.js.map +1 -1
  150. package/dist/types/context.d.ts +46 -0
  151. package/dist/types/context.d.ts.map +1 -0
  152. package/dist/types/context.js +17 -0
  153. package/dist/types/context.js.map +1 -0
  154. package/dist/types/file-protection.d.ts +50 -0
  155. package/dist/types/file-protection.d.ts.map +1 -0
  156. package/dist/types/file-protection.js +9 -0
  157. package/dist/types/file-protection.js.map +1 -0
  158. package/dist/utils/errorHandler.d.ts.map +1 -1
  159. package/dist/utils/errorHandler.js +2 -1
  160. package/dist/utils/errorHandler.js.map +1 -1
  161. package/package.json +23 -2
  162. package/dist/db/migrate.d.ts +0 -4
  163. package/dist/db/migrate.d.ts.map +0 -1
  164. package/dist/db/migrate.js +0 -34
  165. package/dist/db/migrate.js.map +0 -1
  166. package/dist/db/migrations/schema.d.ts +0 -1074
  167. package/dist/db/migrations/schema.d.ts.map +0 -1
  168. package/dist/db/migrations/schema.js +0 -160
  169. package/dist/db/migrations/schema.js.map +0 -1
  170. package/dist/db/schema.d.ts +0 -1576
  171. package/dist/db/schema.d.ts.map +0 -1
  172. package/dist/db/schema.js +0 -204
  173. package/dist/db/schema.js.map +0 -1
  174. package/dist/db/seed.d.ts +0 -4
  175. package/dist/db/seed.d.ts.map +0 -1
  176. package/dist/db/seed.js +0 -57
  177. package/dist/db/seed.js.map +0 -1
  178. package/dist/db/seedOAuth.d.ts +0 -4
  179. package/dist/db/seedOAuth.d.ts.map +0 -1
  180. package/dist/db/seedOAuth.js +0 -76
  181. package/dist/db/seedOAuth.js.map +0 -1
  182. package/dist/governance/config.d.ts +0 -66
  183. package/dist/governance/config.d.ts.map +0 -1
  184. package/dist/governance/config.js +0 -238
  185. package/dist/governance/config.js.map +0 -1
  186. package/dist/governance/detectors/hallucination.d.ts +0 -61
  187. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  188. package/dist/governance/detectors/hallucination.js +0 -338
  189. package/dist/governance/detectors/hallucination.js.map +0 -1
  190. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  191. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  192. package/dist/governance/detectors/inconsistency.js +0 -548
  193. package/dist/governance/detectors/inconsistency.js.map +0 -1
  194. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  195. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  196. package/dist/governance/detectors/toneDrift.js +0 -421
  197. package/dist/governance/detectors/toneDrift.js.map +0 -1
  198. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  199. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  200. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  201. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  202. package/dist/governance/evaluationEngine.d.ts +0 -112
  203. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  204. package/dist/governance/evaluationEngine.js +0 -265
  205. package/dist/governance/evaluationEngine.js.map +0 -1
  206. package/dist/governance/intervention.d.ts +0 -81
  207. package/dist/governance/intervention.d.ts.map +0 -1
  208. package/dist/governance/intervention.js +0 -405
  209. package/dist/governance/intervention.js.map +0 -1
  210. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  211. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  212. package/dist/server/oauth/anomalyDetection.js +0 -405
  213. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  214. package/dist/server/oauth/authServer.d.ts +0 -61
  215. package/dist/server/oauth/authServer.d.ts.map +0 -1
  216. package/dist/server/oauth/authServer.js +0 -283
  217. package/dist/server/oauth/authServer.js.map +0 -1
  218. package/dist/server/oauth/dpop.d.ts +0 -135
  219. package/dist/server/oauth/dpop.d.ts.map +0 -1
  220. package/dist/server/oauth/dpop.js +0 -338
  221. package/dist/server/oauth/dpop.js.map +0 -1
  222. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  223. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  224. package/dist/server/oauth/gdpr/consent.js +0 -388
  225. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  226. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  227. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  228. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  229. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  230. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  231. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  232. package/dist/server/oauth/gdpr/index.js +0 -273
  233. package/dist/server/oauth/gdpr/index.js.map +0 -1
  234. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  235. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  236. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  237. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  238. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  239. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  240. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  241. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  242. package/dist/server/oauth/pkce.d.ts +0 -61
  243. package/dist/server/oauth/pkce.d.ts.map +0 -1
  244. package/dist/server/oauth/pkce.js +0 -157
  245. package/dist/server/oauth/pkce.js.map +0 -1
  246. package/dist/server/oauth/providers/base.d.ts +0 -147
  247. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  248. package/dist/server/oauth/providers/base.js +0 -312
  249. package/dist/server/oauth/providers/base.js.map +0 -1
  250. package/dist/server/oauth/providers/github.d.ts +0 -55
  251. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  252. package/dist/server/oauth/providers/github.js +0 -225
  253. package/dist/server/oauth/providers/github.js.map +0 -1
  254. package/dist/server/oauth/providers/google.d.ts +0 -49
  255. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  256. package/dist/server/oauth/providers/google.js +0 -153
  257. package/dist/server/oauth/providers/google.js.map +0 -1
  258. package/dist/server/oauth/providers/index.d.ts +0 -9
  259. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  260. package/dist/server/oauth/providers/index.js +0 -24
  261. package/dist/server/oauth/providers/index.js.map +0 -1
  262. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  263. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  264. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  265. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  266. package/dist/server/oauth/security.d.ts +0 -101
  267. package/dist/server/oauth/security.d.ts.map +0 -1
  268. package/dist/server/oauth/security.js +0 -268
  269. package/dist/server/oauth/security.js.map +0 -1
  270. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  271. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  272. package/dist/server/oauth/tokenEncryption.js +0 -218
  273. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  274. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  275. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  276. package/dist/tools/sendMessage-complex-backup.js +0 -545
  277. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  278. package/dist/tools/sendMessage-revised.d.ts +0 -11
  279. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  280. package/dist/tools/sendMessage-revised.js +0 -429
  281. package/dist/tools/sendMessage-revised.js.map +0 -1
  282. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  283. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  284. package/dist/tools/sendMessage-truly-simple.js +0 -299
  285. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-summary.js","sourceRoot":"","sources":["../../../src/developer/reports/review-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Review Assistant Scanner
3
+ * Scans code for common issues to reduce human review burden
4
+ * Detects: console logs, commented code, TODOs/FIXMEs, error handling, hardcoded values, type definitions, unreachable code
5
+ */
6
+ export interface CodeIssue {
7
+ line: number;
8
+ column: number;
9
+ type: 'console_log' | 'commented_code' | 'todo' | 'fixme' | 'missing_error_handling' | 'hardcoded_value' | 'missing_types' | 'unreachable_code' | 'nested_complexity';
10
+ severity: 'low' | 'medium' | 'high';
11
+ message: string;
12
+ code: string;
13
+ suggestion?: string;
14
+ }
15
+ export interface ScanResult {
16
+ issues: CodeIssue[];
17
+ totalIssues: number;
18
+ issuesByType: Record<string, number>;
19
+ issuesBySeverity: Record<string, number>;
20
+ }
21
+ export declare class ReviewAssistant {
22
+ private lines;
23
+ private language;
24
+ constructor(code: string, language?: string);
25
+ scan(): ScanResult;
26
+ private findConsoleLogs;
27
+ private findCommentedCode;
28
+ private findTodos;
29
+ private findMissingErrorHandling;
30
+ private findHardcodedValues;
31
+ private findMissingTypes;
32
+ private findUnreachableCode;
33
+ private findNestedComplexity;
34
+ private hasErrorHandling;
35
+ private checkMultilinePromiseChain;
36
+ private findMatchingCatch;
37
+ private getCurrentBraceDepth;
38
+ private isObviouslyTyped;
39
+ private compileScanResult;
40
+ }
41
+ //# sourceMappingURL=review-assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-assistant.d.ts","sourceRoot":"","sources":["../../../src/developer/scanners/review-assistant.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IACtK,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAqB;IAKzD,IAAI,IAAI,UAAU;IAelB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAoDzB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,wBAAwB;IAqDhC,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;CAyB1B"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Review Assistant Scanner
3
+ * Scans code for common issues to reduce human review burden
4
+ * Detects: console logs, commented code, TODOs/FIXMEs, error handling, hardcoded values, type definitions, unreachable code
5
+ */
6
+ export class ReviewAssistant {
7
+ lines;
8
+ language;
9
+ constructor(code, language = 'typescript') {
10
+ this.language = language.toLowerCase();
11
+ this.lines = code.split('\n');
12
+ }
13
+ scan() {
14
+ const issues = [];
15
+ issues.push(...this.findConsoleLogs());
16
+ issues.push(...this.findCommentedCode());
17
+ issues.push(...this.findTodos());
18
+ issues.push(...this.findMissingErrorHandling());
19
+ issues.push(...this.findHardcodedValues());
20
+ issues.push(...this.findMissingTypes());
21
+ issues.push(...this.findUnreachableCode());
22
+ issues.push(...this.findNestedComplexity());
23
+ return this.compileScanResult(issues);
24
+ }
25
+ findConsoleLogs() {
26
+ const issues = [];
27
+ const consolePattern = /\bconsole\.(log|debug|info|warn|error)\s*\(/gi;
28
+ this.lines.forEach((line, index) => {
29
+ if (line.trim().startsWith('//'))
30
+ return; // Skip comments
31
+ let match;
32
+ while ((match = consolePattern.exec(line)) !== null) {
33
+ issues.push({
34
+ line: index + 1,
35
+ column: match.index + 1,
36
+ type: 'console_log',
37
+ severity: 'low',
38
+ message: `Remove debug statement: console.${match[1]}()`,
39
+ code: line.trim(),
40
+ suggestion: `Remove this line before merging to production`
41
+ });
42
+ }
43
+ });
44
+ return issues;
45
+ }
46
+ findCommentedCode() {
47
+ const issues = [];
48
+ this.lines.forEach((line, index) => {
49
+ const trimmed = line.trim();
50
+ // Skip single-line comments that are actual documentation
51
+ if (trimmed.startsWith('//') && !trimmed.startsWith('// '))
52
+ return;
53
+ // Check for commented out code patterns
54
+ const commentedCodePatterns = [
55
+ /^\/\/\s*(const|let|var|function|if|for|while|return|async|await|import|export)\b/,
56
+ /^\/\/\s*\w+\s*[\.\[\(\{]/,
57
+ /^\/\/\s*}\s*$/,
58
+ /^\/\/\s*;/
59
+ ];
60
+ for (const pattern of commentedCodePatterns) {
61
+ if (pattern.test(trimmed)) {
62
+ issues.push({
63
+ line: index + 1,
64
+ column: 1,
65
+ type: 'commented_code',
66
+ severity: 'low',
67
+ message: 'Remove commented out code',
68
+ code: line.trim(),
69
+ suggestion: 'Use version control to recover old code if needed'
70
+ });
71
+ break;
72
+ }
73
+ }
74
+ // Multi-line commented code
75
+ if (trimmed.startsWith('/*') && !trimmed.startsWith('/**')) {
76
+ let commentContent = trimmed.slice(2);
77
+ if (commentContent.includes('{') || commentContent.includes(';') || /\w+\s*=/i.test(commentContent)) {
78
+ issues.push({
79
+ line: index + 1,
80
+ column: 1,
81
+ type: 'commented_code',
82
+ severity: 'low',
83
+ message: 'Remove commented out code block',
84
+ code: line.trim(),
85
+ suggestion: 'Use version control instead'
86
+ });
87
+ }
88
+ }
89
+ });
90
+ return issues;
91
+ }
92
+ findTodos() {
93
+ const issues = [];
94
+ const todoPattern = /\b(TODO|todo)\b[:\s]*(.*?)(?=\n|$)/gi;
95
+ const fixmePattern = /\b(FIXME|fixme)\b[:\s]*(.*?)(?=\n|$)/gi;
96
+ this.lines.forEach((line, index) => {
97
+ let match;
98
+ while ((match = todoPattern.exec(line)) !== null) {
99
+ issues.push({
100
+ line: index + 1,
101
+ column: match.index + 1,
102
+ type: 'todo',
103
+ severity: 'medium',
104
+ message: `TODO: ${match[2]?.trim() || 'Item left incomplete'}`,
105
+ code: line.trim(),
106
+ suggestion: 'Complete this task before merge or create an issue'
107
+ });
108
+ }
109
+ while ((match = fixmePattern.exec(line)) !== null) {
110
+ issues.push({
111
+ line: index + 1,
112
+ column: match.index + 1,
113
+ type: 'fixme',
114
+ severity: 'high',
115
+ message: `FIXME: ${match[2]?.trim() || 'Issue needs to be fixed'}`,
116
+ code: line.trim(),
117
+ suggestion: 'This must be fixed before merge'
118
+ });
119
+ }
120
+ });
121
+ return issues;
122
+ }
123
+ findMissingErrorHandling() {
124
+ const issues = [];
125
+ this.lines.forEach((line, index) => {
126
+ // Check for fetch without error handling
127
+ if (/fetch\s*\([^)]*\)\s*\.then\s*\(/.test(line) && !this.hasErrorHandling(index)) {
128
+ issues.push({
129
+ line: index + 1,
130
+ column: 1,
131
+ type: 'missing_error_handling',
132
+ severity: 'high',
133
+ message: 'Missing error handling on fetch call',
134
+ code: line.trim(),
135
+ suggestion: 'Add .catch() handler or use try/catch with await'
136
+ });
137
+ }
138
+ // Check for Promise without catch
139
+ if (/\.then\s*\(/.test(line) && !this.hasErrorHandling(index)) {
140
+ const hasCatch = this.checkMultilinePromiseChain(index);
141
+ if (!hasCatch) {
142
+ issues.push({
143
+ line: index + 1,
144
+ column: 1,
145
+ type: 'missing_error_handling',
146
+ severity: 'medium',
147
+ message: 'Promise chain may be missing .catch() error handler',
148
+ code: line.trim(),
149
+ suggestion: 'Add .catch() or ensure error handling in parent context'
150
+ });
151
+ }
152
+ }
153
+ // Check for try block without catch
154
+ if (/^\s*try\s*\{/.test(line)) {
155
+ const hasCatch = this.findMatchingCatch(index);
156
+ if (!hasCatch) {
157
+ issues.push({
158
+ line: index + 1,
159
+ column: 1,
160
+ type: 'missing_error_handling',
161
+ severity: 'high',
162
+ message: 'Try block without catch handler',
163
+ code: line.trim(),
164
+ suggestion: 'Add catch block or finally block for cleanup'
165
+ });
166
+ }
167
+ }
168
+ });
169
+ return issues;
170
+ }
171
+ findHardcodedValues() {
172
+ const issues = [];
173
+ const patterns = [
174
+ { regex: /['"]sk-[a-zA-Z0-9]+['"]/, type: 'API key' },
175
+ { regex: /['"]pk_[a-zA-Z0-9]+['"]/, type: 'API key' },
176
+ { regex: /auth[_-]?token\s*[:=]\s*['"][^'"]+['"]/, type: 'Auth token' },
177
+ { regex: /password\s*[:=]\s*['"][^'"]*['"]/, type: 'Password' },
178
+ { regex: /secret\s*[:=]\s*['"][^'"]+['"]/, type: 'Secret' },
179
+ { regex: /(['"]https?:\/\/[^'"]+['"])\s*;/, type: 'Hardcoded URL' },
180
+ { regex: /api[_-]?key\s*[:=]\s*['"][^'"]+['"]/, type: 'API key' }
181
+ ];
182
+ this.lines.forEach((line, index) => {
183
+ if (line.trim().startsWith('//'))
184
+ return;
185
+ for (const pattern of patterns) {
186
+ if (pattern.regex.test(line)) {
187
+ issues.push({
188
+ line: index + 1,
189
+ column: 1,
190
+ type: 'hardcoded_value',
191
+ severity: 'high',
192
+ message: `Hardcoded ${pattern.type} detected`,
193
+ code: line.trim(),
194
+ suggestion: `Use environment variable instead (e.g., process.env.${pattern.type.replace(/[^A-Z0-9]/gi, '_').toUpperCase()})`
195
+ });
196
+ }
197
+ }
198
+ });
199
+ return issues;
200
+ }
201
+ findMissingTypes() {
202
+ const issues = [];
203
+ if (!['typescript', 'ts'].includes(this.language)) {
204
+ return issues;
205
+ }
206
+ this.lines.forEach((line, index) => {
207
+ // Check for function parameters without types
208
+ const funcParamPattern = /function\s+\w+\s*\(\s*(\w+)\s*[,\)]/;
209
+ const arrowFuncPattern = /(\w+)\s*=>\s*/;
210
+ if (funcParamPattern.test(line) || arrowFuncPattern.test(line)) {
211
+ const match = line.match(/\(([^)]*)\)/);
212
+ if (match && match[1]) {
213
+ const params = match[1].split(',').map(p => p.trim());
214
+ for (const param of params) {
215
+ if (param && !param.includes(':') && !param.includes('?') && param !== '...rest') {
216
+ issues.push({
217
+ line: index + 1,
218
+ column: 1,
219
+ type: 'missing_types',
220
+ severity: 'medium',
221
+ message: `Parameter "${param}" missing type annotation`,
222
+ code: line.trim(),
223
+ suggestion: `Add type: (${param}: ParameterType) or enable implicit any`
224
+ });
225
+ break;
226
+ }
227
+ }
228
+ }
229
+ }
230
+ // Check for variables without types
231
+ if (/^\s*(const|let|var)\s+\w+\s*=/.test(line) && !line.includes(':')) {
232
+ const match = line.match(/^\s*(const|let|var)\s+(\w+)\s*=/);
233
+ if (match && !this.isObviouslyTyped(line)) {
234
+ issues.push({
235
+ line: index + 1,
236
+ column: 1,
237
+ type: 'missing_types',
238
+ severity: 'low',
239
+ message: `Variable "${match[2]}" could have explicit type annotation`,
240
+ code: line.trim(),
241
+ suggestion: `Add type: const ${match[2]}: Type = ...`
242
+ });
243
+ }
244
+ }
245
+ });
246
+ return issues;
247
+ }
248
+ findUnreachableCode() {
249
+ const issues = [];
250
+ this.lines.forEach((line, index) => {
251
+ if (line.trim() === 'return;' || line.trim().startsWith('return ')) {
252
+ // Check if there's code after return in same block
253
+ for (let i = index + 1; i < this.lines.length && i < index + 5; i++) {
254
+ const nextLine = this.lines[i]?.trim();
255
+ if (!nextLine || nextLine.startsWith('//'))
256
+ continue;
257
+ if (nextLine.startsWith('}'))
258
+ break;
259
+ if (!nextLine.startsWith('case') && !nextLine.startsWith('default:')) {
260
+ issues.push({
261
+ line: i + 1,
262
+ column: 1,
263
+ type: 'unreachable_code',
264
+ severity: 'medium',
265
+ message: 'Code unreachable due to return statement above',
266
+ code: nextLine,
267
+ suggestion: 'Remove this code or reorganize logic'
268
+ });
269
+ break;
270
+ }
271
+ }
272
+ }
273
+ });
274
+ return issues;
275
+ }
276
+ findNestedComplexity() {
277
+ const issues = [];
278
+ this.lines.forEach((line, index) => {
279
+ let currentDepth = this.getCurrentBraceDepth(index);
280
+ if (currentDepth >= 4) {
281
+ if (/^\s*(if|for|while|switch)\s*/.test(line)) {
282
+ issues.push({
283
+ line: index + 1,
284
+ column: 1,
285
+ type: 'nested_complexity',
286
+ severity: 'medium',
287
+ message: `High nesting depth (${currentDepth} levels) - consider refactoring`,
288
+ code: line.trim(),
289
+ suggestion: 'Extract to separate function or simplify control flow'
290
+ });
291
+ }
292
+ }
293
+ });
294
+ return issues;
295
+ }
296
+ hasErrorHandling(lineIndex) {
297
+ const nextLines = this.lines.slice(lineIndex, Math.min(lineIndex + 5, this.lines.length));
298
+ return nextLines.some(line => /\.catch\s*\(|\.finally\s*\(/.test(line));
299
+ }
300
+ checkMultilinePromiseChain(lineIndex) {
301
+ for (let i = lineIndex; i < Math.min(lineIndex + 10, this.lines.length); i++) {
302
+ const line = this.lines[i];
303
+ if (!line)
304
+ continue;
305
+ if (/\.catch\s*\(/.test(line))
306
+ return true;
307
+ if (/^\s*[}\);]/.test(line) && i > lineIndex)
308
+ break;
309
+ }
310
+ return false;
311
+ }
312
+ findMatchingCatch(tryLineIndex) {
313
+ let braceCount = 0;
314
+ let foundOpenBrace = false;
315
+ for (let i = tryLineIndex; i < Math.min(tryLineIndex + 50, this.lines.length); i++) {
316
+ const line = this.lines[i];
317
+ if (!line)
318
+ continue;
319
+ if (!foundOpenBrace && line.includes('{')) {
320
+ foundOpenBrace = true;
321
+ braceCount += (line.match(/\{/g) || []).length;
322
+ braceCount -= (line.match(/\}/g) || []).length;
323
+ }
324
+ else if (foundOpenBrace) {
325
+ braceCount += (line.match(/\{/g) || []).length;
326
+ braceCount -= (line.match(/\}/g) || []).length;
327
+ if (braceCount <= 0 && /^\s*\}\s*catch\s*\(/.test(line)) {
328
+ return true;
329
+ }
330
+ if (braceCount <= 0)
331
+ break;
332
+ }
333
+ }
334
+ return false;
335
+ }
336
+ getCurrentBraceDepth(lineIndex) {
337
+ let depth = 0;
338
+ for (let i = 0; i <= lineIndex; i++) {
339
+ const line = this.lines[i];
340
+ if (!line)
341
+ continue;
342
+ depth += (line.match(/\{/g) || []).length;
343
+ depth -= (line.match(/\}/g) || []).length;
344
+ }
345
+ return Math.max(0, depth);
346
+ }
347
+ isObviouslyTyped(line) {
348
+ return /= (true|false|\d+|['"]|null|undefined|\[|\{)/.test(line);
349
+ }
350
+ compileScanResult(issues) {
351
+ const issuesByType = {};
352
+ const issuesBySeverity = {
353
+ low: 0,
354
+ medium: 0,
355
+ high: 0
356
+ };
357
+ issues.forEach(issue => {
358
+ issuesByType[issue.type] = (issuesByType[issue.type] || 0) + 1;
359
+ if (issue.severity in issuesBySeverity) {
360
+ const severity = issuesBySeverity[issue.severity];
361
+ if (typeof severity === 'number') {
362
+ issuesBySeverity[issue.severity] = severity + 1;
363
+ }
364
+ }
365
+ });
366
+ return {
367
+ issues,
368
+ totalIssues: issues.length,
369
+ issuesByType,
370
+ issuesBySeverity
371
+ };
372
+ }
373
+ }
374
+ //# sourceMappingURL=review-assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-assistant.js","sourceRoot":"","sources":["../../../src/developer/scanners/review-assistant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Secret Scanner
3
+ * Detects hardcoded secrets in code including:
4
+ * - API keys (AWS, OpenAI, Stripe, etc.)
5
+ * - Passwords
6
+ * - Private keys
7
+ * - Connection strings with credentials
8
+ * - Tokens and tokens
9
+ */
10
+ export interface SecretVulnerability {
11
+ type: 'HARDCODED_API_KEY' | 'HARDCODED_PASSWORD' | 'PRIVATE_KEY' | 'CONNECTION_STRING' | 'JWT_TOKEN' | 'GENERIC_SECRET';
12
+ severity: 'CRITICAL' | 'HIGH';
13
+ line: number;
14
+ column: number;
15
+ code: string;
16
+ issue: string;
17
+ cwe: string;
18
+ fix: string;
19
+ secretType?: string;
20
+ secretPreview?: string;
21
+ }
22
+ export declare class SecretScanner {
23
+ private vulnerabilities;
24
+ private readonly patterns;
25
+ /**
26
+ * Scan code for hardcoded secrets
27
+ */
28
+ scan(code: string): SecretVulnerability[];
29
+ /**
30
+ * Check if line should be ignored (comments, examples, etc.)
31
+ */
32
+ private isSafeIgnore;
33
+ /**
34
+ * Check for AWS keys
35
+ */
36
+ private checkAwsKeys;
37
+ /**
38
+ * Check for API keys (OpenAI, Stripe, GitHub, etc.)
39
+ */
40
+ private checkApiKeys;
41
+ /**
42
+ * Check for connection strings with embedded credentials
43
+ */
44
+ private checkConnectionStrings;
45
+ /**
46
+ * Check for private keys in code
47
+ */
48
+ private checkPrivateKeys;
49
+ /**
50
+ * Check for hardcoded passwords
51
+ */
52
+ private checkPasswords;
53
+ /**
54
+ * Check for JWT tokens
55
+ */
56
+ private checkJwtTokens;
57
+ /**
58
+ * Redact secret for safe display
59
+ */
60
+ private redact;
61
+ /**
62
+ * Check if position is inside a comment
63
+ */
64
+ private isCommentOrString;
65
+ }
66
+ //# sourceMappingURL=secret-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../../src/developer/scanners/secret-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,aAAa,GAAG,mBAAmB,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACxH,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAA6B;IAGpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CA4BvB;IAEF;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAqBzC;;OAEG;IACH,OAAO,CAAC,YAAY;IAyBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4CpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,OAAO,CAAC,MAAM;IAKd;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}