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
@@ -5,16 +5,9 @@
5
5
  * code documentation maintenance, and technical writing assistance
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
- type CallToolResult,
14
- } from "@modelcontextprotocol/sdk/types.js";
15
8
  import * as fs from "fs";
16
9
  import * as path from "path";
17
- import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
10
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
18
11
 
19
12
  interface DocumentationAnalysis {
20
13
  completeness: number; // 0-100
@@ -160,199 +153,30 @@ interface ProjectStructureAnalysis {
160
153
  structure: Record<string, unknown>;
161
154
  }
162
155
 
163
- class XrayDocumentationGenerationServer {
164
- private server: Server;
156
+ class XrayDocumentationGenerationServer extends XrayKnowledgeSkillBase {
165
157
 
166
158
  constructor() {
167
- this.server = new Server(
168
- {
169
- name: "documentation-generation", version: "1.22.67",
170
- },
171
- {
172
- capabilities: {
173
- tools: {},
174
- },
175
- },
176
- );
159
+ super("documentation-generation", "3.1.0");
177
160
 
178
- this.setupToolHandlers();
179
- // Server initialization - removed unnecessary startup logging
180
- }
161
+ this.tools = [
162
+ { name: "analyze_documentation", description: "Analyze existing documentation for completeness, quality, and gaps", inputSchema: { type: "object", properties: { docsPath: { type: "string", description: "Path to documentation directory or files" }, codePath: { type: "string", description: "Path to corresponding code for comparison" }, docTypes: { type: "array", items: { type: "string", enum: ["readme", "api", "code", "architecture", "deployment", "user-guide"] }, description: "Types of documentation to analyze" } }, required: ["docsPath"] } },
163
+ { name: "generate_api_docs", description: "Generate comprehensive API documentation from code analysis", inputSchema: { type: "object", properties: { codePath: { type: "string", description: "Path to API code files" }, framework: { type: "string", enum: ["express", "fastify", "koa", "nestjs", "spring", "django", "flask", "fastapi"], description: "API framework being used" }, format: { type: "string", enum: ["openapi", "markdown", "html", "postman"], description: "Output documentation format", default: "openapi" }, includeExamples: { type: "boolean", description: "Include request/response examples", default: true } }, required: ["codePath", "framework"] } },
164
+ { name: "generate_code_documentation", description: "Generate inline code documentation and improve existing docs", inputSchema: { type: "object", properties: { codePath: { type: "string", description: "Path to code files to document" }, language: { type: "string", enum: ["typescript", "javascript", "python", "java", "csharp", "go", "rust"], description: "Programming language" }, style: { type: "string", enum: ["jsdoc", "docstring", "xml", "markdown"], description: "Documentation comment style", default: "jsdoc" }, includePrivate: { type: "boolean", description: "Include documentation for private members", default: false } }, required: ["codePath", "language"] } },
165
+ { name: "generate_readme", description: "Generate or improve project README documentation", inputSchema: { type: "object", properties: { projectPath: { type: "string", description: "Path to project root directory" }, projectType: { type: "string", enum: ["library", "application", "api", "cli", "framework"], description: "Type of project" }, includeSections: { type: "array", items: { type: "string" }, description: "Specific sections to include", default: ["installation", "usage", "api", "contributing", "license"] }, existingReadme: { type: "string", description: "Path to existing README to improve" } }, required: ["projectPath", "projectType"] } },
166
+ ];
181
167
 
182
- private setupToolHandlers() {
183
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
184
- return {
185
- tools: [
186
- {
187
- name: "analyze_documentation",
188
- description:
189
- "Analyze existing documentation for completeness, quality, and gaps",
190
- inputSchema: {
191
- type: "object",
192
- properties: {
193
- docsPath: {
194
- type: "string",
195
- description: "Path to documentation directory or files",
196
- },
197
- codePath: {
198
- type: "string",
199
- description: "Path to corresponding code for comparison",
200
- },
201
- docTypes: {
202
- type: "array",
203
- items: {
204
- type: "string",
205
- enum: [
206
- "readme",
207
- "api",
208
- "code",
209
- "architecture",
210
- "deployment",
211
- "user-guide",
212
- ],
213
- },
214
- description: "Types of documentation to analyze",
215
- },
216
- },
217
- required: ["docsPath"],
218
- },
219
- },
220
- {
221
- name: "generate_api_docs",
222
- description:
223
- "Generate comprehensive API documentation from code analysis",
224
- inputSchema: {
225
- type: "object",
226
- properties: {
227
- codePath: {
228
- type: "string",
229
- description: "Path to API code files",
230
- },
231
- framework: {
232
- type: "string",
233
- enum: [
234
- "express",
235
- "fastify",
236
- "koa",
237
- "nestjs",
238
- "spring",
239
- "django",
240
- "flask",
241
- "fastapi",
242
- ],
243
- description: "API framework being used",
244
- },
245
- format: {
246
- type: "string",
247
- enum: ["openapi", "markdown", "html", "postman"],
248
- description: "Output documentation format",
249
- default: "openapi",
250
- },
251
- includeExamples: {
252
- type: "boolean",
253
- description: "Include request/response examples",
254
- default: true,
255
- },
256
- },
257
- required: ["codePath", "framework"],
258
- },
259
- },
260
- {
261
- name: "generate_code_documentation",
262
- description:
263
- "Generate inline code documentation and improve existing docs",
264
- inputSchema: {
265
- type: "object",
266
- properties: {
267
- codePath: {
268
- type: "string",
269
- description: "Path to code files to document",
270
- },
271
- language: {
272
- type: "string",
273
- enum: [
274
- "typescript",
275
- "javascript",
276
- "python",
277
- "java",
278
- "csharp",
279
- "go",
280
- "rust",
281
- ],
282
- description: "Programming language",
283
- },
284
- style: {
285
- type: "string",
286
- enum: ["jsdoc", "docstring", "xml", "markdown"],
287
- description: "Documentation comment style",
288
- default: "jsdoc",
289
- },
290
- includePrivate: {
291
- type: "boolean",
292
- description: "Include documentation for private members",
293
- default: false,
294
- },
295
- },
296
- required: ["codePath", "language"],
297
- },
298
- },
299
- {
300
- name: "generate_readme",
301
- description: "Generate or improve project README documentation",
302
- inputSchema: {
303
- type: "object",
304
- properties: {
305
- projectPath: {
306
- type: "string",
307
- description: "Path to project root directory",
308
- },
309
- projectType: {
310
- type: "string",
311
- enum: ["library", "application", "api", "cli", "framework"],
312
- description: "Type of project",
313
- },
314
- includeSections: {
315
- type: "array",
316
- items: { type: "string" },
317
- description: "Specific sections to include",
318
- default: [
319
- "installation",
320
- "usage",
321
- "api",
322
- "contributing",
323
- "license",
324
- ],
325
- },
326
- existingReadme: {
327
- type: "string",
328
- description: "Path to existing README to improve",
329
- },
330
- },
331
- required: ["projectPath", "projectType"],
332
- },
333
- },
334
- ],
335
- };
336
- });
168
+ this.handlers = {
169
+ analyze_documentation: async (args) => this.analyzeDocumentation(args as AnalyzeDocumentationArgs),
170
+ generate_api_docs: async (args) => this.generateAPIDocs(args as GenerateAPIDocsArgs),
171
+ generate_code_documentation: async (args) => this.generateCodeDocumentation(args as GenerateCodeDocumentationArgs),
172
+ generate_readme: async (args) => this.generateReadme(args as GenerateReadmeArgs),
173
+ };
337
174
 
338
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
339
- const { name, arguments: args } = request.params;
340
-
341
- switch (name) {
342
- case "analyze_documentation":
343
- return await this.analyzeDocumentation(args as unknown as AnalyzeDocumentationArgs) as CallToolResult;
344
- case "generate_api_docs":
345
- return await this.generateAPIDocs(args as unknown as GenerateAPIDocsArgs) as CallToolResult;
346
- case "generate_code_documentation":
347
- return await this.generateCodeDocumentation(args as unknown as GenerateCodeDocumentationArgs) as CallToolResult;
348
- case "generate_readme":
349
- return await this.generateReadme(args as unknown as GenerateReadmeArgs) as CallToolResult;
350
- default:
351
- throw new Error(`Unknown tool: ${name}`);
352
- }
353
- });
175
+ this.setupToolHandlers();
354
176
  }
355
177
 
178
+ // setupToolHandlers removed โ€” handled by XrayKnowledgeSkillBase via this.tools + this.handlers
179
+
356
180
  private async analyzeDocumentation(args: AnalyzeDocumentationArgs) {
357
181
  const { docsPath, codePath, docTypes = ["readme", "api", "code"] } = args;
358
182
 
@@ -1053,7 +877,7 @@ class XrayDocumentationGenerationServer {
1053
877
  openapi: "3.0.0",
1054
878
  info: {
1055
879
  title: "API Documentation",
1056
- version: "1.22.67",
880
+ version: "3.1.0",
1057
881
  description: "Generated API documentation",
1058
882
  },
1059
883
  servers: [
@@ -1617,20 +1441,11 @@ class XrayDocumentationGenerationServer {
1617
1441
  return icons[severity as keyof typeof icons] || "โ“";
1618
1442
  }
1619
1443
 
1620
- async run(): Promise<void> {
1621
- const transport = new StdioServerTransport();
1622
- await this.server.connect(transport);
1623
-
1624
- // Use centralized shutdown handler
1625
- createGracefulShutdown({
1626
- serverName: "tech-writer.server",
1627
- server: this.server,
1628
- });
1629
- }
1444
+ // run() removed โ€” handled by XrayKnowledgeSkillBase
1630
1445
  }
1631
1446
 
1632
1447
  // Run the server if this file is executed directly
1633
- if (import.meta.url === `file://${process.argv[1]}`) {
1448
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
1634
1449
  const server = new XrayDocumentationGenerationServer();
1635
1450
  server.run().catch(() => {});
1636
1451
  }
@@ -5,15 +5,9 @@
5
5
  * test coverage optimization, and automated testing workflows
6
6
  */
7
7
 
8
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
+ import * as fs from "fs";
10
9
  import { frameworkLogger } from "../../core/framework-logger.js";
11
- import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
12
- import {
13
- CallToolRequestSchema,
14
- ListToolsRequestSchema,
15
- type CallToolResult,
16
- } from "@modelcontextprotocol/sdk/types.js";
10
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
17
11
 
18
12
  interface TestStrategy {
19
13
  type:
@@ -203,198 +197,31 @@ interface McpToolResponse {
203
197
  data?: Record<string, unknown>;
204
198
  }
205
199
 
206
- class XrayTestingBestPracticesServer {
207
- private server: Server;
200
+ class XrayTestingBestPracticesServer extends XrayKnowledgeSkillBase {
208
201
 
209
202
  constructor() {
210
- this.server = new Server(
211
- {
212
- name: "testing-best-practices", version: "1.22.67",
213
- },
214
- {
215
- capabilities: {
216
- tools: {},
217
- },
218
- },
219
- );
203
+ super("testing-best-practices", "3.1.0");
204
+
205
+ this.tools = [
206
+ { name: "analyze_test_coverage", description: "Analyze current test coverage and identify gaps", inputSchema: { type: "object", properties: { codePath: { type: "string", description: "Path to codebase to analyze" }, testFramework: { type: "string", description: "Testing framework used (jest, vitest, mocha, etc.)", default: "auto-detect" }, coverageThreshold: { type: "number", description: "Minimum coverage threshold (0-100)", default: 80 } }, required: ["codePath"] } },
207
+ { name: "design_test_strategy", description: "Design comprehensive testing strategy for a project", inputSchema: { type: "object", properties: { projectType: { type: "string", enum: ["web-app", "api", "library", "mobile", "desktop"], description: "Type of project" }, techStack: { type: "array", items: { type: "string" }, description: "Technologies used (react, node, typescript, etc.)" }, teamSize: { type: "string", enum: ["solo", "small", "medium", "large"], description: "Development team size" }, timeline: { type: "string", enum: ["rapid", "balanced", "thorough"], description: "Development timeline priority" } }, required: ["projectType"] } },
208
+ { name: "implement_tdd_workflow", description: "Implement Test-Driven Development workflow and practices", inputSchema: { type: "object", properties: { language: { type: "string", description: "Programming language", default: "typescript" }, framework: { type: "string", description: "Preferred testing framework", default: "jest" }, existingTests: { type: "boolean", description: "Whether tests already exist", default: false } }, required: [] } },
209
+ { name: "optimize_test_performance", description: "Analyze and optimize test execution performance", inputSchema: { type: "object", properties: { testResults: { type: "string", description: "Path to test results or current execution time" }, targetRuntime: { type: "number", description: "Target test execution time in seconds", default: 300 }, parallelExecution: { type: "boolean", description: "Whether parallel execution is supported", default: true } }, required: ["testResults"] } },
210
+ { name: "setup_ci_cd_testing", description: "Set up comprehensive CI/CD testing pipeline", inputSchema: { type: "object", properties: { ciPlatform: { type: "string", enum: ["github-actions", "gitlab-ci", "jenkins", "circle-ci", "travis-ci"], description: "CI/CD platform" }, testTypes: { type: "array", items: { type: "string", enum: ["unit", "integration", "e2e", "performance", "security"] }, description: "Types of tests to include" }, coverageReporting: { type: "boolean", description: "Enable coverage reporting", default: true } }, required: ["ciPlatform", "testTypes"] } },
211
+ ];
212
+
213
+ this.handlers = {
214
+ analyze_test_coverage: async (args) => this.analyzeTestCoverage(args as AnalyzeTestCoverageArgs),
215
+ design_test_strategy: async (args) => this.designTestStrategy(args as DesignTestStrategyArgs),
216
+ implement_tdd_workflow: async (args) => this.implementTDDWorkflow(args as ImplementTDDWorkflowArgs),
217
+ optimize_test_performance: async (args) => this.optimizeTestPerformance(args as OptimizeTestPerformanceArgs),
218
+ setup_ci_cd_testing: async (args) => this.setupCICDTesting(args as SetupCICDTestingArgs),
219
+ };
220
220
 
221
221
  this.setupToolHandlers();
222
- // Server initialization - removed unnecessary startup logging
223
222
  }
224
223
 
225
- private setupToolHandlers() {
226
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
227
- return {
228
- tools: [
229
- {
230
- name: "analyze_test_coverage",
231
- description: "Analyze current test coverage and identify gaps",
232
- inputSchema: {
233
- type: "object",
234
- properties: {
235
- codePath: {
236
- type: "string",
237
- description: "Path to codebase to analyze",
238
- },
239
- testFramework: {
240
- type: "string",
241
- description:
242
- "Testing framework used (jest, vitest, mocha, etc.)",
243
- default: "auto-detect",
244
- },
245
- coverageThreshold: {
246
- type: "number",
247
- description: "Minimum coverage threshold (0-100)",
248
- default: 80,
249
- },
250
- },
251
- required: ["codePath"],
252
- },
253
- },
254
- {
255
- name: "design_test_strategy",
256
- description: "Design comprehensive testing strategy for a project",
257
- inputSchema: {
258
- type: "object",
259
- properties: {
260
- projectType: {
261
- type: "string",
262
- enum: ["web-app", "api", "library", "mobile", "desktop"],
263
- description: "Type of project",
264
- },
265
- techStack: {
266
- type: "array",
267
- items: { type: "string" },
268
- description:
269
- "Technologies used (react, node, typescript, etc.)",
270
- },
271
- teamSize: {
272
- type: "string",
273
- enum: ["solo", "small", "medium", "large"],
274
- description: "Development team size",
275
- },
276
- timeline: {
277
- type: "string",
278
- enum: ["rapid", "balanced", "thorough"],
279
- description: "Development timeline priority",
280
- },
281
- },
282
- required: ["projectType"],
283
- },
284
- },
285
- {
286
- name: "implement_tdd_workflow",
287
- description:
288
- "Implement Test-Driven Development workflow and practices",
289
- inputSchema: {
290
- type: "object",
291
- properties: {
292
- language: {
293
- type: "string",
294
- description: "Programming language",
295
- default: "typescript",
296
- },
297
- framework: {
298
- type: "string",
299
- description: "Preferred testing framework",
300
- default: "jest",
301
- },
302
- existingTests: {
303
- type: "boolean",
304
- description: "Whether tests already exist",
305
- default: false,
306
- },
307
- },
308
- required: [],
309
- },
310
- },
311
- {
312
- name: "optimize_test_performance",
313
- description: "Analyze and optimize test execution performance",
314
- inputSchema: {
315
- type: "object",
316
- properties: {
317
- testResults: {
318
- type: "string",
319
- description: "Path to test results or current execution time",
320
- },
321
- targetRuntime: {
322
- type: "number",
323
- description: "Target test execution time in seconds",
324
- default: 300,
325
- },
326
- parallelExecution: {
327
- type: "boolean",
328
- description: "Whether parallel execution is supported",
329
- default: true,
330
- },
331
- },
332
- required: ["testResults"],
333
- },
334
- },
335
- {
336
- name: "setup_ci_cd_testing",
337
- description: "Set up comprehensive CI/CD testing pipeline",
338
- inputSchema: {
339
- type: "object",
340
- properties: {
341
- ciPlatform: {
342
- type: "string",
343
- enum: [
344
- "github-actions",
345
- "gitlab-ci",
346
- "jenkins",
347
- "circle-ci",
348
- "travis-ci",
349
- ],
350
- description: "CI/CD platform",
351
- },
352
- testTypes: {
353
- type: "array",
354
- items: {
355
- type: "string",
356
- enum: [
357
- "unit",
358
- "integration",
359
- "e2e",
360
- "performance",
361
- "security",
362
- ],
363
- },
364
- description: "Types of tests to include",
365
- },
366
- coverageReporting: {
367
- type: "boolean",
368
- description: "Enable coverage reporting",
369
- default: true,
370
- },
371
- },
372
- required: ["ciPlatform", "testTypes"],
373
- },
374
- },
375
- ],
376
- };
377
- });
378
-
379
- this.server.setRequestHandler(CallToolRequestSchema, async (request): Promise<CallToolResult> => {
380
- const { name, arguments: args } = request.params;
381
-
382
- switch (name) {
383
- case "analyze_test_coverage":
384
- return await this.analyzeTestCoverage(args as unknown as AnalyzeTestCoverageArgs) as CallToolResult;
385
- case "design_test_strategy":
386
- return await this.designTestStrategy(args as unknown as DesignTestStrategyArgs) as CallToolResult;
387
- case "implement_tdd_workflow":
388
- return await this.implementTDDWorkflow(args as unknown as ImplementTDDWorkflowArgs) as CallToolResult;
389
- case "optimize_test_performance":
390
- return await this.optimizeTestPerformance(args as unknown as OptimizeTestPerformanceArgs) as CallToolResult;
391
- case "setup_ci_cd_testing":
392
- return await this.setupCICDTesting(args as unknown as SetupCICDTestingArgs) as CallToolResult;
393
- default:
394
- throw new Error(`Unknown tool: ${name}`);
395
- }
396
- });
397
- }
224
+ // setupToolHandlers removed โ€” handled by XrayKnowledgeSkillBase via this.tools + this.handlers
398
225
 
399
226
  private async analyzeTestCoverage(args: AnalyzeTestCoverageArgs): Promise<McpToolResponse> {
400
227
  const {
@@ -1211,20 +1038,11 @@ class XrayTestingBestPracticesServer {
1211
1038
  return icons[type as keyof typeof icons] || "๐Ÿงช";
1212
1039
  }
1213
1040
 
1214
- async run(): Promise<void> {
1215
- const transport = new StdioServerTransport();
1216
- await this.server.connect(transport);
1217
-
1218
- // Use centralized shutdown handler
1219
- createGracefulShutdown({
1220
- serverName: "testing-best-practices.server",
1221
- server: this.server,
1222
- });
1223
- }
1041
+ // run() removed โ€” handled by XrayKnowledgeSkillBase
1224
1042
  }
1225
1043
 
1226
1044
  // Run the server if this file is executed directly
1227
- if (import.meta.url === `file://${process.argv[1]}`) {
1045
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
1228
1046
  const server = new XrayTestingBestPracticesServer();
1229
1047
  server.run().catch(() => {});
1230
1048
  }