mcp-adr-analysis-server 2.0.21 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/README.md +94 -839
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/config/ai-config.d.ts.map +1 -1
  4. package/dist/src/config/ai-config.js +9 -9
  5. package/dist/src/config/ai-config.js.map +1 -1
  6. package/dist/src/index.d.ts +15 -0
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +1594 -837
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/prompts/analysis-prompts.d.ts +4 -1
  11. package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
  12. package/dist/src/prompts/analysis-prompts.js +61 -30
  13. package/dist/src/prompts/analysis-prompts.js.map +1 -1
  14. package/dist/src/prompts/index.d.ts +17 -1
  15. package/dist/src/prompts/index.d.ts.map +1 -1
  16. package/dist/src/prompts/index.js +325 -1
  17. package/dist/src/prompts/index.js.map +1 -1
  18. package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
  19. package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
  20. package/dist/src/prompts/rule-generation-prompts.js +5 -1
  21. package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
  22. package/dist/src/prompts/security-prompts.d.ts +6 -1
  23. package/dist/src/prompts/security-prompts.d.ts.map +1 -1
  24. package/dist/src/prompts/security-prompts.js +6 -1
  25. package/dist/src/prompts/security-prompts.js.map +1 -1
  26. package/dist/src/prompts/todo-prompts.d.ts +49 -0
  27. package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
  28. package/dist/src/prompts/todo-prompts.js +824 -0
  29. package/dist/src/prompts/todo-prompts.js.map +1 -0
  30. package/dist/src/resources/index.d.ts.map +1 -1
  31. package/dist/src/resources/index.js +9 -7
  32. package/dist/src/resources/index.js.map +1 -1
  33. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
  34. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
  35. package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
  36. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
  37. package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
  38. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  39. package/dist/src/tools/adr-suggestion-tool.js +330 -32
  40. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  41. package/dist/src/tools/content-masking-tool.d.ts +5 -0
  42. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  43. package/dist/src/tools/content-masking-tool.js +631 -28
  44. package/dist/src/tools/content-masking-tool.js.map +1 -1
  45. package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
  46. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  47. package/dist/src/tools/deployment-readiness-tool.js +1017 -93
  48. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  49. package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
  50. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  51. package/dist/src/tools/environment-analysis-tool.js +568 -24
  52. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  53. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  54. package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
  55. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  56. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  57. package/dist/src/tools/mcp-planning-tool.js +316 -183
  58. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  59. package/dist/src/tools/memory-loading-tool.d.ts +60 -0
  60. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
  61. package/dist/src/tools/memory-loading-tool.js +457 -0
  62. package/dist/src/tools/memory-loading-tool.js.map +1 -0
  63. package/dist/src/tools/research-integration-tool.d.ts +4 -1
  64. package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
  65. package/dist/src/tools/research-integration-tool.js +5 -1
  66. package/dist/src/tools/research-integration-tool.js.map +1 -1
  67. package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
  68. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
  69. package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
  70. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
  71. package/dist/src/tools/rule-generation-tool.d.ts +2 -0
  72. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
  73. package/dist/src/tools/rule-generation-tool.js +274 -33
  74. package/dist/src/tools/rule-generation-tool.js.map +1 -1
  75. package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
  76. package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
  77. package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
  78. package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
  79. package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
  80. package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
  81. package/dist/src/tools/smart-git-push-tool.js +241 -235
  82. package/dist/src/tools/smart-git-push-tool.js.map +1 -1
  83. package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
  84. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  85. package/dist/src/tools/tool-chain-orchestrator.js +152 -93
  86. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  87. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
  88. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  89. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
  90. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  91. package/dist/src/types/ape-framework.d.ts +93 -0
  92. package/dist/src/types/ape-framework.d.ts.map +1 -1
  93. package/dist/src/types/ape-framework.js +10 -10
  94. package/dist/src/types/ape-framework.js.map +1 -1
  95. package/dist/src/types/enhanced-errors.d.ts +173 -0
  96. package/dist/src/types/enhanced-errors.d.ts.map +1 -0
  97. package/dist/src/types/enhanced-errors.js +668 -0
  98. package/dist/src/types/enhanced-errors.js.map +1 -0
  99. package/dist/src/types/index.d.ts +129 -3
  100. package/dist/src/types/index.d.ts.map +1 -1
  101. package/dist/src/types/index.js +15 -0
  102. package/dist/src/types/index.js.map +1 -1
  103. package/dist/src/types/knowledge-generation.d.ts +78 -0
  104. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  105. package/dist/src/types/knowledge-generation.js +10 -6
  106. package/dist/src/types/knowledge-generation.js.map +1 -1
  107. package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
  108. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  109. package/dist/src/types/knowledge-graph-schemas.js +45 -17
  110. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  111. package/dist/src/types/memory-entities.d.ts +7209 -0
  112. package/dist/src/types/memory-entities.d.ts.map +1 -0
  113. package/dist/src/types/memory-entities.js +395 -0
  114. package/dist/src/types/memory-entities.js.map +1 -0
  115. package/dist/src/types/reflexion-framework.d.ts +44 -0
  116. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  117. package/dist/src/types/reflexion-framework.js +7 -7
  118. package/dist/src/types/reflexion-framework.js.map +1 -1
  119. package/dist/src/types/todo-json-schemas.d.ts +7 -653
  120. package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
  121. package/dist/src/types/todo-json-schemas.js +6 -110
  122. package/dist/src/types/todo-json-schemas.js.map +1 -1
  123. package/dist/src/types/tool-arguments.d.ts +224 -0
  124. package/dist/src/types/tool-arguments.d.ts.map +1 -0
  125. package/dist/src/types/tool-arguments.js +6 -0
  126. package/dist/src/types/tool-arguments.js.map +1 -0
  127. package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
  128. package/dist/src/utils/actual-file-operations.js +25 -9
  129. package/dist/src/utils/actual-file-operations.js.map +1 -1
  130. package/dist/src/utils/adr-discovery.d.ts +33 -1
  131. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  132. package/dist/src/utils/adr-discovery.js +14 -9
  133. package/dist/src/utils/adr-discovery.js.map +1 -1
  134. package/dist/src/utils/adr-suggestions.d.ts +72 -0
  135. package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
  136. package/dist/src/utils/adr-suggestions.js +6 -0
  137. package/dist/src/utils/adr-suggestions.js.map +1 -1
  138. package/dist/src/utils/cache.d.ts.map +1 -1
  139. package/dist/src/utils/cache.js +22 -19
  140. package/dist/src/utils/cache.js.map +1 -1
  141. package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
  142. package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
  143. package/dist/src/utils/chain-of-thought-template.js +31 -22
  144. package/dist/src/utils/chain-of-thought-template.js.map +1 -1
  145. package/dist/src/utils/config.d.ts.map +1 -1
  146. package/dist/src/utils/config.js +1 -0
  147. package/dist/src/utils/config.js.map +1 -1
  148. package/dist/src/utils/directory-compat.js +1 -1
  149. package/dist/src/utils/directory-compat.js.map +1 -1
  150. package/dist/src/utils/enhanced-logging.d.ts +195 -0
  151. package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
  152. package/dist/src/utils/enhanced-logging.js +449 -0
  153. package/dist/src/utils/enhanced-logging.js.map +1 -0
  154. package/dist/src/utils/file-system.d.ts +182 -34
  155. package/dist/src/utils/file-system.d.ts.map +1 -1
  156. package/dist/src/utils/file-system.js +648 -774
  157. package/dist/src/utils/file-system.js.map +1 -1
  158. package/dist/src/utils/gitleaks-detector.d.ts +50 -0
  159. package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
  160. package/dist/src/utils/gitleaks-detector.js +334 -0
  161. package/dist/src/utils/gitleaks-detector.js.map +1 -0
  162. package/dist/src/utils/interactive-approval.d.ts +1 -1
  163. package/dist/src/utils/interactive-approval.d.ts.map +1 -1
  164. package/dist/src/utils/interactive-approval.js +22 -17
  165. package/dist/src/utils/interactive-approval.js.map +1 -1
  166. package/dist/src/utils/json-safe.d.ts.map +1 -1
  167. package/dist/src/utils/json-safe.js +9 -6
  168. package/dist/src/utils/json-safe.js.map +1 -1
  169. package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
  170. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  171. package/dist/src/utils/knowledge-graph-manager.js +315 -70
  172. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  173. package/dist/src/utils/location-filter.d.ts +35 -10
  174. package/dist/src/utils/location-filter.d.ts.map +1 -1
  175. package/dist/src/utils/location-filter.js +360 -94
  176. package/dist/src/utils/location-filter.js.map +1 -1
  177. package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
  178. package/dist/src/utils/mcp-response-validator.js +34 -19
  179. package/dist/src/utils/mcp-response-validator.js.map +1 -1
  180. package/dist/src/utils/memory-entity-manager.d.ts +134 -0
  181. package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
  182. package/dist/src/utils/memory-entity-manager.js +851 -0
  183. package/dist/src/utils/memory-entity-manager.js.map +1 -0
  184. package/dist/src/utils/memory-health-scoring.d.ts +125 -0
  185. package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
  186. package/dist/src/utils/memory-health-scoring.js +277 -0
  187. package/dist/src/utils/memory-health-scoring.js.map +1 -0
  188. package/dist/src/utils/memory-migration-manager.d.ts +93 -0
  189. package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
  190. package/dist/src/utils/memory-migration-manager.js +842 -0
  191. package/dist/src/utils/memory-migration-manager.js.map +1 -0
  192. package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
  193. package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
  194. package/dist/src/utils/memory-relationship-mapper.js +482 -0
  195. package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
  196. package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
  197. package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
  198. package/dist/src/utils/memory-rollback-manager.js +575 -0
  199. package/dist/src/utils/memory-rollback-manager.js.map +1 -0
  200. package/dist/src/utils/memory-transformation.d.ts +59 -0
  201. package/dist/src/utils/memory-transformation.d.ts.map +1 -0
  202. package/dist/src/utils/memory-transformation.js +742 -0
  203. package/dist/src/utils/memory-transformation.js.map +1 -0
  204. package/dist/src/utils/output-masking.d.ts +12 -0
  205. package/dist/src/utils/output-masking.d.ts.map +1 -1
  206. package/dist/src/utils/output-masking.js +5 -0
  207. package/dist/src/utils/output-masking.js.map +1 -1
  208. package/dist/src/utils/prompt-execution.d.ts.map +1 -1
  209. package/dist/src/utils/prompt-execution.js +72 -51
  210. package/dist/src/utils/prompt-execution.js.map +1 -1
  211. package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
  212. package/dist/src/utils/release-readiness-detector.js +43 -42
  213. package/dist/src/utils/release-readiness-detector.js.map +1 -1
  214. package/dist/src/utils/research-integration.d.ts.map +1 -1
  215. package/dist/src/utils/research-integration.js +73 -44
  216. package/dist/src/utils/research-integration.js.map +1 -1
  217. package/dist/src/utils/research-questions.d.ts.map +1 -1
  218. package/dist/src/utils/research-questions.js +40 -14
  219. package/dist/src/utils/research-questions.js.map +1 -1
  220. package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
  221. package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
  222. package/dist/src/utils/ripgrep-wrapper.js +255 -0
  223. package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
  224. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  225. package/dist/src/utils/rule-generation.js +26 -15
  226. package/dist/src/utils/rule-generation.js.map +1 -1
  227. package/dist/src/utils/todo-file-watcher.d.ts +11 -23
  228. package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
  229. package/dist/src/utils/todo-file-watcher.js +18 -156
  230. package/dist/src/utils/todo-file-watcher.js.map +1 -1
  231. package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
  232. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
  233. package/dist/src/utils/tree-sitter-analyzer.js +885 -0
  234. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
  235. package/package.json +51 -10
  236. package/dist/src/tools/smart-score-tool.d.ts +0 -173
  237. package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
  238. package/dist/src/tools/smart-score-tool.js +0 -681
  239. package/dist/src/tools/smart-score-tool.js.map +0 -1
  240. package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
  241. package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
  242. package/dist/src/tools/todo-management-tool-v2.js +0 -922
  243. package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
  244. package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
  245. package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
  246. package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
  247. package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
  248. package/dist/src/utils/project-health-scoring.d.ts +0 -177
  249. package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
  250. package/dist/src/utils/project-health-scoring.js +0 -370
  251. package/dist/src/utils/project-health-scoring.js.map +0 -1
  252. package/dist/src/utils/todo-json-manager.d.ts +0 -71
  253. package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
  254. package/dist/src/utils/todo-json-manager.js +0 -396
  255. package/dist/src/utils/todo-json-manager.js.map +0 -1
  256. package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
  257. package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
  258. package/dist/src/utils/todo-markdown-converter.js +0 -362
  259. package/dist/src/utils/todo-markdown-converter.js.map +0 -1
  260. package/dist/src/utils/todo-migration.d.ts +0 -47
  261. package/dist/src/utils/todo-migration.d.ts.map +0 -1
  262. package/dist/src/utils/todo-migration.js +0 -261
  263. package/dist/src/utils/todo-migration.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../../src/utils/file-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../../src/utils/file-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Gitleaks integration for sensitive content detection
3
+ *
4
+ * Replaces custom secret detection with industry-standard gitleaks tool
5
+ * while maintaining compatible interface with existing code
6
+ */
7
+ export interface SensitiveMatch {
8
+ pattern: {
9
+ name: string;
10
+ description: string;
11
+ category: 'credentials' | 'secrets' | 'personal' | 'infrastructure' | 'development';
12
+ severity: 'critical' | 'high' | 'medium' | 'low';
13
+ };
14
+ match: string;
15
+ line: number;
16
+ column: number;
17
+ context: string;
18
+ confidence: number;
19
+ suggestions: string[];
20
+ }
21
+ export interface SensitiveContentResult {
22
+ filePath: string;
23
+ hasIssues: boolean;
24
+ matches: SensitiveMatch[];
25
+ summary: {
26
+ criticalCount: number;
27
+ highCount: number;
28
+ mediumCount: number;
29
+ lowCount: number;
30
+ totalCount: number;
31
+ };
32
+ recommendations: string[];
33
+ }
34
+ /**
35
+ * Analyze content for sensitive information using gitleaks
36
+ */
37
+ export declare function analyzeSensitiveContent(filePath: string, content: string): Promise<SensitiveContentResult>;
38
+ /**
39
+ * Quick check for obviously sensitive files (compatible with existing code)
40
+ */
41
+ export declare function isObviouslySensitive(filePath: string): boolean;
42
+ /**
43
+ * Integration with existing content masking tool (compatible interface)
44
+ */
45
+ export declare function integrateWithContentMasking(filePath: string, content: string): Promise<{
46
+ sensitiveAnalysis: SensitiveContentResult;
47
+ maskingPrompt?: string;
48
+ combinedRecommendations: string[];
49
+ }>;
50
+ //# sourceMappingURL=gitleaks-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitleaks-detector.d.ts","sourceRoot":"","sources":["../../../src/utils/gitleaks-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAC;QACpF,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAClD,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuBD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,CAAC,CAwCjC;AA8PD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmB9D;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IACT,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC,CA4CD"}
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Gitleaks integration for sensitive content detection
3
+ *
4
+ * Replaces custom secret detection with industry-standard gitleaks tool
5
+ * while maintaining compatible interface with existing code
6
+ */
7
+ import { execSync } from 'child_process';
8
+ import { writeFileSync, unlinkSync, existsSync, readFileSync } from 'fs';
9
+ import { join, basename } from 'path';
10
+ import { tmpdir } from 'os';
11
+ /**
12
+ * Analyze content for sensitive information using gitleaks
13
+ */
14
+ export async function analyzeSensitiveContent(filePath, content) {
15
+ const tempDir = tmpdir();
16
+ const tempFile = join(tempDir, `gitleaks-scan-${Date.now()}-${basename(filePath)}`);
17
+ const outputFile = join(tempDir, `gitleaks-output-${Date.now()}.json`);
18
+ try {
19
+ // Write content to temporary file
20
+ writeFileSync(tempFile, content);
21
+ // Run gitleaks on the temporary file
22
+ const gitleaksConfig = findGitleaksConfig();
23
+ const configArg = gitleaksConfig ? `--config=${gitleaksConfig}` : '';
24
+ try {
25
+ execSync(`gitleaks detect --source=${tempFile} --report-format=json --report-path=${outputFile} ${configArg} --no-git`, { stdio: 'pipe' });
26
+ // No issues found if gitleaks exits with 0
27
+ return createEmptyResult(filePath);
28
+ }
29
+ catch (error) {
30
+ // Gitleaks exits with 1 when secrets are found
31
+ if (error.status === 1 && existsSync(outputFile)) {
32
+ return parseGitleaksOutput(filePath, outputFile, content);
33
+ }
34
+ // Real error occurred
35
+ console.warn(`Gitleaks analysis failed for ${filePath}:`, error.message);
36
+ return createEmptyResult(filePath);
37
+ }
38
+ }
39
+ finally {
40
+ // Clean up temporary files
41
+ try {
42
+ if (existsSync(tempFile))
43
+ unlinkSync(tempFile);
44
+ if (existsSync(outputFile))
45
+ unlinkSync(outputFile);
46
+ }
47
+ catch {
48
+ // Ignore cleanup errors
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * Find gitleaks configuration file
54
+ */
55
+ function findGitleaksConfig() {
56
+ const configPaths = ['.gitleaks.toml', '.gitleaks.yml', '.gitleaks.yaml', 'gitleaks.toml'];
57
+ for (const configPath of configPaths) {
58
+ if (existsSync(configPath)) {
59
+ return configPath;
60
+ }
61
+ }
62
+ return null;
63
+ }
64
+ /**
65
+ * Parse gitleaks JSON output
66
+ */
67
+ function parseGitleaksOutput(filePath, outputFile, content) {
68
+ try {
69
+ const outputContent = readFileSync(outputFile, 'utf8');
70
+ const gitleaksResults = JSON.parse(outputContent);
71
+ const matches = gitleaksResults.map(result => ({
72
+ pattern: {
73
+ name: result.RuleID,
74
+ description: result.Description,
75
+ category: categorizeRule(result.RuleID, result.Tags),
76
+ severity: getSeverity(result.RuleID, result.Tags),
77
+ },
78
+ match: result.Secret || result.Match,
79
+ line: result.StartLine,
80
+ column: result.StartColumn,
81
+ context: getContext(content, result.StartLine),
82
+ confidence: calculateConfidence(result),
83
+ suggestions: generateSuggestions(result.RuleID, result.Tags),
84
+ }));
85
+ const summary = {
86
+ criticalCount: matches.filter(m => m.pattern.severity === 'critical').length,
87
+ highCount: matches.filter(m => m.pattern.severity === 'high').length,
88
+ mediumCount: matches.filter(m => m.pattern.severity === 'medium').length,
89
+ lowCount: matches.filter(m => m.pattern.severity === 'low').length,
90
+ totalCount: matches.length,
91
+ };
92
+ return {
93
+ filePath,
94
+ hasIssues: matches.length > 0,
95
+ matches,
96
+ summary,
97
+ recommendations: generateRecommendations(matches),
98
+ };
99
+ }
100
+ catch (error) {
101
+ console.warn(`Failed to parse gitleaks output:`, error);
102
+ return createEmptyResult(filePath);
103
+ }
104
+ }
105
+ /**
106
+ * Get context around a line
107
+ */
108
+ function getContext(content, lineNumber) {
109
+ const lines = content.split('\n');
110
+ const contextStart = Math.max(0, lineNumber - 3);
111
+ const contextEnd = Math.min(lines.length, lineNumber + 2);
112
+ return lines.slice(contextStart, contextEnd).join('\n');
113
+ }
114
+ /**
115
+ * Categorize gitleaks rule by ID and tags
116
+ */
117
+ function categorizeRule(ruleId, _tags) {
118
+ const lowerRuleId = ruleId.toLowerCase();
119
+ if (lowerRuleId.includes('key') ||
120
+ lowerRuleId.includes('token') ||
121
+ lowerRuleId.includes('credential')) {
122
+ return 'credentials';
123
+ }
124
+ if (lowerRuleId.includes('secret') || lowerRuleId.includes('password')) {
125
+ return 'secrets';
126
+ }
127
+ if (lowerRuleId.includes('email') || lowerRuleId.includes('phone')) {
128
+ return 'personal';
129
+ }
130
+ if (lowerRuleId.includes('ip') || lowerRuleId.includes('url') || lowerRuleId.includes('domain')) {
131
+ return 'infrastructure';
132
+ }
133
+ return 'development';
134
+ }
135
+ /**
136
+ * Determine severity based on rule ID and tags
137
+ */
138
+ function getSeverity(ruleId, _tags) {
139
+ const lowerRuleId = ruleId.toLowerCase();
140
+ // Critical: Production API keys, private keys, database URLs
141
+ if (lowerRuleId.includes('private-key') ||
142
+ lowerRuleId.includes('aws-') ||
143
+ lowerRuleId.includes('github-') ||
144
+ lowerRuleId.includes('stripe-') ||
145
+ lowerRuleId.includes('database')) {
146
+ return 'critical';
147
+ }
148
+ // High: Generic secrets, tokens
149
+ if (lowerRuleId.includes('secret') ||
150
+ lowerRuleId.includes('token') ||
151
+ lowerRuleId.includes('password')) {
152
+ return 'high';
153
+ }
154
+ // Medium: Personal info, infrastructure details
155
+ if (lowerRuleId.includes('email') ||
156
+ lowerRuleId.includes('phone') ||
157
+ lowerRuleId.includes('ip')) {
158
+ return 'medium';
159
+ }
160
+ // Low: Everything else
161
+ return 'low';
162
+ }
163
+ /**
164
+ * Calculate confidence based on gitleaks result
165
+ */
166
+ function calculateConfidence(result) {
167
+ let confidence = 0.7; // Base confidence for gitleaks detection
168
+ // Entropy-based confidence adjustment
169
+ if (result.Entropy > 4.0) {
170
+ confidence += 0.2;
171
+ }
172
+ // Rule-specific adjustments
173
+ if (result.RuleID.includes('generic')) {
174
+ confidence -= 0.2;
175
+ }
176
+ if (result.RuleID.includes('aws') || result.RuleID.includes('github')) {
177
+ confidence += 0.1;
178
+ }
179
+ return Math.max(0.1, Math.min(1.0, confidence));
180
+ }
181
+ /**
182
+ * Generate suggestions based on rule
183
+ */
184
+ function generateSuggestions(ruleId, _tags) {
185
+ const suggestions = [];
186
+ const lowerRuleId = ruleId.toLowerCase();
187
+ if (lowerRuleId.includes('key') || lowerRuleId.includes('token')) {
188
+ suggestions.push('Move to environment variables');
189
+ suggestions.push('Use a secrets management service');
190
+ suggestions.push('🚨 ROTATE THIS CREDENTIAL IMMEDIATELY');
191
+ }
192
+ if (lowerRuleId.includes('private-key')) {
193
+ suggestions.push('🚨 CRITICAL: Remove private key from code');
194
+ suggestions.push('Generate new key pair');
195
+ suggestions.push('Store private keys securely outside repository');
196
+ }
197
+ if (lowerRuleId.includes('password')) {
198
+ suggestions.push('Use environment variables for passwords');
199
+ suggestions.push('Consider using encrypted configuration');
200
+ }
201
+ if (lowerRuleId.includes('email') || lowerRuleId.includes('phone')) {
202
+ suggestions.push('Replace with placeholder values');
203
+ suggestions.push('Use fake data for examples');
204
+ }
205
+ // Generic suggestions
206
+ suggestions.push('Add sensitive files to .gitignore');
207
+ suggestions.push('Use the content masking tool to sanitize content');
208
+ return suggestions;
209
+ }
210
+ /**
211
+ * Generate recommendations based on matches
212
+ */
213
+ function generateRecommendations(matches) {
214
+ const recommendations = [];
215
+ if (matches.length === 0) {
216
+ return ['No sensitive content detected'];
217
+ }
218
+ const criticalCount = matches.filter(m => m.pattern.severity === 'critical').length;
219
+ const highCount = matches.filter(m => m.pattern.severity === 'high').length;
220
+ if (criticalCount > 0) {
221
+ recommendations.push(`🚨 ${criticalCount} CRITICAL security issue(s) found - DO NOT COMMIT`);
222
+ recommendations.push('Rotate any exposed credentials immediately');
223
+ }
224
+ if (highCount > 0) {
225
+ recommendations.push(`āš ļø ${highCount} HIGH severity issue(s) found`);
226
+ recommendations.push('Review and secure sensitive information');
227
+ }
228
+ recommendations.push('Use environment variables for sensitive configuration');
229
+ recommendations.push('Consider using a secrets management service');
230
+ recommendations.push('Gitleaks detected these issues - industry-standard tool');
231
+ return recommendations;
232
+ }
233
+ /**
234
+ * Create empty result when no issues found
235
+ */
236
+ function createEmptyResult(filePath) {
237
+ return {
238
+ filePath,
239
+ hasIssues: false,
240
+ matches: [],
241
+ summary: {
242
+ criticalCount: 0,
243
+ highCount: 0,
244
+ mediumCount: 0,
245
+ lowCount: 0,
246
+ totalCount: 0,
247
+ },
248
+ recommendations: ['No sensitive content detected by gitleaks'],
249
+ };
250
+ }
251
+ /**
252
+ * Quick check for obviously sensitive files (compatible with existing code)
253
+ */
254
+ export function isObviouslySensitive(filePath) {
255
+ const fileName = basename(filePath).toLowerCase();
256
+ const sensitiveFilePatterns = [
257
+ /^\.env$/,
258
+ /^\.env\./,
259
+ /secrets?\./,
260
+ /credentials?\./,
261
+ /private.*key/,
262
+ /id_rsa$/,
263
+ /id_ed25519$/,
264
+ /\.pem$/,
265
+ /\.p12$/,
266
+ /\.pfx$/,
267
+ /keystore/,
268
+ /truststore/,
269
+ ];
270
+ return sensitiveFilePatterns.some(pattern => pattern.test(fileName));
271
+ }
272
+ /**
273
+ * Integration with existing content masking tool (compatible interface)
274
+ */
275
+ export async function integrateWithContentMasking(filePath, content) {
276
+ // Get gitleaks analysis
277
+ const sensitiveAnalysis = await analyzeSensitiveContent(filePath, content);
278
+ // Try to use existing content masking tool
279
+ let maskingPrompt;
280
+ let existingRecommendations = [];
281
+ try {
282
+ const { analyzeContentSecurity } = await import('../tools/content-masking-tool.js');
283
+ const maskingResult = await analyzeContentSecurity({
284
+ content,
285
+ contentType: getContentType(filePath),
286
+ enhancedMode: false,
287
+ knowledgeEnhancement: false,
288
+ });
289
+ if (maskingResult.content && maskingResult.content[0]) {
290
+ const resultText = maskingResult.content[0].text;
291
+ const promptMatch = resultText.match(/## AI.*Prompt\n\n(.*?)(?=\n##|$)/s);
292
+ if (promptMatch) {
293
+ maskingPrompt = promptMatch[1];
294
+ }
295
+ const recMatch = resultText.match(/## Next Steps\n\n(.*?)(?=\n##|$)/s);
296
+ if (recMatch) {
297
+ existingRecommendations = recMatch[1].split('\n').filter((line) => line.trim());
298
+ }
299
+ }
300
+ }
301
+ catch {
302
+ // Silently handle integration errors
303
+ }
304
+ // Combine recommendations
305
+ const combinedRecommendations = [
306
+ ...sensitiveAnalysis.recommendations,
307
+ ...existingRecommendations,
308
+ ].filter((rec, index, arr) => arr.indexOf(rec) === index);
309
+ return {
310
+ sensitiveAnalysis,
311
+ ...(maskingPrompt && { maskingPrompt }),
312
+ combinedRecommendations,
313
+ };
314
+ }
315
+ /**
316
+ * Get content type for file (compatible helper)
317
+ */
318
+ function getContentType(filePath) {
319
+ const ext = filePath.split('.').pop()?.toLowerCase() || '';
320
+ if (['js', 'ts', 'py', 'java', 'cpp', 'c', 'go', 'rs', 'rb', 'php'].includes(ext)) {
321
+ return 'code';
322
+ }
323
+ if (['md', 'txt', 'rst', 'doc', 'docx'].includes(ext)) {
324
+ return 'documentation';
325
+ }
326
+ if (['json', 'yaml', 'yml', 'ini', 'conf', 'config', 'env'].includes(ext)) {
327
+ return 'configuration';
328
+ }
329
+ if (['log', 'out', 'err'].includes(ext)) {
330
+ return 'logs';
331
+ }
332
+ return 'general';
333
+ }
334
+ //# sourceMappingURL=gitleaks-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitleaks-detector.js","sourceRoot":"","sources":["../../../src/utils/gitleaks-detector.ts"],"names":[],"mappings":"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"}
@@ -59,5 +59,5 @@ export declare function batchApproval(items: ApprovalItem[], action: ApprovalAct
59
59
  /**
60
60
  * Save approval preferences for future use
61
61
  */
62
- export declare function saveApprovalPreferences(actions: ApprovalAction[], configPath?: string): void;
62
+ export declare function saveApprovalPreferences(actions: ApprovalAction[], configPath?: string): Promise<void>;
63
63
  //# sourceMappingURL=interactive-approval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-approval.d.ts","sourceRoot":"","sources":["../../../src/utils/interactive-approval.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,mBAAmB,GAAG,cAAc,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IACxG,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAuEzB;AAyXD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EAAE,EACrB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE;IACR,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,cAAc,EAAE,CAkClB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,GAAE,MAAmC,GAC9C,IAAI,CAiBN"}
1
+ {"version":3,"file":"interactive-approval.d.ts","sourceRoot":"","sources":["../../../src/utils/interactive-approval.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EACA,mBAAmB,GACnB,cAAc,GACd,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAuEzB;AAwYD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EAAE,EACrB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE;IACR,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,cAAc,EAAE,CAkClB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,GAAE,MAAmC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -4,6 +4,7 @@
4
4
  * Handles user interaction for approving/rejecting files with issues
5
5
  */
6
6
  import { createInterface } from 'readline';
7
+ import { writeFileSync } from 'fs';
7
8
  /**
8
9
  * Main interactive approval function
9
10
  */
@@ -14,7 +15,7 @@ export async function handleInteractiveApproval(items, options) {
14
15
  moved: [],
15
16
  ignored: [],
16
17
  actions: [],
17
- proceed: false
18
+ proceed: false,
18
19
  };
19
20
  if (items.length === 0) {
20
21
  result.proceed = true;
@@ -81,7 +82,7 @@ function handleNonInteractiveApproval(items, options) {
81
82
  moved: [],
82
83
  ignored: [],
83
84
  actions: [],
84
- proceed: false
85
+ proceed: false,
85
86
  };
86
87
  for (const item of items) {
87
88
  let action;
@@ -95,7 +96,11 @@ function handleNonInteractiveApproval(items, options) {
95
96
  // Default behavior based on severity
96
97
  switch (item.severity) {
97
98
  case 'error':
98
- action = { type: 'reject', filePath: item.filePath, reason: 'Automatic rejection due to errors' };
99
+ action = {
100
+ type: 'reject',
101
+ filePath: item.filePath,
102
+ reason: 'Automatic rejection due to errors',
103
+ };
99
104
  break;
100
105
  case 'warning':
101
106
  action = item.allowedInLocation
@@ -158,7 +163,7 @@ function buildChoices(item, isError) {
158
163
  { key: 'v', description: 'View file content', available: true },
159
164
  { key: 'e', description: 'Edit file', available: true },
160
165
  { key: 's', description: 'Skip for now', available: false }, // Not implemented yet
161
- { key: 'h', description: 'Show help', available: true }
166
+ { key: 'h', description: 'Show help', available: true },
162
167
  ];
163
168
  return choices;
164
169
  }
@@ -176,11 +181,11 @@ async function getUserChoice(choices, options) {
176
181
  }
177
182
  const rl = createInterface({
178
183
  input: process.stdin,
179
- output: process.stdout
184
+ output: process.stdout,
180
185
  });
181
- return new Promise((resolve) => {
186
+ return new Promise(resolve => {
182
187
  const askQuestion = () => {
183
- rl.question('\n Your choice: ', (answer) => {
188
+ rl.question('\n Your choice: ', answer => {
184
189
  const choice = answer.trim().toLowerCase();
185
190
  if (choice === 'h') {
186
191
  displayHelp();
@@ -210,9 +215,10 @@ function processChoice(choice, item, options) {
210
215
  return { type: 'reject', filePath: item.filePath, reason: 'User rejected' };
211
216
  case 'i':
212
217
  return { type: 'ignore', filePath: item.filePath };
213
- case 'm':
218
+ case 'm': {
214
219
  const targetDir = getMoveTarget(item);
215
220
  return { type: 'move', filePath: item.filePath, target: targetDir };
221
+ }
216
222
  case 'v':
217
223
  viewFileContent(item.filePath);
218
224
  return processChoice(choice, item, options); // Re-prompt after viewing
@@ -352,10 +358,10 @@ async function getFinalConfirmation(result, options) {
352
358
  }
353
359
  const rl = createInterface({
354
360
  input: process.stdin,
355
- output: process.stdout
361
+ output: process.stdout,
356
362
  });
357
- return new Promise((resolve) => {
358
- rl.question('\nšŸš€ Proceed with git push? (y/N): ', (answer) => {
363
+ return new Promise(resolve => {
364
+ rl.question('\nšŸš€ Proceed with git push? (y/N): ', answer => {
359
365
  rl.close();
360
366
  const proceed = answer.trim().toLowerCase() === 'y' || answer.trim().toLowerCase() === 'yes';
361
367
  resolve(proceed);
@@ -411,7 +417,7 @@ export function batchApproval(items, action, criteria) {
411
417
  type: action.type,
412
418
  filePath: item.filePath,
413
419
  target: action.target,
414
- reason: `Batch ${action.type} - similar to ${action.filePath}`
420
+ reason: `Batch ${action.type} - similar to ${action.filePath}`,
415
421
  });
416
422
  }
417
423
  }
@@ -420,18 +426,17 @@ export function batchApproval(items, action, criteria) {
420
426
  /**
421
427
  * Save approval preferences for future use
422
428
  */
423
- export function saveApprovalPreferences(actions, configPath = '.smartgit-approvals.json') {
429
+ export async function saveApprovalPreferences(actions, configPath = '.smartgit-approvals.json') {
424
430
  try {
425
- const fs = require('fs');
426
431
  const preferences = {
427
432
  timestamp: new Date().toISOString(),
428
433
  actions: actions.map(action => ({
429
434
  pattern: action.filePath.replace(/[^/]+$/, '*'), // Replace filename with wildcard
430
435
  type: action.type,
431
- reason: action.reason
432
- }))
436
+ reason: action.reason,
437
+ })),
433
438
  };
434
- fs.writeFileSync(configPath, JSON.stringify(preferences, null, 2));
439
+ writeFileSync(configPath, JSON.stringify(preferences, null, 2));
435
440
  console.log(`\nšŸ’¾ Approval preferences saved to ${configPath}`);
436
441
  }
437
442
  catch (error) {