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
@@ -12,16 +12,15 @@
12
12
  * and the Dynamo Solar SSOT filter (required by default).
13
13
  */
14
14
 
15
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
16
15
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
17
16
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
18
17
  import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
19
18
  import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
20
19
  import {
21
20
  CallToolRequestSchema,
22
- ListToolsRequestSchema,
23
21
  type CallToolResult,
24
22
  } from "@modelcontextprotocol/sdk/types.js";
23
+ import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
25
24
  import { mcpClientManager } from "./mcp-client.js";
26
25
  import { frameworkLogger } from "../core/framework-logger.js";
27
26
  import * as fs from "fs";
@@ -62,21 +61,104 @@ interface GovernReflectionArgs {
62
61
  context?: Record<string, unknown>;
63
62
  }
64
63
 
65
- class GovernanceServer {
66
- private server: Server;
67
-
64
+ class GovernanceServer extends XrayKnowledgeSkillBase {
68
65
  constructor() {
69
- this.server = new Server(
66
+ super("governance", "3.1.0");
67
+ this.tools = [
70
68
  {
71
- name: "governance", version: "1.22.67",
69
+ name: "govern_proposals",
70
+ description:
71
+ "Run one or more proposals through the full 0xRay governance system. " +
72
+ "Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
73
+ "Returns merged structured decisions. " +
74
+ "Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
75
+ "and other compliance-related governance scenarios.",
76
+ inputSchema: {
77
+ type: "object",
78
+ properties: {
79
+ proposals: {
80
+ type: "array",
81
+ items: {
82
+ type: "object",
83
+ properties: {
84
+ id: { type: "string" },
85
+ type: {
86
+ type: "string",
87
+ enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
88
+ },
89
+ title: { type: "string" },
90
+ description: { type: "string" },
91
+ evidence: { type: "array", items: { type: "string" } },
92
+ source: { type: "string" },
93
+ confidence: { type: "number" },
94
+ },
95
+ required: ["type", "title", "description"],
96
+ },
97
+ description: "List of proposals to govern",
98
+ },
99
+ context: {
100
+ type: "object",
101
+ description: "Optional context about the proposals (project, phase, etc.)",
102
+ },
103
+ options: {
104
+ type: "object",
105
+ properties: {
106
+ require_external: {
107
+ type: "boolean",
108
+ default: true,
109
+ description: "Whether external Dynamo/Solar governance is required (default: true)",
110
+ },
111
+ },
112
+ },
113
+ },
114
+ required: ["proposals"],
115
+ },
72
116
  },
73
117
  {
74
- capabilities: {
75
- tools: {},
118
+ name: "govern_reflection",
119
+ description:
120
+ "Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
121
+ "This is the primary way to govern outcomes from reflection-based workflows.",
122
+ inputSchema: {
123
+ type: "object",
124
+ properties: {
125
+ reflectionPath: {
126
+ type: "string",
127
+ description: "Path to a reflection .md file (alternative to reflectionContent)",
128
+ },
129
+ reflectionContent: {
130
+ type: "string",
131
+ description: "Raw reflection content (alternative to reflectionPath)",
132
+ },
133
+ context: { type: "object" },
134
+ },
135
+ required: [],
76
136
  },
77
- }
78
- );
79
-
137
+ },
138
+ {
139
+ name: "get_active_codex",
140
+ description:
141
+ "Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
142
+ "including version, term count, source path, and governance status. " +
143
+ "Optionally include the full raw codex data with includeRaw=true.",
144
+ inputSchema: {
145
+ type: "object",
146
+ properties: {
147
+ includeRaw: {
148
+ type: "boolean",
149
+ description: "Whether to include the full raw codex data in the response",
150
+ default: false,
151
+ },
152
+ },
153
+ required: [],
154
+ },
155
+ },
156
+ ];
157
+ this.handlers = {
158
+ "govern_proposals": async (args) => this.handleGovernProposals(this.validateGovernProposalsArgs(args)),
159
+ "govern_reflection": async (args) => this.handleGovernReflection(this.validateGovernReflectionArgs(args)),
160
+ "get_active_codex": async (args) => this.handleGetActiveCodex(args as { includeRaw?: boolean }),
161
+ };
80
162
  this.setupToolHandlers();
81
163
  }
82
164
 
@@ -113,101 +195,8 @@ class GovernanceServer {
113
195
  return value as GovernReflectionArgs;
114
196
  }
115
197
 
116
- private setupToolHandlers() {
117
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
118
- return {
119
- tools: [
120
- {
121
- name: "govern_proposals",
122
- description:
123
- "Run one or more proposals through the full 0xRay governance system. " +
124
- "Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
125
- "Returns merged structured decisions. " +
126
- "Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
127
- "and other compliance-related governance scenarios.",
128
- inputSchema: {
129
- type: "object",
130
- properties: {
131
- proposals: {
132
- type: "array",
133
- items: {
134
- type: "object",
135
- properties: {
136
- id: { type: "string" },
137
- type: {
138
- type: "string",
139
- enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
140
- },
141
- title: { type: "string" },
142
- description: { type: "string" },
143
- evidence: { type: "array", items: { type: "string" } },
144
- source: { type: "string" },
145
- confidence: { type: "number" },
146
- },
147
- required: ["type", "title", "description"],
148
- },
149
- description: "List of proposals to govern",
150
- },
151
- context: {
152
- type: "object",
153
- description: "Optional context about the proposals (project, phase, etc.)",
154
- },
155
- options: {
156
- type: "object",
157
- properties: {
158
- require_external: {
159
- type: "boolean",
160
- default: true,
161
- description: "Whether external Dynamo/Solar governance is required (default: true)",
162
- },
163
- },
164
- },
165
- },
166
- required: ["proposals"],
167
- },
168
- },
169
- {
170
- name: "govern_reflection",
171
- description:
172
- "Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
173
- "This is the primary way to govern outcomes from reflection-based workflows.",
174
- inputSchema: {
175
- type: "object",
176
- properties: {
177
- reflectionPath: {
178
- type: "string",
179
- description: "Path to a reflection .md file (alternative to reflectionContent)",
180
- },
181
- reflectionContent: {
182
- type: "string",
183
- description: "Raw reflection content (alternative to reflectionPath)",
184
- },
185
- context: { type: "object" },
186
- },
187
- required: [],
188
- },
189
- },
190
- {
191
- name: "get_active_codex",
192
- description:
193
- "Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
194
- "including version, term count, source path, and governance status. " +
195
- "Optionally include the full raw codex data with includeRaw=true.",
196
- inputSchema: {
197
- type: "object",
198
- properties: {
199
- includeRaw: {
200
- type: "boolean",
201
- description: "Whether to include the full raw codex data in the response",
202
- default: false,
203
- },
204
- },
205
- required: [],
206
- },
207
- },
208
- ],
209
- };
210
- });
198
+ protected setupToolHandlers(): void {
199
+ this.setupListToolsHandler();
211
200
 
212
201
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
213
202
  const { name, arguments: args } = request.params;
@@ -408,61 +397,7 @@ class GovernanceServer {
408
397
 
409
398
  async run(): Promise<void> {
410
399
  await this.initializeGovernance();
411
-
412
- const transport = new StdioServerTransport();
413
- await this.server.connect(transport);
414
-
415
- let parentCheckTimer: ReturnType<typeof setTimeout> | null = null;
416
-
417
- const cleanup = async (signal: string) => {
418
- if (parentCheckTimer !== null) {
419
- clearTimeout(parentCheckTimer);
420
- parentCheckTimer = null;
421
- }
422
-
423
- const timeout = setTimeout(() => {
424
- frameworkLogger.log("mcps/governance", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
425
- process.exit(1);
426
- }, 5000);
427
-
428
- try {
429
- if (this.server && typeof this.server.close === "function") {
430
- await this.server.close();
431
- }
432
- clearTimeout(timeout);
433
- process.exit(0);
434
- } catch (error) {
435
- clearTimeout(timeout);
436
- frameworkLogger.log("mcps/governance", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
437
- process.exit(1);
438
- }
439
- };
440
-
441
- process.on("SIGINT", () => cleanup("SIGINT"));
442
- process.on("SIGTERM", () => cleanup("SIGTERM"));
443
- process.on("SIGHUP", () => cleanup("SIGHUP"));
444
-
445
- const checkParent = () => {
446
- try {
447
- process.kill(process.ppid, 0);
448
- parentCheckTimer = setTimeout(checkParent, 1000);
449
- } catch (error) {
450
- parentCheckTimer = null;
451
- cleanup("parent-process-death");
452
- }
453
- };
454
-
455
- parentCheckTimer = setTimeout(checkParent, 2000);
456
-
457
- process.on("uncaughtException", (error) => {
458
- frameworkLogger.log("mcps/governance", "uncaughtException", "error", { message: `Uncaught Exception: ${String(error)}` });
459
- cleanup("uncaughtException");
460
- });
461
-
462
- process.on("unhandledRejection", (reason) => {
463
- frameworkLogger.log("mcps/governance", "unhandledRejection", "error", { message: `Unhandled Rejection: ${String(reason)}` });
464
- cleanup("unhandledRejection");
465
- });
400
+ await super.run();
466
401
  }
467
402
 
468
403
  async connect(transport: Transport): Promise<void> {
@@ -475,7 +410,12 @@ class GovernanceServer {
475
410
  async runHttp(port: number = parseInt(process.env.MCP_PORT ?? "3100", 10)): Promise<void> {
476
411
  await this.initializeGovernance();
477
412
 
478
- const app = createMcpExpressApp();
413
+ const mcpHost = process.env.MCP_HOST || "127.0.0.1";
414
+ const allowedHosts = process.env.MCP_ALLOWED_HOSTS?.split(",");
415
+ const app = createMcpExpressApp({
416
+ host: mcpHost,
417
+ ...(allowedHosts ? { allowedHosts } : {}),
418
+ });
479
419
  const transport = new StreamableHTTPServerTransport({
480
420
  sessionIdGenerator: () => randomUUID(),
481
421
  });
@@ -527,7 +467,7 @@ class GovernanceServer {
527
467
  }
528
468
 
529
469
  // Start the server if this file is run directly
530
- const entryPoint = path.resolve(process.argv[1] ?? "");
470
+ const entryPoint = fs.realpathSync(process.argv[1] ?? "");
531
471
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
532
472
  // If --port or MCP_PORT is set, use HTTP transport (for Grok CLI compatibility)
533
473
  const cliPort = process.argv.find((a) => a.startsWith("--port="))?.split("=")[1];
@@ -5,12 +5,8 @@
5
5
  * GraphQL schema design, and API documentation standards
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";
8
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
9
+ import * as fs from "fs";
14
10
  import { frameworkLogger } from "../../core/framework-logger.js";
15
11
  import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
16
12
 
@@ -25,74 +21,50 @@ interface ValidateApiDesignArgs {
25
21
  standards?: string[];
26
22
  }
27
23
 
28
- class XrayApiDesignServer {
29
- private server: Server;
24
+ class XrayApiDesignServer extends XrayKnowledgeSkillBase {
30
25
 
31
26
  constructor() {
32
- this.server = new Server(
27
+ super("api-design", "3.1.0");
28
+
29
+ this.tools = [
33
30
  {
34
- name: "api-design", version: "1.22.67",
31
+ name: "design-api-endpoints",
32
+ description:
33
+ "Design RESTful API endpoints with proper resource modeling",
34
+ inputSchema: {
35
+ type: "object",
36
+ properties: {
37
+ resource: { type: "string" },
38
+ operations: { type: "array", items: { type: "string" } },
39
+ relationships: { type: "array", items: { type: "string" } },
40
+ },
41
+ required: ["resource"],
42
+ },
35
43
  },
36
44
  {
37
- capabilities: {
38
- tools: {},
45
+ name: "validate-api-design",
46
+ description:
47
+ "Validate API design against RESTful principles and best practices",
48
+ inputSchema: {
49
+ type: "object",
50
+ properties: {
51
+ endpoints: { type: "array", items: { type: "string" } },
52
+ standards: { type: "array", items: { type: "string" } },
53
+ },
54
+ required: ["endpoints"],
39
55
  },
40
56
  },
41
- );
57
+ ];
58
+
59
+ this.handlers = {
60
+ "design-api-endpoints": async (args) => this.designApiEndpoints(args as DesignApiEndpointsArgs),
61
+ "validate-api-design": async (args) => this.validateApiDesign(args as ValidateApiDesignArgs),
62
+ };
42
63
 
43
64
  this.setupToolHandlers();
44
65
  // Server initialization - removed unnecessary startup logging
45
66
  }
46
67
 
47
- private setupToolHandlers() {
48
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
49
- return {
50
- tools: [
51
- {
52
- name: "design-api-endpoints",
53
- description:
54
- "Design RESTful API endpoints with proper resource modeling",
55
- inputSchema: {
56
- type: "object",
57
- properties: {
58
- resource: { type: "string" },
59
- operations: { type: "array", items: { type: "string" } },
60
- relationships: { type: "array", items: { type: "string" } },
61
- },
62
- required: ["resource"],
63
- },
64
- },
65
- {
66
- name: "validate-api-design",
67
- description:
68
- "Validate API design against RESTful principles and best practices",
69
- inputSchema: {
70
- type: "object",
71
- properties: {
72
- endpoints: { type: "array", items: { type: "string" } },
73
- standards: { type: "array", items: { type: "string" } },
74
- },
75
- required: ["endpoints"],
76
- },
77
- },
78
- ],
79
- };
80
- });
81
-
82
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
83
- const { name, arguments: args } = request.params;
84
-
85
- switch (name) {
86
- case "design-api-endpoints":
87
- return await this.designApiEndpoints(args as unknown as DesignApiEndpointsArgs);
88
- case "validate-api-design":
89
- return await this.validateApiDesign(args as unknown as ValidateApiDesignArgs);
90
- default:
91
- throw new Error(`Unknown tool: ${name}`);
92
- }
93
- });
94
- }
95
-
96
68
  private async designApiEndpoints(args: DesignApiEndpointsArgs) {
97
69
  const { resource, operations, relationships } = args;
98
70
 
@@ -140,19 +112,9 @@ class XrayApiDesignServer {
140
112
  };
141
113
  }
142
114
 
143
- async run(): Promise<void> {
144
- const transport = new StdioServerTransport();
145
- await this.server.connect(transport);
146
-
147
- // Use centralized shutdown handler
148
- createGracefulShutdown({
149
- serverName: "api-design.server",
150
- server: this.server,
151
- });
152
- }
153
115
  }
154
116
 
155
- if (import.meta.url === `file://${process.argv[1]}`) {
117
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
156
118
  const server = new XrayApiDesignServer();
157
119
  server.run().catch(() => {});
158
120
  }
@@ -5,12 +5,7 @@
5
5
  * design pattern recommendations, and system architecture guidance
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";
8
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
14
9
  import * as fs from "fs";
15
10
  import * as path from "path";
16
11
  import { frameworkLogger } from "../../core/framework-logger.js";
@@ -27,74 +22,50 @@ interface RecommendPatternsArgs {
27
22
  scale?: string;
28
23
  }
29
24
 
30
- class XrayArchitecturePatternsServer {
31
- private server: Server;
25
+ class XrayArchitecturePatternsServer extends XrayKnowledgeSkillBase {
32
26
 
33
27
  constructor() {
34
- this.server = new Server(
28
+ super("architecture-patterns", "3.1.0");
29
+
30
+ this.tools = [
35
31
  {
36
- name: "architecture-patterns", version: "1.22.67",
32
+ name: "analyze-architecture",
33
+ description:
34
+ "Analyze current system architecture and identify patterns",
35
+ inputSchema: {
36
+ type: "object",
37
+ properties: {
38
+ projectRoot: { type: "string" },
39
+ focusPatterns: { type: "array", items: { type: "string" } },
40
+ },
41
+ required: ["projectRoot"],
42
+ },
37
43
  },
38
44
  {
39
- capabilities: {
40
- tools: {},
45
+ name: "recommend-patterns",
46
+ description:
47
+ "Recommend architectural patterns for specific use cases",
48
+ inputSchema: {
49
+ type: "object",
50
+ properties: {
51
+ useCase: { type: "string" },
52
+ constraints: { type: "array", items: { type: "string" } },
53
+ scale: { type: "string", enum: ["small", "medium", "large"] },
54
+ },
55
+ required: ["useCase"],
41
56
  },
42
57
  },
43
- );
58
+ ];
59
+
60
+ this.handlers = {
61
+ "analyze-architecture": async (args) => this.analyzeArchitecture(args as unknown as AnalyzeArchitectureArgs),
62
+ "recommend-patterns": async (args) => this.recommendPatterns(args as unknown as RecommendPatternsArgs),
63
+ };
44
64
 
45
65
  this.setupToolHandlers();
46
66
  // Server initialization - removed unnecessary startup logging
47
67
  }
48
68
 
49
- private setupToolHandlers() {
50
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
51
- return {
52
- tools: [
53
- {
54
- name: "analyze-architecture",
55
- description:
56
- "Analyze current system architecture and identify patterns",
57
- inputSchema: {
58
- type: "object",
59
- properties: {
60
- projectRoot: { type: "string" },
61
- focusPatterns: { type: "array", items: { type: "string" } },
62
- },
63
- required: ["projectRoot"],
64
- },
65
- },
66
- {
67
- name: "recommend-patterns",
68
- description:
69
- "Recommend architectural patterns for specific use cases",
70
- inputSchema: {
71
- type: "object",
72
- properties: {
73
- useCase: { type: "string" },
74
- constraints: { type: "array", items: { type: "string" } },
75
- scale: { type: "string", enum: ["small", "medium", "large"] },
76
- },
77
- required: ["useCase"],
78
- },
79
- },
80
- ],
81
- };
82
- });
83
-
84
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
85
- const { name, arguments: args } = request.params;
86
-
87
- switch (name) {
88
- case "analyze-architecture":
89
- return await this.analyzeArchitecture(args as unknown as AnalyzeArchitectureArgs);
90
- case "recommend-patterns":
91
- return await this.recommendPatterns(args as unknown as RecommendPatternsArgs);
92
- default:
93
- throw new Error(`Unknown tool: ${name}`);
94
- }
95
- });
96
- }
97
-
98
69
  private async analyzeArchitecture(args: AnalyzeArchitectureArgs) {
99
70
  const { projectRoot, focusPatterns } = args;
100
71
 
@@ -132,19 +103,9 @@ class XrayArchitecturePatternsServer {
132
103
  };
133
104
  }
134
105
 
135
- async run(): Promise<void> {
136
- const transport = new StdioServerTransport();
137
- await this.server.connect(transport);
138
-
139
- // Use centralized shutdown handler
140
- createGracefulShutdown({
141
- serverName: "architecture-patterns.server",
142
- server: this.server,
143
- });
144
- }
145
106
  }
146
107
 
147
- if (import.meta.url === `file://${process.argv[1]}`) {
108
+ if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
148
109
  const server = new XrayArchitecturePatternsServer();
149
110
  server.run().catch(() => {});
150
111
  }