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
@@ -6,14 +6,9 @@
6
6
  * and performance issues in real-time.
7
7
  */
8
8
 
9
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
10
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
- import {
12
- CallToolRequestSchema,
13
- ListToolsRequestSchema,
14
- } from "@modelcontextprotocol/sdk/types.js";
15
- import * as path from "path";
9
+ import * as fs from "fs";
16
10
  import { fileURLToPath } from "url";
11
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
17
12
 
18
13
  interface LogEntry {
19
14
  timestamp: string;
@@ -65,8 +60,7 @@ interface LogAnomaly {
65
60
  count: number;
66
61
  }
67
62
 
68
- class LogMonitorServer {
69
- private server: Server;
63
+ class LogMonitorServer extends XrayKnowledgeSkillBase {
70
64
  private patternLibrary: LogPattern[] = [
71
65
  {
72
66
  id: "memory-leak",
@@ -116,16 +110,8 @@ class LogMonitorServer {
116
110
  ];
117
111
 
118
112
  constructor() {
119
- this.server = new Server(
120
- { name: "log-monitor", version: "1.22.67" },
121
- { capabilities: { tools: {} } },
122
- );
123
- this.setupToolHandlers();
124
- }
125
-
126
- private setupToolHandlers() {
127
- this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
128
- tools: [
113
+ super("log-monitor", "3.1.0");
114
+ this.tools = [
129
115
  {
130
116
  name: "analyze_logs",
131
117
  description:
@@ -238,82 +224,72 @@ class LogMonitorServer {
238
224
  required: ["analysis"],
239
225
  },
240
226
  },
241
- ],
242
- }));
243
-
244
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
245
- const { name, arguments: args = {} } = request.params;
246
-
247
- try {
227
+ ];
228
+ this.handlers = {
229
+ "analyze_logs": async (args) => {
248
230
  const params = args as Record<string, unknown>;
249
- switch (name) {
250
- case "analyze_logs": {
251
- const result = this.analyzeLogs(
252
- (params.logs as string[]) || [],
253
- (params.options as Record<string, unknown>) || {},
254
- );
255
- return {
256
- content: [
257
- { type: "text", text: JSON.stringify(result, null, 2) },
258
- ],
259
- };
260
- }
261
- case "detect_patterns": {
262
- const result = this.detectPatterns(
263
- (params.logs as string[]) || [],
264
- (params.customPatterns as string[]) || [],
265
- (params.sensitivity as number) || 80,
266
- );
267
- return {
268
- content: [
269
- { type: "text", text: JSON.stringify(result, null, 2) },
270
- ],
271
- };
272
- }
273
- case "alert_on_issues": {
274
- const result = this.alertOnIssues(
275
- params.analysis as unknown as LogAnalysis,
276
- (params.thresholds as Record<string, unknown>) || {},
277
- );
278
- return {
279
- content: [
280
- { type: "text", text: JSON.stringify(result, null, 2) },
281
- ],
282
- };
283
- }
284
- case "correlate_events": {
285
- const result = this.correlateEvents(
286
- (params.logSets as Array<{ source: string; logs: string[] }>) ||
287
- [],
288
- (params.timeWindow as number) || 60,
289
- );
290
- return {
291
- content: [
292
- { type: "text", text: JSON.stringify(result, null, 2) },
293
- ],
294
- };
295
- }
296
- case "generate_report": {
297
- const result = this.generateReport(
298
- params.analysis as unknown as LogAnalysis,
299
- (params.format as string) || "json",
300
- );
301
- return {
302
- content: [
303
- { type: "text", text: JSON.stringify(result, null, 2) },
304
- ],
305
- };
306
- }
307
- default:
308
- throw new Error(`Unknown tool: ${name}`);
309
- }
310
- } catch (error) {
231
+ const result = this.analyzeLogs(
232
+ (params.logs as string[]) || [],
233
+ (params.options as Record<string, unknown>) || {},
234
+ );
311
235
  return {
312
- content: [{ type: "text", text: `Error: ${error}` }],
313
- isError: true,
236
+ content: [
237
+ { type: "text", text: JSON.stringify(result, null, 2) },
238
+ ],
314
239
  };
315
- }
316
- });
240
+ },
241
+ "detect_patterns": async (args) => {
242
+ const params = args as Record<string, unknown>;
243
+ const result = this.detectPatterns(
244
+ (params.logs as string[]) || [],
245
+ (params.customPatterns as string[]) || [],
246
+ (params.sensitivity as number) || 80,
247
+ );
248
+ return {
249
+ content: [
250
+ { type: "text", text: JSON.stringify(result, null, 2) },
251
+ ],
252
+ };
253
+ },
254
+ "alert_on_issues": async (args) => {
255
+ const params = args as Record<string, unknown>;
256
+ const result = this.alertOnIssues(
257
+ params.analysis as unknown as LogAnalysis,
258
+ (params.thresholds as Record<string, unknown>) || {},
259
+ );
260
+ return {
261
+ content: [
262
+ { type: "text", text: JSON.stringify(result, null, 2) },
263
+ ],
264
+ };
265
+ },
266
+ "correlate_events": async (args) => {
267
+ const params = args as Record<string, unknown>;
268
+ const result = this.correlateEvents(
269
+ (params.logSets as Array<{ source: string; logs: string[] }>) ||
270
+ [],
271
+ (params.timeWindow as number) || 60,
272
+ );
273
+ return {
274
+ content: [
275
+ { type: "text", text: JSON.stringify(result, null, 2) },
276
+ ],
277
+ };
278
+ },
279
+ "generate_report": async (args) => {
280
+ const params = args as Record<string, unknown>;
281
+ const result = this.generateReport(
282
+ params.analysis as unknown as LogAnalysis,
283
+ (params.format as string) || "json",
284
+ );
285
+ return {
286
+ content: [
287
+ { type: "text", text: JSON.stringify(result, null, 2) },
288
+ ],
289
+ };
290
+ },
291
+ };
292
+ this.setupToolHandlers();
317
293
  }
318
294
 
319
295
  private analyzeLogs(logs: string[], options: Record<string, unknown>): LogAnalysis {
@@ -604,13 +580,10 @@ ${analysis.recommendations.map((r) => `- ${r}`).join("\n")}
604
580
  return recs;
605
581
  }
606
582
 
607
- async run() {
608
- const transport = new StdioServerTransport();
609
- await this.server.connect(transport);
610
- }
583
+
611
584
  }
612
585
 
613
- const entryPoint = path.resolve(process.argv[1] ?? "");
586
+ const entryPoint = fs.realpathSync(process.argv[1] ?? "");
614
587
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
615
588
  const server = new LogMonitorServer();
616
589
  server.run();
@@ -5,14 +5,9 @@
5
5
  * React Native, Flutter, and mobile performance optimization
6
6
  */
7
7
 
8
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
- import {
11
- CallToolRequestSchema,
12
- ListToolsRequestSchema,
13
- } from "@modelcontextprotocol/sdk/types.js";
14
- import * as path from "path";
8
+ import * as fs from "fs";
15
9
  import { fileURLToPath } from "url";
10
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
16
11
 
17
12
  interface IOSBlueprint {
18
13
  projectName: string;
@@ -107,28 +102,10 @@ interface AppStoreMetadataArgs {
107
102
  features?: string[];
108
103
  }
109
104
 
110
- class XrayMobileDevelopmentServer {
111
- private server: Server;
112
-
105
+ class XrayMobileDevelopmentServer extends XrayKnowledgeSkillBase {
113
106
  constructor() {
114
- this.server = new Server(
115
- {
116
- name: "mobile-development", version: "1.22.67",
117
- },
118
- {
119
- capabilities: {
120
- tools: {},
121
- },
122
- },
123
- );
124
-
125
- this.setupToolHandlers();
126
- }
127
-
128
- private setupToolHandlers() {
129
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
130
- return {
131
- tools: [
107
+ super("mobile-development", "3.1.0");
108
+ this.tools = [
132
109
  {
133
110
  name: "ios_blueprint",
134
111
  description:
@@ -305,30 +282,16 @@ class XrayMobileDevelopmentServer {
305
282
  required: ["appName", "platform"],
306
283
  },
307
284
  },
308
- ],
309
- };
310
- });
311
-
312
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
313
- const { name, arguments: args } = request.params;
314
-
315
- switch (name) {
316
- case "ios_blueprint":
317
- return await this.generateIOSBlueprint(args ?? {});
318
- case "android_blueprint":
319
- return await this.generateAndroidBlueprint(args ?? {});
320
- case "react_native_boilerplate":
321
- return await this.generateReactNativeBlueprint(args ?? {});
322
- case "flutter_boilerplate":
323
- return await this.generateFlutterBlueprint(args ?? {});
324
- case "mobile_performance_profile":
325
- return await this.analyzeMobilePerformance(args ?? {});
326
- case "app_store_metadata":
327
- return await this.generateAppStoreMetadata(args ?? {});
328
- default:
329
- throw new Error(`Unknown tool: ${name}`);
330
- }
331
- });
285
+ ];
286
+ this.handlers = {
287
+ "ios_blueprint": async (args) => this.generateIOSBlueprint((args ?? {}) as Record<string, unknown>),
288
+ "android_blueprint": async (args) => this.generateAndroidBlueprint((args ?? {}) as Record<string, unknown>),
289
+ "react_native_boilerplate": async (args) => this.generateReactNativeBlueprint((args ?? {}) as Record<string, unknown>),
290
+ "flutter_boilerplate": async (args) => this.generateFlutterBlueprint((args ?? {}) as Record<string, unknown>),
291
+ "mobile_performance_profile": async (args) => this.analyzeMobilePerformance((args ?? {}) as Record<string, unknown>),
292
+ "app_store_metadata": async (args) => this.generateAppStoreMetadata((args ?? {}) as Record<string, unknown>),
293
+ };
294
+ this.setupToolHandlers();
332
295
  }
333
296
 
334
297
  private async generateIOSBlueprint(args: Record<string, unknown>) {
@@ -657,16 +620,13 @@ class HomePage extends StatelessWidget {
657
620
  };
658
621
  }
659
622
 
660
- async start() {
661
- const transport = new StdioServerTransport();
662
- await this.server.connect(transport);
663
- }
623
+
664
624
  }
665
625
 
666
- const entryPoint = path.resolve(process.argv[1] ?? "");
626
+ const entryPoint = fs.realpathSync(process.argv[1] ?? "");
667
627
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
668
628
  const server = new XrayMobileDevelopmentServer();
669
- server.start().catch(() => {});
629
+ server.run().catch(() => {});
670
630
  }
671
631
 
672
632
  export { XrayMobileDevelopmentServer };
@@ -8,15 +8,10 @@
8
8
  * Production-ready implementation with real analysis logic.
9
9
  */
10
10
 
11
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
12
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
13
- import {
14
- CallToolRequestSchema,
15
- ListToolsRequestSchema,
16
- } from "@modelcontextprotocol/sdk/types.js";
17
- import * as path from "path";
11
+ import * as fs from "fs";
18
12
  import { fileURLToPath } from "url";
19
13
  import { frameworkLogger } from "../../core/framework-logger.js";
14
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
20
15
 
21
16
  /* ============================================================================
22
17
  * Type Definitions
@@ -162,24 +157,10 @@ interface VisualComparison {
162
157
  * Analysis Engine
163
158
  * ============================================================================ */
164
159
 
165
- class MultimodalLookerServer {
166
- private server: Server;
167
-
160
+ class MultimodalLookerServer extends XrayKnowledgeSkillBase {
168
161
  constructor() {
169
- this.server = new Server(
170
- { name: "multimodal-looker", version: "1.22.67" },
171
- { capabilities: { tools: {} } },
172
- );
173
- this.setupToolHandlers();
174
- }
175
-
176
- /* --------------------------------------------------------------------------
177
- * Tool Registration
178
- * -------------------------------------------------------------------------- */
179
-
180
- private setupToolHandlers() {
181
- this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
182
- tools: [
162
+ super("multimodal-looker", "3.1.0");
163
+ this.tools = [
183
164
  {
184
165
  name: "analyze-screenshot",
185
166
  description:
@@ -309,35 +290,15 @@ class MultimodalLookerServer {
309
290
  required: ["imageA", "imageB"],
310
291
  },
311
292
  },
312
- ],
313
- }));
314
-
315
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
316
- const { name, arguments: args = {} } = request.params;
317
- const params = args as Record<string, unknown>;
318
-
319
- try {
320
- switch (name) {
321
- case "analyze-screenshot":
322
- return this.handleAnalyzeScreenshot(params);
323
- case "describe-diagram":
324
- return this.handleDescribeDiagram(params);
325
- case "review-ui-mockup":
326
- return this.handleReviewUIMockup(params);
327
- case "extract-visual-specs":
328
- return this.handleExtractVisualSpecs(params);
329
- case "compare-designs":
330
- return this.handleCompareDesigns(params);
331
- default:
332
- throw new Error(`Unknown tool: ${name}`);
333
- }
334
- } catch (error) {
335
- return {
336
- content: [{ type: "text", text: `Error: ${error}` }],
337
- isError: true,
338
- };
339
- }
340
- });
293
+ ];
294
+ this.handlers = {
295
+ "analyze-screenshot": async (args) => this.handleAnalyzeScreenshot(args as Record<string, unknown>),
296
+ "describe-diagram": async (args) => this.handleDescribeDiagram(args as Record<string, unknown>),
297
+ "review-ui-mockup": async (args) => this.handleReviewUIMockup(args as Record<string, unknown>),
298
+ "extract-visual-specs": async (args) => this.handleExtractVisualSpecs(args as Record<string, unknown>),
299
+ "compare-designs": async (args) => this.handleCompareDesigns(args as Record<string, unknown>),
300
+ };
301
+ this.setupToolHandlers();
341
302
  }
342
303
 
343
304
  /* --------------------------------------------------------------------------
@@ -1482,17 +1443,10 @@ class MultimodalLookerServer {
1482
1443
  return recommendations;
1483
1444
  }
1484
1445
 
1485
- /* --------------------------------------------------------------------------
1486
- * Server Lifecycle
1487
- * -------------------------------------------------------------------------- */
1488
1446
 
1489
- async run(): Promise<void> {
1490
- const transport = new StdioServerTransport();
1491
- await this.server.connect(transport);
1492
- }
1493
1447
  }
1494
1448
 
1495
- const entryPoint = path.resolve(process.argv[1] ?? "");
1449
+ const entryPoint = fs.realpathSync(process.argv[1] ?? "");
1496
1450
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
1497
1451
  const server = new MultimodalLookerServer();
1498
1452
  server.run().catch((err) => frameworkLogger.log('multimodal-looker', 'run-error', 'error', { error: String(err) }));
@@ -5,18 +5,12 @@
5
5
  * profiling, benchmarking, memory analysis, and Core Web Vitals measurement
6
6
  */
7
7
 
8
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
- import {
11
- CallToolRequestSchema,
12
- ListToolsRequestSchema,
13
- } from "@modelcontextprotocol/sdk/types.js";
14
8
  import { frameworkLogger, generateJobId } from "../../core/framework-logger.js";
15
- import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
16
9
  import fs from "fs";
17
10
  import path from "path";
18
11
  import os from "os";
19
12
  import { execSync } from "child_process";
13
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
20
14
 
21
15
  interface ProfileApplicationArgs {
22
16
  projectRoot: string;
@@ -217,30 +211,10 @@ interface McpToolResponse {
217
211
  data?: Record<string, unknown>;
218
212
  }
219
213
 
220
- class XrayPerformanceOptimizationServer {
221
- private server: Server;
222
- private startTime: number;
223
-
214
+ class XrayPerformanceOptimizationServer extends XrayKnowledgeSkillBase {
224
215
  constructor() {
225
- this.server = new Server(
226
- {
227
- name: "performance-optimization", version: "1.22.67",
228
- },
229
- {
230
- capabilities: {
231
- tools: {},
232
- },
233
- },
234
- );
235
-
236
- this.startTime = Date.now();
237
- this.setupToolHandlers();
238
- }
239
-
240
- private setupToolHandlers() {
241
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
242
- return {
243
- tools: [
216
+ super("performance-optimization", "3.1.0");
217
+ this.tools = [
244
218
  {
245
219
  name: "profile-application",
246
220
  description: "Run comprehensive performance profiling on the codebase to identify bottlenecks and hot paths",
@@ -323,38 +297,15 @@ class XrayPerformanceOptimizationServer {
323
297
  required: ["projectRoot"]
324
298
  }
325
299
  }
326
- ]
327
- };
328
- });
329
-
330
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
331
- const { name, arguments: args } = request.params;
332
-
333
- try {
334
- switch (name) {
335
- case "profile-application":
336
- return await this.handleProfileApplication(args as unknown as ProfileApplicationArgs) as never;
337
- case "analyze-memory":
338
- return await this.handleAnalyzeMemory(args as unknown as AnalyzeMemoryArgs) as never;
339
- case "benchmark-code":
340
- return await this.handleBenchmarkCode(args as unknown as BenchmarkCodeArgs) as never;
341
- case "suggest-optimizations":
342
- return await this.handleSuggestOptimizations(args as unknown as SuggestOptimizationsArgs) as never;
343
- case "measure-core-web-vitals":
344
- return await this.handleMeasureCoreWebVitals(args as unknown as MeasureCoreWebVitalsArgs) as never;
345
- default:
346
- throw new Error(`Unknown tool: ${name}`);
347
- }
348
- } catch (error) {
349
- frameworkLogger.log("mcp/performance-optimization", "tool-handler", "error", { tool: name, error: String(error) });
350
- return {
351
- content: [{
352
- type: "text",
353
- text: `Error executing tool "${name}": ${error instanceof Error ? error.message : String(error)}`
354
- }]
355
- };
356
- }
357
- });
300
+ ];
301
+ this.handlers = {
302
+ "profile-application": async (args) => this.handleProfileApplication(args as unknown as ProfileApplicationArgs),
303
+ "analyze-memory": async (args) => this.handleAnalyzeMemory(args as unknown as AnalyzeMemoryArgs),
304
+ "benchmark-code": async (args) => this.handleBenchmarkCode(args as unknown as BenchmarkCodeArgs),
305
+ "suggest-optimizations": async (args) => this.handleSuggestOptimizations(args as unknown as SuggestOptimizationsArgs),
306
+ "measure-core-web-vitals": async (args) => this.handleMeasureCoreWebVitals(args as unknown as MeasureCoreWebVitalsArgs),
307
+ };
308
+ this.setupToolHandlers();
358
309
  }
359
310
 
360
311
  private async handleProfileApplication(args: ProfileApplicationArgs): Promise<McpToolResponse> {
@@ -2040,22 +1991,10 @@ ${result.recommendations.slice(0, 5).map((r, i) => `${i + 1}. ${r}`).join("\n")
2040
1991
  return files.slice(0, 100);
2041
1992
  }
2042
1993
 
2043
- async run(): Promise<void> {
2044
- const transport = new StdioServerTransport();
2045
- await this.server.connect(transport);
2046
-
2047
- createGracefulShutdown({
2048
- serverName: "performance-optimization.server",
2049
- server: this.server,
2050
- });
2051
1994
 
2052
- frameworkLogger.log("mcp/performance-optimization", "server-started", "info", {
2053
- uptime: Date.now() - this.startTime
2054
- });
2055
- }
2056
1995
  }
2057
1996
 
2058
- if (import.meta.url === `file://${process.argv[1]}`) {
1997
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
2059
1998
  const server = new XrayPerformanceOptimizationServer();
2060
1999
  server.run().catch((error) => {
2061
2000
  frameworkLogger.log("mcp/performance-optimization", "run", "error", { error: String(error) });