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,1016 @@
1
+ /**
2
+ * StrRay UI/UX Design MCP Server
3
+ *
4
+ * Knowledge skill for user interface and user experience design,
5
+ * component patterns, accessibility compliance, and design system guidance
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 StrRayUIUXDesignServer {
11
+ server;
12
+ constructor() {
13
+ this.server = new Server({
14
+ name: "strray-ui-ux-design",
15
+ version: "1.0.0",
16
+ }, {
17
+ capabilities: {
18
+ tools: {},
19
+ },
20
+ });
21
+ this.setupToolHandlers();
22
+ console.log("StrRay UI/UX Design MCP Server initialized");
23
+ }
24
+ setupToolHandlers() {
25
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
26
+ return {
27
+ tools: [
28
+ {
29
+ name: "analyze_ui_component",
30
+ description: "Analyze UI component for accessibility, usability, and design best practices",
31
+ inputSchema: {
32
+ type: "object",
33
+ properties: {
34
+ componentCode: {
35
+ type: "string",
36
+ description: "React/Vue/Angular component code to analyze",
37
+ },
38
+ framework: {
39
+ type: "string",
40
+ enum: ["react", "vue", "angular", "svelte"],
41
+ description: "UI framework being used",
42
+ },
43
+ checkAccessibility: {
44
+ type: "boolean",
45
+ description: "Include WCAG accessibility analysis",
46
+ default: true,
47
+ },
48
+ checkResponsive: {
49
+ type: "boolean",
50
+ description: "Include responsive design analysis",
51
+ default: true,
52
+ },
53
+ },
54
+ required: ["componentCode", "framework"],
55
+ },
56
+ },
57
+ {
58
+ name: "design_component",
59
+ description: "Design a UI component with proper accessibility and UX patterns",
60
+ inputSchema: {
61
+ type: "object",
62
+ properties: {
63
+ componentType: {
64
+ type: "string",
65
+ enum: [
66
+ "button",
67
+ "input",
68
+ "modal",
69
+ "navigation",
70
+ "card",
71
+ "form",
72
+ ],
73
+ description: "Type of component to design",
74
+ },
75
+ requirements: {
76
+ type: "string",
77
+ description: "Functional requirements and use cases",
78
+ },
79
+ framework: {
80
+ type: "string",
81
+ enum: ["react", "vue", "angular", "svelte"],
82
+ description: "Target UI framework",
83
+ },
84
+ accessibility: {
85
+ type: "boolean",
86
+ description: "Include accessibility features",
87
+ default: true,
88
+ },
89
+ },
90
+ required: ["componentType", "requirements", "framework"],
91
+ },
92
+ },
93
+ {
94
+ name: "audit_accessibility",
95
+ description: "Perform comprehensive accessibility audit using WCAG guidelines",
96
+ inputSchema: {
97
+ type: "object",
98
+ properties: {
99
+ htmlContent: {
100
+ type: "string",
101
+ description: "HTML content to audit for accessibility",
102
+ },
103
+ cssContent: {
104
+ type: "string",
105
+ description: "CSS styles to check for accessibility",
106
+ },
107
+ wcagLevel: {
108
+ type: "string",
109
+ enum: ["A", "AA", "AAA"],
110
+ description: "WCAG conformance level to check",
111
+ default: "AA",
112
+ },
113
+ },
114
+ required: ["htmlContent"],
115
+ },
116
+ },
117
+ {
118
+ name: "generate_design_system",
119
+ description: "Generate a comprehensive design system with colors, typography, and components",
120
+ inputSchema: {
121
+ type: "object",
122
+ properties: {
123
+ brandGuidelines: {
124
+ type: "string",
125
+ description: "Brand colors, fonts, and style guidelines",
126
+ },
127
+ targetAudience: {
128
+ type: "string",
129
+ description: "Target user demographics and preferences",
130
+ },
131
+ platform: {
132
+ type: "string",
133
+ enum: ["web", "mobile", "desktop"],
134
+ description: "Target platform",
135
+ },
136
+ includeAccessibility: {
137
+ type: "boolean",
138
+ description: "Include accessibility-compliant design tokens",
139
+ default: true,
140
+ },
141
+ },
142
+ required: ["brandGuidelines", "platform"],
143
+ },
144
+ },
145
+ ],
146
+ };
147
+ });
148
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
149
+ const { name, arguments: args } = request.params;
150
+ switch (name) {
151
+ case "analyze_ui_component":
152
+ return await this.analyzeUIComponent(args);
153
+ case "design_component":
154
+ return await this.designComponent(args);
155
+ case "audit_accessibility":
156
+ return await this.auditAccessibility(args);
157
+ case "generate_design_system":
158
+ return await this.generateDesignSystem(args);
159
+ default:
160
+ throw new Error(`Unknown tool: ${name}`);
161
+ }
162
+ });
163
+ }
164
+ async analyzeUIComponent(args) {
165
+ const { componentCode, framework, checkAccessibility = true, checkResponsive = true, } = args;
166
+ try {
167
+ const componentName = this.extractComponentName(componentCode, framework);
168
+ const issues = this.analyzeComponentCode(componentCode, framework, checkAccessibility, checkResponsive);
169
+ const accessibilityScore = this.calculateAccessibilityScore(issues);
170
+ const usabilityScore = this.calculateUsabilityScore(issues);
171
+ const recommendations = this.generateUIRecommendations(issues, framework);
172
+ const designPatterns = this.identifyDesignPatterns(componentCode, framework);
173
+ const analysis = {
174
+ component: componentName,
175
+ issues,
176
+ accessibilityScore,
177
+ usabilityScore,
178
+ recommendations,
179
+ designPatterns,
180
+ };
181
+ return {
182
+ content: [
183
+ {
184
+ type: "text",
185
+ text: `UI Component Analysis: ${componentName}\n\n` +
186
+ `🎯 SCORES\n` +
187
+ `Accessibility: ${accessibilityScore}/100\n` +
188
+ `Usability: ${usabilityScore}/100\n\n` +
189
+ `🔍 ISSUES FOUND: ${issues.length}\n` +
190
+ issues
191
+ .slice(0, 5)
192
+ .map((issue) => `${this.getSeverityIcon(issue.severity)} ${issue.type.toUpperCase()}: ${issue.description}`)
193
+ .join("\n") +
194
+ "\n\n" +
195
+ `💡 RECOMMENDATIONS\n${recommendations
196
+ .slice(0, 5)
197
+ .map((rec, i) => `${i + 1}. ${rec}`)
198
+ .join("\n")}\n\n` +
199
+ `🎨 DESIGN PATTERNS DETECTED\n${designPatterns
200
+ .slice(0, 3)
201
+ .map((pattern) => `• ${pattern}`)
202
+ .join("\n")}`,
203
+ },
204
+ ],
205
+ data: analysis,
206
+ };
207
+ }
208
+ catch (error) {
209
+ return {
210
+ content: [
211
+ {
212
+ type: "text",
213
+ text: `Error analyzing UI component: ${error instanceof Error ? error.message : String(error)}`,
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ }
219
+ async designComponent(args) {
220
+ const { componentType, requirements, framework, accessibility = true, } = args;
221
+ try {
222
+ const designSpec = this.generateComponentDesign(componentType, requirements, framework, accessibility);
223
+ const implementation = this.generateComponentCode(designSpec, framework);
224
+ const accessibilityFeatures = accessibility
225
+ ? this.addAccessibilityFeatures(designSpec, framework)
226
+ : [];
227
+ return {
228
+ content: [
229
+ {
230
+ type: "text",
231
+ text: `Component Design: ${componentType.toUpperCase()}\n\n` +
232
+ `📋 REQUIREMENTS\n${requirements.substring(0, 200)}${requirements.length > 200 ? "..." : ""}\n\n` +
233
+ `🎨 DESIGN SPECIFICATION\n` +
234
+ `Framework: ${framework.toUpperCase()}\n` +
235
+ `Accessibility: ${accessibility ? "✅ Included" : "❌ Not included"}\n\n` +
236
+ `🏗️ COMPONENT STRUCTURE\n${designSpec.structure.map((item) => `• ${item}`).join("\n")}\n\n` +
237
+ `♿ ACCESSIBILITY FEATURES\n${accessibilityFeatures.map((feature) => `• ${feature}`).join("\n")}\n\n` +
238
+ `💻 IMPLEMENTATION\n\`\`\`${framework}\n${implementation}\n\`\`\``,
239
+ },
240
+ ],
241
+ data: { designSpec, implementation, accessibilityFeatures },
242
+ };
243
+ }
244
+ catch (error) {
245
+ return {
246
+ content: [
247
+ {
248
+ type: "text",
249
+ text: `Error designing component: ${error instanceof Error ? error.message : String(error)}`,
250
+ },
251
+ ],
252
+ };
253
+ }
254
+ }
255
+ async auditAccessibility(args) {
256
+ const { htmlContent, cssContent, wcagLevel = "AA" } = args;
257
+ try {
258
+ const violations = this.checkWCAGCompliance(htmlContent, cssContent, wcagLevel);
259
+ const score = this.calculateWCAGScore(violations, wcagLevel);
260
+ const recommendations = this.generateAccessibilityRecommendations(violations);
261
+ return {
262
+ content: [
263
+ {
264
+ type: "text",
265
+ text: `Accessibility Audit (WCAG ${wcagLevel})\n\n` +
266
+ `📊 COMPLIANCE SCORE: ${score}/100\n\n` +
267
+ `🚨 VIOLATIONS FOUND: ${violations.length}\n` +
268
+ violations
269
+ .slice(0, 10)
270
+ .map((violation) => `${this.getSeverityIcon(violation.severity)} ${violation.guideline}: ${violation.description}`)
271
+ .join("\n") +
272
+ "\n\n" +
273
+ `💡 REMEDIATION STEPS\n${recommendations
274
+ .slice(0, 5)
275
+ .map((rec, i) => `${i + 1}. ${rec}`)
276
+ .join("\n")}`,
277
+ },
278
+ ],
279
+ data: { violations, score, recommendations, wcagLevel },
280
+ };
281
+ }
282
+ catch (error) {
283
+ return {
284
+ content: [
285
+ {
286
+ type: "text",
287
+ text: `Error auditing accessibility: ${error instanceof Error ? error.message : String(error)}`,
288
+ },
289
+ ],
290
+ };
291
+ }
292
+ }
293
+ async generateDesignSystem(args) {
294
+ const { brandGuidelines, targetAudience, platform, includeAccessibility = true, } = args;
295
+ try {
296
+ const designSystem = this.createDesignSystem(brandGuidelines, targetAudience, platform, includeAccessibility);
297
+ const tokens = this.generateDesignTokens(designSystem);
298
+ const documentation = this.generateDesignSystemDocs(designSystem);
299
+ return {
300
+ content: [
301
+ {
302
+ type: "text",
303
+ text: `Design System Generated for ${platform.toUpperCase()}\n\n` +
304
+ `🎨 COLOR PALETTE\n` +
305
+ `Primary: ${designSystem.colors.primary.join(", ")}\n` +
306
+ `Semantic: Success(${designSystem.colors.semantic.success}), Warning(${designSystem.colors.semantic.warning}), Error(${designSystem.colors.semantic.error})\n\n` +
307
+ `📝 TYPOGRAPHY SCALE\n` +
308
+ `Fonts: ${designSystem.typography.fontFamilies.join(", ")}\n` +
309
+ `Sizes: ${Object.entries(designSystem.typography.sizes)
310
+ .slice(0, 3)
311
+ .map(([k, v]) => `${k}: ${v}`)
312
+ .join(", ")}\n\n` +
313
+ `📏 SPACING SYSTEM\n` +
314
+ `Base: ${designSystem.spacing.base}px\n` +
315
+ `Scale: ${designSystem.spacing.scale.join(", ")}\n\n` +
316
+ `🧩 COMPONENT LIBRARY\n` +
317
+ `Buttons: ${designSystem.components.buttons.length} variants\n` +
318
+ `Inputs: ${designSystem.components.inputs.length} variants\n` +
319
+ `Navigation: ${designSystem.components.navigation.length} patterns\n\n` +
320
+ `♿ ACCESSIBILITY: ${includeAccessibility ? "✅ Included" : "❌ Not included"}\n\n` +
321
+ `📚 DESIGN TOKENS\n\`\`\`json\n${JSON.stringify(tokens, null, 2).substring(0, 500)}...\n\`\`\``,
322
+ },
323
+ ],
324
+ data: { designSystem, tokens, documentation },
325
+ };
326
+ }
327
+ catch (error) {
328
+ return {
329
+ content: [
330
+ {
331
+ type: "text",
332
+ text: `Error generating design system: ${error instanceof Error ? error.message : String(error)}`,
333
+ },
334
+ ],
335
+ };
336
+ }
337
+ }
338
+ extractComponentName(code, framework) {
339
+ // Extract component name based on framework
340
+ switch (framework) {
341
+ case "react":
342
+ const reactMatch = code.match(/function\s+(\w+)|const\s+(\w+)\s*=/);
343
+ return reactMatch
344
+ ? reactMatch[1] || reactMatch[2] || "UnknownComponent"
345
+ : "UnknownComponent";
346
+ case "vue":
347
+ const vueMatch = code.match(/name:\s*['"](\w+)['"]/);
348
+ return vueMatch && vueMatch[1] ? vueMatch[1] : "UnknownComponent";
349
+ case "angular":
350
+ const angularMatch = code.match(/selector:\s*['"]([^'"]+)['"]/);
351
+ return angularMatch && angularMatch[1]
352
+ ? angularMatch[1].replace(/[\[\]]/g, "")
353
+ : "UnknownComponent";
354
+ default:
355
+ return "UnknownComponent";
356
+ }
357
+ }
358
+ analyzeComponentCode(code, framework, checkAccessibility, checkResponsive) {
359
+ const issues = [];
360
+ // Accessibility checks
361
+ if (checkAccessibility) {
362
+ issues.push(...this.checkAccessibilityIssues(code, framework));
363
+ }
364
+ // Responsive design checks
365
+ if (checkResponsive) {
366
+ issues.push(...this.checkResponsiveIssues(code, framework));
367
+ }
368
+ // Usability checks
369
+ issues.push(...this.checkUsabilityIssues(code, framework));
370
+ // Performance checks
371
+ issues.push(...this.checkPerformanceIssues(code, framework));
372
+ // Semantic HTML checks
373
+ issues.push(...this.checkSemanticIssues(code, framework));
374
+ return issues;
375
+ }
376
+ checkAccessibilityIssues(code, framework) {
377
+ const issues = [];
378
+ // Missing alt text
379
+ if (code.includes("<img") && !code.includes("alt=")) {
380
+ issues.push({
381
+ type: "accessibility",
382
+ severity: "high",
383
+ description: "Image missing alt attribute",
384
+ wcag: "1.1.1",
385
+ recommendation: "Add descriptive alt text for all images",
386
+ });
387
+ }
388
+ // Missing form labels
389
+ if (code.includes("<input") &&
390
+ !code.includes("aria-label") &&
391
+ !code.includes("<label")) {
392
+ issues.push({
393
+ type: "accessibility",
394
+ severity: "high",
395
+ description: "Form input missing label",
396
+ wcag: "3.3.2",
397
+ recommendation: "Associate labels with form inputs using <label> or aria-label",
398
+ });
399
+ }
400
+ // Insufficient color contrast (basic check)
401
+ if (code.includes("color:") && code.includes("background:")) {
402
+ issues.push({
403
+ type: "accessibility",
404
+ severity: "medium",
405
+ description: "Potential color contrast issues detected",
406
+ wcag: "1.4.3",
407
+ recommendation: "Ensure color contrast ratio meets WCAG AA standards (4.5:1)",
408
+ });
409
+ }
410
+ // Missing focus indicators
411
+ if (code.includes("<button") ||
412
+ (code.includes("<a") && !code.includes("focus"))) {
413
+ issues.push({
414
+ type: "accessibility",
415
+ severity: "medium",
416
+ description: "Interactive element may lack visible focus indicator",
417
+ wcag: "2.4.7",
418
+ recommendation: "Add visible focus styles for keyboard navigation",
419
+ });
420
+ }
421
+ return issues;
422
+ }
423
+ checkResponsiveIssues(code, framework) {
424
+ const issues = [];
425
+ // Fixed widths/heights
426
+ if (code.includes("width:") &&
427
+ code.includes("px") &&
428
+ !code.includes("@media")) {
429
+ issues.push({
430
+ type: "responsive",
431
+ severity: "medium",
432
+ description: "Fixed pixel widths may not be responsive",
433
+ recommendation: "Use relative units (%, em, rem) and media queries for responsive design",
434
+ });
435
+ }
436
+ // Missing viewport meta tag (would be in HTML, not component)
437
+ if (framework === "react" && !code.includes("viewport")) {
438
+ issues.push({
439
+ type: "responsive",
440
+ severity: "low",
441
+ description: "Ensure viewport meta tag is set in HTML head",
442
+ recommendation: 'Add <meta name="viewport" content="width=device-width, initial-scale=1">',
443
+ });
444
+ }
445
+ return issues;
446
+ }
447
+ checkUsabilityIssues(code, framework) {
448
+ const issues = [];
449
+ // Button text issues
450
+ if (code.includes("<button") &&
451
+ code.includes("OK") &&
452
+ !code.includes("aria-label")) {
453
+ issues.push({
454
+ type: "usability",
455
+ severity: "medium",
456
+ description: 'Button with generic text "OK" lacks context',
457
+ recommendation: "Use descriptive button text or add aria-label for clarity",
458
+ });
459
+ }
460
+ // Form validation feedback
461
+ if (code.includes("<form") &&
462
+ !code.includes("error") &&
463
+ !code.includes("invalid")) {
464
+ issues.push({
465
+ type: "usability",
466
+ severity: "low",
467
+ description: "Form may lack validation error feedback",
468
+ recommendation: "Add visible error messages for form validation failures",
469
+ });
470
+ }
471
+ return issues;
472
+ }
473
+ checkPerformanceIssues(code, framework) {
474
+ const issues = [];
475
+ // Large inline styles
476
+ const styleMatches = code.match(/style=\{[^}]{100,}\}/g);
477
+ if (styleMatches && styleMatches.length > 0) {
478
+ issues.push({
479
+ type: "performance",
480
+ severity: "low",
481
+ description: "Large inline style objects may impact performance",
482
+ recommendation: "Extract styles to CSS classes or styled-components",
483
+ });
484
+ }
485
+ // Excessive re-renders (React specific)
486
+ if (framework === "react" &&
487
+ code.includes("useEffect") &&
488
+ code.includes("[]")) {
489
+ issues.push({
490
+ type: "performance",
491
+ severity: "medium",
492
+ description: "useEffect with empty dependency array may cause unnecessary re-renders",
493
+ recommendation: "Review useEffect dependencies to prevent infinite loops",
494
+ });
495
+ }
496
+ return issues;
497
+ }
498
+ checkSemanticIssues(code, framework) {
499
+ const issues = [];
500
+ // Using div instead of semantic elements
501
+ if (code.includes("<div") &&
502
+ code.includes("click") &&
503
+ !code.includes("<button")) {
504
+ issues.push({
505
+ type: "semantic",
506
+ severity: "medium",
507
+ description: "Clickable div used instead of semantic button element",
508
+ recommendation: "Use <button> element for clickable actions to improve accessibility",
509
+ });
510
+ }
511
+ // Missing heading hierarchy
512
+ const headingMatches = code.match(/<h[1-6]/g);
513
+ if (headingMatches && headingMatches.length > 1) {
514
+ // Check for proper hierarchy (simplified)
515
+ const hasH1 = code.includes("<h1");
516
+ const hasH2 = code.includes("<h2");
517
+ if (!hasH1 && hasH2) {
518
+ issues.push({
519
+ type: "semantic",
520
+ severity: "low",
521
+ description: "Heading hierarchy may skip levels",
522
+ recommendation: "Ensure proper heading hierarchy (h1 → h2 → h3, etc.)",
523
+ });
524
+ }
525
+ }
526
+ return issues;
527
+ }
528
+ calculateAccessibilityScore(issues) {
529
+ const accessibilityIssues = issues.filter((i) => i.type === "accessibility");
530
+ let score = 100;
531
+ accessibilityIssues.forEach((issue) => {
532
+ switch (issue.severity) {
533
+ case "critical":
534
+ score -= 15;
535
+ break;
536
+ case "high":
537
+ score -= 10;
538
+ break;
539
+ case "medium":
540
+ score -= 5;
541
+ break;
542
+ case "low":
543
+ score -= 2;
544
+ break;
545
+ }
546
+ });
547
+ return Math.max(0, Math.min(100, score));
548
+ }
549
+ calculateUsabilityScore(issues) {
550
+ const usabilityIssues = issues.filter((i) => i.type === "usability" || i.type === "responsive");
551
+ let score = 100;
552
+ usabilityIssues.forEach((issue) => {
553
+ switch (issue.severity) {
554
+ case "high":
555
+ score -= 8;
556
+ break;
557
+ case "medium":
558
+ score -= 4;
559
+ break;
560
+ case "low":
561
+ score -= 2;
562
+ break;
563
+ }
564
+ });
565
+ return Math.max(0, Math.min(100, score));
566
+ }
567
+ generateUIRecommendations(issues, framework) {
568
+ const recommendations = [];
569
+ // Group issues by type
570
+ const byType = issues.reduce((acc, issue) => {
571
+ acc[issue.type] = (acc[issue.type] || 0) + 1;
572
+ return acc;
573
+ }, {});
574
+ if ((byType.accessibility || 0) > 0) {
575
+ recommendations.push(`Address ${byType.accessibility} accessibility issues to improve WCAG compliance`);
576
+ }
577
+ if ((byType.responsive || 0) > 0) {
578
+ recommendations.push(`Fix ${byType.responsive} responsive design issues for mobile compatibility`);
579
+ }
580
+ if ((byType.usability || 0) > 0) {
581
+ recommendations.push(`Improve ${byType.usability} usability issues for better user experience`);
582
+ }
583
+ // Framework-specific recommendations
584
+ switch (framework) {
585
+ case "react":
586
+ recommendations.push("Consider using React Testing Library for accessibility testing");
587
+ break;
588
+ case "vue":
589
+ recommendations.push("Use Vue's built-in accessibility features and vue-a11y library");
590
+ break;
591
+ case "angular":
592
+ recommendations.push("Leverage Angular CDK for accessible components");
593
+ break;
594
+ }
595
+ recommendations.push("Run automated accessibility audits regularly");
596
+ recommendations.push("Test with real users and assistive technologies");
597
+ return recommendations;
598
+ }
599
+ identifyDesignPatterns(code, framework) {
600
+ const patterns = [];
601
+ // Common design patterns
602
+ if (code.includes("useState") && code.includes("onClick")) {
603
+ patterns.push("Controlled Component Pattern");
604
+ }
605
+ if (code.includes("Context") && code.includes("Provider")) {
606
+ patterns.push("Context Provider Pattern");
607
+ }
608
+ if (code.includes("children") && code.includes("props")) {
609
+ patterns.push("Render Props Pattern");
610
+ }
611
+ if (code.includes("forwardRef")) {
612
+ patterns.push("Ref Forwarding Pattern");
613
+ }
614
+ if (code.includes("useMemo") || code.includes("useCallback")) {
615
+ patterns.push("Memoization Pattern");
616
+ }
617
+ // Layout patterns
618
+ if (code.includes("flex") || code.includes("grid")) {
619
+ patterns.push("Modern CSS Layout (Flexbox/Grid)");
620
+ }
621
+ if (code.includes("media") && code.includes("query")) {
622
+ patterns.push("Responsive Design Pattern");
623
+ }
624
+ return patterns;
625
+ }
626
+ generateComponentDesign(componentType, requirements, framework, accessibility) {
627
+ const design = {
628
+ componentType,
629
+ requirements,
630
+ framework,
631
+ accessibility,
632
+ structure: [],
633
+ props: [],
634
+ states: [],
635
+ variants: [],
636
+ };
637
+ switch (componentType) {
638
+ case "button":
639
+ design.structure = [
640
+ "Button container with proper spacing",
641
+ "Icon support (optional)",
642
+ "Loading state indicator",
643
+ "Focus ring for accessibility",
644
+ ];
645
+ design.props = [
646
+ "children: ReactNode",
647
+ 'variant: "primary" | "secondary" | "danger"',
648
+ 'size: "sm" | "md" | "lg"',
649
+ "disabled: boolean",
650
+ "loading: boolean",
651
+ "onClick: () => void",
652
+ ];
653
+ design.states = [
654
+ "normal",
655
+ "hover",
656
+ "active",
657
+ "focus",
658
+ "disabled",
659
+ "loading",
660
+ ];
661
+ design.variants = [
662
+ "primary",
663
+ "secondary",
664
+ "outline",
665
+ "ghost",
666
+ "danger",
667
+ ];
668
+ break;
669
+ case "input":
670
+ design.structure = [
671
+ "Input wrapper with label",
672
+ "Input field with proper styling",
673
+ "Error message container",
674
+ "Helper text support",
675
+ "Icon support",
676
+ ];
677
+ design.props = [
678
+ "label: string",
679
+ "placeholder: string",
680
+ "value: string",
681
+ "error: string",
682
+ "helperText: string",
683
+ "required: boolean",
684
+ "disabled: boolean",
685
+ ];
686
+ design.states = ["normal", "focus", "error", "disabled"];
687
+ design.variants = ["text", "email", "password", "search", "textarea"];
688
+ break;
689
+ case "modal":
690
+ design.structure = [
691
+ "Modal overlay",
692
+ "Modal container with backdrop",
693
+ "Header with title and close button",
694
+ "Content area",
695
+ "Footer with action buttons",
696
+ "Focus trap for accessibility",
697
+ ];
698
+ design.props = [
699
+ "isOpen: boolean",
700
+ "title: string",
701
+ "children: ReactNode",
702
+ "onClose: () => void",
703
+ "actions: ActionButton[]",
704
+ ];
705
+ design.states = ["open", "closed", "opening", "closing"];
706
+ design.variants = ["default", "fullscreen", "sidebar"];
707
+ break;
708
+ }
709
+ return design;
710
+ }
711
+ generateComponentCode(design, framework) {
712
+ // Generate basic component code structure
713
+ switch (framework) {
714
+ case "react":
715
+ return this.generateReactComponent(design);
716
+ case "vue":
717
+ return this.generateVueComponent(design);
718
+ case "angular":
719
+ return this.generateAngularComponent(design);
720
+ default:
721
+ return `// Component code generation for ${framework} not yet implemented`;
722
+ }
723
+ }
724
+ generateReactComponent(design) {
725
+ const propsInterface = design.props
726
+ .map((prop) => ` ${prop};`)
727
+ .join("\n");
728
+ return `import React from 'react';
729
+
730
+ interface ${design.componentType.charAt(0).toUpperCase() + design.componentType.slice(1)}Props {
731
+ ${propsInterface}
732
+ }
733
+
734
+ export const ${design.componentType.charAt(0).toUpperCase() + design.componentType.slice(1)}: React.FC<${design.componentType.charAt(0).toUpperCase() + design.componentType.slice(1)}Props> = ({
735
+ // props destructuring
736
+ }) => {
737
+ return (
738
+ <div className="${design.componentType}-container">
739
+ {/* ${design.componentType} implementation */}
740
+ </div>
741
+ );
742
+ };`;
743
+ }
744
+ generateVueComponent(design) {
745
+ return `<template>
746
+ <div class="${design.componentType}-container">
747
+ <!-- ${design.componentType} implementation -->
748
+ </div>
749
+ </template>
750
+
751
+ <script setup lang="ts">
752
+ // Props definition would go here
753
+ </script>
754
+
755
+ <style scoped>
756
+ .${design.componentType}-container {
757
+ /* styles */
758
+ }
759
+ </style>`;
760
+ }
761
+ generateAngularComponent(design) {
762
+ return `import { Component, Input, Output, EventEmitter } from '@angular/core';
763
+
764
+ @Component({
765
+ selector: 'app-${design.componentType}',
766
+ template: \`
767
+ <div class="${design.componentType}-container">
768
+ <!-- ${design.componentType} implementation -->
769
+ </div>
770
+ \`,
771
+ styles: [\`
772
+ .${design.componentType}-container {
773
+ /* styles */
774
+ }
775
+ \`]
776
+ })
777
+ export class ${design.componentType.charAt(0).toUpperCase() + design.componentType.slice(1)}Component {
778
+ // Component logic
779
+ }`;
780
+ }
781
+ addAccessibilityFeatures(design, framework) {
782
+ const features = [];
783
+ switch (design.componentType) {
784
+ case "button":
785
+ features.push("Keyboard navigation support (Enter/Space activation)");
786
+ features.push("ARIA pressed state for toggle buttons");
787
+ features.push("Screen reader announcements for state changes");
788
+ features.push("Focus management and visible focus indicators");
789
+ break;
790
+ case "input":
791
+ features.push("ARIA labels and descriptions");
792
+ features.push("Error message association with input");
793
+ features.push("Required field indicators");
794
+ features.push("Input validation feedback");
795
+ break;
796
+ case "modal":
797
+ features.push("Focus trap within modal");
798
+ features.push("ARIA modal role and properties");
799
+ features.push("Escape key handling");
800
+ features.push("Initial focus management");
801
+ break;
802
+ }
803
+ return features;
804
+ }
805
+ checkWCAGCompliance(htmlContent, cssContent, level) {
806
+ const violations = [];
807
+ // Basic WCAG checks (simplified)
808
+ if (!htmlContent.includes("lang=")) {
809
+ violations.push({
810
+ guideline: "3.1.1 Language of Page",
811
+ severity: "medium",
812
+ description: "Missing language attribute on html element",
813
+ });
814
+ }
815
+ // Color contrast would require CSS parsing
816
+ if (cssContent && cssContent.includes("color:")) {
817
+ violations.push({
818
+ guideline: "1.4.3 Contrast (Minimum)",
819
+ severity: "info",
820
+ description: "Color contrast should be verified manually",
821
+ });
822
+ }
823
+ return violations;
824
+ }
825
+ calculateWCAGScore(violations, level) {
826
+ let score = 100;
827
+ violations.forEach((violation) => {
828
+ switch (violation.severity) {
829
+ case "critical":
830
+ score -= 20;
831
+ break;
832
+ case "high":
833
+ score -= 15;
834
+ break;
835
+ case "medium":
836
+ score -= 10;
837
+ break;
838
+ case "low":
839
+ score -= 5;
840
+ break;
841
+ }
842
+ });
843
+ return Math.max(0, Math.min(100, score));
844
+ }
845
+ generateAccessibilityRecommendations(violations) {
846
+ const recommendations = [];
847
+ violations.forEach((violation) => {
848
+ recommendations.push(`Fix ${violation.guideline}: ${violation.description}`);
849
+ });
850
+ recommendations.push("Use automated accessibility testing tools");
851
+ recommendations.push("Conduct manual testing with assistive technologies");
852
+ recommendations.push("Include accessibility in design reviews");
853
+ return recommendations;
854
+ }
855
+ createDesignSystem(brandGuidelines, targetAudience, platform, includeAccessibility) {
856
+ // Generate a basic design system based on inputs
857
+ const colors = {
858
+ primary: ["#007bff", "#0056b3", "#004085"],
859
+ secondary: ["#6c757d", "#545b62", "#383d41"],
860
+ semantic: {
861
+ success: "#28a745",
862
+ warning: "#ffc107",
863
+ error: "#dc3545",
864
+ info: "#17a2b8",
865
+ },
866
+ contrastRatios: {},
867
+ };
868
+ const typography = {
869
+ fontFamilies: ["Inter", "system-ui", "-apple-system"],
870
+ sizes: {
871
+ xs: "0.75rem",
872
+ sm: "0.875rem",
873
+ base: "1rem",
874
+ lg: "1.125rem",
875
+ xl: "1.25rem",
876
+ "2xl": "1.5rem",
877
+ },
878
+ weights: {
879
+ normal: 400,
880
+ medium: 500,
881
+ semibold: 600,
882
+ bold: 700,
883
+ },
884
+ lineHeights: {
885
+ tight: 1.25,
886
+ normal: 1.5,
887
+ relaxed: 1.625,
888
+ },
889
+ };
890
+ const spacing = {
891
+ base: 4,
892
+ scale: [4, 8, 12, 16, 24, 32, 48, 64],
893
+ names: {
894
+ xs: 4,
895
+ sm: 8,
896
+ md: 16,
897
+ lg: 24,
898
+ xl: 32,
899
+ "2xl": 48,
900
+ },
901
+ };
902
+ const components = {
903
+ buttons: [
904
+ {
905
+ name: "primary",
906
+ states: ["normal", "hover", "active", "disabled"],
907
+ accessibility: ["focus-visible"],
908
+ responsive: true,
909
+ },
910
+ {
911
+ name: "secondary",
912
+ states: ["normal", "hover", "active", "disabled"],
913
+ accessibility: ["focus-visible"],
914
+ responsive: true,
915
+ },
916
+ ],
917
+ inputs: [
918
+ {
919
+ name: "text",
920
+ states: ["normal", "focus", "error", "disabled"],
921
+ accessibility: ["aria-label", "aria-invalid"],
922
+ responsive: true,
923
+ },
924
+ ],
925
+ navigation: [
926
+ {
927
+ name: "header",
928
+ states: ["normal", "mobile-open"],
929
+ accessibility: ["aria-expanded"],
930
+ responsive: true,
931
+ },
932
+ ],
933
+ feedback: [
934
+ {
935
+ name: "alert",
936
+ states: ["info", "success", "warning", "error"],
937
+ accessibility: ["role", "aria-live"],
938
+ responsive: true,
939
+ },
940
+ ],
941
+ };
942
+ const patterns = [
943
+ {
944
+ name: "Card Layout",
945
+ category: "layout",
946
+ description: "Container for related content and actions",
947
+ useCases: ["Product display", "User profiles", "Content preview"],
948
+ accessibility: ["Proper heading hierarchy", "Focus management"],
949
+ },
950
+ {
951
+ name: "Progressive Disclosure",
952
+ category: "interaction",
953
+ description: "Show information gradually to reduce cognitive load",
954
+ useCases: ["Forms", "Settings panels", "Help documentation"],
955
+ accessibility: ["ARIA expanded states", "Keyboard navigation"],
956
+ },
957
+ ];
958
+ return { colors, typography, spacing, components, patterns };
959
+ }
960
+ generateDesignTokens(system) {
961
+ return {
962
+ colors: {
963
+ primary: system.colors.primary,
964
+ secondary: system.colors.secondary,
965
+ semantic: system.colors.semantic,
966
+ },
967
+ typography: system.typography,
968
+ spacing: system.spacing,
969
+ breakpoints: {
970
+ sm: "640px",
971
+ md: "768px",
972
+ lg: "1024px",
973
+ xl: "1280px",
974
+ },
975
+ };
976
+ }
977
+ generateDesignSystemDocs(system) {
978
+ return `# Design System Documentation
979
+
980
+ ## Colors
981
+ Primary: ${system.colors.primary.join(", ")}
982
+ Secondary: ${system.colors.secondary.join(", ")}
983
+
984
+ ## Typography
985
+ Fonts: ${system.typography.fontFamilies.join(", ")}
986
+
987
+ ## Spacing
988
+ Base unit: ${system.spacing.base}px
989
+ Scale: ${system.spacing.scale.join(", ")}
990
+
991
+ ## Components
992
+ Available: ${Object.keys(system.components).length} component types
993
+ `;
994
+ }
995
+ getSeverityIcon(severity) {
996
+ const icons = {
997
+ critical: "🚨",
998
+ high: "🔴",
999
+ medium: "🟡",
1000
+ low: "🟢",
1001
+ };
1002
+ return icons[severity] || "❓";
1003
+ }
1004
+ async run() {
1005
+ const transport = new StdioServerTransport();
1006
+ await this.server.connect(transport);
1007
+ console.log("StrRay UI/UX Design MCP Server running...");
1008
+ }
1009
+ }
1010
+ // Run the server if this file is executed directly
1011
+ if (import.meta.url === `file://${process.argv[1]}`) {
1012
+ const server = new StrRayUIUXDesignServer();
1013
+ server.run().catch(console.error);
1014
+ }
1015
+ export { StrRayUIUXDesignServer };
1016
+ //# sourceMappingURL=ui-ux-design.server.js.map