erosolar-cli 1.7.436 → 1.7.439

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 (1017) hide show
  1. package/package.json +2 -1
  2. package/dist/StringUtils.d.ts +0 -8
  3. package/dist/StringUtils.d.ts.map +0 -1
  4. package/dist/StringUtils.js +0 -11
  5. package/dist/StringUtils.js.map +0 -1
  6. package/dist/adapters/browser/index.d.ts +0 -12
  7. package/dist/adapters/browser/index.d.ts.map +0 -1
  8. package/dist/adapters/browser/index.js +0 -11
  9. package/dist/adapters/browser/index.js.map +0 -1
  10. package/dist/adapters/node/index.d.ts +0 -17
  11. package/dist/adapters/node/index.d.ts.map +0 -1
  12. package/dist/adapters/node/index.js +0 -35
  13. package/dist/adapters/node/index.js.map +0 -1
  14. package/dist/adapters/remote/index.d.ts +0 -13
  15. package/dist/adapters/remote/index.d.ts.map +0 -1
  16. package/dist/adapters/remote/index.js +0 -20
  17. package/dist/adapters/remote/index.js.map +0 -1
  18. package/dist/adapters/types.d.ts +0 -14
  19. package/dist/adapters/types.d.ts.map +0 -1
  20. package/dist/adapters/types.js +0 -2
  21. package/dist/adapters/types.js.map +0 -1
  22. package/dist/bin/erosolar.d.ts +0 -9
  23. package/dist/bin/erosolar.d.ts.map +0 -1
  24. package/dist/bin/erosolar.js +0 -93
  25. package/dist/bin/erosolar.js.map +0 -1
  26. package/dist/bin/selfTest.d.ts +0 -14
  27. package/dist/bin/selfTest.d.ts.map +0 -1
  28. package/dist/bin/selfTest.js +0 -304
  29. package/dist/bin/selfTest.js.map +0 -1
  30. package/dist/browser/BrowserSessionManager.d.ts +0 -307
  31. package/dist/browser/BrowserSessionManager.d.ts.map +0 -1
  32. package/dist/browser/BrowserSessionManager.js +0 -713
  33. package/dist/browser/BrowserSessionManager.js.map +0 -1
  34. package/dist/capabilities/advancedTestGenerationCapability.d.ts +0 -17
  35. package/dist/capabilities/advancedTestGenerationCapability.d.ts.map +0 -1
  36. package/dist/capabilities/advancedTestGenerationCapability.js +0 -28
  37. package/dist/capabilities/advancedTestGenerationCapability.js.map +0 -1
  38. package/dist/capabilities/agentSpawningCapability.d.ts +0 -6
  39. package/dist/capabilities/agentSpawningCapability.d.ts.map +0 -1
  40. package/dist/capabilities/agentSpawningCapability.js +0 -168
  41. package/dist/capabilities/agentSpawningCapability.js.map +0 -1
  42. package/dist/capabilities/askUserCapability.d.ts +0 -21
  43. package/dist/capabilities/askUserCapability.d.ts.map +0 -1
  44. package/dist/capabilities/askUserCapability.js +0 -155
  45. package/dist/capabilities/askUserCapability.js.map +0 -1
  46. package/dist/capabilities/bashCapability.d.ts +0 -13
  47. package/dist/capabilities/bashCapability.d.ts.map +0 -1
  48. package/dist/capabilities/bashCapability.js +0 -24
  49. package/dist/capabilities/bashCapability.js.map +0 -1
  50. package/dist/capabilities/browserAutomationCapability.d.ts +0 -37
  51. package/dist/capabilities/browserAutomationCapability.d.ts.map +0 -1
  52. package/dist/capabilities/browserAutomationCapability.js +0 -49
  53. package/dist/capabilities/browserAutomationCapability.js.map +0 -1
  54. package/dist/capabilities/buildCapability.d.ts +0 -24
  55. package/dist/capabilities/buildCapability.d.ts.map +0 -1
  56. package/dist/capabilities/buildCapability.js +0 -25
  57. package/dist/capabilities/buildCapability.js.map +0 -1
  58. package/dist/capabilities/cloudCapability.d.ts +0 -13
  59. package/dist/capabilities/cloudCapability.d.ts.map +0 -1
  60. package/dist/capabilities/cloudCapability.js +0 -38
  61. package/dist/capabilities/cloudCapability.js.map +0 -1
  62. package/dist/capabilities/codeAnalysisCapability.d.ts +0 -13
  63. package/dist/capabilities/codeAnalysisCapability.d.ts.map +0 -1
  64. package/dist/capabilities/codeAnalysisCapability.js +0 -24
  65. package/dist/capabilities/codeAnalysisCapability.js.map +0 -1
  66. package/dist/capabilities/codeGenerationCapability.d.ts +0 -13
  67. package/dist/capabilities/codeGenerationCapability.d.ts.map +0 -1
  68. package/dist/capabilities/codeGenerationCapability.js +0 -25
  69. package/dist/capabilities/codeGenerationCapability.js.map +0 -1
  70. package/dist/capabilities/codeQualityCapability.d.ts +0 -13
  71. package/dist/capabilities/codeQualityCapability.d.ts.map +0 -1
  72. package/dist/capabilities/codeQualityCapability.js +0 -25
  73. package/dist/capabilities/codeQualityCapability.js.map +0 -1
  74. package/dist/capabilities/dependencySecurityCapability.d.ts +0 -13
  75. package/dist/capabilities/dependencySecurityCapability.d.ts.map +0 -1
  76. package/dist/capabilities/dependencySecurityCapability.js +0 -24
  77. package/dist/capabilities/dependencySecurityCapability.js.map +0 -1
  78. package/dist/capabilities/devCapability.d.ts +0 -13
  79. package/dist/capabilities/devCapability.d.ts.map +0 -1
  80. package/dist/capabilities/devCapability.js +0 -24
  81. package/dist/capabilities/devCapability.js.map +0 -1
  82. package/dist/capabilities/editCapability.d.ts +0 -17
  83. package/dist/capabilities/editCapability.d.ts.map +0 -1
  84. package/dist/capabilities/editCapability.js +0 -27
  85. package/dist/capabilities/editCapability.js.map +0 -1
  86. package/dist/capabilities/emailCapability.d.ts +0 -12
  87. package/dist/capabilities/emailCapability.d.ts.map +0 -1
  88. package/dist/capabilities/emailCapability.js +0 -22
  89. package/dist/capabilities/emailCapability.js.map +0 -1
  90. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts +0 -17
  91. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts.map +0 -1
  92. package/dist/capabilities/enhancedCodeIntelligenceCapability.js +0 -28
  93. package/dist/capabilities/enhancedCodeIntelligenceCapability.js.map +0 -1
  94. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts +0 -17
  95. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts.map +0 -1
  96. package/dist/capabilities/enhancedDevWorkflowCapability.js +0 -28
  97. package/dist/capabilities/enhancedDevWorkflowCapability.js.map +0 -1
  98. package/dist/capabilities/enhancedGitCapability.d.ts +0 -7
  99. package/dist/capabilities/enhancedGitCapability.d.ts.map +0 -1
  100. package/dist/capabilities/enhancedGitCapability.js +0 -220
  101. package/dist/capabilities/enhancedGitCapability.js.map +0 -1
  102. package/dist/capabilities/filesystemCapability.d.ts +0 -13
  103. package/dist/capabilities/filesystemCapability.d.ts.map +0 -1
  104. package/dist/capabilities/filesystemCapability.js +0 -24
  105. package/dist/capabilities/filesystemCapability.js.map +0 -1
  106. package/dist/capabilities/frontendTestingCapability.d.ts +0 -13
  107. package/dist/capabilities/frontendTestingCapability.d.ts.map +0 -1
  108. package/dist/capabilities/frontendTestingCapability.js +0 -28
  109. package/dist/capabilities/frontendTestingCapability.js.map +0 -1
  110. package/dist/capabilities/globCapability.d.ts +0 -17
  111. package/dist/capabilities/globCapability.d.ts.map +0 -1
  112. package/dist/capabilities/globCapability.js +0 -27
  113. package/dist/capabilities/globCapability.js.map +0 -1
  114. package/dist/capabilities/index.d.ts +0 -26
  115. package/dist/capabilities/index.d.ts.map +0 -1
  116. package/dist/capabilities/index.js +0 -26
  117. package/dist/capabilities/index.js.map +0 -1
  118. package/dist/capabilities/interactionCapability.d.ts +0 -12
  119. package/dist/capabilities/interactionCapability.d.ts.map +0 -1
  120. package/dist/capabilities/interactionCapability.js +0 -22
  121. package/dist/capabilities/interactionCapability.js.map +0 -1
  122. package/dist/capabilities/learnCapability.d.ts +0 -22
  123. package/dist/capabilities/learnCapability.d.ts.map +0 -1
  124. package/dist/capabilities/learnCapability.js +0 -37
  125. package/dist/capabilities/learnCapability.js.map +0 -1
  126. package/dist/capabilities/mcpCapability.d.ts +0 -6
  127. package/dist/capabilities/mcpCapability.d.ts.map +0 -1
  128. package/dist/capabilities/mcpCapability.js +0 -19
  129. package/dist/capabilities/mcpCapability.js.map +0 -1
  130. package/dist/capabilities/notebookCapability.d.ts +0 -17
  131. package/dist/capabilities/notebookCapability.d.ts.map +0 -1
  132. package/dist/capabilities/notebookCapability.js +0 -27
  133. package/dist/capabilities/notebookCapability.js.map +0 -1
  134. package/dist/capabilities/performanceMonitoringCapability.d.ts +0 -108
  135. package/dist/capabilities/performanceMonitoringCapability.d.ts.map +0 -1
  136. package/dist/capabilities/performanceMonitoringCapability.js +0 -176
  137. package/dist/capabilities/performanceMonitoringCapability.js.map +0 -1
  138. package/dist/capabilities/planningCapability.d.ts +0 -16
  139. package/dist/capabilities/planningCapability.d.ts.map +0 -1
  140. package/dist/capabilities/planningCapability.js +0 -26
  141. package/dist/capabilities/planningCapability.js.map +0 -1
  142. package/dist/capabilities/refactoringCapability.d.ts +0 -13
  143. package/dist/capabilities/refactoringCapability.d.ts.map +0 -1
  144. package/dist/capabilities/refactoringCapability.js +0 -25
  145. package/dist/capabilities/refactoringCapability.js.map +0 -1
  146. package/dist/capabilities/repoChecksCapability.d.ts +0 -10
  147. package/dist/capabilities/repoChecksCapability.d.ts.map +0 -1
  148. package/dist/capabilities/repoChecksCapability.js +0 -24
  149. package/dist/capabilities/repoChecksCapability.js.map +0 -1
  150. package/dist/capabilities/searchCapability.d.ts +0 -13
  151. package/dist/capabilities/searchCapability.d.ts.map +0 -1
  152. package/dist/capabilities/searchCapability.js +0 -24
  153. package/dist/capabilities/searchCapability.js.map +0 -1
  154. package/dist/capabilities/skillCapability.d.ts +0 -3
  155. package/dist/capabilities/skillCapability.d.ts.map +0 -1
  156. package/dist/capabilities/skillCapability.js +0 -77
  157. package/dist/capabilities/skillCapability.js.map +0 -1
  158. package/dist/capabilities/statusCapability.d.ts +0 -4
  159. package/dist/capabilities/statusCapability.d.ts.map +0 -1
  160. package/dist/capabilities/statusCapability.js +0 -92
  161. package/dist/capabilities/statusCapability.js.map +0 -1
  162. package/dist/capabilities/taskManagementCapability.d.ts +0 -12
  163. package/dist/capabilities/taskManagementCapability.d.ts.map +0 -1
  164. package/dist/capabilities/taskManagementCapability.js +0 -22
  165. package/dist/capabilities/taskManagementCapability.js.map +0 -1
  166. package/dist/capabilities/testingCapability.d.ts +0 -13
  167. package/dist/capabilities/testingCapability.d.ts.map +0 -1
  168. package/dist/capabilities/testingCapability.js +0 -25
  169. package/dist/capabilities/testingCapability.js.map +0 -1
  170. package/dist/capabilities/todoCapability.d.ts +0 -19
  171. package/dist/capabilities/todoCapability.d.ts.map +0 -1
  172. package/dist/capabilities/todoCapability.js +0 -169
  173. package/dist/capabilities/todoCapability.js.map +0 -1
  174. package/dist/capabilities/toolManifest.d.ts +0 -3
  175. package/dist/capabilities/toolManifest.d.ts.map +0 -1
  176. package/dist/capabilities/toolManifest.js +0 -160
  177. package/dist/capabilities/toolManifest.js.map +0 -1
  178. package/dist/capabilities/toolRegistry.d.ts +0 -24
  179. package/dist/capabilities/toolRegistry.d.ts.map +0 -1
  180. package/dist/capabilities/toolRegistry.js +0 -150
  181. package/dist/capabilities/toolRegistry.js.map +0 -1
  182. package/dist/capabilities/validationCapability.d.ts +0 -13
  183. package/dist/capabilities/validationCapability.d.ts.map +0 -1
  184. package/dist/capabilities/validationCapability.js +0 -24
  185. package/dist/capabilities/validationCapability.js.map +0 -1
  186. package/dist/capabilities/webCapability.d.ts +0 -12
  187. package/dist/capabilities/webCapability.d.ts.map +0 -1
  188. package/dist/capabilities/webCapability.js +0 -22
  189. package/dist/capabilities/webCapability.js.map +0 -1
  190. package/dist/config.d.ts +0 -25
  191. package/dist/config.d.ts.map +0 -1
  192. package/dist/config.js +0 -140
  193. package/dist/config.js.map +0 -1
  194. package/dist/contracts/v1/agent.d.ts +0 -147
  195. package/dist/contracts/v1/agent.d.ts.map +0 -1
  196. package/dist/contracts/v1/agent.js +0 -8
  197. package/dist/contracts/v1/agent.js.map +0 -1
  198. package/dist/contracts/v1/agentProfileManifest.d.ts +0 -60
  199. package/dist/contracts/v1/agentProfileManifest.d.ts.map +0 -1
  200. package/dist/contracts/v1/agentProfileManifest.js +0 -9
  201. package/dist/contracts/v1/agentProfileManifest.js.map +0 -1
  202. package/dist/contracts/v1/agentRules.d.ts +0 -60
  203. package/dist/contracts/v1/agentRules.d.ts.map +0 -1
  204. package/dist/contracts/v1/agentRules.js +0 -10
  205. package/dist/contracts/v1/agentRules.js.map +0 -1
  206. package/dist/contracts/v1/provider.d.ts +0 -149
  207. package/dist/contracts/v1/provider.d.ts.map +0 -1
  208. package/dist/contracts/v1/provider.js +0 -7
  209. package/dist/contracts/v1/provider.js.map +0 -1
  210. package/dist/contracts/v1/tool.d.ts +0 -136
  211. package/dist/contracts/v1/tool.d.ts.map +0 -1
  212. package/dist/contracts/v1/tool.js +0 -7
  213. package/dist/contracts/v1/tool.js.map +0 -1
  214. package/dist/contracts/v1/toolAccess.d.ts +0 -43
  215. package/dist/contracts/v1/toolAccess.d.ts.map +0 -1
  216. package/dist/contracts/v1/toolAccess.js +0 -9
  217. package/dist/contracts/v1/toolAccess.js.map +0 -1
  218. package/dist/core/LazyLoader.d.ts +0 -129
  219. package/dist/core/LazyLoader.d.ts.map +0 -1
  220. package/dist/core/LazyLoader.js +0 -240
  221. package/dist/core/LazyLoader.js.map +0 -1
  222. package/dist/core/agent.d.ts +0 -153
  223. package/dist/core/agent.d.ts.map +0 -1
  224. package/dist/core/agent.js +0 -889
  225. package/dist/core/agent.js.map +0 -1
  226. package/dist/core/agentProfileManifest.d.ts +0 -3
  227. package/dist/core/agentProfileManifest.d.ts.map +0 -1
  228. package/dist/core/agentProfileManifest.js +0 -188
  229. package/dist/core/agentProfileManifest.js.map +0 -1
  230. package/dist/core/agentProfiles.d.ts +0 -22
  231. package/dist/core/agentProfiles.d.ts.map +0 -1
  232. package/dist/core/agentProfiles.js +0 -35
  233. package/dist/core/agentProfiles.js.map +0 -1
  234. package/dist/core/agentRulebook.d.ts +0 -11
  235. package/dist/core/agentRulebook.d.ts.map +0 -1
  236. package/dist/core/agentRulebook.js +0 -136
  237. package/dist/core/agentRulebook.js.map +0 -1
  238. package/dist/core/agentSchemaLoader.d.ts +0 -131
  239. package/dist/core/agentSchemaLoader.d.ts.map +0 -1
  240. package/dist/core/agentSchemaLoader.js +0 -234
  241. package/dist/core/agentSchemaLoader.js.map +0 -1
  242. package/dist/core/aiErrorFixer.d.ts +0 -70
  243. package/dist/core/aiErrorFixer.d.ts.map +0 -1
  244. package/dist/core/aiErrorFixer.js +0 -402
  245. package/dist/core/aiErrorFixer.js.map +0 -1
  246. package/dist/core/alphaZeroEngine.d.ts +0 -269
  247. package/dist/core/alphaZeroEngine.d.ts.map +0 -1
  248. package/dist/core/alphaZeroEngine.js +0 -523
  249. package/dist/core/alphaZeroEngine.js.map +0 -1
  250. package/dist/core/alphaZeroModular.d.ts +0 -186
  251. package/dist/core/alphaZeroModular.d.ts.map +0 -1
  252. package/dist/core/alphaZeroModular.js +0 -755
  253. package/dist/core/alphaZeroModular.js.map +0 -1
  254. package/dist/core/alphaZeroOrchestrator.d.ts +0 -140
  255. package/dist/core/alphaZeroOrchestrator.d.ts.map +0 -1
  256. package/dist/core/alphaZeroOrchestrator.js +0 -418
  257. package/dist/core/alphaZeroOrchestrator.js.map +0 -1
  258. package/dist/core/bashCommandGuidance.d.ts +0 -16
  259. package/dist/core/bashCommandGuidance.d.ts.map +0 -1
  260. package/dist/core/bashCommandGuidance.js +0 -40
  261. package/dist/core/bashCommandGuidance.js.map +0 -1
  262. package/dist/core/checkpoint.d.ts +0 -76
  263. package/dist/core/checkpoint.d.ts.map +0 -1
  264. package/dist/core/checkpoint.js +0 -278
  265. package/dist/core/checkpoint.js.map +0 -1
  266. package/dist/core/cliTestHarness.d.ts +0 -200
  267. package/dist/core/cliTestHarness.d.ts.map +0 -1
  268. package/dist/core/cliTestHarness.js +0 -549
  269. package/dist/core/cliTestHarness.js.map +0 -1
  270. package/dist/core/contextManager.d.ts +0 -265
  271. package/dist/core/contextManager.d.ts.map +0 -1
  272. package/dist/core/contextManager.js +0 -1060
  273. package/dist/core/contextManager.js.map +0 -1
  274. package/dist/core/contextWindow.d.ts +0 -42
  275. package/dist/core/contextWindow.d.ts.map +0 -1
  276. package/dist/core/contextWindow.js +0 -123
  277. package/dist/core/contextWindow.js.map +0 -1
  278. package/dist/core/costTracker.d.ts +0 -87
  279. package/dist/core/costTracker.d.ts.map +0 -1
  280. package/dist/core/costTracker.js +0 -285
  281. package/dist/core/costTracker.js.map +0 -1
  282. package/dist/core/customCommands.d.ts +0 -19
  283. package/dist/core/customCommands.d.ts.map +0 -1
  284. package/dist/core/customCommands.js +0 -84
  285. package/dist/core/customCommands.js.map +0 -1
  286. package/dist/core/errors/apiKeyErrors.d.ts +0 -11
  287. package/dist/core/errors/apiKeyErrors.d.ts.map +0 -1
  288. package/dist/core/errors/apiKeyErrors.js +0 -159
  289. package/dist/core/errors/apiKeyErrors.js.map +0 -1
  290. package/dist/core/errors/errorTypes.d.ts +0 -111
  291. package/dist/core/errors/errorTypes.d.ts.map +0 -1
  292. package/dist/core/errors/errorTypes.js +0 -348
  293. package/dist/core/errors/errorTypes.js.map +0 -1
  294. package/dist/core/errors/errorUtils.d.ts +0 -87
  295. package/dist/core/errors/errorUtils.d.ts.map +0 -1
  296. package/dist/core/errors/errorUtils.js +0 -158
  297. package/dist/core/errors/errorUtils.js.map +0 -1
  298. package/dist/core/errors/safetyValidator.d.ts +0 -71
  299. package/dist/core/errors/safetyValidator.d.ts.map +0 -1
  300. package/dist/core/errors/safetyValidator.js +0 -302
  301. package/dist/core/errors/safetyValidator.js.map +0 -1
  302. package/dist/core/errors.d.ts +0 -4
  303. package/dist/core/errors.d.ts.map +0 -1
  304. package/dist/core/errors.js +0 -33
  305. package/dist/core/errors.js.map +0 -1
  306. package/dist/core/failureRecovery.d.ts +0 -122
  307. package/dist/core/failureRecovery.d.ts.map +0 -1
  308. package/dist/core/failureRecovery.js +0 -477
  309. package/dist/core/failureRecovery.js.map +0 -1
  310. package/dist/core/hooks.d.ts +0 -113
  311. package/dist/core/hooks.d.ts.map +0 -1
  312. package/dist/core/hooks.js +0 -267
  313. package/dist/core/hooks.js.map +0 -1
  314. package/dist/core/intelligentTestFlows.d.ts +0 -126
  315. package/dist/core/intelligentTestFlows.d.ts.map +0 -1
  316. package/dist/core/intelligentTestFlows.js +0 -678
  317. package/dist/core/intelligentTestFlows.js.map +0 -1
  318. package/dist/core/isolatedVerifier.d.ts +0 -40
  319. package/dist/core/isolatedVerifier.d.ts.map +0 -1
  320. package/dist/core/isolatedVerifier.js +0 -129
  321. package/dist/core/isolatedVerifier.js.map +0 -1
  322. package/dist/core/learningPersistence.d.ts +0 -145
  323. package/dist/core/learningPersistence.d.ts.map +0 -1
  324. package/dist/core/learningPersistence.js +0 -477
  325. package/dist/core/learningPersistence.js.map +0 -1
  326. package/dist/core/memorySystem.d.ts +0 -67
  327. package/dist/core/memorySystem.d.ts.map +0 -1
  328. package/dist/core/memorySystem.js +0 -334
  329. package/dist/core/memorySystem.js.map +0 -1
  330. package/dist/core/metricsTracker.d.ts +0 -157
  331. package/dist/core/metricsTracker.d.ts.map +0 -1
  332. package/dist/core/metricsTracker.js +0 -273
  333. package/dist/core/metricsTracker.js.map +0 -1
  334. package/dist/core/modelDiscovery.d.ts +0 -101
  335. package/dist/core/modelDiscovery.d.ts.map +0 -1
  336. package/dist/core/modelDiscovery.js +0 -780
  337. package/dist/core/modelDiscovery.js.map +0 -1
  338. package/dist/core/multilinePasteHandler.d.ts +0 -35
  339. package/dist/core/multilinePasteHandler.d.ts.map +0 -1
  340. package/dist/core/multilinePasteHandler.js +0 -80
  341. package/dist/core/multilinePasteHandler.js.map +0 -1
  342. package/dist/core/offsecAlphaZero.d.ts +0 -56
  343. package/dist/core/offsecAlphaZero.d.ts.map +0 -1
  344. package/dist/core/offsecAlphaZero.js +0 -395
  345. package/dist/core/offsecAlphaZero.js.map +0 -1
  346. package/dist/core/outputStyles.d.ts +0 -48
  347. package/dist/core/outputStyles.d.ts.map +0 -1
  348. package/dist/core/outputStyles.js +0 -270
  349. package/dist/core/outputStyles.js.map +0 -1
  350. package/dist/core/performanceMonitor.d.ts +0 -124
  351. package/dist/core/performanceMonitor.d.ts.map +0 -1
  352. package/dist/core/performanceMonitor.js +0 -192
  353. package/dist/core/performanceMonitor.js.map +0 -1
  354. package/dist/core/preferences.d.ts +0 -69
  355. package/dist/core/preferences.d.ts.map +0 -1
  356. package/dist/core/preferences.js +0 -316
  357. package/dist/core/preferences.js.map +0 -1
  358. package/dist/core/responseVerifier.d.ts +0 -98
  359. package/dist/core/responseVerifier.d.ts.map +0 -1
  360. package/dist/core/responseVerifier.js +0 -509
  361. package/dist/core/responseVerifier.js.map +0 -1
  362. package/dist/core/resultVerification.d.ts +0 -141
  363. package/dist/core/resultVerification.d.ts.map +0 -1
  364. package/dist/core/resultVerification.js +0 -482
  365. package/dist/core/resultVerification.js.map +0 -1
  366. package/dist/core/schemaValidator.d.ts +0 -44
  367. package/dist/core/schemaValidator.d.ts.map +0 -1
  368. package/dist/core/schemaValidator.js +0 -155
  369. package/dist/core/schemaValidator.js.map +0 -1
  370. package/dist/core/secretStore.d.ts +0 -48
  371. package/dist/core/secretStore.d.ts.map +0 -1
  372. package/dist/core/secretStore.js +0 -367
  373. package/dist/core/secretStore.js.map +0 -1
  374. package/dist/core/securityAssessment.d.ts +0 -91
  375. package/dist/core/securityAssessment.d.ts.map +0 -1
  376. package/dist/core/securityAssessment.js +0 -580
  377. package/dist/core/securityAssessment.js.map +0 -1
  378. package/dist/core/selfEvolution.d.ts +0 -155
  379. package/dist/core/selfEvolution.d.ts.map +0 -1
  380. package/dist/core/selfEvolution.js +0 -1000
  381. package/dist/core/selfEvolution.js.map +0 -1
  382. package/dist/core/selfImprovement.d.ts +0 -141
  383. package/dist/core/selfImprovement.d.ts.map +0 -1
  384. package/dist/core/selfImprovement.js +0 -700
  385. package/dist/core/selfImprovement.js.map +0 -1
  386. package/dist/core/sessionStore.d.ts +0 -35
  387. package/dist/core/sessionStore.d.ts.map +0 -1
  388. package/dist/core/sessionStore.js +0 -189
  389. package/dist/core/sessionStore.js.map +0 -1
  390. package/dist/core/testUtils.d.ts +0 -121
  391. package/dist/core/testUtils.d.ts.map +0 -1
  392. package/dist/core/testUtils.js +0 -235
  393. package/dist/core/testUtils.js.map +0 -1
  394. package/dist/core/toolPreconditions.d.ts +0 -42
  395. package/dist/core/toolPreconditions.d.ts.map +0 -1
  396. package/dist/core/toolPreconditions.js +0 -347
  397. package/dist/core/toolPreconditions.js.map +0 -1
  398. package/dist/core/toolRuntime.d.ts +0 -163
  399. package/dist/core/toolRuntime.d.ts.map +0 -1
  400. package/dist/core/toolRuntime.js +0 -439
  401. package/dist/core/toolRuntime.js.map +0 -1
  402. package/dist/core/toolValidation.d.ts +0 -116
  403. package/dist/core/toolValidation.d.ts.map +0 -1
  404. package/dist/core/toolValidation.js +0 -282
  405. package/dist/core/toolValidation.js.map +0 -1
  406. package/dist/core/types/utilityTypes.d.ts +0 -192
  407. package/dist/core/types/utilityTypes.d.ts.map +0 -1
  408. package/dist/core/types/utilityTypes.js +0 -272
  409. package/dist/core/types/utilityTypes.js.map +0 -1
  410. package/dist/core/types.d.ts +0 -306
  411. package/dist/core/types.d.ts.map +0 -1
  412. package/dist/core/types.js +0 -76
  413. package/dist/core/types.js.map +0 -1
  414. package/dist/core/validationRunner.d.ts +0 -106
  415. package/dist/core/validationRunner.d.ts.map +0 -1
  416. package/dist/core/validationRunner.js +0 -888
  417. package/dist/core/validationRunner.js.map +0 -1
  418. package/dist/core/verification.d.ts +0 -137
  419. package/dist/core/verification.d.ts.map +0 -1
  420. package/dist/core/verification.js +0 -323
  421. package/dist/core/verification.js.map +0 -1
  422. package/dist/headless/headlessApp.d.ts +0 -5
  423. package/dist/headless/headlessApp.d.ts.map +0 -1
  424. package/dist/headless/headlessApp.js +0 -210
  425. package/dist/headless/headlessApp.js.map +0 -1
  426. package/dist/intelligence/codeIntelligence.d.ts +0 -118
  427. package/dist/intelligence/codeIntelligence.d.ts.map +0 -1
  428. package/dist/intelligence/codeIntelligence.js +0 -552
  429. package/dist/intelligence/codeIntelligence.js.map +0 -1
  430. package/dist/intelligence/docGenerator.d.ts +0 -86
  431. package/dist/intelligence/docGenerator.d.ts.map +0 -1
  432. package/dist/intelligence/docGenerator.js +0 -564
  433. package/dist/intelligence/docGenerator.js.map +0 -1
  434. package/dist/intelligence/index.d.ts +0 -51
  435. package/dist/intelligence/index.d.ts.map +0 -1
  436. package/dist/intelligence/index.js +0 -253
  437. package/dist/intelligence/index.js.map +0 -1
  438. package/dist/intelligence/refactoring.d.ts +0 -50
  439. package/dist/intelligence/refactoring.d.ts.map +0 -1
  440. package/dist/intelligence/refactoring.js +0 -354
  441. package/dist/intelligence/refactoring.js.map +0 -1
  442. package/dist/intelligence/testGenerator.d.ts +0 -74
  443. package/dist/intelligence/testGenerator.d.ts.map +0 -1
  444. package/dist/intelligence/testGenerator.js +0 -483
  445. package/dist/intelligence/testGenerator.js.map +0 -1
  446. package/dist/mcp/config.d.ts +0 -8
  447. package/dist/mcp/config.d.ts.map +0 -1
  448. package/dist/mcp/config.js +0 -252
  449. package/dist/mcp/config.js.map +0 -1
  450. package/dist/mcp/sseClient.d.ts +0 -34
  451. package/dist/mcp/sseClient.d.ts.map +0 -1
  452. package/dist/mcp/sseClient.js +0 -327
  453. package/dist/mcp/sseClient.js.map +0 -1
  454. package/dist/mcp/stdioClient.d.ts +0 -24
  455. package/dist/mcp/stdioClient.d.ts.map +0 -1
  456. package/dist/mcp/stdioClient.js +0 -179
  457. package/dist/mcp/stdioClient.js.map +0 -1
  458. package/dist/mcp/toolBridge.d.ts +0 -12
  459. package/dist/mcp/toolBridge.d.ts.map +0 -1
  460. package/dist/mcp/toolBridge.js +0 -117
  461. package/dist/mcp/toolBridge.js.map +0 -1
  462. package/dist/mcp/types.d.ts +0 -60
  463. package/dist/mcp/types.d.ts.map +0 -1
  464. package/dist/mcp/types.js +0 -2
  465. package/dist/mcp/types.js.map +0 -1
  466. package/dist/plugins/index.d.ts +0 -49
  467. package/dist/plugins/index.d.ts.map +0 -1
  468. package/dist/plugins/index.js +0 -114
  469. package/dist/plugins/index.js.map +0 -1
  470. package/dist/plugins/providers/anthropic/index.d.ts +0 -11
  471. package/dist/plugins/providers/anthropic/index.d.ts.map +0 -1
  472. package/dist/plugins/providers/anthropic/index.js +0 -38
  473. package/dist/plugins/providers/anthropic/index.js.map +0 -1
  474. package/dist/plugins/providers/deepseek/index.d.ts +0 -11
  475. package/dist/plugins/providers/deepseek/index.d.ts.map +0 -1
  476. package/dist/plugins/providers/deepseek/index.js +0 -52
  477. package/dist/plugins/providers/deepseek/index.js.map +0 -1
  478. package/dist/plugins/providers/google/index.d.ts +0 -11
  479. package/dist/plugins/providers/google/index.d.ts.map +0 -1
  480. package/dist/plugins/providers/google/index.js +0 -40
  481. package/dist/plugins/providers/google/index.js.map +0 -1
  482. package/dist/plugins/providers/index.d.ts +0 -2
  483. package/dist/plugins/providers/index.d.ts.map +0 -1
  484. package/dist/plugins/providers/index.js +0 -20
  485. package/dist/plugins/providers/index.js.map +0 -1
  486. package/dist/plugins/providers/ollama/index.d.ts +0 -21
  487. package/dist/plugins/providers/ollama/index.d.ts.map +0 -1
  488. package/dist/plugins/providers/ollama/index.js +0 -69
  489. package/dist/plugins/providers/ollama/index.js.map +0 -1
  490. package/dist/plugins/providers/openai/index.d.ts +0 -12
  491. package/dist/plugins/providers/openai/index.d.ts.map +0 -1
  492. package/dist/plugins/providers/openai/index.js +0 -39
  493. package/dist/plugins/providers/openai/index.js.map +0 -1
  494. package/dist/plugins/providers/xai/index.d.ts +0 -11
  495. package/dist/plugins/providers/xai/index.d.ts.map +0 -1
  496. package/dist/plugins/providers/xai/index.js +0 -39
  497. package/dist/plugins/providers/xai/index.js.map +0 -1
  498. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -3
  499. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
  500. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -9
  501. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
  502. package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
  503. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
  504. package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
  505. package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
  506. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +0 -14
  507. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +0 -1
  508. package/dist/plugins/tools/browser/browserAutomationPlugin.js +0 -26
  509. package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +0 -1
  510. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +0 -3
  511. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +0 -1
  512. package/dist/plugins/tools/checks/localRepoChecksPlugin.js +0 -14
  513. package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +0 -1
  514. package/dist/plugins/tools/cloud/cloudPlugin.d.ts +0 -3
  515. package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +0 -1
  516. package/dist/plugins/tools/cloud/cloudPlugin.js +0 -14
  517. package/dist/plugins/tools/cloud/cloudPlugin.js.map +0 -1
  518. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +0 -3
  519. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +0 -1
  520. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +0 -14
  521. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +0 -1
  522. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +0 -3
  523. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +0 -1
  524. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +0 -14
  525. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +0 -1
  526. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +0 -3
  527. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +0 -1
  528. package/dist/plugins/tools/dependency/dependencyPlugin.js +0 -12
  529. package/dist/plugins/tools/dependency/dependencyPlugin.js.map +0 -1
  530. package/dist/plugins/tools/development/devPlugin.d.ts +0 -3
  531. package/dist/plugins/tools/development/devPlugin.d.ts.map +0 -1
  532. package/dist/plugins/tools/development/devPlugin.js +0 -14
  533. package/dist/plugins/tools/development/devPlugin.js.map +0 -1
  534. package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
  535. package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
  536. package/dist/plugins/tools/edit/editPlugin.js +0 -15
  537. package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
  538. package/dist/plugins/tools/email/emailPlugin.d.ts +0 -3
  539. package/dist/plugins/tools/email/emailPlugin.d.ts.map +0 -1
  540. package/dist/plugins/tools/email/emailPlugin.js +0 -12
  541. package/dist/plugins/tools/email/emailPlugin.js.map +0 -1
  542. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
  543. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
  544. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
  545. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
  546. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
  547. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
  548. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
  549. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
  550. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +0 -3
  551. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +0 -1
  552. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +0 -14
  553. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +0 -1
  554. package/dist/plugins/tools/glob/globPlugin.d.ts +0 -9
  555. package/dist/plugins/tools/glob/globPlugin.d.ts.map +0 -1
  556. package/dist/plugins/tools/glob/globPlugin.js +0 -15
  557. package/dist/plugins/tools/glob/globPlugin.js.map +0 -1
  558. package/dist/plugins/tools/index.d.ts +0 -3
  559. package/dist/plugins/tools/index.d.ts.map +0 -1
  560. package/dist/plugins/tools/index.js +0 -3
  561. package/dist/plugins/tools/index.js.map +0 -1
  562. package/dist/plugins/tools/interaction/interactionPlugin.d.ts +0 -3
  563. package/dist/plugins/tools/interaction/interactionPlugin.d.ts.map +0 -1
  564. package/dist/plugins/tools/interaction/interactionPlugin.js +0 -12
  565. package/dist/plugins/tools/interaction/interactionPlugin.js.map +0 -1
  566. package/dist/plugins/tools/learn/learnPlugin.d.ts +0 -3
  567. package/dist/plugins/tools/learn/learnPlugin.d.ts.map +0 -1
  568. package/dist/plugins/tools/learn/learnPlugin.js +0 -14
  569. package/dist/plugins/tools/learn/learnPlugin.js.map +0 -1
  570. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
  571. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
  572. package/dist/plugins/tools/mcp/mcpPlugin.js +0 -9
  573. package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
  574. package/dist/plugins/tools/nodeDefaults.d.ts +0 -2
  575. package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
  576. package/dist/plugins/tools/nodeDefaults.js +0 -65
  577. package/dist/plugins/tools/nodeDefaults.js.map +0 -1
  578. package/dist/plugins/tools/notebook/notebookPlugin.d.ts +0 -9
  579. package/dist/plugins/tools/notebook/notebookPlugin.d.ts.map +0 -1
  580. package/dist/plugins/tools/notebook/notebookPlugin.js +0 -15
  581. package/dist/plugins/tools/notebook/notebookPlugin.js.map +0 -1
  582. package/dist/plugins/tools/planning/planningPlugin.d.ts +0 -9
  583. package/dist/plugins/tools/planning/planningPlugin.d.ts.map +0 -1
  584. package/dist/plugins/tools/planning/planningPlugin.js +0 -15
  585. package/dist/plugins/tools/planning/planningPlugin.js.map +0 -1
  586. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +0 -3
  587. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +0 -1
  588. package/dist/plugins/tools/refactoring/refactoringPlugin.js +0 -12
  589. package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +0 -1
  590. package/dist/plugins/tools/registry.d.ts +0 -22
  591. package/dist/plugins/tools/registry.d.ts.map +0 -1
  592. package/dist/plugins/tools/registry.js +0 -58
  593. package/dist/plugins/tools/registry.js.map +0 -1
  594. package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
  595. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
  596. package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
  597. package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
  598. package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
  599. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
  600. package/dist/plugins/tools/skills/skillPlugin.js +0 -9
  601. package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
  602. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts +0 -3
  603. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts.map +0 -1
  604. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js +0 -12
  605. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js.map +0 -1
  606. package/dist/plugins/tools/testing/testingPlugin.d.ts +0 -3
  607. package/dist/plugins/tools/testing/testingPlugin.d.ts.map +0 -1
  608. package/dist/plugins/tools/testing/testingPlugin.js +0 -12
  609. package/dist/plugins/tools/testing/testingPlugin.js.map +0 -1
  610. package/dist/plugins/tools/validation/validationPlugin.d.ts +0 -3
  611. package/dist/plugins/tools/validation/validationPlugin.d.ts.map +0 -1
  612. package/dist/plugins/tools/validation/validationPlugin.js +0 -14
  613. package/dist/plugins/tools/validation/validationPlugin.js.map +0 -1
  614. package/dist/plugins/tools/web/webPlugin.d.ts +0 -3
  615. package/dist/plugins/tools/web/webPlugin.d.ts.map +0 -1
  616. package/dist/plugins/tools/web/webPlugin.js +0 -12
  617. package/dist/plugins/tools/web/webPlugin.js.map +0 -1
  618. package/dist/providers/anthropicProvider.d.ts +0 -41
  619. package/dist/providers/anthropicProvider.d.ts.map +0 -1
  620. package/dist/providers/anthropicProvider.js +0 -446
  621. package/dist/providers/anthropicProvider.js.map +0 -1
  622. package/dist/providers/googleProvider.d.ts +0 -36
  623. package/dist/providers/googleProvider.d.ts.map +0 -1
  624. package/dist/providers/googleProvider.js +0 -312
  625. package/dist/providers/googleProvider.js.map +0 -1
  626. package/dist/providers/openaiChatCompletionsProvider.d.ts +0 -43
  627. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +0 -1
  628. package/dist/providers/openaiChatCompletionsProvider.js +0 -516
  629. package/dist/providers/openaiChatCompletionsProvider.js.map +0 -1
  630. package/dist/providers/openaiResponsesProvider.d.ts +0 -38
  631. package/dist/providers/openaiResponsesProvider.d.ts.map +0 -1
  632. package/dist/providers/openaiResponsesProvider.js +0 -364
  633. package/dist/providers/openaiResponsesProvider.js.map +0 -1
  634. package/dist/providers/providerFactory.d.ts +0 -18
  635. package/dist/providers/providerFactory.d.ts.map +0 -1
  636. package/dist/providers/providerFactory.js +0 -25
  637. package/dist/providers/providerFactory.js.map +0 -1
  638. package/dist/providers/resilientProvider.d.ts +0 -94
  639. package/dist/providers/resilientProvider.d.ts.map +0 -1
  640. package/dist/providers/resilientProvider.js +0 -370
  641. package/dist/providers/resilientProvider.js.map +0 -1
  642. package/dist/runtime/agentController.d.ts +0 -65
  643. package/dist/runtime/agentController.d.ts.map +0 -1
  644. package/dist/runtime/agentController.js +0 -353
  645. package/dist/runtime/agentController.js.map +0 -1
  646. package/dist/runtime/agentHost.d.ts +0 -61
  647. package/dist/runtime/agentHost.d.ts.map +0 -1
  648. package/dist/runtime/agentHost.js +0 -156
  649. package/dist/runtime/agentHost.js.map +0 -1
  650. package/dist/runtime/agentSession.d.ts +0 -40
  651. package/dist/runtime/agentSession.d.ts.map +0 -1
  652. package/dist/runtime/agentSession.js +0 -205
  653. package/dist/runtime/agentSession.js.map +0 -1
  654. package/dist/runtime/browser.d.ts +0 -7
  655. package/dist/runtime/browser.d.ts.map +0 -1
  656. package/dist/runtime/browser.js +0 -10
  657. package/dist/runtime/browser.js.map +0 -1
  658. package/dist/runtime/cloud.d.ts +0 -7
  659. package/dist/runtime/cloud.d.ts.map +0 -1
  660. package/dist/runtime/cloud.js +0 -10
  661. package/dist/runtime/cloud.js.map +0 -1
  662. package/dist/runtime/node.d.ts +0 -8
  663. package/dist/runtime/node.d.ts.map +0 -1
  664. package/dist/runtime/node.js +0 -11
  665. package/dist/runtime/node.js.map +0 -1
  666. package/dist/runtime/universal.d.ts +0 -21
  667. package/dist/runtime/universal.d.ts.map +0 -1
  668. package/dist/runtime/universal.js +0 -29
  669. package/dist/runtime/universal.js.map +0 -1
  670. package/dist/shell/autoExecutor.d.ts +0 -70
  671. package/dist/shell/autoExecutor.d.ts.map +0 -1
  672. package/dist/shell/autoExecutor.js +0 -288
  673. package/dist/shell/autoExecutor.js.map +0 -1
  674. package/dist/shell/composableMessage.d.ts +0 -183
  675. package/dist/shell/composableMessage.d.ts.map +0 -1
  676. package/dist/shell/composableMessage.js +0 -420
  677. package/dist/shell/composableMessage.js.map +0 -1
  678. package/dist/shell/fileChangeTracker.d.ts +0 -39
  679. package/dist/shell/fileChangeTracker.d.ts.map +0 -1
  680. package/dist/shell/fileChangeTracker.js +0 -64
  681. package/dist/shell/fileChangeTracker.js.map +0 -1
  682. package/dist/shell/interactiveShell.d.ts +0 -518
  683. package/dist/shell/interactiveShell.d.ts.map +0 -1
  684. package/dist/shell/interactiveShell.js +0 -6651
  685. package/dist/shell/interactiveShell.js.map +0 -1
  686. package/dist/shell/liveStatus.d.ts +0 -30
  687. package/dist/shell/liveStatus.d.ts.map +0 -1
  688. package/dist/shell/liveStatus.js +0 -102
  689. package/dist/shell/liveStatus.js.map +0 -1
  690. package/dist/shell/shellApp.d.ts +0 -19
  691. package/dist/shell/shellApp.d.ts.map +0 -1
  692. package/dist/shell/shellApp.js +0 -411
  693. package/dist/shell/shellApp.js.map +0 -1
  694. package/dist/shell/systemPrompt.d.ts +0 -3
  695. package/dist/shell/systemPrompt.d.ts.map +0 -1
  696. package/dist/shell/systemPrompt.js +0 -64
  697. package/dist/shell/systemPrompt.js.map +0 -1
  698. package/dist/shell/taskCompletionDetector.d.ts +0 -106
  699. package/dist/shell/taskCompletionDetector.d.ts.map +0 -1
  700. package/dist/shell/taskCompletionDetector.js +0 -402
  701. package/dist/shell/taskCompletionDetector.js.map +0 -1
  702. package/dist/shell/terminalInputAdapter.d.ts +0 -262
  703. package/dist/shell/terminalInputAdapter.d.ts.map +0 -1
  704. package/dist/shell/terminalInputAdapter.js +0 -346
  705. package/dist/shell/terminalInputAdapter.js.map +0 -1
  706. package/dist/shell/vimMode.d.ts +0 -66
  707. package/dist/shell/vimMode.d.ts.map +0 -1
  708. package/dist/shell/vimMode.js +0 -434
  709. package/dist/shell/vimMode.js.map +0 -1
  710. package/dist/skills/skillRepository.d.ts +0 -103
  711. package/dist/skills/skillRepository.d.ts.map +0 -1
  712. package/dist/skills/skillRepository.js +0 -237
  713. package/dist/skills/skillRepository.js.map +0 -1
  714. package/dist/skills/types.d.ts +0 -37
  715. package/dist/skills/types.d.ts.map +0 -1
  716. package/dist/skills/types.js +0 -2
  717. package/dist/skills/types.js.map +0 -1
  718. package/dist/subagents/agentConfig.d.ts +0 -27
  719. package/dist/subagents/agentConfig.d.ts.map +0 -1
  720. package/dist/subagents/agentConfig.js +0 -89
  721. package/dist/subagents/agentConfig.js.map +0 -1
  722. package/dist/subagents/agentRegistry.d.ts +0 -33
  723. package/dist/subagents/agentRegistry.d.ts.map +0 -1
  724. package/dist/subagents/agentRegistry.js +0 -162
  725. package/dist/subagents/agentRegistry.js.map +0 -1
  726. package/dist/subagents/parallelAgentManager.d.ts +0 -99
  727. package/dist/subagents/parallelAgentManager.d.ts.map +0 -1
  728. package/dist/subagents/parallelAgentManager.js +0 -248
  729. package/dist/subagents/parallelAgentManager.js.map +0 -1
  730. package/dist/subagents/taskRunner.d.ts +0 -34
  731. package/dist/subagents/taskRunner.d.ts.map +0 -1
  732. package/dist/subagents/taskRunner.js +0 -459
  733. package/dist/subagents/taskRunner.js.map +0 -1
  734. package/dist/tools/advancedTestGenerationTools.d.ts +0 -21
  735. package/dist/tools/advancedTestGenerationTools.d.ts.map +0 -1
  736. package/dist/tools/advancedTestGenerationTools.js +0 -301
  737. package/dist/tools/advancedTestGenerationTools.js.map +0 -1
  738. package/dist/tools/backgroundBashTools.d.ts +0 -21
  739. package/dist/tools/backgroundBashTools.d.ts.map +0 -1
  740. package/dist/tools/backgroundBashTools.js +0 -215
  741. package/dist/tools/backgroundBashTools.js.map +0 -1
  742. package/dist/tools/bashTools.d.ts +0 -8
  743. package/dist/tools/bashTools.d.ts.map +0 -1
  744. package/dist/tools/bashTools.js +0 -240
  745. package/dist/tools/bashTools.js.map +0 -1
  746. package/dist/tools/browserAutomationTools.d.ts +0 -23
  747. package/dist/tools/browserAutomationTools.d.ts.map +0 -1
  748. package/dist/tools/browserAutomationTools.js +0 -916
  749. package/dist/tools/browserAutomationTools.js.map +0 -1
  750. package/dist/tools/buildTools.d.ts +0 -9
  751. package/dist/tools/buildTools.d.ts.map +0 -1
  752. package/dist/tools/buildTools.js +0 -344
  753. package/dist/tools/buildTools.js.map +0 -1
  754. package/dist/tools/cloudTools.d.ts +0 -49
  755. package/dist/tools/cloudTools.d.ts.map +0 -1
  756. package/dist/tools/cloudTools.js +0 -1258
  757. package/dist/tools/cloudTools.js.map +0 -1
  758. package/dist/tools/code-quality-dashboard.d.ts +0 -57
  759. package/dist/tools/code-quality-dashboard.d.ts.map +0 -1
  760. package/dist/tools/code-quality-dashboard.js +0 -218
  761. package/dist/tools/code-quality-dashboard.js.map +0 -1
  762. package/dist/tools/codeAnalysisTools.d.ts +0 -74
  763. package/dist/tools/codeAnalysisTools.d.ts.map +0 -1
  764. package/dist/tools/codeAnalysisTools.js +0 -664
  765. package/dist/tools/codeAnalysisTools.js.map +0 -1
  766. package/dist/tools/codeGenerationTools.d.ts +0 -3
  767. package/dist/tools/codeGenerationTools.d.ts.map +0 -1
  768. package/dist/tools/codeGenerationTools.js +0 -439
  769. package/dist/tools/codeGenerationTools.js.map +0 -1
  770. package/dist/tools/codeQualityTools.d.ts +0 -3
  771. package/dist/tools/codeQualityTools.d.ts.map +0 -1
  772. package/dist/tools/codeQualityTools.js +0 -296
  773. package/dist/tools/codeQualityTools.js.map +0 -1
  774. package/dist/tools/dependencyTools.d.ts +0 -3
  775. package/dist/tools/dependencyTools.d.ts.map +0 -1
  776. package/dist/tools/dependencyTools.js +0 -283
  777. package/dist/tools/dependencyTools.js.map +0 -1
  778. package/dist/tools/devTools.d.ts +0 -10
  779. package/dist/tools/devTools.d.ts.map +0 -1
  780. package/dist/tools/devTools.js +0 -2125
  781. package/dist/tools/devTools.js.map +0 -1
  782. package/dist/tools/diffUtils.d.ts +0 -36
  783. package/dist/tools/diffUtils.d.ts.map +0 -1
  784. package/dist/tools/diffUtils.js +0 -528
  785. package/dist/tools/diffUtils.js.map +0 -1
  786. package/dist/tools/editTools.d.ts +0 -29
  787. package/dist/tools/editTools.d.ts.map +0 -1
  788. package/dist/tools/editTools.js +0 -419
  789. package/dist/tools/editTools.js.map +0 -1
  790. package/dist/tools/emailTools.d.ts +0 -21
  791. package/dist/tools/emailTools.d.ts.map +0 -1
  792. package/dist/tools/emailTools.js +0 -449
  793. package/dist/tools/emailTools.js.map +0 -1
  794. package/dist/tools/enhancedCodeIntelligenceTools.d.ts +0 -27
  795. package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +0 -1
  796. package/dist/tools/enhancedCodeIntelligenceTools.js +0 -418
  797. package/dist/tools/enhancedCodeIntelligenceTools.js.map +0 -1
  798. package/dist/tools/enhancedDevWorkflowTools.d.ts +0 -15
  799. package/dist/tools/enhancedDevWorkflowTools.d.ts.map +0 -1
  800. package/dist/tools/enhancedDevWorkflowTools.js +0 -303
  801. package/dist/tools/enhancedDevWorkflowTools.js.map +0 -1
  802. package/dist/tools/fileTools.d.ts +0 -3
  803. package/dist/tools/fileTools.d.ts.map +0 -1
  804. package/dist/tools/fileTools.js +0 -334
  805. package/dist/tools/fileTools.js.map +0 -1
  806. package/dist/tools/frontendTestingTools.d.ts +0 -35
  807. package/dist/tools/frontendTestingTools.d.ts.map +0 -1
  808. package/dist/tools/frontendTestingTools.js +0 -1254
  809. package/dist/tools/frontendTestingTools.js.map +0 -1
  810. package/dist/tools/globTools.d.ts +0 -15
  811. package/dist/tools/globTools.d.ts.map +0 -1
  812. package/dist/tools/globTools.js +0 -174
  813. package/dist/tools/globTools.js.map +0 -1
  814. package/dist/tools/grepTools.d.ts +0 -19
  815. package/dist/tools/grepTools.d.ts.map +0 -1
  816. package/dist/tools/grepTools.js +0 -358
  817. package/dist/tools/grepTools.js.map +0 -1
  818. package/dist/tools/interactionTools.d.ts +0 -13
  819. package/dist/tools/interactionTools.d.ts.map +0 -1
  820. package/dist/tools/interactionTools.js +0 -171
  821. package/dist/tools/interactionTools.js.map +0 -1
  822. package/dist/tools/learnTools.d.ts +0 -164
  823. package/dist/tools/learnTools.d.ts.map +0 -1
  824. package/dist/tools/learnTools.js +0 -2104
  825. package/dist/tools/learnTools.js.map +0 -1
  826. package/dist/tools/localExplore.d.ts +0 -225
  827. package/dist/tools/localExplore.d.ts.map +0 -1
  828. package/dist/tools/localExplore.js +0 -1365
  829. package/dist/tools/localExplore.js.map +0 -1
  830. package/dist/tools/notebookEditTools.d.ts +0 -15
  831. package/dist/tools/notebookEditTools.d.ts.map +0 -1
  832. package/dist/tools/notebookEditTools.js +0 -197
  833. package/dist/tools/notebookEditTools.js.map +0 -1
  834. package/dist/tools/planningTools.d.ts +0 -21
  835. package/dist/tools/planningTools.d.ts.map +0 -1
  836. package/dist/tools/planningTools.js +0 -185
  837. package/dist/tools/planningTools.js.map +0 -1
  838. package/dist/tools/refactoringTools.d.ts +0 -3
  839. package/dist/tools/refactoringTools.d.ts.map +0 -1
  840. package/dist/tools/refactoringTools.js +0 -294
  841. package/dist/tools/refactoringTools.js.map +0 -1
  842. package/dist/tools/repoChecksTools.d.ts +0 -3
  843. package/dist/tools/repoChecksTools.d.ts.map +0 -1
  844. package/dist/tools/repoChecksTools.js +0 -161
  845. package/dist/tools/repoChecksTools.js.map +0 -1
  846. package/dist/tools/searchTools.d.ts +0 -3
  847. package/dist/tools/searchTools.d.ts.map +0 -1
  848. package/dist/tools/searchTools.js +0 -241
  849. package/dist/tools/searchTools.js.map +0 -1
  850. package/dist/tools/skillTools.d.ts +0 -8
  851. package/dist/tools/skillTools.d.ts.map +0 -1
  852. package/dist/tools/skillTools.js +0 -178
  853. package/dist/tools/skillTools.js.map +0 -1
  854. package/dist/tools/softwareEngineeringTools.d.ts +0 -7
  855. package/dist/tools/softwareEngineeringTools.d.ts.map +0 -1
  856. package/dist/tools/softwareEngineeringTools.js +0 -338
  857. package/dist/tools/softwareEngineeringTools.js.map +0 -1
  858. package/dist/tools/taskManagementTools.d.ts +0 -10
  859. package/dist/tools/taskManagementTools.d.ts.map +0 -1
  860. package/dist/tools/taskManagementTools.js +0 -157
  861. package/dist/tools/taskManagementTools.js.map +0 -1
  862. package/dist/tools/testingTools.d.ts +0 -3
  863. package/dist/tools/testingTools.d.ts.map +0 -1
  864. package/dist/tools/testingTools.js +0 -233
  865. package/dist/tools/testingTools.js.map +0 -1
  866. package/dist/tools/validationTools.d.ts +0 -7
  867. package/dist/tools/validationTools.d.ts.map +0 -1
  868. package/dist/tools/validationTools.js +0 -344
  869. package/dist/tools/validationTools.js.map +0 -1
  870. package/dist/tools/webTools.d.ts +0 -3
  871. package/dist/tools/webTools.d.ts.map +0 -1
  872. package/dist/tools/webTools.js +0 -502
  873. package/dist/tools/webTools.js.map +0 -1
  874. package/dist/ui/DisplayEventQueue.d.ts +0 -99
  875. package/dist/ui/DisplayEventQueue.d.ts.map +0 -1
  876. package/dist/ui/DisplayEventQueue.js +0 -167
  877. package/dist/ui/DisplayEventQueue.js.map +0 -1
  878. package/dist/ui/PromptController.d.ts +0 -102
  879. package/dist/ui/PromptController.d.ts.map +0 -1
  880. package/dist/ui/PromptController.js +0 -168
  881. package/dist/ui/PromptController.js.map +0 -1
  882. package/dist/ui/SequentialRenderer.d.ts +0 -69
  883. package/dist/ui/SequentialRenderer.d.ts.map +0 -1
  884. package/dist/ui/SequentialRenderer.js +0 -137
  885. package/dist/ui/SequentialRenderer.js.map +0 -1
  886. package/dist/ui/ShellUIAdapter.d.ts +0 -207
  887. package/dist/ui/ShellUIAdapter.d.ts.map +0 -1
  888. package/dist/ui/ShellUIAdapter.js +0 -1163
  889. package/dist/ui/ShellUIAdapter.js.map +0 -1
  890. package/dist/ui/UnifiedUIController.d.ts +0 -82
  891. package/dist/ui/UnifiedUIController.d.ts.map +0 -1
  892. package/dist/ui/UnifiedUIController.js +0 -207
  893. package/dist/ui/UnifiedUIController.js.map +0 -1
  894. package/dist/ui/UnifiedUIRenderer.d.ts +0 -188
  895. package/dist/ui/UnifiedUIRenderer.d.ts.map +0 -1
  896. package/dist/ui/UnifiedUIRenderer.js +0 -579
  897. package/dist/ui/UnifiedUIRenderer.js.map +0 -1
  898. package/dist/ui/animation/AnimationScheduler.d.ts +0 -192
  899. package/dist/ui/animation/AnimationScheduler.d.ts.map +0 -1
  900. package/dist/ui/animation/AnimationScheduler.js +0 -432
  901. package/dist/ui/animation/AnimationScheduler.js.map +0 -1
  902. package/dist/ui/codeHighlighter.d.ts +0 -6
  903. package/dist/ui/codeHighlighter.d.ts.map +0 -1
  904. package/dist/ui/codeHighlighter.js +0 -855
  905. package/dist/ui/codeHighlighter.js.map +0 -1
  906. package/dist/ui/compactRenderer.d.ts +0 -139
  907. package/dist/ui/compactRenderer.d.ts.map +0 -1
  908. package/dist/ui/compactRenderer.js +0 -398
  909. package/dist/ui/compactRenderer.js.map +0 -1
  910. package/dist/ui/designSystem.d.ts +0 -26
  911. package/dist/ui/designSystem.d.ts.map +0 -1
  912. package/dist/ui/designSystem.js +0 -122
  913. package/dist/ui/designSystem.js.map +0 -1
  914. package/dist/ui/display.d.ts +0 -229
  915. package/dist/ui/display.d.ts.map +0 -1
  916. package/dist/ui/display.js +0 -756
  917. package/dist/ui/display.js.map +0 -1
  918. package/dist/ui/errorFormatter.d.ts +0 -54
  919. package/dist/ui/errorFormatter.d.ts.map +0 -1
  920. package/dist/ui/errorFormatter.js +0 -251
  921. package/dist/ui/errorFormatter.js.map +0 -1
  922. package/dist/ui/globalWriteLock.d.ts +0 -38
  923. package/dist/ui/globalWriteLock.d.ts.map +0 -1
  924. package/dist/ui/globalWriteLock.js +0 -54
  925. package/dist/ui/globalWriteLock.js.map +0 -1
  926. package/dist/ui/inPlaceUpdater.d.ts +0 -181
  927. package/dist/ui/inPlaceUpdater.d.ts.map +0 -1
  928. package/dist/ui/inPlaceUpdater.js +0 -515
  929. package/dist/ui/inPlaceUpdater.js.map +0 -1
  930. package/dist/ui/interrupts/InterruptManager.d.ts +0 -142
  931. package/dist/ui/interrupts/InterruptManager.d.ts.map +0 -1
  932. package/dist/ui/interrupts/InterruptManager.js +0 -439
  933. package/dist/ui/interrupts/InterruptManager.js.map +0 -1
  934. package/dist/ui/layout.d.ts +0 -17
  935. package/dist/ui/layout.d.ts.map +0 -1
  936. package/dist/ui/layout.js +0 -140
  937. package/dist/ui/layout.js.map +0 -1
  938. package/dist/ui/orchestration/StatusOrchestrator.d.ts +0 -156
  939. package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +0 -1
  940. package/dist/ui/orchestration/StatusOrchestrator.js +0 -406
  941. package/dist/ui/orchestration/StatusOrchestrator.js.map +0 -1
  942. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts +0 -77
  943. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +0 -1
  944. package/dist/ui/orchestration/UIUpdateCoordinator.js +0 -265
  945. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +0 -1
  946. package/dist/ui/outputMode.d.ts +0 -22
  947. package/dist/ui/outputMode.d.ts.map +0 -1
  948. package/dist/ui/outputMode.js +0 -40
  949. package/dist/ui/outputMode.js.map +0 -1
  950. package/dist/ui/richText.d.ts +0 -6
  951. package/dist/ui/richText.d.ts.map +0 -1
  952. package/dist/ui/richText.js +0 -391
  953. package/dist/ui/richText.js.map +0 -1
  954. package/dist/ui/shortcutsHelp.d.ts +0 -39
  955. package/dist/ui/shortcutsHelp.d.ts.map +0 -1
  956. package/dist/ui/shortcutsHelp.js +0 -152
  957. package/dist/ui/shortcutsHelp.js.map +0 -1
  958. package/dist/ui/streamingFormatter.d.ts +0 -19
  959. package/dist/ui/streamingFormatter.d.ts.map +0 -1
  960. package/dist/ui/streamingFormatter.js +0 -65
  961. package/dist/ui/streamingFormatter.js.map +0 -1
  962. package/dist/ui/telemetry/ResponseTracker.d.ts +0 -22
  963. package/dist/ui/telemetry/ResponseTracker.d.ts.map +0 -1
  964. package/dist/ui/telemetry/ResponseTracker.js +0 -60
  965. package/dist/ui/telemetry/ResponseTracker.js.map +0 -1
  966. package/dist/ui/telemetry/UITelemetry.d.ts +0 -181
  967. package/dist/ui/telemetry/UITelemetry.d.ts.map +0 -1
  968. package/dist/ui/telemetry/UITelemetry.js +0 -446
  969. package/dist/ui/telemetry/UITelemetry.js.map +0 -1
  970. package/dist/ui/textHighlighter.d.ts +0 -83
  971. package/dist/ui/textHighlighter.d.ts.map +0 -1
  972. package/dist/ui/textHighlighter.js +0 -267
  973. package/dist/ui/textHighlighter.js.map +0 -1
  974. package/dist/ui/theme.d.ts +0 -208
  975. package/dist/ui/theme.d.ts.map +0 -1
  976. package/dist/ui/theme.js +0 -249
  977. package/dist/ui/theme.js.map +0 -1
  978. package/dist/ui/toolDisplay.d.ts +0 -195
  979. package/dist/ui/toolDisplay.d.ts.map +0 -1
  980. package/dist/ui/toolDisplay.js +0 -1526
  981. package/dist/ui/toolDisplay.js.map +0 -1
  982. package/dist/ui/unified/index.d.ts +0 -50
  983. package/dist/ui/unified/index.d.ts.map +0 -1
  984. package/dist/ui/unified/index.js +0 -77
  985. package/dist/ui/unified/index.js.map +0 -1
  986. package/dist/ui/unified/layout.d.ts +0 -12
  987. package/dist/ui/unified/layout.d.ts.map +0 -1
  988. package/dist/ui/unified/layout.js +0 -96
  989. package/dist/ui/unified/layout.js.map +0 -1
  990. package/dist/ui/writeLock.d.ts +0 -65
  991. package/dist/ui/writeLock.d.ts.map +0 -1
  992. package/dist/ui/writeLock.js +0 -114
  993. package/dist/ui/writeLock.js.map +0 -1
  994. package/dist/utils/asyncUtils.d.ts +0 -95
  995. package/dist/utils/asyncUtils.d.ts.map +0 -1
  996. package/dist/utils/asyncUtils.js +0 -286
  997. package/dist/utils/asyncUtils.js.map +0 -1
  998. package/dist/utils/errorUtils.d.ts +0 -16
  999. package/dist/utils/errorUtils.d.ts.map +0 -1
  1000. package/dist/utils/errorUtils.js +0 -66
  1001. package/dist/utils/errorUtils.js.map +0 -1
  1002. package/dist/utils/frontmatter.d.ts +0 -10
  1003. package/dist/utils/frontmatter.d.ts.map +0 -1
  1004. package/dist/utils/frontmatter.js +0 -78
  1005. package/dist/utils/frontmatter.js.map +0 -1
  1006. package/dist/utils/planFormatter.d.ts +0 -34
  1007. package/dist/utils/planFormatter.d.ts.map +0 -1
  1008. package/dist/utils/planFormatter.js +0 -140
  1009. package/dist/utils/planFormatter.js.map +0 -1
  1010. package/dist/workspace.d.ts +0 -8
  1011. package/dist/workspace.d.ts.map +0 -1
  1012. package/dist/workspace.js +0 -107
  1013. package/dist/workspace.js.map +0 -1
  1014. package/dist/workspace.validator.d.ts +0 -49
  1015. package/dist/workspace.validator.d.ts.map +0 -1
  1016. package/dist/workspace.validator.js +0 -214
  1017. package/dist/workspace.validator.js.map +0 -1
@@ -1,1254 +0,0 @@
1
- /**
2
- * Frontend Testing Tools - Comprehensive frontend testing and verification capabilities
3
- *
4
- * Provides tools for:
5
- * - E2E Testing (Cypress, Playwright, Selenium)
6
- * - Build Verification (bundle analysis, build output validation)
7
- * - Deployment Verification (URL health checks, asset verification, smoke tests)
8
- * - Accessibility Testing (axe-core, pa11y integration)
9
- * - Performance Testing (Lighthouse, Web Vitals)
10
- * - Visual Regression Testing (screenshot comparison)
11
- *
12
- * @license MIT
13
- * @author Bo Shang
14
- */
15
- import { spawn } from 'child_process';
16
- import * as fs from 'fs';
17
- import * as path from 'path';
18
- const E2E_FRAMEWORKS = {
19
- cypress: {
20
- id: 'cypress',
21
- name: 'Cypress',
22
- cliCommand: 'cypress',
23
- installCommand: 'npm install -D cypress',
24
- configFile: 'cypress.config.js',
25
- runCommand: 'npx cypress run',
26
- headlessFlag: '--headless',
27
- },
28
- playwright: {
29
- id: 'playwright',
30
- name: 'Playwright',
31
- cliCommand: 'playwright',
32
- installCommand: 'npm install -D @playwright/test && npx playwright install',
33
- configFile: 'playwright.config.ts',
34
- runCommand: 'npx playwright test',
35
- headlessFlag: '--headed=false',
36
- },
37
- puppeteer: {
38
- id: 'puppeteer',
39
- name: 'Puppeteer',
40
- cliCommand: 'puppeteer',
41
- installCommand: 'npm install -D puppeteer',
42
- configFile: 'puppeteer.config.js',
43
- runCommand: 'npx jest --config=jest-puppeteer.config.js',
44
- headlessFlag: '',
45
- },
46
- };
47
- const BUILD_CONFIGS = {
48
- react: {
49
- framework: 'React',
50
- outputDir: 'build',
51
- indexFile: 'index.html',
52
- expectedAssets: ['static/js', 'static/css'],
53
- },
54
- nextjs: {
55
- framework: 'Next.js',
56
- outputDir: '.next',
57
- indexFile: '',
58
- expectedAssets: ['static', 'server'],
59
- },
60
- angular: {
61
- framework: 'Angular',
62
- outputDir: 'dist',
63
- indexFile: 'index.html',
64
- expectedAssets: ['main.js', 'polyfills.js', 'styles.css'],
65
- },
66
- vue: {
67
- framework: 'Vue',
68
- outputDir: 'dist',
69
- indexFile: 'index.html',
70
- expectedAssets: ['js', 'css'],
71
- },
72
- svelte: {
73
- framework: 'Svelte',
74
- outputDir: 'build',
75
- indexFile: 'index.html',
76
- expectedAssets: ['_app'],
77
- },
78
- vite: {
79
- framework: 'Vite',
80
- outputDir: 'dist',
81
- indexFile: 'index.html',
82
- expectedAssets: ['assets'],
83
- },
84
- };
85
- async function runCommand(command, cwd, timeout = 300000) {
86
- return new Promise((resolve) => {
87
- let killed = false;
88
- let stdout = '';
89
- let stderr = '';
90
- const child = spawn('sh', ['-c', command], {
91
- cwd,
92
- env: { ...process.env },
93
- });
94
- // Set up timeout with proper cleanup
95
- const timeoutId = setTimeout(() => {
96
- killed = true;
97
- child.kill('SIGTERM');
98
- // Force kill if not terminated after 5 seconds
99
- setTimeout(() => {
100
- if (!child.killed) {
101
- child.kill('SIGKILL');
102
- }
103
- }, 5000);
104
- }, timeout);
105
- child.stdout?.on('data', (data) => {
106
- stdout += data.toString();
107
- });
108
- child.stderr?.on('data', (data) => {
109
- stderr += data.toString();
110
- });
111
- child.on('close', (code) => {
112
- clearTimeout(timeoutId);
113
- if (killed) {
114
- resolve({
115
- stdout: stdout.trim(),
116
- stderr: `${stderr.trim()}\n[Process timed out and was terminated]`,
117
- exitCode: code ?? 1,
118
- timedOut: true,
119
- });
120
- }
121
- else {
122
- resolve({ stdout: stdout.trim(), stderr: stderr.trim(), exitCode: code ?? 1 });
123
- }
124
- });
125
- child.on('error', (err) => {
126
- clearTimeout(timeoutId);
127
- resolve({ stdout: '', stderr: err.message, exitCode: 1 });
128
- });
129
- });
130
- }
131
- /**
132
- * Safely parse JSON with helpful error messages
133
- */
134
- function safeJsonParse(content, source) {
135
- try {
136
- return { data: JSON.parse(content), error: null };
137
- }
138
- catch (e) {
139
- const preview = content.slice(0, 100).replace(/\n/g, '\\n');
140
- return {
141
- data: null,
142
- error: `Failed to parse ${source}: ${e instanceof Error ? e.message : 'Invalid JSON'}. Content preview: "${preview}..."`,
143
- };
144
- }
145
- }
146
- /**
147
- * Validate URL format and protocol
148
- */
149
- function validateUrl(url) {
150
- if (!url || typeof url !== 'string') {
151
- return { valid: false, error: 'URL is required and must be a string' };
152
- }
153
- try {
154
- const parsed = new URL(url);
155
- if (!['http:', 'https:'].includes(parsed.protocol)) {
156
- return { valid: false, error: `Invalid protocol "${parsed.protocol}". Only http: and https: are supported` };
157
- }
158
- return { valid: true, normalized: parsed.toString() };
159
- }
160
- catch {
161
- return { valid: false, error: `Invalid URL format: "${url}"` };
162
- }
163
- }
164
- /**
165
- * Validate file path for path traversal attacks
166
- */
167
- function validateFilePath(filePath, baseDir) {
168
- if (!filePath || typeof filePath !== 'string') {
169
- return { valid: false, error: 'File path is required and must be a string' };
170
- }
171
- const resolved = path.resolve(baseDir, filePath);
172
- const normalizedBase = path.resolve(baseDir);
173
- if (!resolved.startsWith(normalizedBase)) {
174
- return { valid: false, error: 'Path traversal not allowed - path must be within working directory' };
175
- }
176
- return { valid: true, resolved };
177
- }
178
- /**
179
- * Format output with truncation warning
180
- */
181
- function truncateOutput(output, maxLength, label) {
182
- if (output.length <= maxLength) {
183
- return output;
184
- }
185
- return `${output.slice(0, maxLength)}\n\n[${label} truncated - ${output.length - maxLength} more characters not shown]`;
186
- }
187
- function detectFramework(workingDir) {
188
- const packageJsonPath = path.join(workingDir, 'package.json');
189
- if (fs.existsSync(packageJsonPath)) {
190
- const content = fs.readFileSync(packageJsonPath, 'utf-8');
191
- const { data: pkg } = safeJsonParse(content, 'package.json');
192
- if (pkg) {
193
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
194
- if (deps['next'])
195
- return 'nextjs';
196
- if (deps['@angular/core'])
197
- return 'angular';
198
- if (deps['vue'])
199
- return 'vue';
200
- if (deps['svelte'])
201
- return 'svelte';
202
- if (deps['vite'])
203
- return 'vite';
204
- if (deps['react'])
205
- return 'react';
206
- }
207
- }
208
- return 'unknown';
209
- }
210
- function detectE2EFramework(workingDir) {
211
- const packageJsonPath = path.join(workingDir, 'package.json');
212
- if (fs.existsSync(packageJsonPath)) {
213
- const content = fs.readFileSync(packageJsonPath, 'utf-8');
214
- const { data: pkg } = safeJsonParse(content, 'package.json');
215
- if (pkg) {
216
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
217
- if (deps['cypress'])
218
- return 'cypress';
219
- if (deps['@playwright/test'] || deps['playwright'])
220
- return 'playwright';
221
- if (deps['puppeteer'])
222
- return 'puppeteer';
223
- }
224
- }
225
- // Check for config files
226
- if (fs.existsSync(path.join(workingDir, 'cypress.config.js')) ||
227
- fs.existsSync(path.join(workingDir, 'cypress.config.ts'))) {
228
- return 'cypress';
229
- }
230
- if (fs.existsSync(path.join(workingDir, 'playwright.config.ts')) ||
231
- fs.existsSync(path.join(workingDir, 'playwright.config.js'))) {
232
- return 'playwright';
233
- }
234
- return null;
235
- }
236
- async function fetchUrl(url, timeout = 10000) {
237
- try {
238
- const controller = new AbortController();
239
- const timeoutId = setTimeout(() => controller.abort(), timeout);
240
- const response = await fetch(url, {
241
- signal: controller.signal,
242
- headers: { 'User-Agent': 'erosolar-cli/frontend-testing' },
243
- });
244
- clearTimeout(timeoutId);
245
- const body = await response.text();
246
- return { status: response.status, body: body.slice(0, 5000) };
247
- }
248
- catch (error) {
249
- const errorMessage = error instanceof Error ? error.message : String(error);
250
- let errorType = 'UNKNOWN';
251
- let userFriendlyError = errorMessage;
252
- // Categorize common network errors
253
- if (errorMessage.includes('ENOTFOUND') || errorMessage.includes('getaddrinfo')) {
254
- errorType = 'DNS_FAILURE';
255
- userFriendlyError = 'DNS lookup failed - check if the domain exists and your internet connection';
256
- }
257
- else if (errorMessage.includes('ECONNREFUSED')) {
258
- errorType = 'CONNECTION_REFUSED';
259
- userFriendlyError = 'Connection refused - is the server running?';
260
- }
261
- else if (errorMessage.includes('ETIMEDOUT') || errorMessage.includes('timeout') || errorMessage.includes('aborted')) {
262
- errorType = 'TIMEOUT';
263
- userFriendlyError = `Request timed out after ${timeout}ms - server may be slow or unreachable`;
264
- }
265
- else if (errorMessage.includes('EHOSTUNREACH')) {
266
- errorType = 'HOST_UNREACHABLE';
267
- userFriendlyError = 'Host unreachable - check your network connection';
268
- }
269
- else if (errorMessage.includes('certificate') || errorMessage.includes('SSL') || errorMessage.includes('TLS')) {
270
- errorType = 'SSL_ERROR';
271
- userFriendlyError = 'SSL/TLS certificate error - the site may have an invalid certificate';
272
- }
273
- return {
274
- status: 0,
275
- body: '',
276
- error: userFriendlyError,
277
- errorType,
278
- };
279
- }
280
- }
281
- function analyzeBundle(dir) {
282
- const result = {
283
- totalSize: 0,
284
- jsSize: 0,
285
- cssSize: 0,
286
- imageSize: 0,
287
- files: [],
288
- };
289
- function walk(currentDir) {
290
- if (!fs.existsSync(currentDir))
291
- return;
292
- const entries = fs.readdirSync(currentDir, { withFileTypes: true });
293
- for (const entry of entries) {
294
- const fullPath = path.join(currentDir, entry.name);
295
- if (entry.isDirectory()) {
296
- walk(fullPath);
297
- }
298
- else if (entry.isFile()) {
299
- const stats = fs.statSync(fullPath);
300
- const size = stats.size;
301
- const ext = path.extname(entry.name).toLowerCase();
302
- result.totalSize += size;
303
- result.files.push({ name: path.relative(dir, fullPath), size });
304
- if (['.js', '.mjs', '.cjs'].includes(ext)) {
305
- result.jsSize += size;
306
- }
307
- else if (['.css', '.scss', '.sass', '.less'].includes(ext)) {
308
- result.cssSize += size;
309
- }
310
- else if (['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.avif'].includes(ext)) {
311
- result.imageSize += size;
312
- }
313
- }
314
- }
315
- }
316
- walk(dir);
317
- // Sort by size descending
318
- result.files.sort((a, b) => b.size - a.size);
319
- return result;
320
- }
321
- function formatBytes(bytes) {
322
- if (bytes === 0)
323
- return '0 B';
324
- const k = 1024;
325
- const sizes = ['B', 'KB', 'MB', 'GB'];
326
- const i = Math.floor(Math.log(bytes) / Math.log(k));
327
- return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
328
- }
329
- export function createFrontendTestingTools(workingDir = process.cwd()) {
330
- return [
331
- {
332
- name: 'run_e2e_tests',
333
- description: `Run end-to-end tests using Cypress, Playwright, or Puppeteer.
334
-
335
- Automatically detects the E2E framework from your project and runs tests.
336
- Supports:
337
- - Cypress (cypress run)
338
- - Playwright (npx playwright test)
339
- - Puppeteer (jest with puppeteer)
340
-
341
- Features:
342
- - Headless mode for CI/CD
343
- - Spec/test file filtering
344
- - Browser selection
345
- - Screenshot capture on failure
346
- - Video recording (Cypress/Playwright)`,
347
- parameters: {
348
- type: 'object',
349
- properties: {
350
- framework: {
351
- type: 'string',
352
- enum: ['cypress', 'playwright', 'puppeteer', 'auto'],
353
- description: 'E2E framework to use (default: auto-detect)',
354
- },
355
- spec: {
356
- type: 'string',
357
- description: 'Specific test file or pattern to run',
358
- },
359
- browser: {
360
- type: 'string',
361
- enum: ['chrome', 'chromium', 'firefox', 'webkit', 'electron'],
362
- description: 'Browser to use for testing',
363
- },
364
- headed: {
365
- type: 'boolean',
366
- description: 'Run in headed mode (show browser window)',
367
- },
368
- baseUrl: {
369
- type: 'string',
370
- description: 'Base URL for the application under test',
371
- },
372
- timeout: {
373
- type: 'number',
374
- description: 'Timeout in milliseconds (default: 300000)',
375
- },
376
- },
377
- },
378
- handler: async (args) => {
379
- let frameworkId = args['framework'] || 'auto';
380
- const spec = args['spec'];
381
- const browser = args['browser'];
382
- const headed = args['headed'] === true;
383
- const baseUrl = args['baseUrl'];
384
- const timeout = args['timeout'] || 300000;
385
- // Auto-detect framework
386
- if (frameworkId === 'auto') {
387
- const detected = detectE2EFramework(workingDir);
388
- if (!detected) {
389
- return `No E2E testing framework detected in ${workingDir}
390
-
391
- To get started, install one of the supported frameworks:
392
- - Cypress: npm install -D cypress && npx cypress open
393
- - Playwright: npm install -D @playwright/test && npx playwright install
394
-
395
- Then run this tool again.`;
396
- }
397
- frameworkId = detected;
398
- }
399
- const framework = E2E_FRAMEWORKS[frameworkId];
400
- if (!framework) {
401
- return `Unknown E2E framework: ${frameworkId}\n\nSupported: cypress, playwright, puppeteer`;
402
- }
403
- // Build command
404
- let command = framework.runCommand;
405
- if (spec) {
406
- if (frameworkId === 'cypress') {
407
- command += ` --spec "${spec}"`;
408
- }
409
- else if (frameworkId === 'playwright') {
410
- command += ` "${spec}"`;
411
- }
412
- }
413
- if (browser) {
414
- if (frameworkId === 'cypress') {
415
- command += ` --browser ${browser}`;
416
- }
417
- else if (frameworkId === 'playwright') {
418
- command += ` --project=${browser}`;
419
- }
420
- }
421
- if (!headed && framework.headlessFlag) {
422
- command += ` ${framework.headlessFlag}`;
423
- }
424
- else if (headed && frameworkId === 'playwright') {
425
- command += ' --headed';
426
- }
427
- if (baseUrl && frameworkId === 'cypress') {
428
- command += ` --config baseUrl=${baseUrl}`;
429
- }
430
- const results = [`🧪 Running ${framework.name} E2E Tests\n`];
431
- results.push(`Command: ${command}\n`);
432
- const result = await runCommand(command, workingDir, timeout);
433
- if (result.exitCode === 0) {
434
- results.push(`✅ All E2E tests passed!\n`);
435
- }
436
- else {
437
- results.push(`❌ E2E tests failed (exit code: ${result.exitCode})\n`);
438
- }
439
- if (result.stdout) {
440
- results.push(`Output:\n${truncateOutput(result.stdout, 10000, 'output')}\n`);
441
- }
442
- if (result.stderr) {
443
- results.push(`Errors:\n${truncateOutput(result.stderr, 5000, 'errors')}\n`);
444
- }
445
- return results.join('\n');
446
- },
447
- },
448
- {
449
- name: 'verify_build_output',
450
- description: `Verify frontend build output and analyze bundle.
451
-
452
- Checks:
453
- - Build directory exists and contains expected files
454
- - Bundle size analysis (JS, CSS, images)
455
- - Source map presence
456
- - Index.html integrity
457
- - Large file detection
458
- - Missing asset detection
459
-
460
- Works with: React, Next.js, Angular, Vue, Svelte, Vite`,
461
- parameters: {
462
- type: 'object',
463
- properties: {
464
- buildDir: {
465
- type: 'string',
466
- description: 'Build output directory (auto-detected if not specified)',
467
- },
468
- framework: {
469
- type: 'string',
470
- enum: ['react', 'nextjs', 'angular', 'vue', 'svelte', 'vite', 'auto'],
471
- description: 'Frontend framework (default: auto-detect)',
472
- },
473
- maxBundleSize: {
474
- type: 'number',
475
- description: 'Maximum total bundle size in bytes (default: 5MB)',
476
- },
477
- warnLargeFiles: {
478
- type: 'number',
479
- description: 'Warn about files larger than this (bytes, default: 500KB)',
480
- },
481
- },
482
- },
483
- handler: async (args) => {
484
- let frameworkId = args['framework'] || 'auto';
485
- const maxBundleSize = args['maxBundleSize'] || 5 * 1024 * 1024; // 5MB
486
- const warnLargeFiles = args['warnLargeFiles'] || 500 * 1024; // 500KB
487
- // Auto-detect framework
488
- if (frameworkId === 'auto') {
489
- frameworkId = detectFramework(workingDir);
490
- }
491
- const config = BUILD_CONFIGS[frameworkId] ?? BUILD_CONFIGS['react'];
492
- const buildDir = args['buildDir'] || path.join(workingDir, config.outputDir);
493
- const results = [`📦 Build Output Verification\n`];
494
- results.push(`Framework: ${config.framework}`);
495
- results.push(`Build directory: ${buildDir}\n`);
496
- // Check if build directory exists
497
- if (!fs.existsSync(buildDir)) {
498
- return `❌ Build directory not found: ${buildDir}
499
-
500
- Run your build command first:
501
- - React: npm run build
502
- - Next.js: npm run build
503
- - Angular: ng build
504
- - Vue: npm run build
505
- - Vite: npm run build`;
506
- }
507
- results.push(`✅ Build directory exists\n`);
508
- // Check for index.html (if applicable)
509
- if (config.indexFile) {
510
- const indexPath = path.join(buildDir, config.indexFile);
511
- if (fs.existsSync(indexPath)) {
512
- results.push(`✅ ${config.indexFile} found`);
513
- }
514
- else {
515
- results.push(`⚠️ ${config.indexFile} not found`);
516
- }
517
- }
518
- // Check for expected assets
519
- const missingAssets = [];
520
- for (const asset of config.expectedAssets) {
521
- const assetPath = path.join(buildDir, asset);
522
- if (!fs.existsSync(assetPath)) {
523
- missingAssets.push(asset);
524
- }
525
- }
526
- if (missingAssets.length > 0) {
527
- results.push(`⚠️ Missing expected assets: ${missingAssets.join(', ')}`);
528
- }
529
- else {
530
- results.push(`✅ All expected assets present`);
531
- }
532
- // Analyze bundle
533
- const analysis = analyzeBundle(buildDir);
534
- results.push(`\n📊 Bundle Analysis:`);
535
- results.push(`Total size: ${formatBytes(analysis.totalSize)}`);
536
- results.push(`JavaScript: ${formatBytes(analysis.jsSize)}`);
537
- results.push(`CSS: ${formatBytes(analysis.cssSize)}`);
538
- results.push(`Images: ${formatBytes(analysis.imageSize)}`);
539
- // Check bundle size limit
540
- if (analysis.totalSize > maxBundleSize) {
541
- results.push(`\n❌ Bundle exceeds size limit (${formatBytes(maxBundleSize)})`);
542
- }
543
- else {
544
- results.push(`\n✅ Bundle within size limit`);
545
- }
546
- // Large files warning
547
- const largeFiles = analysis.files.filter((f) => f.size > warnLargeFiles);
548
- if (largeFiles.length > 0) {
549
- results.push(`\n⚠️ Large files detected (>${formatBytes(warnLargeFiles)}):`);
550
- largeFiles.slice(0, 10).forEach((f) => {
551
- results.push(` - ${f.name}: ${formatBytes(f.size)}`);
552
- });
553
- }
554
- // Top 10 largest files
555
- results.push(`\n📁 Largest files:`);
556
- analysis.files.slice(0, 10).forEach((f, i) => {
557
- results.push(` ${i + 1}. ${f.name}: ${formatBytes(f.size)}`);
558
- });
559
- return results.join('\n');
560
- },
561
- },
562
- {
563
- name: 'verify_deployment',
564
- description: `Verify a frontend deployment by checking the deployed URL.
565
-
566
- Performs:
567
- - URL health check (HTTP status)
568
- - HTML content validation
569
- - Asset loading verification
570
- - Response time measurement
571
- - Basic smoke tests
572
- - SSL certificate check
573
-
574
- Use this after deploying to verify the deployment was successful.`,
575
- parameters: {
576
- type: 'object',
577
- properties: {
578
- url: {
579
- type: 'string',
580
- description: 'URL of the deployed frontend (required)',
581
- },
582
- checkAssets: {
583
- type: 'boolean',
584
- description: 'Check if CSS/JS assets are accessible (default: true)',
585
- },
586
- expectedContent: {
587
- type: 'string',
588
- description: 'String that should be present in the HTML',
589
- },
590
- expectedTitle: {
591
- type: 'string',
592
- description: 'Expected page title',
593
- },
594
- timeout: {
595
- type: 'number',
596
- description: 'Request timeout in milliseconds (default: 10000)',
597
- },
598
- },
599
- required: ['url'],
600
- },
601
- handler: async (args) => {
602
- const rawUrl = args['url'];
603
- const checkAssets = args['checkAssets'] !== false;
604
- const expectedContent = args['expectedContent'];
605
- const expectedTitle = args['expectedTitle'];
606
- const timeout = args['timeout'] || 10000;
607
- // Validate URL
608
- const urlValidation = validateUrl(rawUrl);
609
- if (!urlValidation.valid) {
610
- return `❌ Invalid URL: ${urlValidation.error}`;
611
- }
612
- const url = urlValidation.normalized;
613
- const results = [`🌐 Deployment Verification\n`];
614
- results.push(`URL: ${url}\n`);
615
- const startTime = Date.now();
616
- const response = await fetchUrl(url, timeout);
617
- const responseTime = Date.now() - startTime;
618
- results.push(`⏱️ Response time: ${responseTime}ms`);
619
- if (response.error) {
620
- results.push(`\n❌ Failed to reach URL: ${response.error}`);
621
- if (response.errorType) {
622
- results.push(`Error type: ${response.errorType}`);
623
- }
624
- return results.join('\n');
625
- }
626
- // HTTP status check with helpful context
627
- if (response.status >= 200 && response.status < 300) {
628
- results.push(`✅ HTTP Status: ${response.status}`);
629
- }
630
- else {
631
- let statusContext = '';
632
- if (response.status === 404)
633
- statusContext = ' (page not found - check URL path)';
634
- else if (response.status === 403)
635
- statusContext = ' (forbidden - authentication may be required)';
636
- else if (response.status === 500)
637
- statusContext = ' (server error - check server logs)';
638
- else if (response.status === 502)
639
- statusContext = ' (bad gateway - upstream server issue)';
640
- else if (response.status === 503)
641
- statusContext = ' (service unavailable - server may be overloaded)';
642
- results.push(`❌ HTTP Status: ${response.status}${statusContext}`);
643
- }
644
- // SSL check
645
- if (url.startsWith('https://')) {
646
- results.push(`✅ HTTPS enabled`);
647
- }
648
- else {
649
- results.push(`⚠️ Not using HTTPS`);
650
- }
651
- // Content checks
652
- const body = response.body;
653
- // Check for HTML doctype
654
- if (body.toLowerCase().includes('<!doctype html')) {
655
- results.push(`✅ Valid HTML document`);
656
- }
657
- else {
658
- results.push(`⚠️ HTML doctype not found`);
659
- }
660
- // Check for expected content
661
- if (expectedContent) {
662
- if (body.includes(expectedContent)) {
663
- results.push(`✅ Expected content found: "${expectedContent.slice(0, 50)}..."`);
664
- }
665
- else {
666
- results.push(`❌ Expected content not found: "${expectedContent.slice(0, 50)}..."`);
667
- }
668
- }
669
- // Check title
670
- const titleMatch = body.match(/<title>([^<]*)<\/title>/i);
671
- const actualTitle = titleMatch?.[1] || '';
672
- if (expectedTitle) {
673
- if (actualTitle.includes(expectedTitle)) {
674
- results.push(`✅ Title matches: "${actualTitle}"`);
675
- }
676
- else {
677
- results.push(`❌ Title mismatch. Expected: "${expectedTitle}", Got: "${actualTitle}"`);
678
- }
679
- }
680
- else if (actualTitle) {
681
- results.push(`📄 Page title: "${actualTitle}"`);
682
- }
683
- // Check for common SPA indicators
684
- if (body.includes('id="root"') || body.includes('id="app"') || body.includes('id="__next"')) {
685
- results.push(`✅ SPA mount point detected`);
686
- }
687
- // Extract and check assets
688
- if (checkAssets) {
689
- results.push(`\n🔍 Asset Verification:`);
690
- // Find JS files
691
- const jsMatches = body.match(/src="([^"]+\.js[^"]*)"/g) || [];
692
- const jsFiles = jsMatches.map((m) => m.match(/src="([^"]+)"/)?.[1]).filter(Boolean);
693
- // Find CSS files
694
- const cssMatches = body.match(/href="([^"]+\.css[^"]*)"/g) || [];
695
- const cssFiles = cssMatches.map((m) => m.match(/href="([^"]+)"/)?.[1]).filter(Boolean);
696
- results.push(`Found ${jsFiles.length} JavaScript file(s)`);
697
- results.push(`Found ${cssFiles.length} CSS file(s)`);
698
- // Check first few assets
699
- const assetsToCheck = [...jsFiles.slice(0, 2), ...cssFiles.slice(0, 2)];
700
- for (const assetPath of assetsToCheck) {
701
- if (!assetPath)
702
- continue;
703
- const assetUrl = assetPath.startsWith('http') ? assetPath : new URL(assetPath, url).toString();
704
- const assetResponse = await fetchUrl(assetUrl, 5000);
705
- if (assetResponse.status === 200) {
706
- results.push(` ✅ ${assetPath.slice(0, 50)}...`);
707
- }
708
- else {
709
- results.push(` ❌ ${assetPath.slice(0, 50)}... (${assetResponse.status || assetResponse.error})`);
710
- }
711
- }
712
- }
713
- // Summary
714
- results.push(`\n📋 Summary:`);
715
- if (response.status >= 200 && response.status < 300 && responseTime < 3000) {
716
- results.push(`✅ Deployment appears healthy`);
717
- }
718
- else if (response.status >= 200 && response.status < 300) {
719
- results.push(`⚠️ Deployment working but slow (${responseTime}ms)`);
720
- }
721
- else {
722
- results.push(`❌ Deployment issues detected`);
723
- }
724
- return results.join('\n');
725
- },
726
- },
727
- {
728
- name: 'run_accessibility_tests',
729
- description: `Run accessibility tests on a URL or HTML file using axe-core.
730
-
731
- Checks for:
732
- - WCAG 2.1 Level A and AA compliance
733
- - Color contrast issues
734
- - Missing alt text
735
- - Form label issues
736
- - Keyboard navigation problems
737
- - ARIA attribute errors
738
-
739
- Requires: axe-core (will offer to install if not found)`,
740
- parameters: {
741
- type: 'object',
742
- properties: {
743
- url: {
744
- type: 'string',
745
- description: 'URL to test (can be local dev server)',
746
- },
747
- htmlFile: {
748
- type: 'string',
749
- description: 'Path to HTML file to test (alternative to URL)',
750
- },
751
- rules: {
752
- type: 'string',
753
- enum: ['wcag2a', 'wcag2aa', 'wcag2aaa', 'best-practice', 'all'],
754
- description: 'Accessibility rules to check (default: wcag2aa)',
755
- },
756
- timeout: {
757
- type: 'number',
758
- description: 'Timeout in milliseconds (default: 60000)',
759
- },
760
- },
761
- },
762
- handler: async (args) => {
763
- const rawUrl = args['url'];
764
- const rawHtmlFile = args['htmlFile'];
765
- const rules = args['rules'] || 'wcag2aa';
766
- const timeout = args['timeout'] || 60000;
767
- if (!rawUrl && !rawHtmlFile) {
768
- return `Please provide either a URL or HTML file path to test.
769
-
770
- Examples:
771
- - URL: http://localhost:3000
772
- - HTML file: ./build/index.html`;
773
- }
774
- // Validate URL if provided
775
- let validatedUrl;
776
- if (rawUrl) {
777
- const urlValidation = validateUrl(rawUrl);
778
- if (!urlValidation.valid) {
779
- return `❌ Invalid URL: ${urlValidation.error}`;
780
- }
781
- validatedUrl = urlValidation.normalized;
782
- }
783
- // Validate file path if provided (with path traversal protection)
784
- let validatedHtmlFile;
785
- if (rawHtmlFile) {
786
- const fileValidation = validateFilePath(rawHtmlFile, workingDir);
787
- if (!fileValidation.valid) {
788
- return `❌ Invalid file path: ${fileValidation.error}`;
789
- }
790
- validatedHtmlFile = fileValidation.resolved;
791
- }
792
- // Check for axe-core in project
793
- const packageJsonPath = path.join(workingDir, 'package.json');
794
- let hasAxe = false;
795
- if (fs.existsSync(packageJsonPath)) {
796
- const content = fs.readFileSync(packageJsonPath, 'utf-8');
797
- const { data: pkg } = safeJsonParse(content, 'package.json');
798
- if (pkg) {
799
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
800
- hasAxe = !!(deps['axe-core'] || deps['@axe-core/puppeteer'] || deps['@axe-core/playwright']);
801
- }
802
- }
803
- // Try to use pa11y or axe-cli if available
804
- const result = await runCommand('which pa11y || which axe', workingDir, 5000);
805
- const hasCli = result.exitCode === 0;
806
- if (!hasAxe && !hasCli) {
807
- return `Accessibility testing tools not found.
808
-
809
- Install one of the following:
810
-
811
- Option 1 - pa11y (recommended for CLI):
812
- npm install -g pa11y
813
-
814
- Option 2 - axe-cli:
815
- npm install -g @axe-core/cli
816
-
817
- Option 3 - Add to project:
818
- npm install -D axe-core @axe-core/playwright
819
-
820
- After installation, run this tool again.`;
821
- }
822
- const target = validatedUrl || validatedHtmlFile;
823
- const results = [`♿ Accessibility Testing\n`];
824
- results.push(`Target: ${target}`);
825
- results.push(`Rules: ${rules}\n`);
826
- // Try pa11y first
827
- if (hasCli) {
828
- let command = `pa11y "${target}" --standard ${rules.toUpperCase().replace('WCAG2', 'WCAG2').replace('aa', 'AA').replace('a', 'A')} --reporter json 2>&1`;
829
- if (validatedUrl) {
830
- command = `pa11y "${validatedUrl}" --reporter cli --standard WCAG2AA 2>&1`;
831
- }
832
- const testResult = await runCommand(command, workingDir, timeout);
833
- if (testResult.exitCode === 0 && !testResult.stdout.includes('Error:')) {
834
- results.push(`✅ No accessibility violations found!\n`);
835
- }
836
- else if (testResult.stdout.includes('Error:')) {
837
- results.push(`⚠️ Could not run pa11y: ${truncateOutput(testResult.stdout, 500, 'output')}`);
838
- }
839
- else {
840
- results.push(`❌ Accessibility issues found:\n`);
841
- results.push(truncateOutput(testResult.stdout, 8000, 'output'));
842
- }
843
- if (testResult.stderr && !testResult.stderr.includes('Deprecation')) {
844
- results.push(`\nWarnings:\n${truncateOutput(testResult.stderr, 2000, 'warnings')}`);
845
- }
846
- }
847
- else {
848
- // Fallback to basic HTML analysis
849
- results.push(`Using basic HTML analysis (install pa11y for comprehensive testing)\n`);
850
- if (validatedHtmlFile && fs.existsSync(validatedHtmlFile)) {
851
- const html = fs.readFileSync(validatedHtmlFile, 'utf-8');
852
- // Basic checks
853
- const issues = [];
854
- // Check for images without alt
855
- const imgWithoutAlt = html.match(/<img(?![^>]*\balt=)[^>]*>/gi);
856
- if (imgWithoutAlt?.length) {
857
- issues.push(`- ${imgWithoutAlt.length} image(s) missing alt attribute`);
858
- }
859
- // Check for inputs without labels
860
- const inputsWithoutId = html.match(/<input(?![^>]*\bid=)[^>]*>/gi);
861
- if (inputsWithoutId?.length) {
862
- issues.push(`- ${inputsWithoutId.length} input(s) may be missing associated labels`);
863
- }
864
- // Check for lang attribute
865
- if (!html.includes('lang=')) {
866
- issues.push(`- Missing lang attribute on <html> element`);
867
- }
868
- // Check for viewport
869
- if (!html.includes('viewport')) {
870
- issues.push(`- Missing viewport meta tag`);
871
- }
872
- if (issues.length > 0) {
873
- results.push(`Found ${issues.length} potential issue(s):\n${issues.join('\n')}`);
874
- }
875
- else {
876
- results.push(`✅ No basic accessibility issues detected`);
877
- }
878
- }
879
- else if (validatedUrl) {
880
- const response = await fetchUrl(validatedUrl);
881
- if (response.status === 200) {
882
- // Basic analysis of fetched HTML
883
- const html = response.body;
884
- const issues = [];
885
- if (!html.includes('lang=')) {
886
- issues.push(`- Missing lang attribute`);
887
- }
888
- const imgWithoutAlt = html.match(/<img(?![^>]*\balt=)[^>]*>/gi);
889
- if (imgWithoutAlt?.length) {
890
- issues.push(`- ${imgWithoutAlt.length} image(s) missing alt attribute`);
891
- }
892
- if (issues.length > 0) {
893
- results.push(`Found ${issues.length} potential issue(s):\n${issues.join('\n')}`);
894
- }
895
- else {
896
- results.push(`✅ No basic accessibility issues detected`);
897
- }
898
- }
899
- }
900
- }
901
- return results.join('\n');
902
- },
903
- },
904
- {
905
- name: 'run_lighthouse',
906
- description: `Run Lighthouse performance audit on a URL.
907
-
908
- Generates reports for:
909
- - Performance (LCP, FID, CLS, etc.)
910
- - Accessibility
911
- - Best Practices
912
- - SEO
913
- - PWA (optional)
914
-
915
- Requires: lighthouse CLI or Chrome browser`,
916
- parameters: {
917
- type: 'object',
918
- properties: {
919
- url: {
920
- type: 'string',
921
- description: 'URL to audit (required)',
922
- },
923
- categories: {
924
- type: 'array',
925
- items: { type: 'string' },
926
- description: 'Categories to audit: performance, accessibility, best-practices, seo, pwa',
927
- },
928
- output: {
929
- type: 'string',
930
- enum: ['json', 'html', 'csv'],
931
- description: 'Output format (default: json)',
932
- },
933
- outputPath: {
934
- type: 'string',
935
- description: 'Path to save report (optional)',
936
- },
937
- device: {
938
- type: 'string',
939
- enum: ['mobile', 'desktop'],
940
- description: 'Device emulation (default: mobile)',
941
- },
942
- timeout: {
943
- type: 'number',
944
- description: 'Timeout in milliseconds (default: 120000)',
945
- },
946
- },
947
- required: ['url'],
948
- },
949
- handler: async (args) => {
950
- const rawUrl = args['url'];
951
- const categories = args['categories'] || ['performance', 'accessibility', 'best-practices', 'seo'];
952
- const output = args['output'] || 'json';
953
- const rawOutputPath = args['outputPath'];
954
- const device = args['device'] || 'mobile';
955
- const timeout = args['timeout'] || 120000;
956
- // Validate URL
957
- const urlValidation = validateUrl(rawUrl);
958
- if (!urlValidation.valid) {
959
- return `❌ Invalid URL: ${urlValidation.error}`;
960
- }
961
- const url = urlValidation.normalized;
962
- // Validate output path if provided (with path traversal protection)
963
- let outputPath;
964
- if (rawOutputPath) {
965
- const pathValidation = validateFilePath(rawOutputPath, workingDir);
966
- if (!pathValidation.valid) {
967
- return `❌ Invalid output path: ${pathValidation.error}`;
968
- }
969
- outputPath = pathValidation.resolved;
970
- }
971
- // Check for lighthouse
972
- const checkResult = await runCommand('which lighthouse', workingDir, 5000);
973
- if (checkResult.exitCode !== 0) {
974
- return `Lighthouse CLI not found.
975
-
976
- Install with:
977
- npm install -g lighthouse
978
-
979
- Or use Chrome DevTools Lighthouse panel for manual audits.`;
980
- }
981
- const results = [`🔦 Lighthouse Audit\n`];
982
- results.push(`URL: ${url}`);
983
- results.push(`Device: ${device}`);
984
- results.push(`Categories: ${categories.join(', ')}\n`);
985
- // Build command
986
- let command = `lighthouse "${url}" --output=${output} --quiet`;
987
- command += ` --only-categories=${categories.join(',')}`;
988
- command += device === 'desktop' ? ' --preset=desktop' : '';
989
- command += ' --chrome-flags="--headless --no-sandbox"';
990
- if (outputPath) {
991
- command += ` --output-path="${outputPath}"`;
992
- }
993
- const auditResult = await runCommand(command, workingDir, timeout);
994
- if (auditResult.exitCode !== 0) {
995
- results.push(`❌ Lighthouse audit failed:\n${truncateOutput(auditResult.stderr || auditResult.stdout, 3000, 'error output')}`);
996
- return results.join('\n');
997
- }
998
- // Parse JSON output
999
- if (output === 'json') {
1000
- const { data: report, error: parseError } = safeJsonParse(auditResult.stdout, 'Lighthouse report');
1001
- if (parseError || !report) {
1002
- results.push(`⚠️ Could not parse Lighthouse results: ${parseError}`);
1003
- results.push(`Raw output:\n${truncateOutput(auditResult.stdout, 5000, 'output')}`);
1004
- return results.join('\n');
1005
- }
1006
- const cats = report.categories || {};
1007
- results.push(`📊 Scores:\n`);
1008
- for (const [_catId, cat] of Object.entries(cats)) {
1009
- const score = Math.round((cat.score || 0) * 100);
1010
- const emoji = score >= 90 ? '🟢' : score >= 50 ? '🟡' : '🔴';
1011
- results.push(`${emoji} ${cat.title}: ${score}/100`);
1012
- }
1013
- // Show key metrics if available
1014
- const metrics = report.audits;
1015
- if (metrics) {
1016
- results.push(`\n📈 Key Metrics:`);
1017
- const keyMetrics = [
1018
- { id: 'first-contentful-paint', label: 'First Contentful Paint' },
1019
- { id: 'largest-contentful-paint', label: 'Largest Contentful Paint' },
1020
- { id: 'total-blocking-time', label: 'Total Blocking Time' },
1021
- { id: 'cumulative-layout-shift', label: 'Cumulative Layout Shift' },
1022
- { id: 'speed-index', label: 'Speed Index' },
1023
- ];
1024
- for (const metric of keyMetrics) {
1025
- const audit = metrics[metric.id];
1026
- if (audit) {
1027
- const score = Math.round((audit.score || 0) * 100);
1028
- const emoji = score >= 90 ? '✅' : score >= 50 ? '⚠️' : '❌';
1029
- results.push(`${emoji} ${metric.label}: ${audit.displayValue || 'N/A'}`);
1030
- }
1031
- }
1032
- }
1033
- }
1034
- else {
1035
- results.push(`✅ Report generated`);
1036
- if (outputPath) {
1037
- results.push(`Saved to: ${outputPath}`);
1038
- }
1039
- }
1040
- return results.join('\n');
1041
- },
1042
- },
1043
- {
1044
- name: 'frontend_test_workflow',
1045
- description: `Run a complete frontend testing workflow.
1046
-
1047
- Executes a series of tests in order:
1048
- 1. Build verification
1049
- 2. Unit tests (if present)
1050
- 3. E2E tests (if present)
1051
- 4. Accessibility tests
1052
- 5. Performance audit (optional)
1053
-
1054
- Perfect for CI/CD pipelines or pre-deployment verification.`,
1055
- parameters: {
1056
- type: 'object',
1057
- properties: {
1058
- skipBuild: {
1059
- type: 'boolean',
1060
- description: 'Skip build verification (default: false)',
1061
- },
1062
- skipUnit: {
1063
- type: 'boolean',
1064
- description: 'Skip unit tests (default: false)',
1065
- },
1066
- skipE2e: {
1067
- type: 'boolean',
1068
- description: 'Skip E2E tests (default: false)',
1069
- },
1070
- skipA11y: {
1071
- type: 'boolean',
1072
- description: 'Skip accessibility tests (default: false)',
1073
- },
1074
- runLighthouse: {
1075
- type: 'boolean',
1076
- description: 'Run Lighthouse performance audit (default: false)',
1077
- },
1078
- baseUrl: {
1079
- type: 'string',
1080
- description: 'Base URL for tests (uses local server if not specified)',
1081
- },
1082
- timeout: {
1083
- type: 'number',
1084
- description: 'Timeout per step in milliseconds (default: 300000)',
1085
- },
1086
- },
1087
- },
1088
- handler: async (args) => {
1089
- const skipBuild = args['skipBuild'] === true;
1090
- const skipUnit = args['skipUnit'] === true;
1091
- const skipE2e = args['skipE2e'] === true;
1092
- const skipA11y = args['skipA11y'] === true;
1093
- const runLighthouseArg = args['runLighthouse'] === true;
1094
- const rawBaseUrl = args['baseUrl'];
1095
- const timeout = args['timeout'] || 300000;
1096
- // Validate baseUrl if provided
1097
- let baseUrl;
1098
- if (rawBaseUrl) {
1099
- const urlValidation = validateUrl(rawBaseUrl);
1100
- if (!urlValidation.valid) {
1101
- return `❌ Invalid baseUrl: ${urlValidation.error}`;
1102
- }
1103
- baseUrl = urlValidation.normalized;
1104
- }
1105
- const results = [`🚀 Frontend Testing Workflow\n`];
1106
- const summary = [];
1107
- // Step 1: Build Verification
1108
- if (!skipBuild) {
1109
- results.push(`\n━━━ Step 1: Build Verification ━━━\n`);
1110
- const startTime = Date.now();
1111
- // Run build first
1112
- const buildResult = await runCommand('npm run build', workingDir, timeout);
1113
- const buildTime = Date.now() - startTime;
1114
- if (buildResult.exitCode === 0) {
1115
- results.push(`✅ Build succeeded (${buildTime}ms)\n`);
1116
- summary.push({ step: 'Build', status: 'PASS', time: buildTime });
1117
- // Verify output
1118
- const detectedFramework = detectFramework(workingDir);
1119
- const buildConfig = BUILD_CONFIGS[detectedFramework] ?? BUILD_CONFIGS['react'];
1120
- const buildDir = path.join(workingDir, buildConfig.outputDir);
1121
- if (fs.existsSync(buildDir)) {
1122
- const analysis = analyzeBundle(buildDir);
1123
- results.push(`Bundle size: ${formatBytes(analysis.totalSize)}`);
1124
- }
1125
- }
1126
- else {
1127
- results.push(`❌ Build failed\n${truncateOutput(buildResult.stderr || buildResult.stdout, 3000, 'build output')}`);
1128
- summary.push({ step: 'Build', status: 'FAIL', time: buildTime });
1129
- }
1130
- }
1131
- // Step 2: Unit Tests
1132
- if (!skipUnit) {
1133
- results.push(`\n━━━ Step 2: Unit Tests ━━━\n`);
1134
- const startTime = Date.now();
1135
- const testResult = await runCommand('npm test -- --watchAll=false --passWithNoTests', workingDir, timeout);
1136
- const testTime = Date.now() - startTime;
1137
- if (testResult.exitCode === 0) {
1138
- results.push(`✅ Unit tests passed (${testTime}ms)\n`);
1139
- summary.push({ step: 'Unit Tests', status: 'PASS', time: testTime });
1140
- }
1141
- else {
1142
- results.push(`❌ Unit tests failed\n${truncateOutput(testResult.stdout, 3000, 'test output')}`);
1143
- summary.push({ step: 'Unit Tests', status: 'FAIL', time: testTime });
1144
- }
1145
- }
1146
- // Step 3: E2E Tests
1147
- if (!skipE2e) {
1148
- results.push(`\n━━━ Step 3: E2E Tests ━━━\n`);
1149
- const startTime = Date.now();
1150
- const e2eFramework = detectE2EFramework(workingDir);
1151
- if (e2eFramework) {
1152
- const e2eConfig = E2E_FRAMEWORKS[e2eFramework];
1153
- let command = e2eConfig.runCommand;
1154
- if (baseUrl && e2eFramework === 'cypress') {
1155
- command += ` --config baseUrl=${baseUrl}`;
1156
- }
1157
- const e2eResult = await runCommand(command, workingDir, timeout);
1158
- const e2eTime = Date.now() - startTime;
1159
- if (e2eResult.exitCode === 0) {
1160
- results.push(`✅ E2E tests passed (${e2eTime}ms)\n`);
1161
- summary.push({ step: 'E2E Tests', status: 'PASS', time: e2eTime });
1162
- }
1163
- else {
1164
- results.push(`❌ E2E tests failed\n${truncateOutput(e2eResult.stdout, 3000, 'E2E test output')}`);
1165
- summary.push({ step: 'E2E Tests', status: 'FAIL', time: e2eTime });
1166
- }
1167
- }
1168
- else {
1169
- results.push(`⏭️ No E2E framework detected, skipping`);
1170
- summary.push({ step: 'E2E Tests', status: 'SKIP', time: 0 });
1171
- }
1172
- }
1173
- // Step 4: Accessibility Tests
1174
- if (!skipA11y && baseUrl) {
1175
- results.push(`\n━━━ Step 4: Accessibility Tests ━━━\n`);
1176
- const startTime = Date.now();
1177
- const a11yResult = await runCommand(`pa11y "${baseUrl}" --reporter cli 2>&1 || echo "pa11y not available"`, workingDir, 60000);
1178
- const a11yTime = Date.now() - startTime;
1179
- if (a11yResult.stdout.includes('pa11y not available')) {
1180
- results.push(`⏭️ pa11y not installed, skipping accessibility tests`);
1181
- summary.push({ step: 'Accessibility', status: 'SKIP', time: 0 });
1182
- }
1183
- else if (a11yResult.exitCode === 0) {
1184
- results.push(`✅ No accessibility violations (${a11yTime}ms)\n`);
1185
- summary.push({ step: 'Accessibility', status: 'PASS', time: a11yTime });
1186
- }
1187
- else {
1188
- results.push(`⚠️ Accessibility issues found\n${truncateOutput(a11yResult.stdout, 2000, 'accessibility report')}`);
1189
- summary.push({ step: 'Accessibility', status: 'WARN', time: a11yTime });
1190
- }
1191
- }
1192
- else if (!skipA11y) {
1193
- results.push(`\n⏭️ Accessibility tests skipped (no baseUrl provided)`);
1194
- summary.push({ step: 'Accessibility', status: 'SKIP', time: 0 });
1195
- }
1196
- // Step 5: Lighthouse (optional)
1197
- if (runLighthouseArg && baseUrl) {
1198
- results.push(`\n━━━ Step 5: Performance Audit ━━━\n`);
1199
- const startTime = Date.now();
1200
- const lhResult = await runCommand(`lighthouse "${baseUrl}" --output=json --quiet --chrome-flags="--headless --no-sandbox" --only-categories=performance 2>&1 || echo "lighthouse not available"`, workingDir, 120000);
1201
- const lhTime = Date.now() - startTime;
1202
- if (lhResult.stdout.includes('lighthouse not available')) {
1203
- results.push(`⏭️ Lighthouse not installed, skipping performance audit`);
1204
- summary.push({ step: 'Performance', status: 'SKIP', time: 0 });
1205
- }
1206
- else {
1207
- const { data: report } = safeJsonParse(lhResult.stdout, 'Lighthouse report');
1208
- if (report) {
1209
- const perfScore = Math.round((report.categories?.performance?.score || 0) * 100);
1210
- const emoji = perfScore >= 90 ? '🟢' : perfScore >= 50 ? '🟡' : '🔴';
1211
- results.push(`${emoji} Performance Score: ${perfScore}/100 (${lhTime}ms)`);
1212
- summary.push({
1213
- step: 'Performance',
1214
- status: perfScore >= 90 ? 'PASS' : perfScore >= 50 ? 'WARN' : 'FAIL',
1215
- time: lhTime,
1216
- });
1217
- }
1218
- else {
1219
- results.push(`⚠️ Could not parse Lighthouse results`);
1220
- summary.push({ step: 'Performance', status: 'WARN', time: lhTime });
1221
- }
1222
- }
1223
- }
1224
- // Summary
1225
- results.push(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
1226
- results.push(`📋 WORKFLOW SUMMARY\n`);
1227
- const passed = summary.filter((s) => s.status === 'PASS').length;
1228
- const failed = summary.filter((s) => s.status === 'FAIL').length;
1229
- const warned = summary.filter((s) => s.status === 'WARN').length;
1230
- const skipped = summary.filter((s) => s.status === 'SKIP').length;
1231
- const totalTime = summary.reduce((acc, s) => acc + s.time, 0);
1232
- summary.forEach((s) => {
1233
- const statusEmoji = s.status === 'PASS' ? '✅' : s.status === 'FAIL' ? '❌' : s.status === 'WARN' ? '⚠️' : '⏭️';
1234
- const timeStr = s.time > 0 ? ` (${s.time}ms)` : '';
1235
- results.push(`${statusEmoji} ${s.step}: ${s.status}${timeStr}`);
1236
- });
1237
- results.push(`\n📊 Results: ${passed} passed, ${failed} failed, ${warned} warnings, ${skipped} skipped`);
1238
- results.push(`⏱️ Total time: ${totalTime}ms`);
1239
- if (failed > 0) {
1240
- results.push(`\n❌ WORKFLOW FAILED`);
1241
- }
1242
- else if (warned > 0) {
1243
- results.push(`\n⚠️ WORKFLOW COMPLETED WITH WARNINGS`);
1244
- }
1245
- else {
1246
- results.push(`\n✅ WORKFLOW PASSED`);
1247
- }
1248
- return results.join('\n');
1249
- },
1250
- },
1251
- ];
1252
- }
1253
- export { E2E_FRAMEWORKS, BUILD_CONFIGS };
1254
- //# sourceMappingURL=frontendTestingTools.js.map