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
@@ -7,179 +7,150 @@
7
7
  *
8
8
  * Production-ready implementation with real analysis logic.
9
9
  */
10
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
11
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
- import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
13
- import * as path from "path";
10
+ import * as fs from "fs";
14
11
  import { fileURLToPath } from "url";
15
12
  import { frameworkLogger } from "../../core/framework-logger.js";
13
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
16
14
  /* ============================================================================
17
15
  * Analysis Engine
18
16
  * ============================================================================ */
19
- class MultimodalLookerServer {
20
- server;
17
+ class MultimodalLookerServer extends XrayKnowledgeSkillBase {
21
18
  constructor() {
22
- this.server = new Server({ name: "multimodal-looker", version: "1.22.67" }, { capabilities: { tools: {} } });
23
- this.setupToolHandlers();
24
- }
25
- /* --------------------------------------------------------------------------
26
- * Tool Registration
27
- * -------------------------------------------------------------------------- */
28
- setupToolHandlers() {
29
- this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
30
- tools: [
31
- {
32
- name: "analyze-screenshot",
33
- description: "Extract UI elements from screenshots. Identifies components, layout structure, and provides detailed element analysis for code generation.",
34
- inputSchema: {
35
- type: "object",
36
- properties: {
37
- imageData: {
38
- type: "string",
39
- description: "Base64 encoded image or detailed visual description",
40
- },
41
- extractComponents: {
42
- type: "boolean",
43
- default: true,
44
- description: "Extract individual UI components",
45
- },
46
- checkAccessibility: {
47
- type: "boolean",
48
- default: true,
49
- description: "Check for accessibility issues",
50
- },
51
- analyzeLayout: {
52
- type: "boolean",
53
- default: true,
54
- description: "Analyze layout structure and grid",
55
- },
19
+ super("multimodal-looker", "3.1.0");
20
+ this.tools = [
21
+ {
22
+ name: "analyze-screenshot",
23
+ description: "Extract UI elements from screenshots. Identifies components, layout structure, and provides detailed element analysis for code generation.",
24
+ inputSchema: {
25
+ type: "object",
26
+ properties: {
27
+ imageData: {
28
+ type: "string",
29
+ description: "Base64 encoded image or detailed visual description",
30
+ },
31
+ extractComponents: {
32
+ type: "boolean",
33
+ default: true,
34
+ description: "Extract individual UI components",
35
+ },
36
+ checkAccessibility: {
37
+ type: "boolean",
38
+ default: true,
39
+ description: "Check for accessibility issues",
40
+ },
41
+ analyzeLayout: {
42
+ type: "boolean",
43
+ default: true,
44
+ description: "Analyze layout structure and grid",
56
45
  },
57
- required: ["imageData"],
58
46
  },
47
+ required: ["imageData"],
59
48
  },
60
- {
61
- name: "describe-diagram",
62
- description: "Parse architecture and flow diagrams. Extracts nodes, edges, relationships for understanding system design.",
63
- inputSchema: {
64
- type: "object",
65
- properties: {
66
- imageData: {
67
- type: "string",
68
- description: "Diagram image or description",
69
- },
70
- diagramType: {
71
- type: "string",
72
- enum: ["auto", "flowchart", "sequence", "class", "architecture", "erd", "state"],
73
- default: "auto",
74
- },
75
- extractMetadata: {
76
- type: "boolean",
77
- default: true,
78
- description: "Extract additional metadata about the diagram",
79
- },
49
+ },
50
+ {
51
+ name: "describe-diagram",
52
+ description: "Parse architecture and flow diagrams. Extracts nodes, edges, relationships for understanding system design.",
53
+ inputSchema: {
54
+ type: "object",
55
+ properties: {
56
+ imageData: {
57
+ type: "string",
58
+ description: "Diagram image or description",
59
+ },
60
+ diagramType: {
61
+ type: "string",
62
+ enum: ["auto", "flowchart", "sequence", "class", "architecture", "erd", "state"],
63
+ default: "auto",
64
+ },
65
+ extractMetadata: {
66
+ type: "boolean",
67
+ default: true,
68
+ description: "Extract additional metadata about the diagram",
80
69
  },
81
- required: ["imageData"],
82
70
  },
71
+ required: ["imageData"],
83
72
  },
84
- {
85
- name: "review-ui-mockup",
86
- description: "Evaluate UI mockups against best practices. Checks consistency, accessibility, and provides improvement suggestions.",
87
- inputSchema: {
88
- type: "object",
89
- properties: {
90
- imageData: {
91
- type: "string",
92
- description: "UI mockup image or description",
93
- },
94
- framework: {
95
- type: "string",
96
- enum: ["react", "vue", "angular", "svelte", "html"],
97
- default: "react",
98
- },
99
- checkResponsive: {
100
- type: "boolean",
101
- default: true,
102
- description: "Check for responsive design patterns",
103
- },
73
+ },
74
+ {
75
+ name: "review-ui-mockup",
76
+ description: "Evaluate UI mockups against best practices. Checks consistency, accessibility, and provides improvement suggestions.",
77
+ inputSchema: {
78
+ type: "object",
79
+ properties: {
80
+ imageData: {
81
+ type: "string",
82
+ description: "UI mockup image or description",
83
+ },
84
+ framework: {
85
+ type: "string",
86
+ enum: ["react", "vue", "angular", "svelte", "html"],
87
+ default: "react",
88
+ },
89
+ checkResponsive: {
90
+ type: "boolean",
91
+ default: true,
92
+ description: "Check for responsive design patterns",
104
93
  },
105
- required: ["imageData"],
106
94
  },
95
+ required: ["imageData"],
107
96
  },
108
- {
109
- name: "extract-visual-specs",
110
- description: "Convert visual content to design specifications. Extracts colors, spacing, typography, and other design tokens.",
111
- inputSchema: {
112
- type: "object",
113
- properties: {
114
- imageData: {
115
- type: "string",
116
- description: "Visual content to analyze",
117
- },
118
- includeValues: {
119
- type: "boolean",
120
- default: true,
121
- description: "Include actual CSS values",
122
- },
123
- format: {
124
- type: "string",
125
- enum: ["css", "tailwind", "json"],
126
- default: "css",
127
- },
97
+ },
98
+ {
99
+ name: "extract-visual-specs",
100
+ description: "Convert visual content to design specifications. Extracts colors, spacing, typography, and other design tokens.",
101
+ inputSchema: {
102
+ type: "object",
103
+ properties: {
104
+ imageData: {
105
+ type: "string",
106
+ description: "Visual content to analyze",
107
+ },
108
+ includeValues: {
109
+ type: "boolean",
110
+ default: true,
111
+ description: "Include actual CSS values",
112
+ },
113
+ format: {
114
+ type: "string",
115
+ enum: ["css", "tailwind", "json"],
116
+ default: "css",
128
117
  },
129
- required: ["imageData"],
130
118
  },
119
+ required: ["imageData"],
131
120
  },
132
- {
133
- name: "compare-designs",
134
- description: "Compare two designs for consistency. Identifies differences in colors, layout, typography, and components.",
135
- inputSchema: {
136
- type: "object",
137
- properties: {
138
- imageA: {
139
- type: "string",
140
- description: "Reference design",
141
- },
142
- imageB: {
143
- type: "string",
144
- description: "Design to compare",
145
- },
146
- tolerance: {
147
- type: "number",
148
- default: 5,
149
- description: "Difference tolerance threshold (0-100)",
150
- },
121
+ },
122
+ {
123
+ name: "compare-designs",
124
+ description: "Compare two designs for consistency. Identifies differences in colors, layout, typography, and components.",
125
+ inputSchema: {
126
+ type: "object",
127
+ properties: {
128
+ imageA: {
129
+ type: "string",
130
+ description: "Reference design",
131
+ },
132
+ imageB: {
133
+ type: "string",
134
+ description: "Design to compare",
135
+ },
136
+ tolerance: {
137
+ type: "number",
138
+ default: 5,
139
+ description: "Difference tolerance threshold (0-100)",
151
140
  },
152
- required: ["imageA", "imageB"],
153
141
  },
142
+ required: ["imageA", "imageB"],
154
143
  },
155
- ],
156
- }));
157
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
158
- const { name, arguments: args = {} } = request.params;
159
- const params = args;
160
- try {
161
- switch (name) {
162
- case "analyze-screenshot":
163
- return this.handleAnalyzeScreenshot(params);
164
- case "describe-diagram":
165
- return this.handleDescribeDiagram(params);
166
- case "review-ui-mockup":
167
- return this.handleReviewUIMockup(params);
168
- case "extract-visual-specs":
169
- return this.handleExtractVisualSpecs(params);
170
- case "compare-designs":
171
- return this.handleCompareDesigns(params);
172
- default:
173
- throw new Error(`Unknown tool: ${name}`);
174
- }
175
- }
176
- catch (error) {
177
- return {
178
- content: [{ type: "text", text: `Error: ${error}` }],
179
- isError: true,
180
- };
181
- }
182
- });
144
+ },
145
+ ];
146
+ this.handlers = {
147
+ "analyze-screenshot": async (args) => this.handleAnalyzeScreenshot(args),
148
+ "describe-diagram": async (args) => this.handleDescribeDiagram(args),
149
+ "review-ui-mockup": async (args) => this.handleReviewUIMockup(args),
150
+ "extract-visual-specs": async (args) => this.handleExtractVisualSpecs(args),
151
+ "compare-designs": async (args) => this.handleCompareDesigns(args),
152
+ };
153
+ this.setupToolHandlers();
183
154
  }
184
155
  /* --------------------------------------------------------------------------
185
156
  * Tool Handlers
@@ -1048,15 +1019,8 @@ class MultimodalLookerServer {
1048
1019
  }
1049
1020
  return recommendations;
1050
1021
  }
1051
- /* --------------------------------------------------------------------------
1052
- * Server Lifecycle
1053
- * -------------------------------------------------------------------------- */
1054
- async run() {
1055
- const transport = new StdioServerTransport();
1056
- await this.server.connect(transport);
1057
- }
1058
1022
  }
1059
- const entryPoint = path.resolve(process.argv[1] ?? "");
1023
+ const entryPoint = fs.realpathSync(process.argv[1] ?? "");
1060
1024
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
1061
1025
  const server = new MultimodalLookerServer();
1062
1026
  server.run().catch((err) => frameworkLogger.log('multimodal-looker', 'run-error', 'error', { error: String(err) }));
@@ -4,144 +4,105 @@
4
4
  * Knowledge skill for performance analysis, optimization recommendations,
5
5
  * profiling, benchmarking, memory analysis, and Core Web Vitals measurement
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 { frameworkLogger, generateJobId } from "../../core/framework-logger.js";
11
- import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
12
8
  import fs from "fs";
13
9
  import path from "path";
14
- class XrayPerformanceOptimizationServer {
15
- server;
16
- startTime;
10
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
11
+ class XrayPerformanceOptimizationServer extends XrayKnowledgeSkillBase {
17
12
  constructor() {
18
- this.server = new Server({
19
- name: "performance-optimization", version: "1.22.67",
20
- }, {
21
- capabilities: {
22
- tools: {},
13
+ super("performance-optimization", "3.1.0");
14
+ this.tools = [
15
+ {
16
+ name: "profile-application",
17
+ description: "Run comprehensive performance profiling on the codebase to identify bottlenecks and hot paths",
18
+ inputSchema: {
19
+ type: "object",
20
+ properties: {
21
+ projectRoot: { type: "string", description: "Path to the project root directory" },
22
+ scope: {
23
+ type: "string",
24
+ enum: ["full", "runtime", "build", "memory"],
25
+ default: "full",
26
+ description: "Scope of profiling analysis"
27
+ },
28
+ duration: { type: "number", default: 30, description: "Profiling duration in seconds" },
29
+ includeHotPaths: { type: "boolean", default: true, description: "Include hot path analysis" }
30
+ },
31
+ required: ["projectRoot"]
32
+ }
23
33
  },
24
- });
25
- this.startTime = Date.now();
26
- this.setupToolHandlers();
27
- }
28
- setupToolHandlers() {
29
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
30
- return {
31
- tools: [
32
- {
33
- name: "profile-application",
34
- description: "Run comprehensive performance profiling on the codebase to identify bottlenecks and hot paths",
35
- inputSchema: {
36
- type: "object",
37
- properties: {
38
- projectRoot: { type: "string", description: "Path to the project root directory" },
39
- scope: {
40
- type: "string",
41
- enum: ["full", "runtime", "build", "memory"],
42
- default: "full",
43
- description: "Scope of profiling analysis"
44
- },
45
- duration: { type: "number", default: 30, description: "Profiling duration in seconds" },
46
- includeHotPaths: { type: "boolean", default: true, description: "Include hot path analysis" }
47
- },
48
- required: ["projectRoot"]
49
- }
34
+ {
35
+ name: "analyze-memory",
36
+ description: "Perform memory leak detection and heap analysis to identify memory issues",
37
+ inputSchema: {
38
+ type: "object",
39
+ properties: {
40
+ projectRoot: { type: "string", description: "Path to the project root directory" },
41
+ heapSnapshot: { type: "boolean", default: true, description: "Generate heap snapshot analysis" },
42
+ gcAnalysis: { type: "boolean", default: true, description: "Analyze garbage collection patterns" },
43
+ leakDetection: { type: "boolean", default: true, description: "Detect potential memory leaks" }
50
44
  },
51
- {
52
- name: "analyze-memory",
53
- description: "Perform memory leak detection and heap analysis to identify memory issues",
54
- inputSchema: {
55
- type: "object",
56
- properties: {
57
- projectRoot: { type: "string", description: "Path to the project root directory" },
58
- heapSnapshot: { type: "boolean", default: true, description: "Generate heap snapshot analysis" },
59
- gcAnalysis: { type: "boolean", default: true, description: "Analyze garbage collection patterns" },
60
- leakDetection: { type: "boolean", default: true, description: "Detect potential memory leaks" }
61
- },
62
- required: ["projectRoot"]
63
- }
45
+ required: ["projectRoot"]
46
+ }
47
+ },
48
+ {
49
+ name: "benchmark-code",
50
+ description: "Execute and compare benchmark results for code performance measurement",
51
+ inputSchema: {
52
+ type: "object",
53
+ properties: {
54
+ projectRoot: { type: "string", description: "Path to the project root directory" },
55
+ testFile: { type: "string", description: "Specific benchmark test file to run" },
56
+ iterations: { type: "number", default: 100, description: "Number of benchmark iterations" },
57
+ warmupRuns: { type: "number", default: 10, description: "Number of warmup runs" },
58
+ compareBaseline: { type: "boolean", default: false, description: "Compare results against baseline" }
64
59
  },
65
- {
66
- name: "benchmark-code",
67
- description: "Execute and compare benchmark results for code performance measurement",
68
- inputSchema: {
69
- type: "object",
70
- properties: {
71
- projectRoot: { type: "string", description: "Path to the project root directory" },
72
- testFile: { type: "string", description: "Specific benchmark test file to run" },
73
- iterations: { type: "number", default: 100, description: "Number of benchmark iterations" },
74
- warmupRuns: { type: "number", default: 10, description: "Number of warmup runs" },
75
- compareBaseline: { type: "boolean", default: false, description: "Compare results against baseline" }
76
- },
77
- required: ["projectRoot"]
78
- }
60
+ required: ["projectRoot"]
61
+ }
62
+ },
63
+ {
64
+ name: "suggest-optimizations",
65
+ description: "Generate specific, actionable optimization suggestions based on code analysis",
66
+ inputSchema: {
67
+ type: "object",
68
+ properties: {
69
+ projectRoot: { type: "string", description: "Path to the project root directory" },
70
+ focus: {
71
+ type: "string",
72
+ enum: ["cpu", "memory", "network", "io", "all"],
73
+ default: "all",
74
+ description: "Focus area for optimizations"
75
+ },
76
+ threshold: { type: "number", default: 100, description: "Performance threshold in ms" }
79
77
  },
80
- {
81
- name: "suggest-optimizations",
82
- description: "Generate specific, actionable optimization suggestions based on code analysis",
83
- inputSchema: {
84
- type: "object",
85
- properties: {
86
- projectRoot: { type: "string", description: "Path to the project root directory" },
87
- focus: {
88
- type: "string",
89
- enum: ["cpu", "memory", "network", "io", "all"],
90
- default: "all",
91
- description: "Focus area for optimizations"
92
- },
93
- threshold: { type: "number", default: 100, description: "Performance threshold in ms" }
94
- },
95
- required: ["projectRoot"]
96
- }
78
+ required: ["projectRoot"]
79
+ }
80
+ },
81
+ {
82
+ name: "measure-core-web-vitals",
83
+ description: "Analyze Core Web Vitals metrics (LCP, INP, CLS) for web application performance",
84
+ inputSchema: {
85
+ type: "object",
86
+ properties: {
87
+ projectRoot: { type: "string", description: "Path to the project root directory" },
88
+ analyzeBundle: { type: "boolean", default: true, description: "Analyze JavaScript bundle" },
89
+ checkAccessibility: { type: "boolean", default: true, description: "Check accessibility factors affecting CLS" },
90
+ measureLCP: { type: "boolean", default: true, description: "Measure Largest Contentful Paint" },
91
+ measureINP: { type: "boolean", default: true, description: "Measure Interaction to Next Paint" },
92
+ measureCLS: { type: "boolean", default: true, description: "Measure Cumulative Layout Shift" }
97
93
  },
98
- {
99
- name: "measure-core-web-vitals",
100
- description: "Analyze Core Web Vitals metrics (LCP, INP, CLS) for web application performance",
101
- inputSchema: {
102
- type: "object",
103
- properties: {
104
- projectRoot: { type: "string", description: "Path to the project root directory" },
105
- analyzeBundle: { type: "boolean", default: true, description: "Analyze JavaScript bundle" },
106
- checkAccessibility: { type: "boolean", default: true, description: "Check accessibility factors affecting CLS" },
107
- measureLCP: { type: "boolean", default: true, description: "Measure Largest Contentful Paint" },
108
- measureINP: { type: "boolean", default: true, description: "Measure Interaction to Next Paint" },
109
- measureCLS: { type: "boolean", default: true, description: "Measure Cumulative Layout Shift" }
110
- },
111
- required: ["projectRoot"]
112
- }
113
- }
114
- ]
115
- };
116
- });
117
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
118
- const { name, arguments: args } = request.params;
119
- try {
120
- switch (name) {
121
- case "profile-application":
122
- return await this.handleProfileApplication(args);
123
- case "analyze-memory":
124
- return await this.handleAnalyzeMemory(args);
125
- case "benchmark-code":
126
- return await this.handleBenchmarkCode(args);
127
- case "suggest-optimizations":
128
- return await this.handleSuggestOptimizations(args);
129
- case "measure-core-web-vitals":
130
- return await this.handleMeasureCoreWebVitals(args);
131
- default:
132
- throw new Error(`Unknown tool: ${name}`);
94
+ required: ["projectRoot"]
133
95
  }
134
96
  }
135
- catch (error) {
136
- frameworkLogger.log("mcp/performance-optimization", "tool-handler", "error", { tool: name, error: String(error) });
137
- return {
138
- content: [{
139
- type: "text",
140
- text: `Error executing tool "${name}": ${error instanceof Error ? error.message : String(error)}`
141
- }]
142
- };
143
- }
144
- });
97
+ ];
98
+ this.handlers = {
99
+ "profile-application": async (args) => this.handleProfileApplication(args),
100
+ "analyze-memory": async (args) => this.handleAnalyzeMemory(args),
101
+ "benchmark-code": async (args) => this.handleBenchmarkCode(args),
102
+ "suggest-optimizations": async (args) => this.handleSuggestOptimizations(args),
103
+ "measure-core-web-vitals": async (args) => this.handleMeasureCoreWebVitals(args),
104
+ };
105
+ this.setupToolHandlers();
145
106
  }
146
107
  async handleProfileApplication(args) {
147
108
  const { projectRoot, scope = "full", duration = 30, includeHotPaths = true } = args;
@@ -1566,19 +1527,8 @@ ${result.recommendations.slice(0, 5).map((r, i) => `${i + 1}. ${r}`).join("\n")
1566
1527
  }
1567
1528
  return files.slice(0, 100);
1568
1529
  }
1569
- async run() {
1570
- const transport = new StdioServerTransport();
1571
- await this.server.connect(transport);
1572
- createGracefulShutdown({
1573
- serverName: "performance-optimization.server",
1574
- server: this.server,
1575
- });
1576
- frameworkLogger.log("mcp/performance-optimization", "server-started", "info", {
1577
- uptime: Date.now() - this.startTime
1578
- });
1579
- }
1580
1530
  }
1581
- if (import.meta.url === `file://${process.argv[1]}`) {
1531
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
1582
1532
  const server = new XrayPerformanceOptimizationServer();
1583
1533
  server.run().catch((error) => {
1584
1534
  frameworkLogger.log("mcp/performance-optimization", "run", "error", { error: String(error) });