stringray-ai 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. package/.mcp.json +68 -0
  2. package/LICENSE +21 -0
  3. package/README.md +618 -0
  4. package/dist/agents/architect.d.ts +3 -0
  5. package/dist/agents/architect.d.ts.map +1 -0
  6. package/dist/agents/architect.js +84 -0
  7. package/dist/agents/architect.js.map +1 -0
  8. package/dist/agents/bug-triage-specialist.d.ts +3 -0
  9. package/dist/agents/bug-triage-specialist.d.ts.map +1 -0
  10. package/dist/agents/bug-triage-specialist.js +66 -0
  11. package/dist/agents/bug-triage-specialist.js.map +1 -0
  12. package/dist/agents/code-reviewer.d.ts +3 -0
  13. package/dist/agents/code-reviewer.d.ts.map +1 -0
  14. package/dist/agents/code-reviewer.js +66 -0
  15. package/dist/agents/code-reviewer.js.map +1 -0
  16. package/dist/agents/enforcer.d.ts +3 -0
  17. package/dist/agents/enforcer.d.ts.map +1 -0
  18. package/dist/agents/enforcer.js +109 -0
  19. package/dist/agents/enforcer.js.map +1 -0
  20. package/dist/agents/index.d.ts +15 -0
  21. package/dist/agents/index.d.ts.map +1 -0
  22. package/dist/agents/index.js +26 -0
  23. package/dist/agents/index.js.map +1 -0
  24. package/dist/agents/librarian.d.ts +3 -0
  25. package/dist/agents/librarian.d.ts.map +1 -0
  26. package/dist/agents/librarian.js +70 -0
  27. package/dist/agents/librarian.js.map +1 -0
  28. package/dist/agents/log-monitor.d.ts +3 -0
  29. package/dist/agents/log-monitor.d.ts.map +1 -0
  30. package/dist/agents/log-monitor.js +102 -0
  31. package/dist/agents/log-monitor.js.map +1 -0
  32. package/dist/agents/orchestrator.d.ts +3 -0
  33. package/dist/agents/orchestrator.d.ts.map +1 -0
  34. package/dist/agents/orchestrator.js +85 -0
  35. package/dist/agents/orchestrator.js.map +1 -0
  36. package/dist/agents/refactorer.d.ts +3 -0
  37. package/dist/agents/refactorer.d.ts.map +1 -0
  38. package/dist/agents/refactorer.js +67 -0
  39. package/dist/agents/refactorer.js.map +1 -0
  40. package/dist/agents/security-auditor.d.ts +3 -0
  41. package/dist/agents/security-auditor.d.ts.map +1 -0
  42. package/dist/agents/security-auditor.js +66 -0
  43. package/dist/agents/security-auditor.js.map +1 -0
  44. package/dist/agents/sisyphus.d.ts +3 -0
  45. package/dist/agents/sisyphus.d.ts.map +1 -0
  46. package/dist/agents/sisyphus.js +53 -0
  47. package/dist/agents/sisyphus.js.map +1 -0
  48. package/dist/agents/test-architect.d.ts +3 -0
  49. package/dist/agents/test-architect.d.ts.map +1 -0
  50. package/dist/agents/test-architect.js +81 -0
  51. package/dist/agents/test-architect.js.map +1 -0
  52. package/dist/agents/types.d.ts +29 -0
  53. package/dist/agents/types.d.ts.map +1 -0
  54. package/dist/agents/types.js +2 -0
  55. package/dist/agents/types.js.map +1 -0
  56. package/dist/mcps/architect-tools.server.d.ts +40 -0
  57. package/dist/mcps/architect-tools.server.d.ts.map +1 -0
  58. package/dist/mcps/architect-tools.server.js +563 -0
  59. package/dist/mcps/architect-tools.server.js.map +1 -0
  60. package/dist/mcps/auto-format.server.d.ts +20 -0
  61. package/dist/mcps/auto-format.server.d.ts.map +1 -0
  62. package/dist/mcps/auto-format.server.js +391 -0
  63. package/dist/mcps/auto-format.server.js.map +1 -0
  64. package/dist/mcps/boot-orchestrator.server.d.ts +50 -0
  65. package/dist/mcps/boot-orchestrator.server.d.ts.map +1 -0
  66. package/dist/mcps/boot-orchestrator.server.js +871 -0
  67. package/dist/mcps/boot-orchestrator.server.js.map +1 -0
  68. package/dist/mcps/enforcer-tools.server.d.ts +26 -0
  69. package/dist/mcps/enforcer-tools.server.d.ts.map +1 -0
  70. package/dist/mcps/enforcer-tools.server.js +627 -0
  71. package/dist/mcps/enforcer-tools.server.js.map +1 -0
  72. package/dist/mcps/enhanced-orchestrator.server.d.ts +14 -0
  73. package/dist/mcps/enhanced-orchestrator.server.d.ts.map +1 -0
  74. package/dist/mcps/enhanced-orchestrator.server.js +250 -0
  75. package/dist/mcps/enhanced-orchestrator.server.js.map +1 -0
  76. package/dist/mcps/framework-compliance-audit.server.d.ts +23 -0
  77. package/dist/mcps/framework-compliance-audit.server.d.ts.map +1 -0
  78. package/dist/mcps/framework-compliance-audit.server.js +511 -0
  79. package/dist/mcps/framework-compliance-audit.server.js.map +1 -0
  80. package/dist/mcps/knowledge-skills/api-design.server.d.ts +16 -0
  81. package/dist/mcps/knowledge-skills/api-design.server.d.ts.map +1 -0
  82. package/dist/mcps/knowledge-skills/api-design.server.js +120 -0
  83. package/dist/mcps/knowledge-skills/api-design.server.js.map +1 -0
  84. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +16 -0
  85. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts.map +1 -0
  86. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +110 -0
  87. package/dist/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -0
  88. package/dist/mcps/knowledge-skills/code-review.server.d.ts +32 -0
  89. package/dist/mcps/knowledge-skills/code-review.server.d.ts.map +1 -0
  90. package/dist/mcps/knowledge-skills/code-review.server.js +777 -0
  91. package/dist/mcps/knowledge-skills/code-review.server.js.map +1 -0
  92. package/dist/mcps/knowledge-skills/database-design.server.d.ts +44 -0
  93. package/dist/mcps/knowledge-skills/database-design.server.d.ts.map +1 -0
  94. package/dist/mcps/knowledge-skills/database-design.server.js +818 -0
  95. package/dist/mcps/knowledge-skills/database-design.server.js.map +1 -0
  96. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +44 -0
  97. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts.map +1 -0
  98. package/dist/mcps/knowledge-skills/devops-deployment.server.js +1178 -0
  99. package/dist/mcps/knowledge-skills/devops-deployment.server.js.map +1 -0
  100. package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts +48 -0
  101. package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts.map +1 -0
  102. package/dist/mcps/knowledge-skills/documentation-generation.server.js +1188 -0
  103. package/dist/mcps/knowledge-skills/documentation-generation.server.js.map +1 -0
  104. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +16 -0
  105. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts.map +1 -0
  106. package/dist/mcps/knowledge-skills/git-workflow.server.js +112 -0
  107. package/dist/mcps/knowledge-skills/git-workflow.server.js.map +1 -0
  108. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +16 -0
  109. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts.map +1 -0
  110. package/dist/mcps/knowledge-skills/performance-optimization.server.js +108 -0
  111. package/dist/mcps/knowledge-skills/performance-optimization.server.js.map +1 -0
  112. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +34 -0
  113. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts.map +1 -0
  114. package/dist/mcps/knowledge-skills/project-analysis.server.js +710 -0
  115. package/dist/mcps/knowledge-skills/project-analysis.server.js.map +1 -0
  116. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +34 -0
  117. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts.map +1 -0
  118. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +794 -0
  119. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -0
  120. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +34 -0
  121. package/dist/mcps/knowledge-skills/security-audit.server.d.ts.map +1 -0
  122. package/dist/mcps/knowledge-skills/security-audit.server.js +769 -0
  123. package/dist/mcps/knowledge-skills/security-audit.server.js.map +1 -0
  124. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +37 -0
  125. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts.map +1 -0
  126. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +865 -0
  127. package/dist/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -0
  128. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +47 -0
  129. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts.map +1 -0
  130. package/dist/mcps/knowledge-skills/testing-strategy.server.js +672 -0
  131. package/dist/mcps/knowledge-skills/testing-strategy.server.js.map +1 -0
  132. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +42 -0
  133. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts.map +1 -0
  134. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1016 -0
  135. package/dist/mcps/knowledge-skills/ui-ux-design.server.js.map +1 -0
  136. package/dist/mcps/lint.server.d.ts +18 -0
  137. package/dist/mcps/lint.server.d.ts.map +1 -0
  138. package/dist/mcps/lint.server.js +334 -0
  139. package/dist/mcps/lint.server.js.map +1 -0
  140. package/dist/mcps/model-health-check.server.d.ts +17 -0
  141. package/dist/mcps/model-health-check.server.d.ts.map +1 -0
  142. package/dist/mcps/model-health-check.server.js +226 -0
  143. package/dist/mcps/model-health-check.server.js.map +1 -0
  144. package/dist/mcps/orchestrator.server.d.ts +39 -0
  145. package/dist/mcps/orchestrator.server.d.ts.map +1 -0
  146. package/dist/mcps/orchestrator.server.js +908 -0
  147. package/dist/mcps/orchestrator.server.js.map +1 -0
  148. package/dist/mcps/performance-analysis.server.d.ts +28 -0
  149. package/dist/mcps/performance-analysis.server.d.ts.map +1 -0
  150. package/dist/mcps/performance-analysis.server.js +514 -0
  151. package/dist/mcps/performance-analysis.server.js.map +1 -0
  152. package/dist/mcps/processor-pipeline.server.d.ts +29 -0
  153. package/dist/mcps/processor-pipeline.server.d.ts.map +1 -0
  154. package/dist/mcps/processor-pipeline.server.js +520 -0
  155. package/dist/mcps/processor-pipeline.server.js.map +1 -0
  156. package/dist/mcps/security-scan.server.d.ts +20 -0
  157. package/dist/mcps/security-scan.server.d.ts.map +1 -0
  158. package/dist/mcps/security-scan.server.js +404 -0
  159. package/dist/mcps/security-scan.server.js.map +1 -0
  160. package/dist/mcps/state-manager.server.d.ts +29 -0
  161. package/dist/mcps/state-manager.server.d.ts.map +1 -0
  162. package/dist/mcps/state-manager.server.js +620 -0
  163. package/dist/mcps/state-manager.server.js.map +1 -0
  164. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +109 -0
  165. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts.map +1 -0
  166. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +337 -0
  167. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js.map +1 -0
  168. package/dist/orchestrator/intelligent-commit-batcher.d.ts +112 -0
  169. package/dist/orchestrator/intelligent-commit-batcher.d.ts.map +1 -0
  170. package/dist/orchestrator/intelligent-commit-batcher.js +330 -0
  171. package/dist/orchestrator/intelligent-commit-batcher.js.map +1 -0
  172. package/dist/plugin/agents/architect.d.ts +3 -0
  173. package/dist/plugin/agents/architect.d.ts.map +1 -0
  174. package/dist/plugin/agents/architect.js +84 -0
  175. package/dist/plugin/agents/architect.js.map +1 -0
  176. package/dist/plugin/agents/bug-triage-specialist.d.ts +3 -0
  177. package/dist/plugin/agents/bug-triage-specialist.d.ts.map +1 -0
  178. package/dist/plugin/agents/bug-triage-specialist.js +66 -0
  179. package/dist/plugin/agents/bug-triage-specialist.js.map +1 -0
  180. package/dist/plugin/agents/code-reviewer.d.ts +3 -0
  181. package/dist/plugin/agents/code-reviewer.d.ts.map +1 -0
  182. package/dist/plugin/agents/code-reviewer.js +66 -0
  183. package/dist/plugin/agents/code-reviewer.js.map +1 -0
  184. package/dist/plugin/agents/enforcer.d.ts +3 -0
  185. package/dist/plugin/agents/enforcer.d.ts.map +1 -0
  186. package/dist/plugin/agents/enforcer.js +109 -0
  187. package/dist/plugin/agents/enforcer.js.map +1 -0
  188. package/dist/plugin/agents/index.d.ts +15 -0
  189. package/dist/plugin/agents/index.d.ts.map +1 -0
  190. package/dist/plugin/agents/index.js +26 -0
  191. package/dist/plugin/agents/index.js.map +1 -0
  192. package/dist/plugin/agents/librarian.d.ts +3 -0
  193. package/dist/plugin/agents/librarian.d.ts.map +1 -0
  194. package/dist/plugin/agents/librarian.js +70 -0
  195. package/dist/plugin/agents/librarian.js.map +1 -0
  196. package/dist/plugin/agents/log-monitor.d.ts +3 -0
  197. package/dist/plugin/agents/log-monitor.d.ts.map +1 -0
  198. package/dist/plugin/agents/log-monitor.js +102 -0
  199. package/dist/plugin/agents/log-monitor.js.map +1 -0
  200. package/dist/plugin/agents/orchestrator.d.ts +3 -0
  201. package/dist/plugin/agents/orchestrator.d.ts.map +1 -0
  202. package/dist/plugin/agents/orchestrator.js +85 -0
  203. package/dist/plugin/agents/orchestrator.js.map +1 -0
  204. package/dist/plugin/agents/refactorer.d.ts +3 -0
  205. package/dist/plugin/agents/refactorer.d.ts.map +1 -0
  206. package/dist/plugin/agents/refactorer.js +67 -0
  207. package/dist/plugin/agents/refactorer.js.map +1 -0
  208. package/dist/plugin/agents/security-auditor.d.ts +3 -0
  209. package/dist/plugin/agents/security-auditor.d.ts.map +1 -0
  210. package/dist/plugin/agents/security-auditor.js +66 -0
  211. package/dist/plugin/agents/security-auditor.js.map +1 -0
  212. package/dist/plugin/agents/sisyphus.d.ts +3 -0
  213. package/dist/plugin/agents/sisyphus.d.ts.map +1 -0
  214. package/dist/plugin/agents/sisyphus.js +53 -0
  215. package/dist/plugin/agents/sisyphus.js.map +1 -0
  216. package/dist/plugin/agents/test-architect.d.ts +3 -0
  217. package/dist/plugin/agents/test-architect.d.ts.map +1 -0
  218. package/dist/plugin/agents/test-architect.js +81 -0
  219. package/dist/plugin/agents/test-architect.js.map +1 -0
  220. package/dist/plugin/agents/types.d.ts +29 -0
  221. package/dist/plugin/agents/types.d.ts.map +1 -0
  222. package/dist/plugin/agents/types.js +2 -0
  223. package/dist/plugin/agents/types.js.map +1 -0
  224. package/dist/plugin/config-loader.d.ts +67 -0
  225. package/dist/plugin/config-loader.d.ts.map +1 -0
  226. package/dist/plugin/config-loader.js +125 -0
  227. package/dist/plugin/config-loader.js.map +1 -0
  228. package/dist/plugin/context-loader.d.ts +122 -0
  229. package/dist/plugin/context-loader.d.ts.map +1 -0
  230. package/dist/plugin/context-loader.js +273 -0
  231. package/dist/plugin/context-loader.js.map +1 -0
  232. package/dist/plugin/delegation/agent-delegator.d.ts +217 -0
  233. package/dist/plugin/delegation/agent-delegator.d.ts.map +1 -0
  234. package/dist/plugin/delegation/agent-delegator.js +928 -0
  235. package/dist/plugin/delegation/agent-delegator.js.map +1 -0
  236. package/dist/plugin/delegation/codebase-context-analyzer.d.ts +157 -0
  237. package/dist/plugin/delegation/codebase-context-analyzer.d.ts.map +1 -0
  238. package/dist/plugin/delegation/codebase-context-analyzer.js +1029 -0
  239. package/dist/plugin/delegation/codebase-context-analyzer.js.map +1 -0
  240. package/dist/plugin/delegation/complexity-analyzer.d.ts +61 -0
  241. package/dist/plugin/delegation/complexity-analyzer.d.ts.map +1 -0
  242. package/dist/plugin/delegation/complexity-analyzer.js +253 -0
  243. package/dist/plugin/delegation/complexity-analyzer.js.map +1 -0
  244. package/dist/plugin/enforcement/enforcer-tools.d.ts +62 -0
  245. package/dist/plugin/enforcement/enforcer-tools.d.ts.map +1 -0
  246. package/dist/plugin/enforcement/enforcer-tools.js +407 -0
  247. package/dist/plugin/enforcement/enforcer-tools.js.map +1 -0
  248. package/dist/plugin/enforcement/rule-enforcer.d.ts +171 -0
  249. package/dist/plugin/enforcement/rule-enforcer.d.ts.map +1 -0
  250. package/dist/plugin/enforcement/rule-enforcer.js +1342 -0
  251. package/dist/plugin/enforcement/rule-enforcer.js.map +1 -0
  252. package/dist/plugin/enforcement/test-auto-healing.d.ts +78 -0
  253. package/dist/plugin/enforcement/test-auto-healing.d.ts.map +1 -0
  254. package/dist/plugin/enforcement/test-auto-healing.js +318 -0
  255. package/dist/plugin/enforcement/test-auto-healing.js.map +1 -0
  256. package/dist/plugin/framework-logger.d.ts +20 -0
  257. package/dist/plugin/framework-logger.d.ts.map +1 -0
  258. package/dist/plugin/framework-logger.js +79 -0
  259. package/dist/plugin/framework-logger.js.map +1 -0
  260. package/dist/plugin/logging-config.d.ts +11 -0
  261. package/dist/plugin/logging-config.d.ts.map +1 -0
  262. package/dist/plugin/logging-config.js +44 -0
  263. package/dist/plugin/logging-config.js.map +1 -0
  264. package/dist/plugin/mcps/architect-tools.server.d.ts +40 -0
  265. package/dist/plugin/mcps/architect-tools.server.d.ts.map +1 -0
  266. package/dist/plugin/mcps/architect-tools.server.js +563 -0
  267. package/dist/plugin/mcps/architect-tools.server.js.map +1 -0
  268. package/dist/plugin/mcps/auto-format.server.d.ts +20 -0
  269. package/dist/plugin/mcps/auto-format.server.d.ts.map +1 -0
  270. package/dist/plugin/mcps/auto-format.server.js +391 -0
  271. package/dist/plugin/mcps/auto-format.server.js.map +1 -0
  272. package/dist/plugin/mcps/boot-orchestrator.server.d.ts +50 -0
  273. package/dist/plugin/mcps/boot-orchestrator.server.d.ts.map +1 -0
  274. package/dist/plugin/mcps/boot-orchestrator.server.js +871 -0
  275. package/dist/plugin/mcps/boot-orchestrator.server.js.map +1 -0
  276. package/dist/plugin/mcps/enforcer-tools.server.d.ts +26 -0
  277. package/dist/plugin/mcps/enforcer-tools.server.d.ts.map +1 -0
  278. package/dist/plugin/mcps/enforcer-tools.server.js +627 -0
  279. package/dist/plugin/mcps/enforcer-tools.server.js.map +1 -0
  280. package/dist/plugin/mcps/enhanced-orchestrator.server.d.ts +14 -0
  281. package/dist/plugin/mcps/enhanced-orchestrator.server.d.ts.map +1 -0
  282. package/dist/plugin/mcps/enhanced-orchestrator.server.js +250 -0
  283. package/dist/plugin/mcps/enhanced-orchestrator.server.js.map +1 -0
  284. package/dist/plugin/mcps/framework-compliance-audit.server.d.ts +23 -0
  285. package/dist/plugin/mcps/framework-compliance-audit.server.d.ts.map +1 -0
  286. package/dist/plugin/mcps/framework-compliance-audit.server.js +511 -0
  287. package/dist/plugin/mcps/framework-compliance-audit.server.js.map +1 -0
  288. package/dist/plugin/mcps/knowledge-skills/api-design.server.d.ts +16 -0
  289. package/dist/plugin/mcps/knowledge-skills/api-design.server.d.ts.map +1 -0
  290. package/dist/plugin/mcps/knowledge-skills/api-design.server.js +120 -0
  291. package/dist/plugin/mcps/knowledge-skills/api-design.server.js.map +1 -0
  292. package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.d.ts +16 -0
  293. package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.d.ts.map +1 -0
  294. package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.js +110 -0
  295. package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -0
  296. package/dist/plugin/mcps/knowledge-skills/code-review.server.d.ts +32 -0
  297. package/dist/plugin/mcps/knowledge-skills/code-review.server.d.ts.map +1 -0
  298. package/dist/plugin/mcps/knowledge-skills/code-review.server.js +777 -0
  299. package/dist/plugin/mcps/knowledge-skills/code-review.server.js.map +1 -0
  300. package/dist/plugin/mcps/knowledge-skills/database-design.server.d.ts +44 -0
  301. package/dist/plugin/mcps/knowledge-skills/database-design.server.d.ts.map +1 -0
  302. package/dist/plugin/mcps/knowledge-skills/database-design.server.js +818 -0
  303. package/dist/plugin/mcps/knowledge-skills/database-design.server.js.map +1 -0
  304. package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.d.ts +44 -0
  305. package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.d.ts.map +1 -0
  306. package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.js +1178 -0
  307. package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.js.map +1 -0
  308. package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.d.ts +48 -0
  309. package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.d.ts.map +1 -0
  310. package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.js +1188 -0
  311. package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.js.map +1 -0
  312. package/dist/plugin/mcps/knowledge-skills/git-workflow.server.d.ts +16 -0
  313. package/dist/plugin/mcps/knowledge-skills/git-workflow.server.d.ts.map +1 -0
  314. package/dist/plugin/mcps/knowledge-skills/git-workflow.server.js +112 -0
  315. package/dist/plugin/mcps/knowledge-skills/git-workflow.server.js.map +1 -0
  316. package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.d.ts +16 -0
  317. package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.d.ts.map +1 -0
  318. package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.js +108 -0
  319. package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.js.map +1 -0
  320. package/dist/plugin/mcps/knowledge-skills/project-analysis.server.d.ts +34 -0
  321. package/dist/plugin/mcps/knowledge-skills/project-analysis.server.d.ts.map +1 -0
  322. package/dist/plugin/mcps/knowledge-skills/project-analysis.server.js +710 -0
  323. package/dist/plugin/mcps/knowledge-skills/project-analysis.server.js.map +1 -0
  324. package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.d.ts +34 -0
  325. package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.d.ts.map +1 -0
  326. package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.js +794 -0
  327. package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -0
  328. package/dist/plugin/mcps/knowledge-skills/security-audit.server.d.ts +34 -0
  329. package/dist/plugin/mcps/knowledge-skills/security-audit.server.d.ts.map +1 -0
  330. package/dist/plugin/mcps/knowledge-skills/security-audit.server.js +769 -0
  331. package/dist/plugin/mcps/knowledge-skills/security-audit.server.js.map +1 -0
  332. package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.d.ts +37 -0
  333. package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.d.ts.map +1 -0
  334. package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.js +865 -0
  335. package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -0
  336. package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.d.ts +47 -0
  337. package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.d.ts.map +1 -0
  338. package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.js +672 -0
  339. package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.js.map +1 -0
  340. package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.d.ts +42 -0
  341. package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.d.ts.map +1 -0
  342. package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.js +1016 -0
  343. package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.js.map +1 -0
  344. package/dist/plugin/mcps/lint.server.d.ts +18 -0
  345. package/dist/plugin/mcps/lint.server.d.ts.map +1 -0
  346. package/dist/plugin/mcps/lint.server.js +334 -0
  347. package/dist/plugin/mcps/lint.server.js.map +1 -0
  348. package/dist/plugin/mcps/model-health-check.server.d.ts +17 -0
  349. package/dist/plugin/mcps/model-health-check.server.d.ts.map +1 -0
  350. package/dist/plugin/mcps/model-health-check.server.js +226 -0
  351. package/dist/plugin/mcps/model-health-check.server.js.map +1 -0
  352. package/dist/plugin/mcps/orchestrator.server.d.ts +39 -0
  353. package/dist/plugin/mcps/orchestrator.server.d.ts.map +1 -0
  354. package/dist/plugin/mcps/orchestrator.server.js +908 -0
  355. package/dist/plugin/mcps/orchestrator.server.js.map +1 -0
  356. package/dist/plugin/mcps/performance-analysis.server.d.ts +28 -0
  357. package/dist/plugin/mcps/performance-analysis.server.d.ts.map +1 -0
  358. package/dist/plugin/mcps/performance-analysis.server.js +514 -0
  359. package/dist/plugin/mcps/performance-analysis.server.js.map +1 -0
  360. package/dist/plugin/mcps/processor-pipeline.server.d.ts +29 -0
  361. package/dist/plugin/mcps/processor-pipeline.server.d.ts.map +1 -0
  362. package/dist/plugin/mcps/processor-pipeline.server.js +520 -0
  363. package/dist/plugin/mcps/processor-pipeline.server.js.map +1 -0
  364. package/dist/plugin/mcps/security-scan.server.d.ts +20 -0
  365. package/dist/plugin/mcps/security-scan.server.d.ts.map +1 -0
  366. package/dist/plugin/mcps/security-scan.server.js +404 -0
  367. package/dist/plugin/mcps/security-scan.server.js.map +1 -0
  368. package/dist/plugin/mcps/state-manager.server.d.ts +29 -0
  369. package/dist/plugin/mcps/state-manager.server.d.ts.map +1 -0
  370. package/dist/plugin/mcps/state-manager.server.js +620 -0
  371. package/dist/plugin/mcps/state-manager.server.js.map +1 -0
  372. package/dist/plugin/monitoring/advanced-profiler.d.ts +48 -0
  373. package/dist/plugin/monitoring/advanced-profiler.d.ts.map +1 -0
  374. package/dist/plugin/monitoring/advanced-profiler.js +216 -0
  375. package/dist/plugin/monitoring/advanced-profiler.js.map +1 -0
  376. package/dist/plugin/monitoring/enterprise-monitoring-system.d.ts +331 -0
  377. package/dist/plugin/monitoring/enterprise-monitoring-system.d.ts.map +1 -0
  378. package/dist/plugin/monitoring/enterprise-monitoring-system.js +797 -0
  379. package/dist/plugin/monitoring/enterprise-monitoring-system.js.map +1 -0
  380. package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.d.ts +111 -0
  381. package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.d.ts.map +1 -0
  382. package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.js +339 -0
  383. package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.js.map +1 -0
  384. package/dist/plugin/orchestrator/intelligent-commit-batcher.d.ts +112 -0
  385. package/dist/plugin/orchestrator/intelligent-commit-batcher.d.ts.map +1 -0
  386. package/dist/plugin/orchestrator/intelligent-commit-batcher.js +330 -0
  387. package/dist/plugin/orchestrator/intelligent-commit-batcher.js.map +1 -0
  388. package/dist/plugin/orchestrator.d.ts +91 -0
  389. package/dist/plugin/orchestrator.d.ts.map +1 -0
  390. package/dist/plugin/orchestrator.js +444 -0
  391. package/dist/plugin/orchestrator.js.map +1 -0
  392. package/dist/plugin/plugins/marketplace/marketplace-service.d.ts +108 -0
  393. package/dist/plugin/plugins/marketplace/marketplace-service.d.ts.map +1 -0
  394. package/dist/plugin/plugins/marketplace/marketplace-service.js +620 -0
  395. package/dist/plugin/plugins/marketplace/marketplace-service.js.map +1 -0
  396. package/dist/plugin/plugins/marketplace/marketplace-types.d.ts +468 -0
  397. package/dist/plugin/plugins/marketplace/marketplace-types.d.ts.map +1 -0
  398. package/dist/plugin/plugins/marketplace/marketplace-types.js +11 -0
  399. package/dist/plugin/plugins/marketplace/marketplace-types.js.map +1 -0
  400. package/dist/plugin/plugins/plugin-system.d.ts +152 -0
  401. package/dist/plugin/plugins/plugin-system.d.ts.map +1 -0
  402. package/dist/plugin/plugins/plugin-system.js +405 -0
  403. package/dist/plugin/plugins/plugin-system.js.map +1 -0
  404. package/dist/plugin/plugins/stringray-codex-injection.d.ts +68 -0
  405. package/dist/plugin/plugins/stringray-codex-injection.d.ts.map +1 -0
  406. package/dist/plugin/plugins/stringray-codex-injection.js +225 -0
  407. package/dist/plugin/plugins/stringray-codex-injection.js.map +1 -0
  408. package/dist/plugin/plugins/strray-codex-injection.d.ts +68 -0
  409. package/dist/plugin/plugins/strray-codex-injection.d.ts.map +1 -0
  410. package/dist/plugin/plugins/strray-codex-injection.js +225 -0
  411. package/dist/plugin/plugins/strray-codex-injection.js.map +1 -0
  412. package/dist/plugin/processors/index.d.ts +12 -0
  413. package/dist/plugin/processors/index.d.ts.map +1 -0
  414. package/dist/plugin/processors/index.js +12 -0
  415. package/dist/plugin/processors/index.js.map +1 -0
  416. package/dist/plugin/processors/processor-manager.d.ts +113 -0
  417. package/dist/plugin/processors/processor-manager.d.ts.map +1 -0
  418. package/dist/plugin/processors/processor-manager.js +498 -0
  419. package/dist/plugin/processors/processor-manager.js.map +1 -0
  420. package/dist/plugin/processors/processor-types.d.ts +50 -0
  421. package/dist/plugin/processors/processor-types.d.ts.map +1 -0
  422. package/dist/plugin/processors/processor-types.js +10 -0
  423. package/dist/plugin/processors/processor-types.js.map +1 -0
  424. package/dist/plugin/processors/refactoring-logging-processor.d.ts +61 -0
  425. package/dist/plugin/processors/refactoring-logging-processor.d.ts.map +1 -0
  426. package/dist/plugin/processors/refactoring-logging-processor.js +257 -0
  427. package/dist/plugin/processors/refactoring-logging-processor.js.map +1 -0
  428. package/dist/plugin/reporting/framework-reporting-system.d.ts +157 -0
  429. package/dist/plugin/reporting/framework-reporting-system.d.ts.map +1 -0
  430. package/dist/plugin/reporting/framework-reporting-system.js +783 -0
  431. package/dist/plugin/reporting/framework-reporting-system.js.map +1 -0
  432. package/dist/plugin/security/security-hardening-system.d.ts +220 -0
  433. package/dist/plugin/security/security-hardening-system.d.ts.map +1 -0
  434. package/dist/plugin/security/security-hardening-system.js +605 -0
  435. package/dist/plugin/security/security-hardening-system.js.map +1 -0
  436. package/dist/plugin/state/context-providers.d.ts +5 -0
  437. package/dist/plugin/state/context-providers.d.ts.map +1 -0
  438. package/dist/plugin/state/context-providers.js +2 -0
  439. package/dist/plugin/state/context-providers.js.map +1 -0
  440. package/dist/plugin/state/index.d.ts +5 -0
  441. package/dist/plugin/state/index.d.ts.map +1 -0
  442. package/dist/plugin/state/index.js +8 -0
  443. package/dist/plugin/state/index.js.map +1 -0
  444. package/dist/plugin/state/state-manager.d.ts +29 -0
  445. package/dist/plugin/state/state-manager.d.ts.map +1 -0
  446. package/dist/plugin/state/state-manager.js +153 -0
  447. package/dist/plugin/state/state-manager.js.map +1 -0
  448. package/dist/plugin/state/state-types.d.ts +6 -0
  449. package/dist/plugin/state/state-types.d.ts.map +1 -0
  450. package/dist/plugin/state/state-types.js +2 -0
  451. package/dist/plugin/state/state-types.js.map +1 -0
  452. package/dist/plugin/utils/codex-parser.d.ts +62 -0
  453. package/dist/plugin/utils/codex-parser.d.ts.map +1 -0
  454. package/dist/plugin/utils/codex-parser.js +396 -0
  455. package/dist/plugin/utils/codex-parser.js.map +1 -0
  456. package/dist/plugin/utils/command-runner.d.ts +24 -0
  457. package/dist/plugin/utils/command-runner.d.ts.map +1 -0
  458. package/dist/plugin/utils/command-runner.js +44 -0
  459. package/dist/plugin/utils/command-runner.js.map +1 -0
  460. package/dist/plugin/utils/import-resolver.d.ts +55 -0
  461. package/dist/plugin/utils/import-resolver.d.ts.map +1 -0
  462. package/dist/plugin/utils/import-resolver.js +198 -0
  463. package/dist/plugin/utils/import-resolver.js.map +1 -0
  464. package/dist/plugin/utils/memory-pool.d.ts +90 -0
  465. package/dist/plugin/utils/memory-pool.d.ts.map +1 -0
  466. package/dist/plugin/utils/memory-pool.js +245 -0
  467. package/dist/plugin/utils/memory-pool.js.map +1 -0
  468. package/dist/plugin/utils/path-resolver.d.ts +49 -0
  469. package/dist/plugin/utils/path-resolver.d.ts.map +1 -0
  470. package/dist/plugin/utils/path-resolver.js +126 -0
  471. package/dist/plugin/utils/path-resolver.js.map +1 -0
  472. package/dist/plugin/utils/test-template-generator.d.ts +26 -0
  473. package/dist/plugin/utils/test-template-generator.d.ts.map +1 -0
  474. package/dist/plugin/utils/test-template-generator.js +178 -0
  475. package/dist/plugin/utils/test-template-generator.js.map +1 -0
  476. package/dist/processors/index.d.ts +12 -0
  477. package/dist/processors/index.d.ts.map +1 -0
  478. package/dist/processors/index.js +12 -0
  479. package/dist/processors/index.js.map +1 -0
  480. package/dist/processors/processor-manager.d.ts +113 -0
  481. package/dist/processors/processor-manager.d.ts.map +1 -0
  482. package/dist/processors/processor-manager.js +498 -0
  483. package/dist/processors/processor-manager.js.map +1 -0
  484. package/dist/processors/processor-types.d.ts +50 -0
  485. package/dist/processors/processor-types.d.ts.map +1 -0
  486. package/dist/processors/processor-types.js +10 -0
  487. package/dist/processors/processor-types.js.map +1 -0
  488. package/dist/processors/refactoring-logging-processor.d.ts +61 -0
  489. package/dist/processors/refactoring-logging-processor.d.ts.map +1 -0
  490. package/dist/processors/refactoring-logging-processor.js +257 -0
  491. package/dist/processors/refactoring-logging-processor.js.map +1 -0
  492. package/dist/state/context-providers.d.ts +5 -0
  493. package/dist/state/context-providers.d.ts.map +1 -0
  494. package/dist/state/context-providers.js +2 -0
  495. package/dist/state/context-providers.js.map +1 -0
  496. package/dist/state/index.d.ts +5 -0
  497. package/dist/state/index.d.ts.map +1 -0
  498. package/dist/state/index.js +8 -0
  499. package/dist/state/index.js.map +1 -0
  500. package/dist/state/state-manager.d.ts +29 -0
  501. package/dist/state/state-manager.d.ts.map +1 -0
  502. package/dist/state/state-manager.js +153 -0
  503. package/dist/state/state-manager.js.map +1 -0
  504. package/dist/state/state-types.d.ts +6 -0
  505. package/dist/state/state-types.d.ts.map +1 -0
  506. package/dist/state/state-types.js +2 -0
  507. package/dist/state/state-types.js.map +1 -0
  508. package/dist/utils/codex-parser.d.ts +62 -0
  509. package/dist/utils/codex-parser.d.ts.map +1 -0
  510. package/dist/utils/codex-parser.js +396 -0
  511. package/dist/utils/codex-parser.js.map +1 -0
  512. package/dist/utils/command-runner.d.ts +24 -0
  513. package/dist/utils/command-runner.d.ts.map +1 -0
  514. package/dist/utils/command-runner.js +44 -0
  515. package/dist/utils/command-runner.js.map +1 -0
  516. package/dist/utils/import-resolver.d.ts +55 -0
  517. package/dist/utils/import-resolver.d.ts.map +1 -0
  518. package/dist/utils/import-resolver.js +198 -0
  519. package/dist/utils/import-resolver.js.map +1 -0
  520. package/dist/utils/memory-pool.d.ts +90 -0
  521. package/dist/utils/memory-pool.d.ts.map +1 -0
  522. package/dist/utils/memory-pool.js +245 -0
  523. package/dist/utils/memory-pool.js.map +1 -0
  524. package/dist/utils/path-resolver.d.ts +49 -0
  525. package/dist/utils/path-resolver.d.ts.map +1 -0
  526. package/dist/utils/path-resolver.js +126 -0
  527. package/dist/utils/path-resolver.js.map +1 -0
  528. package/dist/utils/test-template-generator.d.ts +26 -0
  529. package/dist/utils/test-template-generator.d.ts.map +1 -0
  530. package/dist/utils/test-template-generator.js +178 -0
  531. package/dist/utils/test-template-generator.js.map +1 -0
  532. package/package.json +138 -0
  533. package/scripts/analysis/analyze-context-awareness.ts +219 -0
  534. package/scripts/analysis/analyze-framework-usage.ts +208 -0
  535. package/scripts/analysis/analyzer-agent-runner.js +328 -0
  536. package/scripts/analysis/context-awareness-report.ts +250 -0
  537. package/scripts/analyze-imports.mjs +147 -0
  538. package/scripts/basic-security-audit.cjs +261 -0
  539. package/scripts/boot-check.cjs +188 -0
  540. package/scripts/build/check-syntax.sh +1 -0
  541. package/scripts/build/check-tsc.sh +1 -0
  542. package/scripts/build/check-types.sh +1 -0
  543. package/scripts/build/compile-single.sh +1 -0
  544. package/scripts/build/copy-plugin.sh +1 -0
  545. package/scripts/build/manual-build.sh +1 -0
  546. package/scripts/build/run-build-after-copy.sh +1 -0
  547. package/scripts/build/run-build-attempt.sh +1 -0
  548. package/scripts/build/run-build-errors-grep.sh +1 -0
  549. package/scripts/build/run-build-errors.sh +1 -0
  550. package/scripts/build/run-build-limited.sh +1 -0
  551. package/scripts/build/run-build-list.sh +1 -0
  552. package/scripts/build/run-build.sh +1 -0
  553. package/scripts/build/run-limited.sh +1 -0
  554. package/scripts/build/run-tsc-direct.sh +1 -0
  555. package/scripts/build/run-type-check.sh +1 -0
  556. package/scripts/build/run-typecheck.sh +1 -0
  557. package/scripts/build/test-build.sh +1 -0
  558. package/scripts/check-logs.sh +62 -0
  559. package/scripts/debug/debug-context-enhancement.ts +116 -0
  560. package/scripts/debug/debug-rules.mjs +23 -0
  561. package/scripts/demo/demo-clickable-monitoring.mjs +116 -0
  562. package/scripts/demo/profiling-demo.js +108 -0
  563. package/scripts/demo/profiling-demo.ts +126 -0
  564. package/scripts/demo/reporting-demonstration.ts +184 -0
  565. package/scripts/demo/reporting-examples.ts +105 -0
  566. package/scripts/dependency-scan.cjs +111 -0
  567. package/scripts/deploy-stringray-plugin.sh +323 -0
  568. package/scripts/disable-logging.sh +20 -0
  569. package/scripts/extract-framework.sh +405 -0
  570. package/scripts/fix-mcp-capabilities.js +83 -0
  571. package/scripts/framework/advanced-profiling-integration.sh +384 -0
  572. package/scripts/framework/check-agent-orchestration-health.sh +113 -0
  573. package/scripts/framework/enterprise-analysis-test.sh +174 -0
  574. package/scripts/framework/implement-analyzer-agent.sh +393 -0
  575. package/scripts/framework/merge-mcp-configs.sh +201 -0
  576. package/scripts/framework/validate-multi-agent-orchestration.sh +195 -0
  577. package/scripts/framework/validate-profiling.sh +64 -0
  578. package/scripts/github-actions-monitor.cjs +289 -0
  579. package/scripts/init.ts +121 -0
  580. package/scripts/monitoring/initialize-monitoring-pipeline.sh +89 -0
  581. package/scripts/monitoring/memory-dashboard.sh +52 -0
  582. package/scripts/monitoring/monitoring-daemon.mjs +67 -0
  583. package/scripts/monitoring/monitoring-daemon.sh +190 -0
  584. package/scripts/monitoring/profiling-dashboard.sh +69 -0
  585. package/scripts/performance-report.js +56 -0
  586. package/scripts/postinstall.cjs +240 -0
  587. package/scripts/profile-performance.sh +263 -0
  588. package/scripts/register-mcp-servers-fixed.sh +74 -0
  589. package/scripts/register-mcp-servers.sh +96 -0
  590. package/scripts/reporting/generate-phase1-report.js +28 -0
  591. package/scripts/reporting/run-postprocessor.js +59 -0
  592. package/scripts/reporting/trigger-report.js +15 -0
  593. package/scripts/run-simulations.mjs +29 -0
  594. package/scripts/scenario-data-processor.py +122 -0
  595. package/scripts/scenarios/scenario-security-check.ts +60 -0
  596. package/scripts/scenarios/scenario-user-management.ts +123 -0
  597. package/scripts/setup.cjs +128 -0
  598. package/scripts/simulation/run-simulations.js +84 -0
  599. package/scripts/simulation/simulate-full-orchestrator.ts +239 -0
  600. package/scripts/strray-triage.sh +349 -0
  601. package/scripts/test/run-memory-regression.sh +45 -0
  602. package/scripts/test/run-test.sh +2 -0
  603. package/scripts/test/test-deployment.sh +552 -0
  604. package/scripts/test/test-enhanced-report.ts +24 -0
  605. package/scripts/test/test-graceful-shutdown.sh +35 -0
  606. package/scripts/test/test-integration.mjs +79 -0
  607. package/scripts/test/test-manual-orchestration.sh +168 -0
  608. package/scripts/test/test-max-agents.sh +70 -0
  609. package/scripts/test/test-memory-monitor.sh +40 -0
  610. package/scripts/test/test-memory-pools.sh +58 -0
  611. package/scripts/test/test-module.ts +1 -0
  612. package/scripts/test/test-multi-agent-trigger.sh +251 -0
  613. package/scripts/test/test-orchestrator.txt +1 -0
  614. package/scripts/test/test-postinstall.js +1 -0
  615. package/scripts/test/test-security-module.ts +27 -0
  616. package/scripts/test/test-session-management.js +135 -0
  617. package/scripts/test/test-simulation.mjs +14 -0
  618. package/scripts/test/test-user-service.ts +111 -0
  619. package/scripts/test-comprehensive-path-resolution.mjs +62 -0
  620. package/scripts/test-data-processor.py +51 -0
  621. package/scripts/test-enforcement-e2e.mjs +127 -0
  622. package/scripts/test-full-plugin-no-timeout.sh +30 -0
  623. package/scripts/test-path-resolver.mjs +32 -0
  624. package/scripts/test-rules.mjs +128 -0
  625. package/scripts/test-stringray-plugin.mjs +66 -0
  626. package/scripts/test-utils/smart-test-runner.mjs +609 -0
  627. package/scripts/test-utils/test-quarantine.mjs +246 -0
  628. package/scripts/validate-codex.js +60 -0
  629. package/scripts/validate-phase1.mjs +189 -0
  630. package/scripts/validation/run-validators.js +114 -0
  631. package/scripts/validation/validate-external-processes.js +240 -0
  632. package/scripts/validation/validate-mcp-connectivity.js +165 -0
  633. package/scripts/validation/validate-oh-my-opencode-integration.js +200 -0
  634. package/scripts/validation/validate-reports.ts +114 -0
  635. package/scripts/verify-phase1.js +144 -0
@@ -0,0 +1,865 @@
1
+ /**
2
+ * StrRay Testing Best Practices MCP Server
3
+ *
4
+ * Knowledge skill for comprehensive testing strategies, TDD/BDD implementation,
5
+ * test coverage optimization, and automated testing workflows
6
+ */
7
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
+ class StrRayTestingBestPracticesServer {
11
+ server;
12
+ constructor() {
13
+ this.server = new Server({
14
+ name: "strray-testing-best-practices",
15
+ version: "1.0.0",
16
+ }, {
17
+ capabilities: {
18
+ tools: {},
19
+ },
20
+ });
21
+ this.setupToolHandlers();
22
+ console.log("StrRay Testing Best Practices MCP Server initialized");
23
+ }
24
+ setupToolHandlers() {
25
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
26
+ return {
27
+ tools: [
28
+ {
29
+ name: "analyze_test_coverage",
30
+ description: "Analyze current test coverage and identify gaps",
31
+ inputSchema: {
32
+ type: "object",
33
+ properties: {
34
+ codePath: {
35
+ type: "string",
36
+ description: "Path to codebase to analyze",
37
+ },
38
+ testFramework: {
39
+ type: "string",
40
+ description: "Testing framework used (jest, vitest, mocha, etc.)",
41
+ default: "auto-detect",
42
+ },
43
+ coverageThreshold: {
44
+ type: "number",
45
+ description: "Minimum coverage threshold (0-100)",
46
+ default: 80,
47
+ },
48
+ },
49
+ required: ["codePath"],
50
+ },
51
+ },
52
+ {
53
+ name: "design_test_strategy",
54
+ description: "Design comprehensive testing strategy for a project",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {
58
+ projectType: {
59
+ type: "string",
60
+ enum: ["web-app", "api", "library", "mobile", "desktop"],
61
+ description: "Type of project",
62
+ },
63
+ techStack: {
64
+ type: "array",
65
+ items: { type: "string" },
66
+ description: "Technologies used (react, node, typescript, etc.)",
67
+ },
68
+ teamSize: {
69
+ type: "string",
70
+ enum: ["solo", "small", "medium", "large"],
71
+ description: "Development team size",
72
+ },
73
+ timeline: {
74
+ type: "string",
75
+ enum: ["rapid", "balanced", "thorough"],
76
+ description: "Development timeline priority",
77
+ },
78
+ },
79
+ required: ["projectType"],
80
+ },
81
+ },
82
+ {
83
+ name: "implement_tdd_workflow",
84
+ description: "Implement Test-Driven Development workflow and practices",
85
+ inputSchema: {
86
+ type: "object",
87
+ properties: {
88
+ language: {
89
+ type: "string",
90
+ description: "Programming language",
91
+ default: "typescript",
92
+ },
93
+ framework: {
94
+ type: "string",
95
+ description: "Preferred testing framework",
96
+ default: "jest",
97
+ },
98
+ existingTests: {
99
+ type: "boolean",
100
+ description: "Whether tests already exist",
101
+ default: false,
102
+ },
103
+ },
104
+ required: [],
105
+ },
106
+ },
107
+ {
108
+ name: "optimize_test_performance",
109
+ description: "Analyze and optimize test execution performance",
110
+ inputSchema: {
111
+ type: "object",
112
+ properties: {
113
+ testResults: {
114
+ type: "string",
115
+ description: "Path to test results or current execution time",
116
+ },
117
+ targetRuntime: {
118
+ type: "number",
119
+ description: "Target test execution time in seconds",
120
+ default: 300,
121
+ },
122
+ parallelExecution: {
123
+ type: "boolean",
124
+ description: "Whether parallel execution is supported",
125
+ default: true,
126
+ },
127
+ },
128
+ required: ["testResults"],
129
+ },
130
+ },
131
+ {
132
+ name: "setup_ci_cd_testing",
133
+ description: "Set up comprehensive CI/CD testing pipeline",
134
+ inputSchema: {
135
+ type: "object",
136
+ properties: {
137
+ ciPlatform: {
138
+ type: "string",
139
+ enum: [
140
+ "github-actions",
141
+ "gitlab-ci",
142
+ "jenkins",
143
+ "circle-ci",
144
+ "travis-ci",
145
+ ],
146
+ description: "CI/CD platform",
147
+ },
148
+ testTypes: {
149
+ type: "array",
150
+ items: {
151
+ type: "string",
152
+ enum: [
153
+ "unit",
154
+ "integration",
155
+ "e2e",
156
+ "performance",
157
+ "security",
158
+ ],
159
+ },
160
+ description: "Types of tests to include",
161
+ },
162
+ coverageReporting: {
163
+ type: "boolean",
164
+ description: "Enable coverage reporting",
165
+ default: true,
166
+ },
167
+ },
168
+ required: ["ciPlatform", "testTypes"],
169
+ },
170
+ },
171
+ ],
172
+ };
173
+ });
174
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
175
+ const { name, arguments: args } = request.params;
176
+ switch (name) {
177
+ case "analyze_test_coverage":
178
+ return await this.analyzeTestCoverage(args);
179
+ case "design_test_strategy":
180
+ return await this.designTestStrategy(args);
181
+ case "implement_tdd_workflow":
182
+ return await this.implementTDDWorkflow(args);
183
+ case "optimize_test_performance":
184
+ return await this.optimizeTestPerformance(args);
185
+ case "setup_ci_cd_testing":
186
+ return await this.setupCICDTesting(args);
187
+ default:
188
+ throw new Error(`Unknown tool: ${name}`);
189
+ }
190
+ });
191
+ }
192
+ async analyzeTestCoverage(args) {
193
+ const { codePath, testFramework = "auto-detect", coverageThreshold = 80, } = args;
194
+ try {
195
+ const analysis = await this.performCoverageAnalysis(codePath, testFramework);
196
+ const gaps = analysis.gaps.filter((gap) => gap.currentCoverage < coverageThreshold);
197
+ const criticalGaps = gaps.filter((gap) => gap.priority === "high");
198
+ return {
199
+ content: [
200
+ {
201
+ type: "text",
202
+ text: `Test Coverage Analysis for ${codePath}:\n\n` +
203
+ `๐Ÿ“Š COVERAGE METRICS\n` +
204
+ `Current Coverage: ${analysis.currentCoverage}%\n` +
205
+ `Target Coverage: ${analysis.targetCoverage}%\n` +
206
+ `Coverage Gap: ${(analysis.targetCoverage - analysis.currentCoverage).toFixed(1)}%\n` +
207
+ `Automation Potential: ${analysis.automationPotential}%\n\n` +
208
+ `๐Ÿšจ COVERAGE GAPS (${gaps.length} total, ${criticalGaps.length} critical)\n${gaps
209
+ .slice(0, 5)
210
+ .map((gap) => `${this.getPriorityIcon(gap.priority)} ${gap.area}\n` +
211
+ ` Current: ${gap.currentCoverage}% | Target: ${gap.recommendedCoverage}%\n` +
212
+ ` Priority: ${gap.priority.toUpperCase()} | Effort: ${gap.effort.toUpperCase()}`)
213
+ .join("\n\n")}\n\n` +
214
+ `๐ŸŽฏ TEST STRATEGY RECOMMENDATIONS\n${analysis.recommendations
215
+ .slice(0, 5)
216
+ .map((rec) => `${this.getImpactIcon(rec.impact)} ${rec.type}: ${rec.description}\n` +
217
+ ` Impact: ${rec.impact.toUpperCase()} | Effort: ${rec.effort.toUpperCase()}\n` +
218
+ ` Tools: ${rec.tools.join(", ")}`)
219
+ .join("\n\n")}\n\n` +
220
+ `โšก QUICK WINS\n` +
221
+ `โ€ข Focus on high-impact, low-effort improvements first\n` +
222
+ `โ€ข Automate repetitive testing tasks\n` +
223
+ `โ€ข Implement test-driven development for new features\n` +
224
+ `โ€ข Set up continuous integration with coverage gates`,
225
+ },
226
+ ],
227
+ data: {
228
+ analysis,
229
+ prioritizedGaps: this.prioritizeGaps(gaps),
230
+ implementationPlan: this.createCoverageImprovementPlan(analysis),
231
+ },
232
+ };
233
+ }
234
+ catch (error) {
235
+ return {
236
+ content: [
237
+ {
238
+ type: "text",
239
+ text: `Error analyzing test coverage: ${error instanceof Error ? error.message : String(error)}`,
240
+ },
241
+ ],
242
+ };
243
+ }
244
+ }
245
+ async designTestStrategy(args) {
246
+ const { projectType, techStack = [], teamSize = "small", timeline = "balanced", } = args;
247
+ try {
248
+ const strategy = this.createTestStrategy(projectType, techStack, teamSize, timeline);
249
+ return {
250
+ content: [
251
+ {
252
+ type: "text",
253
+ text: `Testing Strategy for ${projectType.toUpperCase()} Project:\n\n` +
254
+ `๐Ÿ‘ฅ TEAM CONTEXT\n` +
255
+ `Team Size: ${teamSize.toUpperCase()}\n` +
256
+ `Timeline Priority: ${timeline.toUpperCase()}\n` +
257
+ `Tech Stack: ${techStack.join(", ") || "Not specified"}\n\n` +
258
+ `๐Ÿงช RECOMMENDED TEST PYRAMID\n${strategy
259
+ .map((testType) => `${this.getTestTypeIcon(testType.type)} ${testType.type.toUpperCase()} TESTS\n` +
260
+ ` Framework: ${testType.framework}\n` +
261
+ ` Target Coverage: ${testType.coverage}%\n` +
262
+ ` Confidence Level: ${testType.confidence.toUpperCase()}\n` +
263
+ ` Automation: ${testType.automationLevel}%`)
264
+ .join("\n\n")}\n\n` +
265
+ `๐Ÿ“ˆ IMPLEMENTATION ROADMAP\n` +
266
+ `1. Set up unit testing framework and basic test structure\n` +
267
+ `2. Implement integration tests for critical user journeys\n` +
268
+ `3. Add end-to-end tests for complete workflows\n` +
269
+ `4. Integrate performance and security testing\n` +
270
+ `5. Set up automated test execution in CI/CD\n\n` +
271
+ `๐ŸŽฏ SUCCESS METRICS\n` +
272
+ `โ€ข 80%+ automated test coverage\n` +
273
+ `โ€ข <5 minute test execution time\n` +
274
+ `โ€ข 99% test reliability\n` +
275
+ `โ€ข Zero production bugs from untested code`,
276
+ },
277
+ ],
278
+ data: {
279
+ strategy,
280
+ roadmap: this.createImplementationRoadmap(strategy, timeline),
281
+ tools: this.recommendTestingTools(strategy),
282
+ },
283
+ };
284
+ }
285
+ catch (error) {
286
+ return {
287
+ content: [
288
+ {
289
+ type: "text",
290
+ text: `Error designing test strategy: ${error instanceof Error ? error.message : String(error)}`,
291
+ },
292
+ ],
293
+ };
294
+ }
295
+ }
296
+ async implementTDDWorkflow(args) {
297
+ const { language = "typescript", framework = "jest", existingTests = false, } = args;
298
+ try {
299
+ const workflow = this.createTDDWorkflow(language, framework, existingTests);
300
+ return {
301
+ content: [
302
+ {
303
+ type: "text",
304
+ text: `Test-Driven Development Workflow for ${language.toUpperCase()}:\n\n` +
305
+ `๐Ÿ”„ TDD CYCLE\n` +
306
+ `1. ๐ŸŸฅ RED: Write failing test first\n` +
307
+ `2. ๐ŸŸข GREEN: Make test pass with minimal code\n` +
308
+ `3. ๐ŸŸก REFACTOR: Improve code while keeping tests green\n` +
309
+ `4. ๐Ÿ”„ REPEAT: Continue with next requirement\n\n` +
310
+ `๐Ÿ› ๏ธ SETUP & TOOLS\n` +
311
+ `Framework: ${framework}\n` +
312
+ `Language: ${language}\n` +
313
+ `Existing Tests: ${existingTests ? "Yes" : "No"}\n\n` +
314
+ `๐Ÿ“ PRACTICAL WORKFLOW\n${workflow.steps
315
+ .map((step, i) => `${i + 1}. ${step.title}\n` +
316
+ ` ${step.description}\n` +
317
+ ` Command: ${step.command}`)
318
+ .join("\n\n")}\n\n` +
319
+ `๐Ÿ’ก TDD BEST PRACTICES\n` +
320
+ `โ€ข Write test before implementation code\n` +
321
+ `โ€ข Test one concept per test case\n` +
322
+ `โ€ข Use descriptive test names (should/when/given)\n` +
323
+ `โ€ข Keep tests fast and isolated\n` +
324
+ `โ€ข Refactor code, not tests\n` +
325
+ `โ€ข Maintain high test coverage (>90%)\n\n` +
326
+ `๐Ÿš€ GETTING STARTED\n` +
327
+ `${existingTests ? "Integrate TDD into existing test suite" : "Start with a simple feature and practice the cycle"}\n` +
328
+ `Run tests continuously during development\n` +
329
+ `Use test results to guide implementation`,
330
+ },
331
+ ],
332
+ data: {
333
+ workflow,
334
+ examples: this.provideTDDExamples(language, framework),
335
+ resources: this.recommendTDDResources(language, framework),
336
+ },
337
+ };
338
+ }
339
+ catch (error) {
340
+ return {
341
+ content: [
342
+ {
343
+ type: "text",
344
+ text: `Error implementing TDD workflow: ${error instanceof Error ? error.message : String(error)}`,
345
+ },
346
+ ],
347
+ };
348
+ }
349
+ }
350
+ async optimizeTestPerformance(args) {
351
+ const { testResults, targetRuntime = 300, parallelExecution = true } = args;
352
+ try {
353
+ const optimization = await this.analyzeTestPerformance(testResults, targetRuntime, parallelExecution);
354
+ return {
355
+ content: [
356
+ {
357
+ type: "text",
358
+ text: `Test Performance Optimization Analysis:\n\n` +
359
+ `โฑ๏ธ CURRENT PERFORMANCE\n` +
360
+ `Execution Time: ${optimization.currentRuntime}s\n` +
361
+ `Target Time: ${targetRuntime}s\n` +
362
+ `Performance Gap: ${(optimization.currentRuntime - targetRuntime).toFixed(1)}s\n` +
363
+ `Parallel Execution: ${parallelExecution ? "Enabled" : "Disabled"}\n\n` +
364
+ `๐ŸŒ PERFORMANCE BOTTLENECKS\n${optimization.bottlenecks
365
+ .map((bottleneck, i) => `${i + 1}. ${bottleneck.type}: ${bottleneck.description}\n` +
366
+ ` Impact: ${bottleneck.impact}s saved\n` +
367
+ ` Difficulty: ${bottleneck.difficulty}\n` +
368
+ ` Solution: ${bottleneck.solution}`)
369
+ .join("\n\n")}\n\n` +
370
+ `โšก OPTIMIZATION RECOMMENDATIONS\n${optimization.recommendations
371
+ .map((rec, i) => `${i + 1}. ${rec.title}\n` +
372
+ ` Expected Improvement: ${rec.improvement}s\n` +
373
+ ` Effort: ${rec.effort}\n` +
374
+ ` ${rec.description}`)
375
+ .join("\n\n")}\n\n` +
376
+ `๐ŸŽฏ IMPLEMENTATION PRIORITY\n` +
377
+ `1. Enable parallel test execution (if not already)\n` +
378
+ `2. Optimize slow integration tests\n` +
379
+ `3. Implement intelligent test skipping\n` +
380
+ `4. Use test result caching\n` +
381
+ `5. Optimize test data setup/cleanup`,
382
+ },
383
+ ],
384
+ data: {
385
+ optimization,
386
+ implementationPlan: this.createPerformanceOptimizationPlan(optimization),
387
+ monitoringStrategy: this.setupPerformanceMonitoring(optimization),
388
+ },
389
+ };
390
+ }
391
+ catch (error) {
392
+ return {
393
+ content: [
394
+ {
395
+ type: "text",
396
+ text: `Error optimizing test performance: ${error instanceof Error ? error.message : String(error)}`,
397
+ },
398
+ ],
399
+ };
400
+ }
401
+ }
402
+ async setupCICDTesting(args) {
403
+ const { ciPlatform, testTypes, coverageReporting = true } = args;
404
+ try {
405
+ const pipeline = this.createCIPipeline(ciPlatform, testTypes, coverageReporting);
406
+ return {
407
+ content: [
408
+ {
409
+ type: "text",
410
+ text: `CI/CD Testing Pipeline for ${ciPlatform.toUpperCase()}:\n\n` +
411
+ `๐Ÿ”ง CONFIGURATION OVERVIEW\n` +
412
+ `Platform: ${ciPlatform}\n` +
413
+ `Test Types: ${testTypes.join(", ")}\n` +
414
+ `Coverage Reporting: ${coverageReporting ? "Enabled" : "Disabled"}\n\n` +
415
+ `๐Ÿ“‹ PIPELINE STAGES\n${pipeline.stages
416
+ .map((stage, i) => `Stage ${i + 1}: ${stage.name}\n` +
417
+ ` Purpose: ${stage.description}\n` +
418
+ ` Duration: ~${stage.estimatedDuration}min\n` +
419
+ ` Tests: ${stage.tests.join(", ")}\n` +
420
+ ` Conditions: ${stage.conditions.join(", ")}`)
421
+ .join("\n\n")}\n\n` +
422
+ `๐Ÿ“„ CONFIGURATION FILES\n${pipeline.configFiles
423
+ .map((file) => `${file.filename}\n` +
424
+ ` Location: ${file.location}\n` +
425
+ ` Purpose: ${file.description}`)
426
+ .join("\n\n")}\n\n` +
427
+ `๐Ÿ› ๏ธ REQUIRED TOOLS & DEPENDENCIES\n${pipeline.dependencies
428
+ .map((dep) => `โ€ข ${dep.name}: ${dep.version || "latest"} (${dep.purpose})`)
429
+ .join("\n")}\n\n` +
430
+ `โœ… QUALITY GATES\n` +
431
+ `โ€ข All tests must pass\n` +
432
+ `${coverageReporting ? "โ€ข Minimum coverage thresholds met\n" : ""}` +
433
+ `โ€ข No critical security vulnerabilities\n` +
434
+ `โ€ข Performance benchmarks achieved\n` +
435
+ `โ€ข Linting and formatting checks pass`,
436
+ },
437
+ ],
438
+ data: {
439
+ pipeline,
440
+ configurationTemplates: this.generateCIConfigTemplates(ciPlatform, pipeline),
441
+ troubleshootingGuide: this.createCITroubleshootingGuide(pipeline),
442
+ },
443
+ };
444
+ }
445
+ catch (error) {
446
+ return {
447
+ content: [
448
+ {
449
+ type: "text",
450
+ text: `Error setting up CI/CD testing: ${error instanceof Error ? error.message : String(error)}`,
451
+ },
452
+ ],
453
+ };
454
+ }
455
+ }
456
+ // Implementation methods
457
+ async performCoverageAnalysis(codePath, testFramework) {
458
+ // Simplified analysis - would be more comprehensive in production
459
+ return {
460
+ currentCoverage: 65,
461
+ targetCoverage: 85,
462
+ gaps: [
463
+ {
464
+ area: "API endpoints",
465
+ currentCoverage: 45,
466
+ recommendedCoverage: 90,
467
+ priority: "high",
468
+ effort: "medium",
469
+ },
470
+ {
471
+ area: "Error handling",
472
+ currentCoverage: 30,
473
+ recommendedCoverage: 80,
474
+ priority: "high",
475
+ effort: "low",
476
+ },
477
+ {
478
+ area: "UI components",
479
+ currentCoverage: 70,
480
+ recommendedCoverage: 85,
481
+ priority: "medium",
482
+ effort: "high",
483
+ },
484
+ ],
485
+ recommendations: [
486
+ {
487
+ type: "Unit Test Expansion",
488
+ description: "Increase unit test coverage for business logic",
489
+ impact: "high",
490
+ effort: "medium",
491
+ tools: ["Jest", "Vitest", "Testing Library"],
492
+ },
493
+ {
494
+ type: "Integration Testing",
495
+ description: "Add integration tests for API endpoints",
496
+ impact: "high",
497
+ effort: "medium",
498
+ tools: ["Supertest", "TestContainers"],
499
+ },
500
+ ],
501
+ strategy: [],
502
+ automationPotential: 75,
503
+ };
504
+ }
505
+ createTestStrategy(projectType, techStack, teamSize, timeline) {
506
+ const baseStrategy = [];
507
+ switch (projectType) {
508
+ case "web-app":
509
+ baseStrategy.push({
510
+ type: "unit",
511
+ framework: "Jest + Testing Library",
512
+ coverage: 85,
513
+ confidence: "high",
514
+ automationLevel: 95,
515
+ }, {
516
+ type: "integration",
517
+ framework: "Cypress",
518
+ coverage: 70,
519
+ confidence: "medium",
520
+ automationLevel: 80,
521
+ }, {
522
+ type: "e2e",
523
+ framework: "Playwright",
524
+ coverage: 60,
525
+ confidence: "high",
526
+ automationLevel: 85,
527
+ });
528
+ break;
529
+ case "api":
530
+ baseStrategy.push({
531
+ type: "unit",
532
+ framework: "Jest",
533
+ coverage: 90,
534
+ confidence: "high",
535
+ automationLevel: 95,
536
+ }, {
537
+ type: "integration",
538
+ framework: "Supertest",
539
+ coverage: 80,
540
+ confidence: "high",
541
+ automationLevel: 90,
542
+ });
543
+ break;
544
+ default:
545
+ baseStrategy.push({
546
+ type: "unit",
547
+ framework: "Jest",
548
+ coverage: 80,
549
+ confidence: "high",
550
+ automationLevel: 90,
551
+ });
552
+ }
553
+ return baseStrategy;
554
+ }
555
+ createTDDWorkflow(language, framework, existingTests) {
556
+ return {
557
+ steps: [
558
+ {
559
+ title: "Set up testing framework",
560
+ description: "Install and configure testing framework with proper scripts",
561
+ command: `npm install --save-dev ${framework}`,
562
+ },
563
+ {
564
+ title: "Create test file structure",
565
+ description: "Set up __tests__ directories and test file naming conventions",
566
+ command: "mkdir -p src/__tests__ && touch src/__tests__/example.test.ts",
567
+ },
568
+ {
569
+ title: "Write first failing test",
570
+ description: "Start with a simple test case that will initially fail",
571
+ command: "npm test -- --watch",
572
+ },
573
+ {
574
+ title: "Implement minimal code",
575
+ description: "Write just enough code to make the test pass",
576
+ command: "npm run build && npm test",
577
+ },
578
+ {
579
+ title: "Refactor and improve",
580
+ description: "Clean up code while ensuring tests still pass",
581
+ command: "npm test && npm run lint",
582
+ },
583
+ ],
584
+ };
585
+ }
586
+ async analyzeTestPerformance(testResults, targetRuntime, parallelExecution) {
587
+ return {
588
+ currentRuntime: 450,
589
+ bottlenecks: [
590
+ {
591
+ type: "Slow integration tests",
592
+ description: "Database setup and teardown taking too long",
593
+ impact: 120,
594
+ difficulty: "medium",
595
+ solution: "Use test containers and parallel execution",
596
+ },
597
+ {
598
+ type: "Inefficient test data",
599
+ description: "Large fixtures loaded for every test",
600
+ impact: 80,
601
+ difficulty: "low",
602
+ solution: "Implement shared test data with factories",
603
+ },
604
+ ],
605
+ recommendations: [
606
+ {
607
+ title: "Enable parallel test execution",
608
+ improvement: 150,
609
+ effort: "low",
610
+ description: "Run tests in parallel to reduce total execution time",
611
+ },
612
+ {
613
+ title: "Optimize test database setup",
614
+ improvement: 100,
615
+ effort: "medium",
616
+ description: "Use in-memory databases and efficient fixtures",
617
+ },
618
+ ],
619
+ };
620
+ }
621
+ createCIPipeline(ciPlatform, testTypes, coverageReporting) {
622
+ const stages = [];
623
+ if (testTypes.includes("unit")) {
624
+ stages.push({
625
+ name: "Unit Tests",
626
+ description: "Fast unit tests for individual components",
627
+ estimatedDuration: 5,
628
+ tests: ["Unit tests"],
629
+ conditions: ["All unit tests pass"],
630
+ });
631
+ }
632
+ if (testTypes.includes("integration")) {
633
+ stages.push({
634
+ name: "Integration Tests",
635
+ description: "Test component interactions and APIs",
636
+ estimatedDuration: 10,
637
+ tests: ["Integration tests"],
638
+ conditions: ["All integration tests pass", "API contracts validated"],
639
+ });
640
+ }
641
+ if (testTypes.includes("e2e")) {
642
+ stages.push({
643
+ name: "E2E Tests",
644
+ description: "End-to-end user journey testing",
645
+ estimatedDuration: 15,
646
+ tests: ["E2E tests"],
647
+ conditions: ["All E2E tests pass", "UI interactions working"],
648
+ });
649
+ }
650
+ return {
651
+ stages,
652
+ configFiles: [
653
+ {
654
+ filename: ".github/workflows/ci.yml",
655
+ location: "Repository root",
656
+ description: "GitHub Actions workflow configuration",
657
+ },
658
+ {
659
+ filename: "jest.config.js",
660
+ location: "Repository root",
661
+ description: "Jest testing framework configuration",
662
+ },
663
+ ],
664
+ dependencies: [
665
+ { name: "jest", version: "^29.0.0", purpose: "Unit testing framework" },
666
+ {
667
+ name: "cypress",
668
+ version: "^12.0.0",
669
+ purpose: "E2E testing framework",
670
+ },
671
+ {
672
+ name: "@testing-library/react",
673
+ purpose: "React component testing utilities",
674
+ },
675
+ ],
676
+ };
677
+ }
678
+ // Helper methods
679
+ prioritizeGaps(gaps) {
680
+ return gaps.sort((a, b) => {
681
+ const priorityScore = { high: 3, medium: 2, low: 1 };
682
+ const effortScore = { low: 3, medium: 2, high: 1 };
683
+ return (priorityScore[b.priority] *
684
+ effortScore[b.effort] -
685
+ priorityScore[a.priority] *
686
+ effortScore[a.effort]);
687
+ });
688
+ }
689
+ createCoverageImprovementPlan(analysis) {
690
+ return {
691
+ phases: [
692
+ {
693
+ name: "Quick Wins",
694
+ duration: "1-2 weeks",
695
+ focus: "High-impact, low-effort improvements",
696
+ tasks: ["Add tests for error handling", "Cover critical user paths"],
697
+ },
698
+ {
699
+ name: "Systematic Coverage",
700
+ duration: "2-4 weeks",
701
+ focus: "Methodical coverage improvement",
702
+ tasks: ["Test all public APIs", "Add integration tests"],
703
+ },
704
+ {
705
+ name: "Optimization",
706
+ duration: "1-2 weeks",
707
+ focus: "Performance and maintainability",
708
+ tasks: ["Refactor test code", "Optimize test execution"],
709
+ },
710
+ ],
711
+ };
712
+ }
713
+ createImplementationRoadmap(strategy, timeline) {
714
+ const phases = [
715
+ "Setup testing infrastructure",
716
+ "Implement unit testing",
717
+ "Add integration testing",
718
+ "Set up E2E testing",
719
+ "Continuous integration",
720
+ "Test optimization",
721
+ ];
722
+ return {
723
+ phases,
724
+ timeline: timeline === "rapid"
725
+ ? "4 weeks"
726
+ : timeline === "balanced"
727
+ ? "8 weeks"
728
+ : "12 weeks",
729
+ milestones: phases.map((phase, index) => ({
730
+ phase,
731
+ week: index + 1,
732
+ deliverables: [`Complete ${phase.toLowerCase()}`],
733
+ })),
734
+ };
735
+ }
736
+ recommendTestingTools(strategy) {
737
+ const tools = new Set();
738
+ strategy.forEach((testType) => {
739
+ tools.add(testType.framework);
740
+ if (testType.type === "e2e") {
741
+ tools.add("Selenium");
742
+ tools.add("WebDriver");
743
+ }
744
+ if (testType.type === "performance") {
745
+ tools.add("k6");
746
+ tools.add("Lighthouse");
747
+ }
748
+ });
749
+ return Array.from(tools);
750
+ }
751
+ provideTDDExamples(language, framework) {
752
+ return {
753
+ language,
754
+ framework,
755
+ examples: [
756
+ {
757
+ scenario: "Simple calculator function",
758
+ test: `describe('Calculator', () => {\n it('should add two numbers', () => {\n expect(add(2, 3)).toBe(5);\n });\n});`,
759
+ implementation: `function add(a: number, b: number): number {\n return a + b;\n}`,
760
+ },
761
+ ],
762
+ };
763
+ }
764
+ recommendTDDResources(language, framework) {
765
+ return [
766
+ `Test-Driven Development: By Example by Kent Beck`,
767
+ `${framework} Official Documentation`,
768
+ `Testing ${language} Applications`,
769
+ "Martin Fowler's Testing Articles",
770
+ "Kent Beck's TDD Resources",
771
+ ];
772
+ }
773
+ createPerformanceOptimizationPlan(optimization) {
774
+ return {
775
+ immediate: optimization.recommendations.filter((rec) => rec.effort === "low"),
776
+ shortTerm: optimization.recommendations.filter((rec) => rec.effort === "medium"),
777
+ longTerm: optimization.recommendations.filter((rec) => rec.effort === "high"),
778
+ totalImprovement: optimization.recommendations.reduce((sum, rec) => sum + rec.improvement, 0),
779
+ };
780
+ }
781
+ setupPerformanceMonitoring(optimization) {
782
+ return {
783
+ metrics: [
784
+ "Test execution time",
785
+ "Test failure rate",
786
+ "Coverage trends",
787
+ "Flaky test detection",
788
+ ],
789
+ alerts: [
790
+ "Tests exceed 10 minute threshold",
791
+ "Coverage drops below 80%",
792
+ "Test failure rate > 5%",
793
+ ],
794
+ dashboards: [
795
+ "Test performance dashboard",
796
+ "Coverage trend visualization",
797
+ "CI/CD pipeline metrics",
798
+ ],
799
+ };
800
+ }
801
+ generateCIConfigTemplates(ciPlatform, pipeline) {
802
+ return {
803
+ platform: ciPlatform,
804
+ templates: {
805
+ "github-actions": `# .github/workflows/ci.yml\nname: CI\non: [push, pull_request]\njobs:\n test:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - uses: actions/setup-node@v3\n with:\n node-version: '18'\n - run: npm ci\n - run: npm run build\n - run: npm test`,
806
+ "gitlab-ci": `# .gitlab-ci.yml\nstages:\n - test\ntest:\n stage: test\n image: node:18\n script:\n - npm ci\n - npm run build\n - npm test`,
807
+ },
808
+ };
809
+ }
810
+ createCITroubleshootingGuide(pipeline) {
811
+ return {
812
+ commonIssues: [
813
+ {
814
+ issue: "Tests failing in CI but passing locally",
815
+ solution: "Check environment differences, use specific Node.js version, ensure dependencies are locked",
816
+ },
817
+ {
818
+ issue: "Slow CI builds",
819
+ solution: "Enable caching, run tests in parallel, use faster runners",
820
+ },
821
+ {
822
+ issue: "Flaky tests",
823
+ solution: "Identify and fix race conditions, improve test isolation, add retry logic",
824
+ },
825
+ ],
826
+ debuggingSteps: [
827
+ "Check CI logs for detailed error messages",
828
+ "Run tests locally with same environment",
829
+ "Use CI-specific debugging tools",
830
+ "Review recent changes that might affect tests",
831
+ ],
832
+ };
833
+ }
834
+ getPriorityIcon(priority) {
835
+ const icons = { high: "๐Ÿ”ด", medium: "๐ŸŸก", low: "๐ŸŸข" };
836
+ return icons[priority] || "โ“";
837
+ }
838
+ getImpactIcon(impact) {
839
+ const icons = { high: "๐Ÿš€", medium: "โšก", low: "๐ŸŒ" };
840
+ return icons[impact] || "โ“";
841
+ }
842
+ getTestTypeIcon(type) {
843
+ const icons = {
844
+ unit: "๐Ÿงฉ",
845
+ integration: "๐Ÿ”—",
846
+ e2e: "๐ŸŒ",
847
+ performance: "โšก",
848
+ security: "๐Ÿ”’",
849
+ accessibility: "โ™ฟ",
850
+ };
851
+ return icons[type] || "๐Ÿงช";
852
+ }
853
+ async run() {
854
+ const transport = new StdioServerTransport();
855
+ await this.server.connect(transport);
856
+ console.log("StrRay Testing Best Practices MCP Server running...");
857
+ }
858
+ }
859
+ // Run the server if this file is executed directly
860
+ if (import.meta.url === `file://${process.argv[1]}`) {
861
+ const server = new StrRayTestingBestPracticesServer();
862
+ server.run().catch(console.error);
863
+ }
864
+ export { StrRayTestingBestPracticesServer };
865
+ //# sourceMappingURL=testing-best-practices.server.js.map