0xray 3.1.0 → 3.2.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 (437) hide show
  1. package/.gitignore.default +59 -0
  2. package/.mcp.json +35 -0
  3. package/.opencode/codex.codex +1 -1
  4. package/.opencode/commands/auto-format.md +3 -3
  5. package/.opencode/commands/auto-summary-capture.md +2 -2
  6. package/.opencode/commands/dependency-audit.md +3 -3
  7. package/.opencode/commands/enforcer-daily-scan.md +3 -3
  8. package/.opencode/commands/framework-compliance-audit.md +4 -4
  9. package/.opencode/commands/interactive-validator.md +2 -2
  10. package/.opencode/commands/job-summary-logger.md +2 -2
  11. package/.opencode/commands/mode-switch.md +1 -1
  12. package/.opencode/commands/model-health-check.md +2 -2
  13. package/.opencode/commands/performance-analysis.md +2 -2
  14. package/.opencode/commands/pre-commit-introspection.md +3 -3
  15. package/.opencode/commands/security-scan.md +3 -3
  16. package/.opencode/commands/sisyphus-validation.md +3 -3
  17. package/.opencode/commands/summary-logger.md +6 -6
  18. package/.opencode/enforcer-config.json +2 -2
  19. package/.opencode/hooks/post-commit +1 -1
  20. package/.opencode/init.sh +6 -0
  21. package/.plugin/plugin.json +11 -0
  22. package/AGENTS-consumer.md +46 -0
  23. package/AGENTS.md +2 -12
  24. package/LICENSE +1 -1
  25. package/README.md +6 -6
  26. package/SKILLS.md +140 -0
  27. package/dist/.gitignore.default +59 -0
  28. package/dist/AGENTS.md +2 -12
  29. package/dist/CHANGELOG.md +54 -0
  30. package/dist/LICENSE +1 -1
  31. package/dist/README.md +6 -6
  32. package/dist/SKILLS.md +140 -0
  33. package/dist/agents/index.js +3 -1
  34. package/dist/agents/registry.js +13 -0
  35. package/dist/analytics/consent-manager.js +0 -1
  36. package/dist/analytics/emerging-pattern-detector.js +0 -1
  37. package/dist/analytics/pattern-learning-engine.js +0 -1
  38. package/dist/analytics/pattern-performance-tracker.js +0 -1
  39. package/dist/analytics/predictive-analytics.js +0 -1
  40. package/dist/analytics/prompt-pattern-analyzer.js +0 -1
  41. package/dist/analytics/routing-performance-analyzer.js +0 -1
  42. package/dist/analytics/routing-refiner.js +1 -2
  43. package/dist/analytics/simple-pattern-analyzer.js +0 -1
  44. package/dist/architect/architectural-integrity.js +3 -3
  45. package/dist/benchmark/performance-benchmark.js +1 -2
  46. package/dist/cli/commands/antigravity-status.js +23 -23
  47. package/dist/cli/commands/archive-logs.js +0 -1
  48. package/dist/cli/commands/credible-init.js +1 -1
  49. package/dist/cli/commands/hermes-install.js +8 -0
  50. package/dist/cli/commands/mcp-install.js +1 -1
  51. package/dist/cli/commands/openclaw-install.js +9 -0
  52. package/dist/cli/commands/opencode-install.js +35 -0
  53. package/dist/cli/commands/plugin-commands.js +0 -1
  54. package/dist/cli/commands/skill-install.js +39 -2
  55. package/dist/cli/commands/status.js +16 -13
  56. package/dist/cli/commands/storyteller.js +1 -1
  57. package/dist/cli/index.js +14 -13
  58. package/dist/core/activity-logger.js +4 -5
  59. package/dist/core/adaptive-kernel.js +0 -1
  60. package/dist/core/agent-spawn-gate.js +1 -1
  61. package/dist/core/boot-orchestrator.js +14 -25
  62. package/dist/core/bridge.mjs +4 -5
  63. package/dist/core/codex-formatter.js +1 -3
  64. package/dist/core/codex-injector.js +3 -4
  65. package/dist/core/config-loader.js +36 -29
  66. package/dist/core/config-paths.js +30 -23
  67. package/dist/core/context-loader.js +0 -4
  68. package/dist/core/context-validator.js +0 -1
  69. package/dist/core/features-config.js +38 -2
  70. package/dist/core/index.js +2 -2
  71. package/dist/core/kernel-patterns.js +0 -1
  72. package/dist/core/logging-config.js +7 -7
  73. package/dist/core/model-router.js +23 -64
  74. package/dist/core/orchestrator.js +1 -1
  75. package/dist/core/system-prompt-generator.js +0 -1
  76. package/dist/core/xray-activation.js +3 -4
  77. package/dist/delegation/agent-delegator.js +2 -3
  78. package/dist/delegation/agent-expertise.js +0 -1
  79. package/dist/delegation/analytics/index.js +0 -1
  80. package/dist/delegation/analytics/learning-engine.js +0 -1
  81. package/dist/delegation/analytics/outcome-tracker.js +0 -1
  82. package/dist/delegation/analytics/routing-analytics.js +0 -1
  83. package/dist/delegation/ast-code-parser.js +0 -1
  84. package/dist/delegation/complexity-analyzer.js +0 -1
  85. package/dist/delegation/dependency-graph-builder.js +0 -1
  86. package/dist/delegation/index.js +0 -1
  87. package/dist/delegation/metrics-aggregator.js +0 -1
  88. package/dist/delegation/session-coordinator.js +0 -1
  89. package/dist/delegation/strategy-selector.js +0 -1
  90. package/dist/delegation/voting-coordinator.js +0 -1
  91. package/dist/delegation/voting-types.js +0 -1
  92. package/dist/delegation/weighted-voting-aggregator.js +0 -1
  93. package/dist/enforcement/core/index.js +0 -1
  94. package/dist/enforcement/core/rule-executor.js +0 -1
  95. package/dist/enforcement/core/rule-hierarchy.js +0 -1
  96. package/dist/enforcement/core/rule-registry.js +0 -1
  97. package/dist/enforcement/core/violation-fixer.js +0 -1
  98. package/dist/enforcement/enforcer-tools.js +2 -2
  99. package/dist/enforcement/index.js +0 -1
  100. package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
  101. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
  102. package/dist/enforcement/loaders/base-loader.js +0 -1
  103. package/dist/enforcement/loaders/codex-loader.js +2 -3
  104. package/dist/enforcement/loaders/index.js +0 -1
  105. package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
  106. package/dist/enforcement/loaders/processor-loader.js +0 -1
  107. package/dist/enforcement/types.js +0 -1
  108. package/dist/enforcement/validators/architecture-validators.js +0 -1
  109. package/dist/enforcement/validators/base-validator.js +0 -1
  110. package/dist/enforcement/validators/code-quality-validators.js +0 -1
  111. package/dist/enforcement/validators/index.js +0 -1
  112. package/dist/enforcement/validators/security-validators.js +0 -1
  113. package/dist/enforcement/validators/testing-validators.js +0 -1
  114. package/dist/enforcement/validators/validator-registry.js +0 -1
  115. package/dist/execution/opencode-cli-invoker.js +1 -1
  116. package/dist/governance/codex-policy.service.js +0 -1
  117. package/dist/governance/governance-service.js +1 -1
  118. package/dist/governance/llm-governance-provider.js +14 -1
  119. package/dist/index.js +3 -5
  120. package/dist/inference/inference-agent-invoker.js +67 -0
  121. package/dist/inference/inference-applier.js +178 -0
  122. package/dist/inference/inference-cycle.js +52 -828
  123. package/dist/inference/inference-proposal-generator.js +149 -0
  124. package/dist/infrastructure/iac-validator.js +465 -0
  125. package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
  126. package/dist/integrations/base/ExampleIntegration.js +0 -1
  127. package/dist/integrations/base/Integration.js +0 -1
  128. package/dist/integrations/base/README.md +1 -1
  129. package/dist/integrations/base/index.js +0 -1
  130. package/dist/integrations/base/registry.js +0 -1
  131. package/dist/integrations/base/types.js +0 -1
  132. package/dist/integrations/enforcement-gate.js +5 -5
  133. package/dist/integrations/governance/governance-client.js +0 -1
  134. package/dist/integrations/governance/index.js +11 -19
  135. package/dist/integrations/governance/types.js +0 -1
  136. package/dist/integrations/grok/grok-cli.js +20 -6
  137. package/dist/integrations/grok/hooks/pre-tool-use.js +3 -3
  138. package/dist/integrations/grok/plugin/0xray/.mcp.json +16 -4
  139. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  140. package/dist/integrations/hermes-agent/__init__.py +29 -14
  141. package/dist/integrations/hermes-agent/bridge.mjs +76 -4
  142. package/dist/integrations/hermes-agent/schemas.py +49 -0
  143. package/dist/integrations/hermes-agent/test_plugin.py +7 -7
  144. package/dist/integrations/hermes-agent/tools.py +107 -3
  145. package/dist/integrations/openclaw/README.md +6 -6
  146. package/dist/integrations/openclaw/api-server.js +0 -1
  147. package/dist/integrations/openclaw/client.js +0 -1
  148. package/dist/integrations/openclaw/config.js +1 -2
  149. package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -1
  150. package/dist/integrations/openclaw/index.js +2 -3
  151. package/dist/integrations/openclaw/types.js +3 -4
  152. package/dist/integrations/plugins/index.js +0 -1
  153. package/dist/integrations/plugins/plugin-integration.js +1 -2
  154. package/dist/integrations/plugins/plugin-registry.js +1 -2
  155. package/dist/mcps/agent-resolver.js +0 -1
  156. package/dist/mcps/architect-tools.server.js +121 -186
  157. package/dist/mcps/auto-format.server.js +57 -75
  158. package/dist/mcps/boot-orchestrator.server.js +68 -86
  159. package/dist/mcps/config/config-loader.js +46 -9
  160. package/dist/mcps/config/plugin-server-registry.js +0 -1
  161. package/dist/mcps/enforcer-tools.server.js +208 -274
  162. package/dist/mcps/estimation.server.js +65 -108
  163. package/dist/mcps/framework-compliance-audit.server.js +53 -82
  164. package/dist/mcps/framework-help.server.js +73 -90
  165. package/dist/mcps/governance.server.js +104 -152
  166. package/dist/mcps/knowledge-skills/api-design.server.js +35 -66
  167. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -66
  168. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +125 -165
  169. package/dist/mcps/knowledge-skills/code-analyzer.server.js +211 -238
  170. package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
  171. package/dist/mcps/knowledge-skills/content-creator.server.js +205 -227
  172. package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
  173. package/dist/mcps/knowledge-skills/devops-deployment.server.js +125 -158
  174. package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
  175. package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -325
  176. package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -161
  177. package/dist/mcps/knowledge-skills/mobile-development.server.js +172 -202
  178. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +124 -160
  179. package/dist/mcps/knowledge-skills/performance-optimization.server.js +89 -139
  180. package/dist/mcps/knowledge-skills/project-analysis.server.js +132 -219
  181. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +117 -151
  182. package/dist/mcps/knowledge-skills/security-audit.server.js +17 -144
  183. package/dist/mcps/knowledge-skills/seo-consultant.server.js +22 -214
  184. package/dist/mcps/knowledge-skills/session-management.server.js +15 -91
  185. package/dist/mcps/knowledge-skills/skill-invocation.server.js +83 -359
  186. package/dist/mcps/knowledge-skills/strategist.server.js +12 -57
  187. package/dist/mcps/knowledge-skills/tech-writer.server.js +18 -193
  188. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +20 -192
  189. package/dist/mcps/knowledge-skills/testing-strategy.server.js +19 -157
  190. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +24 -297
  191. package/dist/mcps/lint.server.js +51 -92
  192. package/dist/mcps/model-health-check.server.js +34 -61
  193. package/dist/mcps/orchestrator/aside-context.js +207 -0
  194. package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
  195. package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
  196. package/dist/mcps/orchestrator/handlers/task-handler.js +5 -0
  197. package/dist/mcps/orchestrator/index.js +5 -0
  198. package/dist/mcps/orchestrator/server.js +65 -9
  199. package/dist/mcps/orchestrator.server.js +2 -1
  200. package/dist/mcps/performance-analysis.server.js +57 -88
  201. package/dist/mcps/processor-pipeline.server.js +70 -100
  202. package/dist/mcps/registry.json +1 -1
  203. package/dist/mcps/researcher.server.js +81 -154
  204. package/dist/mcps/security-scan.server.js +57 -71
  205. package/dist/mcps/shared/knowledge-skill-base.js +11 -4
  206. package/dist/mcps/state-manager.server.js +127 -155
  207. package/dist/metrics/agent-metrics.js +1 -1
  208. package/dist/monitoring/nudge-watchdog.js +0 -1
  209. package/dist/nucleus/default-plugins.js +13 -19
  210. package/dist/nucleus/index.js +0 -1
  211. package/dist/orchestrator/agent-spawn-governor.js +0 -1
  212. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
  213. package/dist/orchestrator/intelligent-commit-batcher.js +2 -11
  214. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
  215. package/dist/orchestrator/orchestrator.js +8 -19
  216. package/dist/orchestrator/self-direction-activation.js +0 -1
  217. package/dist/orchestrator/universal-registry-bridge.js +1 -2
  218. package/dist/performance/performance-budget-enforcer.js +0 -1
  219. package/dist/performance/performance-regression-tester.js +0 -1
  220. package/dist/plugin/plugin-codex-context.js +87 -0
  221. package/dist/plugin/plugin-helpers.js +155 -0
  222. package/dist/plugin/plugin-logger.js +46 -0
  223. package/dist/plugin/plugin-modules.js +144 -0
  224. package/dist/plugin/plugin-quality-gate.js +88 -0
  225. package/dist/plugin/plugin-types.js +1 -0
  226. package/dist/plugin/xray-codex-injection.js +39 -558
  227. package/dist/postprocessor/PostProcessor.js +7 -13
  228. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
  229. package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
  230. package/dist/postprocessor/integration.js +194 -0
  231. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
  232. package/dist/postprocessor/metamorphosis/index.js +1 -0
  233. package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
  234. package/dist/postprocessor/services/RegressionAnalysisService.js +2 -3
  235. package/dist/postprocessor/triggers/APITrigger.js +0 -1
  236. package/dist/postprocessor/triggers/GitHookTrigger.js +4 -4
  237. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
  238. package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
  239. package/dist/processors/implementations/async-pattern-processor.js +0 -1
  240. package/dist/processors/implementations/console-log-guard-processor.js +0 -1
  241. package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
  242. package/dist/processors/implementations/inference-improvement-processor.js +2 -10
  243. package/dist/processors/implementations/log-protection-processor.js +0 -1
  244. package/dist/processors/implementations/nudge-processor.js +0 -1
  245. package/dist/processors/implementations/performance-budget-processor.js +0 -1
  246. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
  247. package/dist/processors/implementations/publish-preflight-processor.js +4 -13
  248. package/dist/processors/implementations/session-summary-processor.js +8 -16
  249. package/dist/processors/implementations/spawn-governance-processor.js +0 -1
  250. package/dist/processors/implementations/storytelling-trigger-processor.js +3 -29
  251. package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
  252. package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
  253. package/dist/processors/implementations/version-compliance-processor.js +0 -1
  254. package/dist/processors/processor-interfaces.js +0 -1
  255. package/dist/processors/processor-types.js +0 -1
  256. package/dist/public/about.html +6 -6
  257. package/dist/public/enterprise.html +1 -1
  258. package/dist/public/features.html +2 -2
  259. package/dist/public/index.html +4 -4
  260. package/dist/reporting/report-formatter.js +1 -1
  261. package/dist/scripts/activate-kernel-pipeline.js +2 -2
  262. package/dist/scripts/integration.js +0 -1
  263. package/dist/scripts/pre-command +1 -1
  264. package/dist/security/comprehensive-security-audit.js +0 -1
  265. package/dist/security/security-agent-coordinator.js +0 -1
  266. package/dist/security/security-auditor.js +0 -1
  267. package/dist/security/security-hardener.js +0 -1
  268. package/dist/security/security-hardening-system.js +0 -1
  269. package/dist/security/security-headers.js +0 -1
  270. package/dist/security/security-orchestration-layer.js +0 -1
  271. package/dist/services/inference-tuner.js +1 -2
  272. package/dist/session/session-cleanup-manager.js +0 -1
  273. package/dist/session/session-monitor.js +0 -1
  274. package/dist/session/session-state-manager.js +0 -1
  275. package/dist/skills/api-design/SKILL.md +1 -1
  276. package/dist/skills/architect-tools/SKILL.md +1 -1
  277. package/dist/skills/architecture-patterns/SKILL.md +1 -1
  278. package/dist/skills/auto-format/SKILL.md +1 -1
  279. package/dist/skills/boot-orchestrator/SKILL.md +1 -1
  280. package/dist/skills/bug-triage/SKILL.md +1 -1
  281. package/dist/skills/code-analyzer/SKILL.md +1 -1
  282. package/dist/skills/code-review/SKILL.md +1 -1
  283. package/dist/skills/enforcer/SKILL.md +1 -1
  284. package/dist/skills/framework-compliance-audit/SKILL.md +1 -1
  285. package/dist/skills/git-workflow/SKILL.md +1 -1
  286. package/dist/skills/hermes-agent/SKILL.md +2 -2
  287. package/dist/skills/inference-improve/SKILL.md +1 -1
  288. package/dist/skills/lint/SKILL.md +1 -1
  289. package/dist/skills/log-monitor/SKILL.md +1 -1
  290. package/dist/skills/model-health-check/SKILL.md +1 -1
  291. package/dist/skills/multimodal-looker/SKILL.md +1 -1
  292. package/dist/skills/orchestrator/SKILL.md +1 -1
  293. package/dist/skills/performance-analysis/SKILL.md +1 -1
  294. package/dist/skills/performance-optimization/SKILL.md +1 -1
  295. package/dist/skills/processor-pipeline/SKILL.md +1 -1
  296. package/dist/skills/project-analysis/SKILL.md +1 -1
  297. package/dist/skills/refactoring-strategies/SKILL.md +1 -1
  298. package/dist/skills/registry.json +1 -1
  299. package/dist/skills/researcher/SKILL.md +1 -1
  300. package/dist/skills/security-audit/SKILL.md +1 -1
  301. package/dist/skills/security-scan/SKILL.md +1 -1
  302. package/dist/skills/session-management/SKILL.md +1 -1
  303. package/dist/skills/state-manager/SKILL.md +1 -1
  304. package/dist/skills/storyteller/SKILL.md +1 -1
  305. package/dist/skills/testing-best-practices/SKILL.md +1 -1
  306. package/dist/skills/testing-strategy/SKILL.md +1 -1
  307. package/dist/skills/ui-ux-design/SKILL.md +1 -1
  308. package/dist/skills/xray-orchestrator/index.js +0 -1
  309. package/dist/state/index.js +0 -1
  310. package/dist/state/state-manager.js +1 -2
  311. package/dist/utils/codex-parser.js +0 -1
  312. package/dist/utils/import-resolver.js +1 -1
  313. package/dist/utils/language-detector.js +0 -1
  314. package/dist/utils/path-resolver.js +2 -2
  315. package/dist/utils/shutdown-handler.js +0 -1
  316. package/dist/validation/agent-config-validator.js +280 -0
  317. package/dist/validation/orchestration-flow-validator.js +606 -0
  318. package/package.json +10 -3
  319. package/scripts/hooks/pre-command +1 -1
  320. package/scripts/hooks/run-hook.js +2 -2
  321. package/scripts/node/auto-reflection-generator.mjs +30 -36
  322. package/scripts/node/govern-reflection.mjs +1 -1
  323. package/scripts/node/postinstall.cjs +37 -2
  324. package/scripts/node/release.mjs +2 -2
  325. package/scripts/node/setup-xai-oauth.mjs +244 -0
  326. package/scripts/node/setup.cjs +28 -0
  327. package/scripts/node/universal-version-manager.js +8 -8
  328. package/scripts/node/version-manager.mjs +1 -1
  329. package/src/integrations/grok/plugin/0xray/.mcp.json +16 -4
  330. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  331. package/src/mcps/agent-resolver.ts +0 -1
  332. package/src/mcps/architect-tools.server.ts +130 -212
  333. package/src/mcps/auto-format.server.ts +75 -104
  334. package/src/mcps/boot-orchestrator.server.ts +72 -97
  335. package/src/mcps/config/__tests__/config-loader.test.ts +33 -37
  336. package/src/mcps/config/config-loader.ts +57 -11
  337. package/src/mcps/config/plugin-server-registry.ts +0 -1
  338. package/src/mcps/enforcer-tools.server.ts +218 -295
  339. package/src/mcps/estimation.server.ts +64 -123
  340. package/src/mcps/framework-compliance-audit.server.ts +54 -96
  341. package/src/mcps/framework-help.server.ts +76 -97
  342. package/src/mcps/governance.server.ts +104 -164
  343. package/src/mcps/knowledge-skills/api-design.server.ts +35 -73
  344. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +34 -73
  345. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +149 -194
  346. package/src/mcps/knowledge-skills/code-analyzer.server.ts +223 -255
  347. package/src/mcps/knowledge-skills/code-review.server.ts +116 -158
  348. package/src/mcps/knowledge-skills/content-creator.server.ts +221 -248
  349. package/src/mcps/knowledge-skills/database-design.server.ts +120 -161
  350. package/src/mcps/knowledge-skills/devops-deployment.server.ts +128 -168
  351. package/src/mcps/knowledge-skills/git-workflow.server.ts +34 -78
  352. package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -362
  353. package/src/mcps/knowledge-skills/log-monitor.server.ts +70 -97
  354. package/src/mcps/knowledge-skills/mobile-development.server.ts +18 -58
  355. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +15 -61
  356. package/src/mcps/knowledge-skills/performance-optimization.server.ts +14 -75
  357. package/src/mcps/knowledge-skills/project-analysis.server.ts +14 -121
  358. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +15 -61
  359. package/src/mcps/knowledge-skills/security-audit.server.ts +20 -158
  360. package/src/mcps/knowledge-skills/seo-consultant.server.ts +25 -228
  361. package/src/mcps/knowledge-skills/session-management.server.ts +19 -107
  362. package/src/mcps/knowledge-skills/skill-invocation.server.ts +89 -380
  363. package/src/mcps/knowledge-skills/strategist.server.ts +15 -65
  364. package/src/mcps/knowledge-skills/tech-writer.server.ts +21 -206
  365. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +23 -205
  366. package/src/mcps/knowledge-skills/testing-strategy.server.ts +22 -166
  367. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +27 -343
  368. package/src/mcps/lint.server.ts +53 -106
  369. package/src/mcps/model-health-check.server.ts +35 -71
  370. package/src/mcps/orchestrator/aside-context.ts +245 -0
  371. package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
  372. package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
  373. package/src/mcps/orchestrator/handlers/task-handler.ts +8 -1
  374. package/src/mcps/orchestrator/index.ts +29 -0
  375. package/src/mcps/orchestrator/server.ts +81 -25
  376. package/src/mcps/orchestrator/types.ts +37 -0
  377. package/src/mcps/orchestrator.server.ts +2 -1
  378. package/src/mcps/performance-analysis.server.ts +60 -103
  379. package/src/mcps/processor-pipeline.server.ts +72 -109
  380. package/src/mcps/registry.json +1 -1
  381. package/src/mcps/researcher.server.ts +88 -176
  382. package/src/mcps/security-scan.server.ts +58 -77
  383. package/src/mcps/shared/knowledge-skill-base.ts +12 -4
  384. package/src/mcps/state-manager.server.ts +132 -172
  385. package/src/opencode/codex.codex +1 -1
  386. package/src/opencode/commands/auto-format.md +3 -3
  387. package/src/opencode/commands/auto-summary-capture.md +2 -2
  388. package/src/opencode/commands/dependency-audit.md +3 -3
  389. package/src/opencode/commands/enforcer-daily-scan.md +3 -3
  390. package/src/opencode/commands/framework-compliance-audit.md +4 -4
  391. package/src/opencode/commands/interactive-validator.md +2 -2
  392. package/src/opencode/commands/job-summary-logger.md +2 -2
  393. package/src/opencode/commands/mode-switch.md +1 -1
  394. package/src/opencode/commands/model-health-check.md +2 -2
  395. package/src/opencode/commands/performance-analysis.md +2 -2
  396. package/src/opencode/commands/pre-commit-introspection.md +3 -3
  397. package/src/opencode/commands/security-scan.md +3 -3
  398. package/src/opencode/commands/sisyphus-validation.md +3 -3
  399. package/src/opencode/commands/summary-logger.md +6 -6
  400. package/src/opencode/enforcer-config.json +2 -2
  401. package/src/skills/api-design/SKILL.md +1 -1
  402. package/src/skills/architect-tools/SKILL.md +1 -1
  403. package/src/skills/architecture-patterns/SKILL.md +1 -1
  404. package/src/skills/auto-format/SKILL.md +1 -1
  405. package/src/skills/boot-orchestrator/SKILL.md +1 -1
  406. package/src/skills/bug-triage/SKILL.md +1 -1
  407. package/src/skills/code-analyzer/SKILL.md +1 -1
  408. package/src/skills/code-review/SKILL.md +1 -1
  409. package/src/skills/enforcer/SKILL.md +1 -1
  410. package/src/skills/framework-compliance-audit/SKILL.md +1 -1
  411. package/src/skills/git-workflow/SKILL.md +1 -1
  412. package/src/skills/hermes-agent/SKILL.md +2 -2
  413. package/src/skills/inference-improve/SKILL.md +1 -1
  414. package/src/skills/lint/SKILL.md +1 -1
  415. package/src/skills/log-monitor/SKILL.md +1 -1
  416. package/src/skills/model-health-check/SKILL.md +1 -1
  417. package/src/skills/multimodal-looker/SKILL.md +1 -1
  418. package/src/skills/orchestrator/SKILL.md +1 -1
  419. package/src/skills/performance-analysis/SKILL.md +1 -1
  420. package/src/skills/performance-optimization/SKILL.md +1 -1
  421. package/src/skills/processor-pipeline/SKILL.md +1 -1
  422. package/src/skills/project-analysis/SKILL.md +1 -1
  423. package/src/skills/refactoring-strategies/SKILL.md +1 -1
  424. package/src/skills/registry.json +1 -1
  425. package/src/skills/researcher/SKILL.md +1 -1
  426. package/src/skills/security-audit/SKILL.md +1 -1
  427. package/src/skills/security-scan/SKILL.md +1 -1
  428. package/src/skills/session-management/SKILL.md +1 -1
  429. package/src/skills/state-manager/SKILL.md +1 -1
  430. package/src/skills/storyteller/SKILL.md +1 -1
  431. package/src/skills/testing-best-practices/SKILL.md +1 -1
  432. package/src/skills/testing-strategy/SKILL.md +1 -1
  433. package/src/skills/ui-ux-design/SKILL.md +1 -1
  434. package/src/skills/xray-orchestrator/index.ts +0 -1
  435. package/xray/agents_template.md +46 -0
  436. package/xray/codex.json +598 -0
  437. package/dist/nucleus/orchestrator.js +0 -479
@@ -4,160 +4,31 @@
4
4
  * Knowledge skill for test planning, coverage optimization,
5
5
  * and testing methodology recommendations
6
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
7
  import * as fs from "fs";
11
8
  import * as path from "path";
12
9
  import { frameworkLogger } from "../../core/framework-logger.js";
13
- import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
10
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
14
11
  import { detectProjectLanguage, LANGUAGE_CONFIGS, } from "../../utils/language-detector.js";
15
- class XrayTestingStrategyServer {
16
- server;
12
+ class XrayTestingStrategyServer extends XrayKnowledgeSkillBase {
17
13
  constructor() {
18
- this.server = new Server({
19
- name: "testing-strategy", version: "1.22.67",
20
- }, {
21
- capabilities: {
22
- tools: {},
23
- },
24
- });
14
+ super("testing-strategy", "3.1.0");
15
+ this.tools = [
16
+ { name: "analyze-test-coverage", description: "Analyze current test coverage and identify gaps", inputSchema: { type: "object", properties: { projectRoot: { type: "string" }, includeBreakdown: { type: "boolean", default: true }, coverageThreshold: { type: "number", default: 80 } }, required: ["projectRoot"] } },
17
+ { name: "design-test-strategy", description: "Design comprehensive testing strategy for the project", inputSchema: { type: "object", properties: { projectRoot: { type: "string" }, projectType: { type: "string", enum: ["web", "api", "mobile", "desktop"] }, complexity: { type: "string", enum: ["simple", "medium", "complex"] }, timeline: { type: "string", enum: ["agile", "waterfall", "continuous"] } }, required: ["projectRoot"] } },
18
+ { name: "identify-test-gaps", description: "Identify untested code and recommend test cases", inputSchema: { type: "object", properties: { projectRoot: { type: "string" }, sourceFiles: { type: "array", items: { type: "string" } }, existingTests: { type: "array", items: { type: "string" } } }, required: ["projectRoot"] } },
19
+ { name: "optimize-test-coverage", description: "Analyze and optimize test coverage patterns", inputSchema: { type: "object", properties: { projectRoot: { type: "string" }, currentCoverage: { type: "number" }, targetCoverage: { type: "number", default: 85 }, focusAreas: { type: "array", items: { type: "string" } } }, required: ["projectRoot"] } },
20
+ { name: "generate-test-file", description: "Generate test file for a source file with exports", inputSchema: { type: "object", properties: { sourceFile: { type: "string", description: "Path to source file" }, sourceContent: { type: "string", description: "Source file content" }, exports: { type: "array", items: { type: "object", properties: { name: { type: "string" }, type: { type: "string" } } }, description: "Exported functions/classes to test" }, testFilePath: { type: "string", description: "Path for generated test file" }, directory: { type: "string", description: "Project directory" } }, required: ["sourceFile", "sourceContent", "exports", "testFilePath"] } },
21
+ ];
22
+ this.handlers = {
23
+ "analyze-test-coverage": async (args) => this.analyzeTestCoverage(args),
24
+ "design-test-strategy": async (args) => this.designTestStrategy(args),
25
+ "identify-test-gaps": async (args) => this.identifyTestGaps(args),
26
+ "optimize-test-coverage": async (args) => this.optimizeTestCoverage(args),
27
+ "generate-test-file": async (args) => this.generateTestFile(args),
28
+ };
25
29
  this.setupToolHandlers();
26
- // Server initialization - removed unnecessary startup logging
27
- }
28
- setupToolHandlers() {
29
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
30
- return {
31
- tools: [
32
- {
33
- name: "analyze-test-coverage",
34
- description: "Analyze current test coverage and identify gaps",
35
- inputSchema: {
36
- type: "object",
37
- properties: {
38
- projectRoot: { type: "string" },
39
- includeBreakdown: { type: "boolean", default: true },
40
- coverageThreshold: { type: "number", default: 80 },
41
- },
42
- required: ["projectRoot"],
43
- },
44
- },
45
- {
46
- name: "design-test-strategy",
47
- description: "Design comprehensive testing strategy for the project",
48
- inputSchema: {
49
- type: "object",
50
- properties: {
51
- projectRoot: { type: "string" },
52
- projectType: {
53
- type: "string",
54
- enum: ["web", "api", "mobile", "desktop"],
55
- },
56
- complexity: {
57
- type: "string",
58
- enum: ["simple", "medium", "complex"],
59
- },
60
- timeline: {
61
- type: "string",
62
- enum: ["agile", "waterfall", "continuous"],
63
- },
64
- },
65
- required: ["projectRoot"],
66
- },
67
- },
68
- {
69
- name: "identify-test-gaps",
70
- description: "Identify untested code and recommend test cases",
71
- inputSchema: {
72
- type: "object",
73
- properties: {
74
- projectRoot: { type: "string" },
75
- sourceFiles: { type: "array", items: { type: "string" } },
76
- existingTests: { type: "array", items: { type: "string" } },
77
- },
78
- required: ["projectRoot"],
79
- },
80
- },
81
- {
82
- name: "optimize-test-coverage",
83
- description: "Analyze and optimize test coverage patterns",
84
- inputSchema: {
85
- type: "object",
86
- properties: {
87
- projectRoot: { type: "string" },
88
- currentCoverage: { type: "number" },
89
- targetCoverage: { type: "number", default: 85 },
90
- focusAreas: { type: "array", items: { type: "string" } },
91
- },
92
- required: ["projectRoot"],
93
- },
94
- },
95
- {
96
- name: "generate-test-file",
97
- description: "Generate test file for a source file with exports",
98
- inputSchema: {
99
- type: "object",
100
- properties: {
101
- sourceFile: {
102
- type: "string",
103
- description: "Path to source file",
104
- },
105
- sourceContent: {
106
- type: "string",
107
- description: "Source file content",
108
- },
109
- exports: {
110
- type: "array",
111
- items: {
112
- type: "object",
113
- properties: {
114
- name: { type: "string" },
115
- type: { type: "string" },
116
- },
117
- },
118
- description: "Exported functions/classes to test",
119
- },
120
- testFilePath: {
121
- type: "string",
122
- description: "Path for generated test file",
123
- },
124
- directory: { type: "string", description: "Project directory" },
125
- },
126
- required: [
127
- "sourceFile",
128
- "sourceContent",
129
- "exports",
130
- "testFilePath",
131
- ],
132
- },
133
- },
134
- ],
135
- };
136
- });
137
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
138
- const { name, arguments: args } = request.params;
139
- try {
140
- switch (name) {
141
- case "analyze-test-coverage":
142
- return await this.analyzeTestCoverage(args);
143
- case "design-test-strategy":
144
- return await this.designTestStrategy(args);
145
- case "identify-test-gaps":
146
- return await this.identifyTestGaps(args);
147
- case "optimize-test-coverage":
148
- return await this.optimizeTestCoverage(args);
149
- case "generate-test-file":
150
- return await this.generateTestFile(args);
151
- default:
152
- throw new Error(`Unknown tool: ${name}`);
153
- }
154
- }
155
- catch (error) {
156
- frameworkLogger.log("mcps/testing-strategy", "tool", "error", { tool: name, error: String(error) });
157
- throw error;
158
- }
159
- });
160
30
  }
31
+ // setupToolHandlers removed — handled by XrayKnowledgeSkillBase via this.tools + this.handlers
161
32
  async analyzeTestCoverage(args) {
162
33
  const { projectRoot, includeBreakdown = true, coverageThreshold = 80, } = args;
163
34
  const analysis = this.performTestCoverageAnalysis(projectRoot);
@@ -809,18 +680,9 @@ describe("${pathModule.basename(sourceFile, ".ts")}", () => {${testCases}
809
680
  ];
810
681
  return ignorePatterns.some((pattern) => pattern.test(filePath));
811
682
  }
812
- async run() {
813
- const transport = new StdioServerTransport();
814
- await this.server.connect(transport);
815
- // Use centralized shutdown handler
816
- createGracefulShutdown({
817
- serverName: "testing-strategy.server",
818
- server: this.server,
819
- });
820
- }
821
683
  }
822
684
  // Start the server if run directly
823
- if (import.meta.url === `file://${process.argv[1]}`) {
685
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
824
686
  const server = new XrayTestingStrategyServer();
825
687
  server.run().catch(() => { });
826
688
  }
@@ -4,249 +4,33 @@
4
4
  * Knowledge skill for user interface and user experience design,
5
5
  * component patterns, accessibility compliance, and design system guidance
6
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";
7
+ import * as fs from "fs";
10
8
  import { frameworkLogger } from "../../core/framework-logger.js";
11
- class XrayUIUXDesignServer {
12
- server;
9
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
10
+ class XrayUIUXDesignServer extends XrayKnowledgeSkillBase {
13
11
  constructor() {
14
- this.server = new Server({
15
- name: "ui-ux-design", version: "1.22.67",
16
- }, {
17
- capabilities: {
18
- tools: {},
19
- },
20
- });
12
+ super("ui-ux-design", "3.1.0");
13
+ this.tools = [
14
+ { name: "analyze_ui_component", description: "Analyze UI component for accessibility, usability, and design best practices", inputSchema: { type: "object", properties: { componentCode: { type: "string", description: "React/Vue/Angular component code to analyze" }, framework: { type: "string", enum: ["react", "vue", "angular", "svelte"], description: "UI framework being used" }, checkAccessibility: { type: "boolean", description: "Include WCAG accessibility analysis", default: true }, checkResponsive: { type: "boolean", description: "Include responsive design analysis", default: true } }, required: ["componentCode", "framework"] } },
15
+ { name: "design_component", description: "Design a UI component with proper accessibility and UX patterns", inputSchema: { type: "object", properties: { componentType: { type: "string", enum: ["button", "input", "modal", "navigation", "card", "form"], description: "Type of component to design" }, requirements: { type: "string", description: "Functional requirements and use cases" }, framework: { type: "string", enum: ["react", "vue", "angular", "svelte"], description: "Target UI framework" }, accessibility: { type: "boolean", description: "Include accessibility features", default: true } }, required: ["componentType", "requirements", "framework"] } },
16
+ { name: "audit_accessibility", description: "Perform comprehensive accessibility audit using WCAG guidelines", inputSchema: { type: "object", properties: { htmlContent: { type: "string", description: "HTML content to audit for accessibility" }, cssContent: { type: "string", description: "CSS styles to check for accessibility" }, wcagLevel: { type: "string", enum: ["A", "AA", "AAA"], description: "WCAG conformance level to check", default: "AA" } }, required: ["htmlContent"] } },
17
+ { name: "generate_design_system", description: "Generate a comprehensive design system with colors, typography, and components", inputSchema: { type: "object", properties: { brandGuidelines: { type: "string", description: "Brand colors, fonts, and style guidelines" }, targetAudience: { type: "string", description: "Target user demographics and preferences" }, platform: { type: "string", enum: ["web", "mobile", "desktop"], description: "Target platform" }, includeAccessibility: { type: "boolean", description: "Include accessibility-compliant design tokens", default: true } }, required: ["brandGuidelines", "platform"] } },
18
+ { name: "validate_mobile_design", description: "Validate mobile-first design principles including touch targets, responsive typography, and thumb zone optimization", inputSchema: { type: "object", properties: { componentCode: { type: "string", description: "Component code to validate for mobile" }, viewportWidth: { type: "number", description: "Minimum viewport width to validate (default: 320)", default: 320 }, framework: { type: "string", enum: ["react", "vue", "angular", "svelte", "css"], description: "UI framework or CSS" } }, required: ["componentCode"] } },
19
+ { name: "analyze_visual_hierarchy", description: "Analyze visual hierarchy and cognitive load following 'Don't Make Me Think' principles", inputSchema: { type: "object", properties: { designCode: { type: "string", description: "HTML/CSS/React code of the design to analyze" }, pageType: { type: "string", enum: ["landing", "dashboard", "form", "content", "ecommerce"], description: "Type of page being analyzed" } }, required: ["designCode"] } },
20
+ { name: "recommend_images", description: "Recommend appropriate image libraries, styles, and optimization strategies for the design context", inputSchema: { type: "object", properties: { context: { type: "string", description: "Design context (e.g., 'hero section', 'product gallery', 'team portraits')" }, style: { type: "string", enum: ["photography", "illustration", "3d", "abstract", "minimal"], description: "Preferred visual style" }, budget: { type: "string", enum: ["free", "low", "premium"], description: "Budget constraint", default: "free" } }, required: ["context"] } },
21
+ ];
22
+ this.handlers = {
23
+ analyze_ui_component: async (args) => this.analyzeUIComponent(args),
24
+ design_component: async (args) => this.designComponent(args),
25
+ audit_accessibility: async (args) => this.auditAccessibility(args),
26
+ generate_design_system: async (args) => this.generateDesignSystem(args),
27
+ validate_mobile_design: async (args) => this.validateMobileDesign(args),
28
+ analyze_visual_hierarchy: async (args) => this.analyzeVisualHierarchy(args),
29
+ recommend_images: async (args) => this.recommendImages(args),
30
+ };
21
31
  this.setupToolHandlers();
22
- // Server initialization - removed unnecessary startup logging
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
- name: "validate_mobile_design",
147
- description: "Validate mobile-first design principles including touch targets, responsive typography, and thumb zone optimization",
148
- inputSchema: {
149
- type: "object",
150
- properties: {
151
- componentCode: {
152
- type: "string",
153
- description: "Component code to validate for mobile",
154
- },
155
- viewportWidth: {
156
- type: "number",
157
- description: "Minimum viewport width to validate (default: 320)",
158
- default: 320,
159
- },
160
- framework: {
161
- type: "string",
162
- enum: ["react", "vue", "angular", "svelte", "css"],
163
- description: "UI framework or CSS",
164
- },
165
- },
166
- required: ["componentCode"],
167
- },
168
- },
169
- {
170
- name: "analyze_visual_hierarchy",
171
- description: "Analyze visual hierarchy and cognitive load following 'Don't Make Me Think' principles",
172
- inputSchema: {
173
- type: "object",
174
- properties: {
175
- designCode: {
176
- type: "string",
177
- description: "HTML/CSS/React code of the design to analyze",
178
- },
179
- pageType: {
180
- type: "string",
181
- enum: [
182
- "landing",
183
- "dashboard",
184
- "form",
185
- "content",
186
- "ecommerce",
187
- ],
188
- description: "Type of page being analyzed",
189
- },
190
- },
191
- required: ["designCode"],
192
- },
193
- },
194
- {
195
- name: "recommend_images",
196
- description: "Recommend appropriate image libraries, styles, and optimization strategies for the design context",
197
- inputSchema: {
198
- type: "object",
199
- properties: {
200
- context: {
201
- type: "string",
202
- description: "Design context (e.g., 'hero section', 'product gallery', 'team portraits')",
203
- },
204
- style: {
205
- type: "string",
206
- enum: [
207
- "photography",
208
- "illustration",
209
- "3d",
210
- "abstract",
211
- "minimal",
212
- ],
213
- description: "Preferred visual style",
214
- },
215
- budget: {
216
- type: "string",
217
- enum: ["free", "low", "premium"],
218
- description: "Budget constraint",
219
- default: "free",
220
- },
221
- },
222
- required: ["context"],
223
- },
224
- },
225
- ],
226
- };
227
- });
228
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
229
- const { name, arguments: args } = request.params;
230
- switch (name) {
231
- case "analyze_ui_component":
232
- return await this.analyzeUIComponent(args);
233
- case "design_component":
234
- return await this.designComponent(args);
235
- case "audit_accessibility":
236
- return await this.auditAccessibility(args);
237
- case "generate_design_system":
238
- return await this.generateDesignSystem(args);
239
- case "validate_mobile_design":
240
- return await this.validateMobileDesign(args);
241
- case "analyze_visual_hierarchy":
242
- return await this.analyzeVisualHierarchy(args);
243
- case "recommend_images":
244
- return await this.recommendImages(args);
245
- default:
246
- throw new Error(`Unknown tool: ${name}`);
247
- }
248
- });
249
32
  }
33
+ // setupToolHandlers removed — handled by XrayKnowledgeSkillBase via this.tools + this.handlers
250
34
  async analyzeUIComponent(args) {
251
35
  const { componentCode, framework, checkAccessibility = true, checkResponsive = true, } = args;
252
36
  try {
@@ -1472,66 +1256,9 @@ Available: ${Object.keys(system.components).length} component types
1472
1256
  ],
1473
1257
  };
1474
1258
  }
1475
- async run() {
1476
- const transport = new StdioServerTransport();
1477
- await this.server.connect(transport);
1478
- await frameworkLogger.log("ui-ux-design.server", "-xray-ui-ux-design-mcp-server-running-", "info", { message: "xray UI/UX Design MCP Server running..." });
1479
- const cleanup = async (signal) => {
1480
- await frameworkLogger.log("ui-ux-design.server", "-received-signal-shutting-down-gracefully-", "info", { message: `Received ${signal}, shutting down gracefully...` });
1481
- // Set a timeout to force exit if graceful shutdown fails
1482
- const timeout = setTimeout(() => {
1483
- frameworkLogger.log("mcps/ui-ux-design", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
1484
- process.exit(1);
1485
- }, 5000); // 5 second timeout
1486
- try {
1487
- if (this.server && typeof this.server.close === "function") {
1488
- await this.server.close();
1489
- }
1490
- clearTimeout(timeout);
1491
- await frameworkLogger.log("ui-ux-design.server", "-xray-mcp-server-shut-down-gracefully-", "info", { message: "xray MCP Server shut down gracefully" });
1492
- process.exit(0);
1493
- }
1494
- catch (error) {
1495
- clearTimeout(timeout);
1496
- frameworkLogger.log("mcps/ui-ux-design", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
1497
- process.exit(1);
1498
- }
1499
- };
1500
- // Handle multiple shutdown signals
1501
- process.on("SIGINT", () => cleanup("SIGINT"));
1502
- process.on("SIGTERM", () => cleanup("SIGTERM"));
1503
- process.on("SIGHUP", () => cleanup("SIGHUP"));
1504
- // Monitor parent process (opencode) and shutdown if it dies
1505
- const checkParent = async () => {
1506
- try {
1507
- process.kill(process.ppid, 0); // Check if parent is alive
1508
- setTimeout(checkParent, 1000); // Check again in 1 second
1509
- }
1510
- catch (error) {
1511
- // Parent process died, shut down gracefully
1512
- await frameworkLogger.log("ui-ux-design.server", "-parent-process-opencode-died-shutting-down-mcp-se", "info", {
1513
- message: "Parent process (opencode) died, shutting down MCP server...",
1514
- });
1515
- cleanup("parent-process-death");
1516
- }
1517
- };
1518
- // Start monitoring parent process
1519
- setTimeout(checkParent, 2000); // Start checking after 2 seconds
1520
- // Handle uncaught exceptions and unhandled rejections
1521
- process.on("uncaughtException", (error) => {
1522
- frameworkLogger.log("mcps/ui-ux-design", "uncaughtException", "error", { error: String(error) });
1523
- cleanup("uncaughtException");
1524
- });
1525
- process.on("unhandledRejection", (reason, promise) => {
1526
- frameworkLogger.log("mcps/ui-ux-design", "unhandledRejection", "error", { error: String(reason) });
1527
- cleanup("unhandledRejection");
1528
- });
1529
- process.on("SIGINT", cleanup);
1530
- process.on("SIGTERM", cleanup);
1531
- }
1532
1259
  }
1533
1260
  // Run the server if this file is executed directly
1534
- if (import.meta.url === `file://${process.argv[1]}`) {
1261
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
1535
1262
  const server = new XrayUIUXDesignServer();
1536
1263
  server.run().catch((error) => frameworkLogger.log("mcps/ui-ux-design", "run", "error", { error: String(error) }));
1537
1264
  }