erosolar-cli 2.1.249 → 2.1.252

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 (467) hide show
  1. package/agents/general.rules.json +10 -133
  2. package/agents/general.rules.json.bak +278 -0
  3. package/agents/general.rules.json.bak2 +306 -0
  4. package/dist/bin/erosolar.js +9 -5
  5. package/dist/bin/erosolar.js.map +1 -1
  6. package/dist/capabilities/bidirectionalAuditCapability.d.ts +26 -0
  7. package/dist/capabilities/bidirectionalAuditCapability.d.ts.map +1 -0
  8. package/dist/capabilities/bidirectionalAuditCapability.js +44 -0
  9. package/dist/capabilities/bidirectionalAuditCapability.js.map +1 -0
  10. package/dist/capabilities/globCapability.d.ts +3 -6
  11. package/dist/capabilities/globCapability.d.ts.map +1 -1
  12. package/dist/capabilities/globCapability.js +6 -10
  13. package/dist/capabilities/globCapability.js.map +1 -1
  14. package/dist/capabilities/index.d.ts +1 -18
  15. package/dist/capabilities/index.d.ts.map +1 -1
  16. package/dist/capabilities/index.js +1 -18
  17. package/dist/capabilities/index.js.map +1 -1
  18. package/dist/capabilities/orchestrationCapability.d.ts +2 -0
  19. package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
  20. package/dist/capabilities/orchestrationCapability.js +980 -2
  21. package/dist/capabilities/orchestrationCapability.js.map +1 -1
  22. package/dist/capabilities/searchCapability.d.ts +8 -2
  23. package/dist/capabilities/searchCapability.d.ts.map +1 -1
  24. package/dist/capabilities/searchCapability.js +11 -6
  25. package/dist/capabilities/searchCapability.js.map +1 -1
  26. package/dist/contracts/tools.schema.json +9 -133
  27. package/dist/core/aiErrorFixer.d.ts +1 -14
  28. package/dist/core/aiErrorFixer.d.ts.map +1 -1
  29. package/dist/core/aiErrorFixer.js +51 -239
  30. package/dist/core/aiErrorFixer.js.map +1 -1
  31. package/dist/core/alphaZeroEngine.d.ts +16 -256
  32. package/dist/core/alphaZeroEngine.d.ts.map +1 -1
  33. package/dist/core/alphaZeroEngine.js +22 -513
  34. package/dist/core/alphaZeroEngine.js.map +1 -1
  35. package/dist/core/completeAttackOrchestrator.d.ts +102 -0
  36. package/dist/core/completeAttackOrchestrator.d.ts.map +1 -0
  37. package/dist/core/completeAttackOrchestrator.js +293 -0
  38. package/dist/core/completeAttackOrchestrator.js.map +1 -0
  39. package/dist/core/defensiveSecurityToolkit.d.ts +373 -0
  40. package/dist/core/defensiveSecurityToolkit.d.ts.map +1 -0
  41. package/dist/core/defensiveSecurityToolkit.js +1304 -0
  42. package/dist/core/defensiveSecurityToolkit.js.map +1 -0
  43. package/dist/core/errors/errorTypes.d.ts +30 -57
  44. package/dist/core/errors/errorTypes.d.ts.map +1 -1
  45. package/dist/core/errors/errorTypes.js +51 -228
  46. package/dist/core/errors/errorTypes.js.map +1 -1
  47. package/dist/core/errors/safetyValidator.d.ts +19 -3
  48. package/dist/core/errors/safetyValidator.d.ts.map +1 -1
  49. package/dist/core/errors/safetyValidator.js +33 -71
  50. package/dist/core/errors/safetyValidator.js.map +1 -1
  51. package/dist/core/failureRecovery.d.ts +4 -100
  52. package/dist/core/failureRecovery.d.ts.map +1 -1
  53. package/dist/core/failureRecovery.js +16 -440
  54. package/dist/core/failureRecovery.js.map +1 -1
  55. package/dist/core/intelligentTargetResearcher.d.ts +142 -0
  56. package/dist/core/intelligentTargetResearcher.d.ts.map +1 -0
  57. package/dist/core/intelligentTargetResearcher.js +367 -0
  58. package/dist/core/intelligentTargetResearcher.js.map +1 -0
  59. package/dist/core/intelligentTestFlows.d.ts +26 -107
  60. package/dist/core/intelligentTestFlows.d.ts.map +1 -1
  61. package/dist/core/intelligentTestFlows.js +15 -659
  62. package/dist/core/intelligentTestFlows.js.map +1 -1
  63. package/dist/core/learningPersistence.d.ts +45 -132
  64. package/dist/core/learningPersistence.d.ts.map +1 -1
  65. package/dist/core/learningPersistence.js +32 -463
  66. package/dist/core/learningPersistence.js.map +1 -1
  67. package/dist/core/metricsTracker.d.ts +22 -139
  68. package/dist/core/metricsTracker.d.ts.map +1 -1
  69. package/dist/core/metricsTracker.js +51 -241
  70. package/dist/core/metricsTracker.js.map +1 -1
  71. package/dist/core/performanceMonitor.d.ts +15 -109
  72. package/dist/core/performanceMonitor.d.ts.map +1 -1
  73. package/dist/core/performanceMonitor.js +27 -184
  74. package/dist/core/performanceMonitor.js.map +1 -1
  75. package/dist/core/resultVerification.d.ts +6 -100
  76. package/dist/core/resultVerification.d.ts.map +1 -1
  77. package/dist/core/resultVerification.js +31 -400
  78. package/dist/core/resultVerification.js.map +1 -1
  79. package/dist/core/selfEvolution.d.ts +32 -126
  80. package/dist/core/selfEvolution.d.ts.map +1 -1
  81. package/dist/core/selfEvolution.js +24 -967
  82. package/dist/core/selfEvolution.js.map +1 -1
  83. package/dist/core/selfImprovement.d.ts +50 -109
  84. package/dist/core/selfImprovement.d.ts.map +1 -1
  85. package/dist/core/selfImprovement.js +14 -689
  86. package/dist/core/selfImprovement.js.map +1 -1
  87. package/dist/core/sourceCodeManager.d.ts +89 -0
  88. package/dist/core/sourceCodeManager.d.ts.map +1 -0
  89. package/dist/core/sourceCodeManager.js +332 -0
  90. package/dist/core/sourceCodeManager.js.map +1 -0
  91. package/dist/core/unifiedOrchestrator.d.ts +88 -0
  92. package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
  93. package/dist/core/unifiedOrchestrator.js +284 -0
  94. package/dist/core/unifiedOrchestrator.js.map +1 -0
  95. package/dist/core/userDefenseOrchestrator.d.ts +202 -0
  96. package/dist/core/userDefenseOrchestrator.d.ts.map +1 -0
  97. package/dist/core/userDefenseOrchestrator.js +1006 -0
  98. package/dist/core/userDefenseOrchestrator.js.map +1 -0
  99. package/dist/plugins/index.d.ts +1 -1
  100. package/dist/plugins/index.d.ts.map +1 -1
  101. package/dist/plugins/index.js +36 -26
  102. package/dist/plugins/index.js.map +1 -1
  103. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts +8 -0
  104. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts.map +1 -0
  105. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js +17 -0
  106. package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js.map +1 -0
  107. package/dist/plugins/tools/nodeDefaults.d.ts +14 -0
  108. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  109. package/dist/plugins/tools/nodeDefaults.js +17 -54
  110. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  111. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +9 -0
  112. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
  113. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +18 -0
  114. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
  115. package/dist/shell/interactiveShell.d.ts +97 -2
  116. package/dist/shell/interactiveShell.d.ts.map +1 -1
  117. package/dist/shell/interactiveShell.js +1001 -6
  118. package/dist/shell/interactiveShell.js.map +1 -1
  119. package/dist/tools/appleExposureTools.d.ts +108 -0
  120. package/dist/tools/appleExposureTools.d.ts.map +1 -0
  121. package/dist/tools/appleExposureTools.js +850 -0
  122. package/dist/tools/appleExposureTools.js.map +1 -0
  123. package/dist/tools/bidirectionalAuditTools.d.ts +104 -0
  124. package/dist/tools/bidirectionalAuditTools.d.ts.map +1 -0
  125. package/dist/tools/bidirectionalAuditTools.js +1280 -0
  126. package/dist/tools/bidirectionalAuditTools.js.map +1 -0
  127. package/dist/tools/defensiveSecurityTools.d.ts +152 -0
  128. package/dist/tools/defensiveSecurityTools.d.ts.map +1 -0
  129. package/dist/tools/defensiveSecurityTools.js +576 -0
  130. package/dist/tools/defensiveSecurityTools.js.map +1 -0
  131. package/dist/tools/forwardAttackChainTracer.d.ts +73 -0
  132. package/dist/tools/forwardAttackChainTracer.d.ts.map +1 -0
  133. package/dist/tools/forwardAttackChainTracer.js +604 -0
  134. package/dist/tools/forwardAttackChainTracer.js.map +1 -0
  135. package/dist/tools/localExplore.d.ts +12 -199
  136. package/dist/tools/localExplore.d.ts.map +1 -1
  137. package/dist/tools/localExplore.js +18 -1352
  138. package/dist/tools/localExplore.js.map +1 -1
  139. package/dist/tools/offensiveTransparencyTools.d.ts +188 -0
  140. package/dist/tools/offensiveTransparencyTools.d.ts.map +1 -0
  141. package/dist/tools/offensiveTransparencyTools.js +890 -0
  142. package/dist/tools/offensiveTransparencyTools.js.map +1 -0
  143. package/dist/tools/planningTools.d.ts +8 -17
  144. package/dist/tools/planningTools.d.ts.map +1 -1
  145. package/dist/tools/planningTools.js +31 -141
  146. package/dist/tools/planningTools.js.map +1 -1
  147. package/dist/tools/searchTools.d.ts +9 -0
  148. package/dist/tools/searchTools.d.ts.map +1 -1
  149. package/dist/tools/searchTools.js +305 -189
  150. package/dist/tools/searchTools.js.map +1 -1
  151. package/dist/tools/skillTools.d.ts +7 -5
  152. package/dist/tools/skillTools.d.ts.map +1 -1
  153. package/dist/tools/skillTools.js +13 -155
  154. package/dist/tools/skillTools.js.map +1 -1
  155. package/dist/tools/threatIntelligenceTools.d.ts +128 -0
  156. package/dist/tools/threatIntelligenceTools.d.ts.map +1 -0
  157. package/dist/tools/threatIntelligenceTools.js +712 -0
  158. package/dist/tools/threatIntelligenceTools.js.map +1 -0
  159. package/dist/ui/PromptController.d.ts +4 -0
  160. package/dist/ui/PromptController.d.ts.map +1 -1
  161. package/dist/ui/PromptController.js +32 -11
  162. package/dist/ui/PromptController.js.map +1 -1
  163. package/dist/ui/UnifiedUIRenderer.d.ts +20 -0
  164. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  165. package/dist/ui/UnifiedUIRenderer.js +235 -28
  166. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  167. package/dist/ui/animatedStatus.d.ts +2 -0
  168. package/dist/ui/animatedStatus.d.ts.map +1 -1
  169. package/dist/ui/animatedStatus.js +36 -2
  170. package/dist/ui/animatedStatus.js.map +1 -1
  171. package/dist/ui/orchestration/StatusOrchestrator.d.ts +10 -0
  172. package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -1
  173. package/dist/ui/orchestration/StatusOrchestrator.js +36 -4
  174. package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/capabilities/advancedTestGenerationCapability.d.ts +0 -17
  177. package/dist/capabilities/advancedTestGenerationCapability.d.ts.map +0 -1
  178. package/dist/capabilities/advancedTestGenerationCapability.js +0 -28
  179. package/dist/capabilities/advancedTestGenerationCapability.js.map +0 -1
  180. package/dist/capabilities/browserAutomationCapability.d.ts +0 -37
  181. package/dist/capabilities/browserAutomationCapability.d.ts.map +0 -1
  182. package/dist/capabilities/browserAutomationCapability.js +0 -49
  183. package/dist/capabilities/browserAutomationCapability.js.map +0 -1
  184. package/dist/capabilities/buildCapability.d.ts +0 -24
  185. package/dist/capabilities/buildCapability.d.ts.map +0 -1
  186. package/dist/capabilities/buildCapability.js +0 -25
  187. package/dist/capabilities/buildCapability.js.map +0 -1
  188. package/dist/capabilities/cloudCapability.d.ts +0 -13
  189. package/dist/capabilities/cloudCapability.d.ts.map +0 -1
  190. package/dist/capabilities/cloudCapability.js +0 -38
  191. package/dist/capabilities/cloudCapability.js.map +0 -1
  192. package/dist/capabilities/codeAnalysisCapability.d.ts +0 -13
  193. package/dist/capabilities/codeAnalysisCapability.d.ts.map +0 -1
  194. package/dist/capabilities/codeAnalysisCapability.js +0 -24
  195. package/dist/capabilities/codeAnalysisCapability.js.map +0 -1
  196. package/dist/capabilities/codeQualityCapability.d.ts +0 -13
  197. package/dist/capabilities/codeQualityCapability.d.ts.map +0 -1
  198. package/dist/capabilities/codeQualityCapability.js +0 -25
  199. package/dist/capabilities/codeQualityCapability.js.map +0 -1
  200. package/dist/capabilities/dependencySecurityCapability.d.ts +0 -13
  201. package/dist/capabilities/dependencySecurityCapability.d.ts.map +0 -1
  202. package/dist/capabilities/dependencySecurityCapability.js +0 -24
  203. package/dist/capabilities/dependencySecurityCapability.js.map +0 -1
  204. package/dist/capabilities/devCapability.d.ts +0 -13
  205. package/dist/capabilities/devCapability.d.ts.map +0 -1
  206. package/dist/capabilities/devCapability.js +0 -24
  207. package/dist/capabilities/devCapability.js.map +0 -1
  208. package/dist/capabilities/emailCapability.d.ts +0 -12
  209. package/dist/capabilities/emailCapability.d.ts.map +0 -1
  210. package/dist/capabilities/emailCapability.js +0 -22
  211. package/dist/capabilities/emailCapability.js.map +0 -1
  212. package/dist/capabilities/enhancedAnalysisCapability.d.ts +0 -13
  213. package/dist/capabilities/enhancedAnalysisCapability.d.ts.map +0 -1
  214. package/dist/capabilities/enhancedAnalysisCapability.js +0 -20
  215. package/dist/capabilities/enhancedAnalysisCapability.js.map +0 -1
  216. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts +0 -17
  217. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts.map +0 -1
  218. package/dist/capabilities/enhancedCodeIntelligenceCapability.js +0 -28
  219. package/dist/capabilities/enhancedCodeIntelligenceCapability.js.map +0 -1
  220. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts +0 -17
  221. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts.map +0 -1
  222. package/dist/capabilities/enhancedDevWorkflowCapability.js +0 -28
  223. package/dist/capabilities/enhancedDevWorkflowCapability.js.map +0 -1
  224. package/dist/capabilities/frontendTestingCapability.d.ts +0 -13
  225. package/dist/capabilities/frontendTestingCapability.d.ts.map +0 -1
  226. package/dist/capabilities/frontendTestingCapability.js +0 -28
  227. package/dist/capabilities/frontendTestingCapability.js.map +0 -1
  228. package/dist/capabilities/interactionCapability.d.ts +0 -12
  229. package/dist/capabilities/interactionCapability.d.ts.map +0 -1
  230. package/dist/capabilities/interactionCapability.js +0 -22
  231. package/dist/capabilities/interactionCapability.js.map +0 -1
  232. package/dist/capabilities/learnCapability.d.ts +0 -22
  233. package/dist/capabilities/learnCapability.d.ts.map +0 -1
  234. package/dist/capabilities/learnCapability.js +0 -37
  235. package/dist/capabilities/learnCapability.js.map +0 -1
  236. package/dist/capabilities/notebookCapability.d.ts +0 -17
  237. package/dist/capabilities/notebookCapability.d.ts.map +0 -1
  238. package/dist/capabilities/notebookCapability.js +0 -27
  239. package/dist/capabilities/notebookCapability.js.map +0 -1
  240. package/dist/capabilities/planningCapability.d.ts +0 -16
  241. package/dist/capabilities/planningCapability.d.ts.map +0 -1
  242. package/dist/capabilities/planningCapability.js +0 -26
  243. package/dist/capabilities/planningCapability.js.map +0 -1
  244. package/dist/capabilities/refactoringCapability.d.ts +0 -13
  245. package/dist/capabilities/refactoringCapability.d.ts.map +0 -1
  246. package/dist/capabilities/refactoringCapability.js +0 -25
  247. package/dist/capabilities/refactoringCapability.js.map +0 -1
  248. package/dist/capabilities/repoChecksCapability.d.ts +0 -10
  249. package/dist/capabilities/repoChecksCapability.d.ts.map +0 -1
  250. package/dist/capabilities/repoChecksCapability.js +0 -24
  251. package/dist/capabilities/repoChecksCapability.js.map +0 -1
  252. package/dist/capabilities/taskManagementCapability.d.ts +0 -12
  253. package/dist/capabilities/taskManagementCapability.d.ts.map +0 -1
  254. package/dist/capabilities/taskManagementCapability.js +0 -22
  255. package/dist/capabilities/taskManagementCapability.js.map +0 -1
  256. package/dist/capabilities/testingCapability.d.ts +0 -13
  257. package/dist/capabilities/testingCapability.d.ts.map +0 -1
  258. package/dist/capabilities/testingCapability.js +0 -25
  259. package/dist/capabilities/testingCapability.js.map +0 -1
  260. package/dist/capabilities/validationCapability.d.ts +0 -13
  261. package/dist/capabilities/validationCapability.d.ts.map +0 -1
  262. package/dist/capabilities/validationCapability.js +0 -24
  263. package/dist/capabilities/validationCapability.js.map +0 -1
  264. package/dist/capabilities/webCapability.d.ts +0 -12
  265. package/dist/capabilities/webCapability.d.ts.map +0 -1
  266. package/dist/capabilities/webCapability.js +0 -22
  267. package/dist/capabilities/webCapability.js.map +0 -1
  268. package/dist/core/deepBugAnalyzer.d.ts +0 -128
  269. package/dist/core/deepBugAnalyzer.d.ts.map +0 -1
  270. package/dist/core/deepBugAnalyzer.js +0 -406
  271. package/dist/core/deepBugAnalyzer.js.map +0 -1
  272. package/dist/core/hypothesisEngine.d.ts +0 -113
  273. package/dist/core/hypothesisEngine.d.ts.map +0 -1
  274. package/dist/core/hypothesisEngine.js +0 -264
  275. package/dist/core/hypothesisEngine.js.map +0 -1
  276. package/dist/core/productTestHarness.d.ts +0 -113
  277. package/dist/core/productTestHarness.d.ts.map +0 -1
  278. package/dist/core/productTestHarness.js +0 -351
  279. package/dist/core/productTestHarness.js.map +0 -1
  280. package/dist/core/validationRunner.d.ts +0 -106
  281. package/dist/core/validationRunner.d.ts.map +0 -1
  282. package/dist/core/validationRunner.js +0 -892
  283. package/dist/core/validationRunner.js.map +0 -1
  284. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +0 -14
  285. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +0 -1
  286. package/dist/plugins/tools/browser/browserAutomationPlugin.js +0 -26
  287. package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +0 -1
  288. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +0 -3
  289. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +0 -1
  290. package/dist/plugins/tools/checks/localRepoChecksPlugin.js +0 -14
  291. package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +0 -1
  292. package/dist/plugins/tools/cloud/cloudPlugin.d.ts +0 -3
  293. package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +0 -1
  294. package/dist/plugins/tools/cloud/cloudPlugin.js +0 -14
  295. package/dist/plugins/tools/cloud/cloudPlugin.js.map +0 -1
  296. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +0 -3
  297. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +0 -1
  298. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +0 -14
  299. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +0 -1
  300. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +0 -3
  301. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +0 -1
  302. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +0 -14
  303. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +0 -1
  304. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +0 -3
  305. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +0 -1
  306. package/dist/plugins/tools/dependency/dependencyPlugin.js +0 -12
  307. package/dist/plugins/tools/dependency/dependencyPlugin.js.map +0 -1
  308. package/dist/plugins/tools/development/devPlugin.d.ts +0 -3
  309. package/dist/plugins/tools/development/devPlugin.d.ts.map +0 -1
  310. package/dist/plugins/tools/development/devPlugin.js +0 -14
  311. package/dist/plugins/tools/development/devPlugin.js.map +0 -1
  312. package/dist/plugins/tools/email/emailPlugin.d.ts +0 -3
  313. package/dist/plugins/tools/email/emailPlugin.d.ts.map +0 -1
  314. package/dist/plugins/tools/email/emailPlugin.js +0 -12
  315. package/dist/plugins/tools/email/emailPlugin.js.map +0 -1
  316. package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts +0 -3
  317. package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts.map +0 -1
  318. package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js +0 -14
  319. package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js.map +0 -1
  320. package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts +0 -3
  321. package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts.map +0 -1
  322. package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js +0 -12
  323. package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js.map +0 -1
  324. package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts +0 -3
  325. package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts.map +0 -1
  326. package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js +0 -12
  327. package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js.map +0 -1
  328. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +0 -3
  329. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +0 -1
  330. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +0 -14
  331. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +0 -1
  332. package/dist/plugins/tools/interaction/interactionPlugin.d.ts +0 -3
  333. package/dist/plugins/tools/interaction/interactionPlugin.d.ts.map +0 -1
  334. package/dist/plugins/tools/interaction/interactionPlugin.js +0 -12
  335. package/dist/plugins/tools/interaction/interactionPlugin.js.map +0 -1
  336. package/dist/plugins/tools/learn/learnPlugin.d.ts +0 -3
  337. package/dist/plugins/tools/learn/learnPlugin.d.ts.map +0 -1
  338. package/dist/plugins/tools/learn/learnPlugin.js +0 -14
  339. package/dist/plugins/tools/learn/learnPlugin.js.map +0 -1
  340. package/dist/plugins/tools/notebook/notebookPlugin.d.ts +0 -9
  341. package/dist/plugins/tools/notebook/notebookPlugin.d.ts.map +0 -1
  342. package/dist/plugins/tools/notebook/notebookPlugin.js +0 -15
  343. package/dist/plugins/tools/notebook/notebookPlugin.js.map +0 -1
  344. package/dist/plugins/tools/planning/planningPlugin.d.ts +0 -9
  345. package/dist/plugins/tools/planning/planningPlugin.d.ts.map +0 -1
  346. package/dist/plugins/tools/planning/planningPlugin.js +0 -15
  347. package/dist/plugins/tools/planning/planningPlugin.js.map +0 -1
  348. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +0 -3
  349. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +0 -1
  350. package/dist/plugins/tools/refactoring/refactoringPlugin.js +0 -12
  351. package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +0 -1
  352. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts +0 -3
  353. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts.map +0 -1
  354. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js +0 -12
  355. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js.map +0 -1
  356. package/dist/plugins/tools/testing/testingPlugin.d.ts +0 -3
  357. package/dist/plugins/tools/testing/testingPlugin.d.ts.map +0 -1
  358. package/dist/plugins/tools/testing/testingPlugin.js +0 -12
  359. package/dist/plugins/tools/testing/testingPlugin.js.map +0 -1
  360. package/dist/plugins/tools/validation/validationPlugin.d.ts +0 -3
  361. package/dist/plugins/tools/validation/validationPlugin.d.ts.map +0 -1
  362. package/dist/plugins/tools/validation/validationPlugin.js +0 -14
  363. package/dist/plugins/tools/validation/validationPlugin.js.map +0 -1
  364. package/dist/plugins/tools/web/webPlugin.d.ts +0 -3
  365. package/dist/plugins/tools/web/webPlugin.d.ts.map +0 -1
  366. package/dist/plugins/tools/web/webPlugin.js +0 -12
  367. package/dist/plugins/tools/web/webPlugin.js.map +0 -1
  368. package/dist/tools/advancedTestGenerationTools.d.ts +0 -21
  369. package/dist/tools/advancedTestGenerationTools.d.ts.map +0 -1
  370. package/dist/tools/advancedTestGenerationTools.js +0 -304
  371. package/dist/tools/advancedTestGenerationTools.js.map +0 -1
  372. package/dist/tools/browserAutomationTools.d.ts +0 -23
  373. package/dist/tools/browserAutomationTools.d.ts.map +0 -1
  374. package/dist/tools/browserAutomationTools.js +0 -916
  375. package/dist/tools/browserAutomationTools.js.map +0 -1
  376. package/dist/tools/buildTools.d.ts +0 -9
  377. package/dist/tools/buildTools.d.ts.map +0 -1
  378. package/dist/tools/buildTools.js +0 -346
  379. package/dist/tools/buildTools.js.map +0 -1
  380. package/dist/tools/cloudTools.d.ts +0 -49
  381. package/dist/tools/cloudTools.d.ts.map +0 -1
  382. package/dist/tools/cloudTools.js +0 -1258
  383. package/dist/tools/cloudTools.js.map +0 -1
  384. package/dist/tools/codeAnalysisTools.d.ts +0 -74
  385. package/dist/tools/codeAnalysisTools.d.ts.map +0 -1
  386. package/dist/tools/codeAnalysisTools.js +0 -664
  387. package/dist/tools/codeAnalysisTools.js.map +0 -1
  388. package/dist/tools/codeGenerationTools.d.ts +0 -3
  389. package/dist/tools/codeGenerationTools.d.ts.map +0 -1
  390. package/dist/tools/codeGenerationTools.js +0 -439
  391. package/dist/tools/codeGenerationTools.js.map +0 -1
  392. package/dist/tools/codeQualityTools.d.ts +0 -3
  393. package/dist/tools/codeQualityTools.d.ts.map +0 -1
  394. package/dist/tools/codeQualityTools.js +0 -297
  395. package/dist/tools/codeQualityTools.js.map +0 -1
  396. package/dist/tools/dependencyTools.d.ts +0 -3
  397. package/dist/tools/dependencyTools.d.ts.map +0 -1
  398. package/dist/tools/dependencyTools.js +0 -284
  399. package/dist/tools/dependencyTools.js.map +0 -1
  400. package/dist/tools/devTools.d.ts +0 -10
  401. package/dist/tools/devTools.d.ts.map +0 -1
  402. package/dist/tools/devTools.js +0 -2126
  403. package/dist/tools/devTools.js.map +0 -1
  404. package/dist/tools/emailTools.d.ts +0 -21
  405. package/dist/tools/emailTools.d.ts.map +0 -1
  406. package/dist/tools/emailTools.js +0 -449
  407. package/dist/tools/emailTools.js.map +0 -1
  408. package/dist/tools/enhancedAnalysisTools.d.ts +0 -9
  409. package/dist/tools/enhancedAnalysisTools.d.ts.map +0 -1
  410. package/dist/tools/enhancedAnalysisTools.js +0 -370
  411. package/dist/tools/enhancedAnalysisTools.js.map +0 -1
  412. package/dist/tools/enhancedCodeIntelligenceTools.d.ts +0 -7
  413. package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +0 -1
  414. package/dist/tools/enhancedCodeIntelligenceTools.js +0 -540
  415. package/dist/tools/enhancedCodeIntelligenceTools.js.map +0 -1
  416. package/dist/tools/enhancedDevWorkflowTools.d.ts +0 -7
  417. package/dist/tools/enhancedDevWorkflowTools.d.ts.map +0 -1
  418. package/dist/tools/enhancedDevWorkflowTools.js +0 -432
  419. package/dist/tools/enhancedDevWorkflowTools.js.map +0 -1
  420. package/dist/tools/frontendTestingTools.d.ts +0 -35
  421. package/dist/tools/frontendTestingTools.d.ts.map +0 -1
  422. package/dist/tools/frontendTestingTools.js +0 -1258
  423. package/dist/tools/frontendTestingTools.js.map +0 -1
  424. package/dist/tools/globTools.d.ts +0 -15
  425. package/dist/tools/globTools.d.ts.map +0 -1
  426. package/dist/tools/globTools.js +0 -174
  427. package/dist/tools/globTools.js.map +0 -1
  428. package/dist/tools/grepTools.d.ts +0 -19
  429. package/dist/tools/grepTools.d.ts.map +0 -1
  430. package/dist/tools/grepTools.js +0 -411
  431. package/dist/tools/grepTools.js.map +0 -1
  432. package/dist/tools/interactionTools.d.ts +0 -6
  433. package/dist/tools/interactionTools.d.ts.map +0 -1
  434. package/dist/tools/interactionTools.js +0 -209
  435. package/dist/tools/interactionTools.js.map +0 -1
  436. package/dist/tools/learnTools.d.ts +0 -164
  437. package/dist/tools/learnTools.d.ts.map +0 -1
  438. package/dist/tools/learnTools.js +0 -2098
  439. package/dist/tools/learnTools.js.map +0 -1
  440. package/dist/tools/notebookEditTools.d.ts +0 -15
  441. package/dist/tools/notebookEditTools.d.ts.map +0 -1
  442. package/dist/tools/notebookEditTools.js +0 -197
  443. package/dist/tools/notebookEditTools.js.map +0 -1
  444. package/dist/tools/refactoringTools.d.ts +0 -3
  445. package/dist/tools/refactoringTools.d.ts.map +0 -1
  446. package/dist/tools/refactoringTools.js +0 -294
  447. package/dist/tools/refactoringTools.js.map +0 -1
  448. package/dist/tools/repoChecksTools.d.ts +0 -3
  449. package/dist/tools/repoChecksTools.d.ts.map +0 -1
  450. package/dist/tools/repoChecksTools.js +0 -276
  451. package/dist/tools/repoChecksTools.js.map +0 -1
  452. package/dist/tools/taskManagementTools.d.ts +0 -10
  453. package/dist/tools/taskManagementTools.d.ts.map +0 -1
  454. package/dist/tools/taskManagementTools.js +0 -133
  455. package/dist/tools/taskManagementTools.js.map +0 -1
  456. package/dist/tools/testingTools.d.ts +0 -3
  457. package/dist/tools/testingTools.d.ts.map +0 -1
  458. package/dist/tools/testingTools.js +0 -237
  459. package/dist/tools/testingTools.js.map +0 -1
  460. package/dist/tools/validationTools.d.ts +0 -7
  461. package/dist/tools/validationTools.d.ts.map +0 -1
  462. package/dist/tools/validationTools.js +0 -344
  463. package/dist/tools/validationTools.js.map +0 -1
  464. package/dist/tools/webTools.d.ts +0 -3
  465. package/dist/tools/webTools.d.ts.map +0 -1
  466. package/dist/tools/webTools.js +0 -502
  467. package/dist/tools/webTools.js.map +0 -1
@@ -1,664 +0,0 @@
1
- import { readFileSync, existsSync, statSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import ts from 'typescript';
4
- // Maximum file size for code analysis (2MB) to prevent memory exhaustion
5
- const MAX_ANALYSIS_FILE_SIZE = 2 * 1024 * 1024;
6
- export function createCodeAnalysisTools(workingDir) {
7
- return [
8
- {
9
- name: 'analyze_code_structure',
10
- description: 'Analyze TypeScript/JavaScript file structure and extract functions, classes, interfaces, imports, and exports',
11
- parameters: {
12
- type: 'object',
13
- properties: {
14
- path: {
15
- type: 'string',
16
- description: 'Path to the TypeScript/JavaScript file to analyze',
17
- },
18
- },
19
- required: ['path'],
20
- additionalProperties: false,
21
- },
22
- handler: async (args) => {
23
- try {
24
- const filePath = resolveFilePath(workingDir, args['path']);
25
- if (!existsSync(filePath)) {
26
- return `Error: File not found: ${filePath}`;
27
- }
28
- // Check file size to prevent memory exhaustion
29
- const stats = statSync(filePath);
30
- if (stats.size > MAX_ANALYSIS_FILE_SIZE) {
31
- return `Error: File too large (${(stats.size / 1024 / 1024).toFixed(1)}MB). Maximum: ${MAX_ANALYSIS_FILE_SIZE / 1024 / 1024}MB`;
32
- }
33
- const content = readFileSync(filePath, 'utf-8');
34
- const analysis = analyzeTypeScriptFile(content, filePath);
35
- return formatAnalysisResults(analysis);
36
- }
37
- catch (error) {
38
- return formatHandlerError('analyzing file', error);
39
- }
40
- },
41
- },
42
- {
43
- name: 'find_dependencies',
44
- description: 'Find all dependencies and imports in a TypeScript/JavaScript file',
45
- parameters: {
46
- type: 'object',
47
- properties: {
48
- path: {
49
- type: 'string',
50
- description: 'Path to the TypeScript/JavaScript file',
51
- },
52
- },
53
- required: ['path'],
54
- additionalProperties: false,
55
- },
56
- handler: async (args) => {
57
- try {
58
- const filePath = resolveFilePath(workingDir, args['path']);
59
- if (!existsSync(filePath)) {
60
- return `Error: File not found: ${filePath}`;
61
- }
62
- // Check file size to prevent memory exhaustion
63
- const stats = statSync(filePath);
64
- if (stats.size > MAX_ANALYSIS_FILE_SIZE) {
65
- return `Error: File too large (${(stats.size / 1024 / 1024).toFixed(1)}MB). Maximum: ${MAX_ANALYSIS_FILE_SIZE / 1024 / 1024}MB`;
66
- }
67
- const content = readFileSync(filePath, 'utf-8');
68
- const analysis = analyzeTypeScriptFile(content, filePath);
69
- return formatDependencies(analysis);
70
- }
71
- catch (error) {
72
- return formatHandlerError('analyzing dependencies', error);
73
- }
74
- },
75
- },
76
- {
77
- name: 'check_code_complexity',
78
- description: 'Analyze code complexity metrics (function length, parameter count, etc.)',
79
- parameters: {
80
- type: 'object',
81
- properties: {
82
- path: {
83
- type: 'string',
84
- description: 'Path to the TypeScript/JavaScript file',
85
- },
86
- },
87
- required: ['path'],
88
- additionalProperties: false,
89
- },
90
- handler: async (args) => {
91
- try {
92
- const filePath = resolveFilePath(workingDir, args['path']);
93
- if (!existsSync(filePath)) {
94
- return `Error: File not found: ${filePath}`;
95
- }
96
- // Check file size to prevent memory exhaustion
97
- const stats = statSync(filePath);
98
- if (stats.size > MAX_ANALYSIS_FILE_SIZE) {
99
- return `Error: File too large (${(stats.size / 1024 / 1024).toFixed(1)}MB). Maximum: ${MAX_ANALYSIS_FILE_SIZE / 1024 / 1024}MB`;
100
- }
101
- const content = readFileSync(filePath, 'utf-8');
102
- const analysis = analyzeTypeScriptFile(content, filePath);
103
- return formatComplexityMetrics(analysis);
104
- }
105
- catch (error) {
106
- return formatHandlerError('analyzing complexity', error);
107
- }
108
- },
109
- },
110
- {
111
- name: 'advanced_ast_analysis',
112
- description: 'Perform AST-based analysis with cyclomatic complexity scoring, call graph construction, and potential hotspot detection.',
113
- parameters: {
114
- type: 'object',
115
- properties: {
116
- path: {
117
- type: 'string',
118
- description: 'Path to the TypeScript/JavaScript file to inspect',
119
- },
120
- },
121
- required: ['path'],
122
- additionalProperties: false,
123
- },
124
- handler: async (args) => {
125
- try {
126
- const filePath = resolveFilePath(workingDir, args['path']);
127
- if (!existsSync(filePath)) {
128
- return `Error: File not found: ${filePath}`;
129
- }
130
- // Check file size to prevent memory exhaustion
131
- const stats = statSync(filePath);
132
- if (stats.size > MAX_ANALYSIS_FILE_SIZE) {
133
- return `Error: File too large (${(stats.size / 1024 / 1024).toFixed(1)}MB). Maximum: ${MAX_ANALYSIS_FILE_SIZE / 1024 / 1024}MB`;
134
- }
135
- const content = readFileSync(filePath, 'utf-8');
136
- const analysis = performAdvancedAstAnalysis(content, filePath);
137
- return formatAstAnalysis(analysis);
138
- }
139
- catch (error) {
140
- return formatHandlerError('performing AST analysis', error);
141
- }
142
- },
143
- },
144
- ];
145
- }
146
- function resolveFilePath(workingDir, path) {
147
- const normalized = validatePathArg(path);
148
- return normalized.startsWith('/') ? normalized : join(workingDir, normalized);
149
- }
150
- function validatePathArg(path) {
151
- if (typeof path !== 'string' || !path.trim()) {
152
- throw new Error('Path must be a non-empty string.');
153
- }
154
- return path.trim();
155
- }
156
- export function analyzeTypeScriptFile(content, filePath) {
157
- const lines = content.split('\n');
158
- const result = {
159
- file: filePath,
160
- functions: [],
161
- classes: [],
162
- interfaces: [],
163
- imports: [],
164
- exports: [],
165
- };
166
- lines.forEach((line, index) => {
167
- const lineNumber = index + 1;
168
- const trimmed = line.trim();
169
- // Parse imports
170
- if (trimmed.startsWith('import')) {
171
- const importInfo = parseImportStatement(trimmed, lineNumber);
172
- if (importInfo) {
173
- result.imports.push(importInfo);
174
- }
175
- }
176
- // Parse exports
177
- if (trimmed.startsWith('export')) {
178
- const exportInfo = parseExportStatement(trimmed, lineNumber);
179
- if (exportInfo) {
180
- result.exports.push(exportInfo);
181
- }
182
- }
183
- // Parse functions
184
- const functionMatch = trimmed.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)\s*\(([^)]*)\)/);
185
- if (functionMatch) {
186
- const fnName = functionMatch[1] ?? '';
187
- const fnParams = functionMatch[2] ?? '';
188
- result.functions.push({
189
- name: fnName,
190
- line: lineNumber,
191
- parameters: parseParameters(fnParams),
192
- });
193
- }
194
- // Parse arrow functions
195
- const arrowFunctionMatch = trimmed.match(/^(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=\s*(?:\(([^)]*)\)|(\w+))\s*=>/);
196
- if (arrowFunctionMatch) {
197
- const name = arrowFunctionMatch[1] ?? '';
198
- const params = arrowFunctionMatch[2] || arrowFunctionMatch[3] || '';
199
- result.functions.push({
200
- name,
201
- line: lineNumber,
202
- parameters: parseParameters(params),
203
- });
204
- }
205
- // Parse classes
206
- const classMatch = trimmed.match(/^(?:export\s+)?class\s+(\w+)/);
207
- if (classMatch) {
208
- const className = classMatch[1] ?? '';
209
- result.classes.push({
210
- name: className,
211
- line: lineNumber,
212
- methods: [],
213
- properties: [],
214
- });
215
- }
216
- // Parse interfaces
217
- const interfaceMatch = trimmed.match(/^(?:export\s+)?interface\s+(\w+)/);
218
- if (interfaceMatch) {
219
- const interfaceName = interfaceMatch[1] ?? '';
220
- result.interfaces.push({
221
- name: interfaceName,
222
- line: lineNumber,
223
- properties: [],
224
- methods: [],
225
- });
226
- }
227
- // Parse class methods and properties (simplified)
228
- if (trimmed.match(/^(?:public|private|protected|readonly)?\s*\w+\s*\([^)]*\)/)) {
229
- const methodMatch = trimmed.match(/^(?:public|private|protected)?\s*(\w+)\s*\(([^)]*)\)/);
230
- if (methodMatch && result.classes.length > 0) {
231
- const currentClass = result.classes[result.classes.length - 1];
232
- if (currentClass) {
233
- currentClass.methods.push({
234
- name: methodMatch[1] ?? '',
235
- line: lineNumber,
236
- parameters: parseParameters(methodMatch[2] ?? ''),
237
- });
238
- }
239
- }
240
- }
241
- // Parse interface properties
242
- if (trimmed.match(/^\w+\s*:/) && result.interfaces.length > 0) {
243
- const propMatch = trimmed.match(/^(\w+)\s*:/);
244
- if (propMatch) {
245
- const currentInterface = result.interfaces[result.interfaces.length - 1];
246
- if (currentInterface) {
247
- currentInterface.properties.push({
248
- name: propMatch[1] ?? '',
249
- line: lineNumber,
250
- });
251
- }
252
- }
253
- }
254
- });
255
- return result;
256
- }
257
- export function performAdvancedAstAnalysis(content, filePath) {
258
- const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
259
- const symbols = [];
260
- const callGraph = new Map();
261
- const issues = [];
262
- const symbolStack = [];
263
- const recordCall = (callee) => {
264
- if (!callee) {
265
- return;
266
- }
267
- const caller = symbolStack[symbolStack.length - 1];
268
- if (!caller) {
269
- return;
270
- }
271
- if (!callGraph.has(caller)) {
272
- callGraph.set(caller, new Map());
273
- }
274
- const targets = callGraph.get(caller);
275
- targets.set(callee, (targets.get(callee) ?? 0) + 1);
276
- };
277
- const registerSymbol = (info) => {
278
- symbols.push(info);
279
- if (info.statementCount > 50) {
280
- issues.push(`Large function detected: ${info.name} spans ${info.statementCount} statements.`);
281
- }
282
- if (info.cyclomaticComplexity > 10) {
283
- issues.push(`High complexity function: ${info.name} cyclomatic complexity is ${info.cyclomaticComplexity}.`);
284
- }
285
- };
286
- const visit = (node) => {
287
- if (ts.isFunctionDeclaration(node) && node.name) {
288
- const info = buildFunctionSymbol(node, node.name.text, 'function', sourceFile);
289
- registerSymbol(info);
290
- symbolStack.push(info.name);
291
- ts.forEachChild(node, visit);
292
- symbolStack.pop();
293
- return;
294
- }
295
- if (ts.isClassDeclaration(node) && node.name) {
296
- const info = buildClassSymbol(node, sourceFile);
297
- registerSymbol(info);
298
- ts.forEachChild(node, visit);
299
- return;
300
- }
301
- if ((ts.isMethodDeclaration(node) || ts.isGetAccessorDeclaration(node) || ts.isSetAccessorDeclaration(node)) &&
302
- ts.isClassLike(node.parent)) {
303
- const className = (node.parent.name && node.parent.name.getText(sourceFile)) || 'anonymous-class';
304
- const methodName = ts.isIdentifier(node.name) ? node.name.getText(sourceFile) : 'anonymous-method';
305
- const info = buildFunctionSymbol(node, `${className}.${methodName}`, 'method', sourceFile);
306
- registerSymbol(info);
307
- symbolStack.push(info.name);
308
- ts.forEachChild(node, visit);
309
- symbolStack.pop();
310
- return;
311
- }
312
- if (ts.isConstructorDeclaration(node) && ts.isClassLike(node.parent)) {
313
- const className = (node.parent.name && node.parent.name.getText(sourceFile)) || 'anonymous-class';
314
- const info = buildFunctionSymbol(node, `${className}.constructor`, 'method', sourceFile);
315
- registerSymbol(info);
316
- symbolStack.push(info.name);
317
- ts.forEachChild(node, visit);
318
- symbolStack.pop();
319
- return;
320
- }
321
- if (ts.isVariableDeclaration(node) &&
322
- node.initializer &&
323
- (ts.isArrowFunction(node.initializer) || ts.isFunctionExpression(node.initializer)) &&
324
- ts.isIdentifier(node.name)) {
325
- const kind = ts.isArrowFunction(node.initializer) ? 'arrow-function' : 'function';
326
- const info = buildFunctionSymbol(node.initializer, node.name.text, kind, sourceFile);
327
- registerSymbol(info);
328
- symbolStack.push(info.name);
329
- ts.forEachChild(node.initializer, visit);
330
- symbolStack.pop();
331
- return;
332
- }
333
- if (ts.isCallExpression(node) || ts.isNewExpression(node)) {
334
- const callee = extractCalleeName(node.expression);
335
- recordCall(callee);
336
- }
337
- ts.forEachChild(node, visit);
338
- };
339
- visit(sourceFile);
340
- const callGraphList = [];
341
- for (const [from, targets] of callGraph.entries()) {
342
- for (const [to, count] of targets.entries()) {
343
- callGraphList.push({ from, to, count });
344
- }
345
- }
346
- const totalCyclomaticComplexity = symbols.reduce((sum, symbol) => sum + symbol.cyclomaticComplexity, 0);
347
- return {
348
- file: filePath,
349
- symbols,
350
- callGraph: callGraphList,
351
- totalCyclomaticComplexity,
352
- issues,
353
- };
354
- }
355
- function buildFunctionSymbol(node, name, kind, sourceFile) {
356
- const startLine = sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1;
357
- const endLine = sourceFile.getLineAndCharacterOfPosition(node.end).line + 1;
358
- const statementCount = countStatements(node);
359
- const cyclomaticComplexity = estimateCyclomaticComplexity(node);
360
- const parameters = node.parameters?.map((param) => param.name.getText(sourceFile)) ?? [];
361
- return {
362
- name,
363
- kind,
364
- startLine,
365
- endLine,
366
- parameters,
367
- statementCount,
368
- cyclomaticComplexity,
369
- };
370
- }
371
- function buildClassSymbol(node, sourceFile) {
372
- const name = (node.name && node.name.getText(sourceFile)) || 'AnonymousClass';
373
- const startLine = sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1;
374
- const endLine = sourceFile.getLineAndCharacterOfPosition(node.end).line + 1;
375
- const statementCount = node.members.length;
376
- const cyclomaticComplexity = node.members.reduce((sum, member) => {
377
- if (ts.isMethodDeclaration(member) ||
378
- ts.isConstructorDeclaration(member) ||
379
- ts.isGetAccessorDeclaration(member) ||
380
- ts.isSetAccessorDeclaration(member)) {
381
- return sum + estimateCyclomaticComplexity(member);
382
- }
383
- return sum;
384
- }, 1);
385
- return {
386
- name,
387
- kind: 'class',
388
- startLine,
389
- endLine,
390
- parameters: [],
391
- statementCount,
392
- cyclomaticComplexity,
393
- };
394
- }
395
- function countStatements(node) {
396
- const body = node.body;
397
- if (!body) {
398
- return 0;
399
- }
400
- if (ts.isBlock(body)) {
401
- return body.statements.length;
402
- }
403
- return 1;
404
- }
405
- function estimateCyclomaticComplexity(node) {
406
- let complexity = 1;
407
- const visit = (child) => {
408
- if (ts.isIfStatement(child) ||
409
- ts.isForStatement(child) ||
410
- ts.isWhileStatement(child) ||
411
- ts.isForOfStatement(child) ||
412
- ts.isForInStatement(child) ||
413
- ts.isCaseClause(child) ||
414
- ts.isCatchClause(child)) {
415
- complexity += 1;
416
- }
417
- else if (ts.isConditionalExpression(child)) {
418
- complexity += 1;
419
- }
420
- else if (ts.isBinaryExpression(child) &&
421
- (child.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken ||
422
- child.operatorToken.kind === ts.SyntaxKind.BarBarToken)) {
423
- complexity += 1;
424
- }
425
- ts.forEachChild(child, visit);
426
- };
427
- ts.forEachChild(node, visit);
428
- return complexity;
429
- }
430
- function extractCalleeName(expression) {
431
- if (!expression) {
432
- return null;
433
- }
434
- if (ts.isIdentifier(expression)) {
435
- return expression.text;
436
- }
437
- if (ts.isPropertyAccessExpression(expression)) {
438
- return expression.name.text;
439
- }
440
- return null;
441
- }
442
- function formatAstAnalysis(result) {
443
- const output = [];
444
- output.push(`# Advanced AST Analysis: ${result.file}`);
445
- output.push('');
446
- output.push('## Symbol Metrics');
447
- if (result.symbols.length === 0) {
448
- output.push('No functions or classes detected.');
449
- }
450
- else {
451
- const sorted = [...result.symbols].sort((a, b) => b.cyclomaticComplexity - a.cyclomaticComplexity);
452
- for (const symbol of sorted) {
453
- output.push(`- ${symbol.name} (${symbol.kind}) lines ${symbol.startLine}-${symbol.endLine} | statements: ${symbol.statementCount} | CC: ${symbol.cyclomaticComplexity} | params: ${symbol.parameters.join(', ') || 'none'}`);
454
- }
455
- }
456
- output.push('');
457
- output.push('## Call Graph');
458
- if (result.callGraph.length === 0) {
459
- output.push('No function-to-function calls detected.');
460
- }
461
- else {
462
- for (const edge of result.callGraph) {
463
- output.push(`- ${edge.from} → ${edge.to} (x${edge.count})`);
464
- }
465
- }
466
- output.push('');
467
- output.push('## Hotspot Alerts');
468
- if (result.issues.length === 0) {
469
- output.push('No hotspots detected.');
470
- }
471
- else {
472
- for (const issue of result.issues) {
473
- output.push(`- ${issue}`);
474
- }
475
- }
476
- output.push('');
477
- const averageComplexity = result.symbols.length === 0 ? 0 : result.totalCyclomaticComplexity / result.symbols.length;
478
- output.push('## Aggregate Metrics');
479
- output.push(`- Total symbols analyzed: ${result.symbols.length}`);
480
- output.push(`- Total cyclomatic complexity: ${result.totalCyclomaticComplexity}`);
481
- output.push(`- Average cyclomatic complexity: ${averageComplexity.toFixed(2)}`);
482
- return output.join('\n');
483
- }
484
- function formatHandlerError(task, error) {
485
- const message = error instanceof Error ? error.message : String(error);
486
- return `Error ${task}: ${message}`;
487
- }
488
- function parseImportStatement(line, lineNumber) {
489
- // Simple import parsing - can be enhanced with proper AST parsing
490
- const importMatch = line.match(/import\s+(?:\*\s+as\s+(\w+)|\{([^}]+)\}|(\w+))\s+from\s+['"]([^'"]+)['"]/);
491
- if (importMatch) {
492
- let specifiers = [];
493
- if (importMatch[1]) {
494
- // namespace import
495
- specifiers = [`* as ${importMatch[1]}`];
496
- }
497
- else if (importMatch[2]) {
498
- // named imports
499
- specifiers = importMatch[2].split(',').map(s => s.trim()).filter(Boolean);
500
- }
501
- else if (importMatch[3]) {
502
- // default import
503
- specifiers = [importMatch[3]];
504
- }
505
- return {
506
- source: importMatch[4] ?? '',
507
- specifiers,
508
- line: lineNumber,
509
- };
510
- }
511
- return null;
512
- }
513
- function parseExportStatement(line, lineNumber) {
514
- if (line.includes('export default')) {
515
- const defaultMatch = line.match(/export\s+default\s+(\w+)/);
516
- if (defaultMatch) {
517
- return {
518
- name: defaultMatch[1] ?? '',
519
- type: 'default',
520
- line: lineNumber,
521
- };
522
- }
523
- }
524
- else if (line.includes('export {')) {
525
- const namedMatch = line.match(/export\s+\{\s*([^}]+)\s*\}/);
526
- if (namedMatch) {
527
- return {
528
- name: namedMatch[1] ?? '',
529
- type: 'named',
530
- line: lineNumber,
531
- };
532
- }
533
- }
534
- else {
535
- const exportMatch = line.match(/export\s+(?:class|function|interface|const|let|var)\s+(\w+)/);
536
- if (exportMatch) {
537
- return {
538
- name: exportMatch[1] ?? '',
539
- type: 'named',
540
- line: lineNumber,
541
- };
542
- }
543
- }
544
- return null;
545
- }
546
- function parseParameters(paramString) {
547
- return paramString
548
- .split(',')
549
- .map((p) => p.trim())
550
- .filter((p) => p.length > 0)
551
- .map((p) => {
552
- // Extract parameter name (ignore types for now)
553
- const nameMatch = p.match(/^(\w+)(?:\s*:\s*[^,]+)?$/);
554
- return nameMatch?.[1] ?? p;
555
- });
556
- }
557
- function formatAnalysisResults(analysis) {
558
- const output = [];
559
- output.push(`# Code Analysis: ${analysis.file}`);
560
- output.push('');
561
- if (analysis.imports.length > 0) {
562
- output.push('## Imports');
563
- analysis.imports.forEach(imp => {
564
- output.push(`- Line ${imp.line}: from "${imp.source}"`);
565
- if (imp.specifiers.length > 0) {
566
- output.push(` ${imp.specifiers.join(', ')}`);
567
- }
568
- });
569
- output.push('');
570
- }
571
- if (analysis.exports.length > 0) {
572
- output.push('## Exports');
573
- analysis.exports.forEach(exp => {
574
- output.push(`- Line ${exp.line}: ${exp.type} ${exp.name}`);
575
- });
576
- output.push('');
577
- }
578
- if (analysis.functions.length > 0) {
579
- output.push('## Functions');
580
- analysis.functions.forEach(func => {
581
- output.push(`- Line ${func.line}: ${func.name}(${func.parameters.join(', ')})`);
582
- });
583
- output.push('');
584
- }
585
- if (analysis.classes.length > 0) {
586
- output.push('## Classes');
587
- analysis.classes.forEach(cls => {
588
- output.push(`- Line ${cls.line}: ${cls.name}`);
589
- if (cls.methods.length > 0) {
590
- output.push(` Methods: ${cls.methods.map(m => m.name).join(', ')}`);
591
- }
592
- if (cls.properties.length > 0) {
593
- output.push(` Properties: ${cls.properties.map(p => p.name).join(', ')}`);
594
- }
595
- });
596
- output.push('');
597
- }
598
- if (analysis.interfaces.length > 0) {
599
- output.push('## Interfaces');
600
- analysis.interfaces.forEach(intf => {
601
- output.push(`- Line ${intf.line}: ${intf.name}`);
602
- if (intf.properties.length > 0) {
603
- output.push(` Properties: ${intf.properties.map(p => p.name).join(', ')}`);
604
- }
605
- if (intf.methods.length > 0) {
606
- output.push(` Methods: ${intf.methods.map(m => m.name).join(', ')}`);
607
- }
608
- });
609
- output.push('');
610
- }
611
- return output.join('\n');
612
- }
613
- function formatDependencies(analysis) {
614
- const output = [];
615
- output.push(`# Dependencies: ${analysis.file}`);
616
- output.push('');
617
- if (analysis.imports.length > 0) {
618
- output.push('## Imported Modules');
619
- analysis.imports.forEach(imp => {
620
- output.push(`- ${imp.source}`);
621
- if (imp.specifiers.length > 0) {
622
- output.push(` Used: ${imp.specifiers.join(', ')}`);
623
- }
624
- });
625
- }
626
- else {
627
- output.push('No imports found.');
628
- }
629
- return output.join('\n');
630
- }
631
- function formatComplexityMetrics(analysis) {
632
- const output = [];
633
- output.push(`# Code Complexity: ${analysis.file}`);
634
- output.push('');
635
- // Function complexity
636
- if (analysis.functions.length > 0) {
637
- output.push('## Function Complexity');
638
- analysis.functions.forEach(func => {
639
- const paramCount = func.parameters.length;
640
- const complexity = paramCount > 3 ? 'High' : paramCount > 1 ? 'Medium' : 'Low';
641
- output.push(`- ${func.name}: ${paramCount} parameters (${complexity})`);
642
- });
643
- }
644
- // Class complexity
645
- if (analysis.classes.length > 0) {
646
- output.push('## Class Complexity');
647
- analysis.classes.forEach(cls => {
648
- const methodCount = cls.methods.length;
649
- const propCount = cls.properties.length;
650
- const complexity = methodCount + propCount > 5 ? 'High' : methodCount + propCount > 2 ? 'Medium' : 'Low';
651
- output.push(`- ${cls.name}: ${methodCount} methods, ${propCount} properties (${complexity})`);
652
- });
653
- }
654
- // Overall metrics
655
- output.push('');
656
- output.push('## Overall Metrics');
657
- output.push(`- Total functions: ${analysis.functions.length}`);
658
- output.push(`- Total classes: ${analysis.classes.length}`);
659
- output.push(`- Total interfaces: ${analysis.interfaces.length}`);
660
- output.push(`- Total imports: ${analysis.imports.length}`);
661
- output.push(`- Total exports: ${analysis.exports.length}`);
662
- return output.join('\n');
663
- }
664
- //# sourceMappingURL=codeAnalysisTools.js.map