0xray 3.1.1 → 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 (296) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/.opencode/commands/auto-format.md +3 -3
  3. package/.opencode/commands/auto-summary-capture.md +2 -2
  4. package/.opencode/commands/enforcer-daily-scan.md +3 -3
  5. package/.opencode/commands/framework-compliance-audit.md +4 -4
  6. package/.opencode/commands/interactive-validator.md +2 -2
  7. package/.opencode/commands/job-summary-logger.md +2 -2
  8. package/.opencode/commands/mode-switch.md +1 -1
  9. package/.opencode/commands/model-health-check.md +2 -2
  10. package/.opencode/commands/performance-analysis.md +2 -2
  11. package/.opencode/commands/pre-commit-introspection.md +3 -3
  12. package/.opencode/commands/security-scan.md +3 -3
  13. package/.opencode/commands/sisyphus-validation.md +3 -3
  14. package/.opencode/commands/summary-logger.md +2 -2
  15. package/AGENTS.md +3 -13
  16. package/README.md +3 -3
  17. package/dist/AGENTS.md +3 -13
  18. package/dist/CHANGELOG.md +29 -0
  19. package/dist/README.md +3 -3
  20. package/dist/analytics/consent-manager.js +0 -1
  21. package/dist/analytics/emerging-pattern-detector.js +0 -1
  22. package/dist/analytics/pattern-learning-engine.js +0 -1
  23. package/dist/analytics/pattern-performance-tracker.js +0 -1
  24. package/dist/analytics/predictive-analytics.js +0 -1
  25. package/dist/analytics/prompt-pattern-analyzer.js +0 -1
  26. package/dist/analytics/routing-performance-analyzer.js +0 -1
  27. package/dist/analytics/routing-refiner.js +0 -1
  28. package/dist/analytics/simple-pattern-analyzer.js +0 -1
  29. package/dist/cli/commands/archive-logs.js +0 -1
  30. package/dist/cli/commands/opencode-install.js +13 -0
  31. package/dist/cli/commands/plugin-commands.js +0 -1
  32. package/dist/cli/commands/status.js +11 -13
  33. package/dist/cli/index.js +2 -7
  34. package/dist/core/activity-logger.js +0 -1
  35. package/dist/core/adaptive-kernel.js +0 -1
  36. package/dist/core/boot-orchestrator.js +2 -12
  37. package/dist/core/bridge.mjs +0 -1
  38. package/dist/core/codex-formatter.js +0 -1
  39. package/dist/core/codex-injector.js +0 -1
  40. package/dist/core/config-loader.js +36 -28
  41. package/dist/core/context-loader.js +0 -1
  42. package/dist/core/context-validator.js +0 -1
  43. package/dist/core/features-config.js +37 -1
  44. package/dist/core/kernel-patterns.js +0 -1
  45. package/dist/core/model-router.js +23 -64
  46. package/dist/core/system-prompt-generator.js +0 -1
  47. package/dist/delegation/agent-delegator.js +0 -1
  48. package/dist/delegation/agent-expertise.js +0 -1
  49. package/dist/delegation/analytics/index.js +0 -1
  50. package/dist/delegation/analytics/learning-engine.js +0 -1
  51. package/dist/delegation/analytics/outcome-tracker.js +0 -1
  52. package/dist/delegation/analytics/routing-analytics.js +0 -1
  53. package/dist/delegation/ast-code-parser.js +0 -1
  54. package/dist/delegation/complexity-analyzer.js +0 -1
  55. package/dist/delegation/dependency-graph-builder.js +0 -1
  56. package/dist/delegation/index.js +0 -1
  57. package/dist/delegation/metrics-aggregator.js +0 -1
  58. package/dist/delegation/session-coordinator.js +0 -1
  59. package/dist/delegation/strategy-selector.js +0 -1
  60. package/dist/delegation/voting-coordinator.js +0 -1
  61. package/dist/delegation/voting-types.js +0 -1
  62. package/dist/delegation/weighted-voting-aggregator.js +0 -1
  63. package/dist/enforcement/core/index.js +0 -1
  64. package/dist/enforcement/core/rule-executor.js +0 -1
  65. package/dist/enforcement/core/rule-hierarchy.js +0 -1
  66. package/dist/enforcement/core/rule-registry.js +0 -1
  67. package/dist/enforcement/core/violation-fixer.js +0 -1
  68. package/dist/enforcement/index.js +0 -1
  69. package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
  70. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
  71. package/dist/enforcement/loaders/base-loader.js +0 -1
  72. package/dist/enforcement/loaders/codex-loader.js +0 -1
  73. package/dist/enforcement/loaders/index.js +0 -1
  74. package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
  75. package/dist/enforcement/loaders/processor-loader.js +0 -1
  76. package/dist/enforcement/types.js +0 -1
  77. package/dist/enforcement/validators/architecture-validators.js +0 -1
  78. package/dist/enforcement/validators/base-validator.js +0 -1
  79. package/dist/enforcement/validators/code-quality-validators.js +0 -1
  80. package/dist/enforcement/validators/index.js +0 -1
  81. package/dist/enforcement/validators/security-validators.js +0 -1
  82. package/dist/enforcement/validators/testing-validators.js +0 -1
  83. package/dist/enforcement/validators/validator-registry.js +0 -1
  84. package/dist/governance/codex-policy.service.js +0 -1
  85. package/dist/inference/inference-agent-invoker.js +67 -0
  86. package/dist/inference/inference-applier.js +178 -0
  87. package/dist/inference/inference-cycle.js +51 -827
  88. package/dist/inference/inference-proposal-generator.js +149 -0
  89. package/dist/infrastructure/iac-validator.js +465 -0
  90. package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
  91. package/dist/integrations/base/ExampleIntegration.js +0 -1
  92. package/dist/integrations/base/Integration.js +0 -1
  93. package/dist/integrations/base/index.js +0 -1
  94. package/dist/integrations/base/registry.js +0 -1
  95. package/dist/integrations/base/types.js +0 -1
  96. package/dist/integrations/enforcement-gate.js +3 -3
  97. package/dist/integrations/governance/governance-client.js +0 -1
  98. package/dist/integrations/governance/index.js +11 -19
  99. package/dist/integrations/governance/types.js +0 -1
  100. package/dist/integrations/hermes-agent/__init__.py +4 -0
  101. package/dist/integrations/hermes-agent/bridge.mjs +37 -0
  102. package/dist/integrations/openclaw/api-server.js +0 -1
  103. package/dist/integrations/openclaw/client.js +0 -1
  104. package/dist/integrations/openclaw/config.js +0 -1
  105. package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -1
  106. package/dist/integrations/openclaw/index.js +0 -1
  107. package/dist/integrations/openclaw/types.js +0 -1
  108. package/dist/integrations/plugins/index.js +0 -1
  109. package/dist/integrations/plugins/plugin-integration.js +0 -1
  110. package/dist/integrations/plugins/plugin-registry.js +0 -1
  111. package/dist/mcps/agent-resolver.js +0 -1
  112. package/dist/mcps/architect-tools.server.js +119 -185
  113. package/dist/mcps/auto-format.server.js +56 -74
  114. package/dist/mcps/boot-orchestrator.server.js +67 -85
  115. package/dist/mcps/config/config-loader.js +6 -0
  116. package/dist/mcps/config/plugin-server-registry.js +0 -1
  117. package/dist/mcps/enforcer-tools.server.js +207 -273
  118. package/dist/mcps/estimation.server.js +63 -107
  119. package/dist/mcps/framework-compliance-audit.server.js +52 -81
  120. package/dist/mcps/framework-help.server.js +71 -89
  121. package/dist/mcps/governance.server.js +97 -149
  122. package/dist/mcps/knowledge-skills/api-design.server.js +33 -65
  123. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +33 -65
  124. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +123 -163
  125. package/dist/mcps/knowledge-skills/code-analyzer.server.js +210 -237
  126. package/dist/mcps/knowledge-skills/code-review.server.js +108 -142
  127. package/dist/mcps/knowledge-skills/content-creator.server.js +203 -225
  128. package/dist/mcps/knowledge-skills/database-design.server.js +116 -150
  129. package/dist/mcps/knowledge-skills/devops-deployment.server.js +123 -157
  130. package/dist/mcps/knowledge-skills/git-workflow.server.js +34 -67
  131. package/dist/mcps/knowledge-skills/growth-strategist.server.js +301 -323
  132. package/dist/mcps/knowledge-skills/log-monitor.server.js +139 -159
  133. package/dist/mcps/knowledge-skills/mobile-development.server.js +170 -200
  134. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +122 -158
  135. package/dist/mcps/knowledge-skills/performance-optimization.server.js +88 -138
  136. package/dist/mcps/knowledge-skills/project-analysis.server.js +131 -218
  137. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +115 -150
  138. package/dist/mcps/knowledge-skills/security-audit.server.js +16 -143
  139. package/dist/mcps/knowledge-skills/seo-consultant.server.js +20 -213
  140. package/dist/mcps/knowledge-skills/session-management.server.js +13 -90
  141. package/dist/mcps/knowledge-skills/skill-invocation.server.js +43 -421
  142. package/dist/mcps/knowledge-skills/strategist.server.js +10 -55
  143. package/dist/mcps/knowledge-skills/tech-writer.server.js +16 -191
  144. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +18 -191
  145. package/dist/mcps/knowledge-skills/testing-strategy.server.js +18 -156
  146. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +22 -296
  147. package/dist/mcps/lint.server.js +50 -91
  148. package/dist/mcps/model-health-check.server.js +32 -60
  149. package/dist/mcps/orchestrator/aside-context.js +207 -0
  150. package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
  151. package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
  152. package/dist/mcps/orchestrator/handlers/task-handler.js +5 -0
  153. package/dist/mcps/orchestrator/index.js +5 -0
  154. package/dist/mcps/orchestrator/server.js +63 -8
  155. package/dist/mcps/performance-analysis.server.js +56 -87
  156. package/dist/mcps/processor-pipeline.server.js +68 -99
  157. package/dist/mcps/researcher.server.js +80 -153
  158. package/dist/mcps/security-scan.server.js +56 -70
  159. package/dist/mcps/shared/knowledge-skill-base.js +11 -4
  160. package/dist/mcps/state-manager.server.js +124 -152
  161. package/dist/monitoring/nudge-watchdog.js +0 -1
  162. package/dist/nucleus/default-plugins.js +13 -19
  163. package/dist/nucleus/index.js +0 -1
  164. package/dist/orchestrator/agent-spawn-governor.js +0 -1
  165. package/dist/orchestrator/intelligent-commit-batcher.js +2 -10
  166. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -1
  167. package/dist/orchestrator/orchestrator.js +8 -18
  168. package/dist/orchestrator/self-direction-activation.js +0 -1
  169. package/dist/orchestrator/universal-registry-bridge.js +0 -1
  170. package/dist/performance/performance-budget-enforcer.js +0 -1
  171. package/dist/performance/performance-regression-tester.js +0 -1
  172. package/dist/plugin/plugin-codex-context.js +87 -0
  173. package/dist/plugin/plugin-helpers.js +155 -0
  174. package/dist/plugin/plugin-logger.js +46 -0
  175. package/dist/plugin/plugin-modules.js +144 -0
  176. package/dist/plugin/plugin-quality-gate.js +88 -0
  177. package/dist/plugin/plugin-types.js +1 -0
  178. package/dist/plugin/xray-codex-injection.js +338 -0
  179. package/dist/postprocessor/PostProcessor.js +3 -9
  180. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
  181. package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
  182. package/dist/postprocessor/integration.js +194 -0
  183. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
  184. package/dist/postprocessor/metamorphosis/index.js +1 -0
  185. package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
  186. package/dist/postprocessor/services/RegressionAnalysisService.js +0 -1
  187. package/dist/postprocessor/triggers/APITrigger.js +0 -1
  188. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
  189. package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
  190. package/dist/processors/implementations/async-pattern-processor.js +0 -1
  191. package/dist/processors/implementations/console-log-guard-processor.js +0 -1
  192. package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
  193. package/dist/processors/implementations/inference-improvement-processor.js +2 -9
  194. package/dist/processors/implementations/log-protection-processor.js +0 -1
  195. package/dist/processors/implementations/nudge-processor.js +0 -1
  196. package/dist/processors/implementations/performance-budget-processor.js +0 -1
  197. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
  198. package/dist/processors/implementations/publish-preflight-processor.js +4 -12
  199. package/dist/processors/implementations/session-summary-processor.js +8 -16
  200. package/dist/processors/implementations/spawn-governance-processor.js +0 -1
  201. package/dist/processors/implementations/storytelling-trigger-processor.js +3 -28
  202. package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
  203. package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
  204. package/dist/processors/implementations/version-compliance-processor.js +0 -1
  205. package/dist/processors/processor-interfaces.js +0 -1
  206. package/dist/processors/processor-types.js +0 -1
  207. package/dist/scripts/integration.js +0 -1
  208. package/dist/security/comprehensive-security-audit.js +0 -1
  209. package/dist/security/security-agent-coordinator.js +0 -1
  210. package/dist/security/security-auditor.js +0 -1
  211. package/dist/security/security-hardener.js +0 -1
  212. package/dist/security/security-hardening-system.js +0 -1
  213. package/dist/security/security-headers.js +0 -1
  214. package/dist/security/security-orchestration-layer.js +0 -1
  215. package/dist/services/inference-tuner.js +0 -1
  216. package/dist/session/session-cleanup-manager.js +0 -1
  217. package/dist/session/session-monitor.js +0 -1
  218. package/dist/session/session-state-manager.js +0 -1
  219. package/dist/skills/xray-orchestrator/index.js +0 -1
  220. package/dist/utils/codex-parser.js +0 -1
  221. package/dist/utils/language-detector.js +0 -1
  222. package/dist/utils/shutdown-handler.js +0 -1
  223. package/dist/validation/agent-config-validator.js +280 -0
  224. package/dist/validation/orchestration-flow-validator.js +606 -0
  225. package/package.json +1 -1
  226. package/scripts/node/release.mjs +2 -2
  227. package/scripts/node/setup.cjs +28 -0
  228. package/scripts/node/universal-version-manager.js +1 -1
  229. package/src/mcps/agent-resolver.ts +0 -1
  230. package/src/mcps/architect-tools.server.ts +129 -211
  231. package/src/mcps/auto-format.server.ts +74 -103
  232. package/src/mcps/boot-orchestrator.server.ts +71 -96
  233. package/src/mcps/config/__tests__/config-loader.test.ts +6 -6
  234. package/src/mcps/config/config-loader.ts +7 -0
  235. package/src/mcps/config/plugin-server-registry.ts +0 -1
  236. package/src/mcps/enforcer-tools.server.ts +217 -294
  237. package/src/mcps/estimation.server.ts +62 -122
  238. package/src/mcps/framework-compliance-audit.server.ts +53 -95
  239. package/src/mcps/framework-help.server.ts +74 -96
  240. package/src/mcps/governance.server.ts +97 -162
  241. package/src/mcps/knowledge-skills/api-design.server.ts +33 -72
  242. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +33 -72
  243. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +148 -193
  244. package/src/mcps/knowledge-skills/code-analyzer.server.ts +222 -254
  245. package/src/mcps/knowledge-skills/code-review.server.ts +115 -157
  246. package/src/mcps/knowledge-skills/content-creator.server.ts +219 -246
  247. package/src/mcps/knowledge-skills/database-design.server.ts +119 -160
  248. package/src/mcps/knowledge-skills/devops-deployment.server.ts +126 -167
  249. package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
  250. package/src/mcps/knowledge-skills/growth-strategist.server.ts +322 -360
  251. package/src/mcps/knowledge-skills/log-monitor.server.ts +68 -95
  252. package/src/mcps/knowledge-skills/mobile-development.server.ts +16 -56
  253. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +13 -59
  254. package/src/mcps/knowledge-skills/performance-optimization.server.ts +13 -74
  255. package/src/mcps/knowledge-skills/project-analysis.server.ts +13 -120
  256. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +13 -60
  257. package/src/mcps/knowledge-skills/security-audit.server.ts +19 -157
  258. package/src/mcps/knowledge-skills/seo-consultant.server.ts +23 -227
  259. package/src/mcps/knowledge-skills/session-management.server.ts +17 -106
  260. package/src/mcps/knowledge-skills/skill-invocation.server.ts +45 -446
  261. package/src/mcps/knowledge-skills/strategist.server.ts +13 -63
  262. package/src/mcps/knowledge-skills/tech-writer.server.ts +19 -204
  263. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +21 -204
  264. package/src/mcps/knowledge-skills/testing-strategy.server.ts +21 -165
  265. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +25 -342
  266. package/src/mcps/lint.server.ts +52 -105
  267. package/src/mcps/model-health-check.server.ts +34 -70
  268. package/src/mcps/orchestrator/aside-context.ts +245 -0
  269. package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
  270. package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
  271. package/src/mcps/orchestrator/handlers/task-handler.ts +8 -1
  272. package/src/mcps/orchestrator/index.ts +29 -0
  273. package/src/mcps/orchestrator/server.ts +79 -24
  274. package/src/mcps/orchestrator/types.ts +37 -0
  275. package/src/mcps/performance-analysis.server.ts +59 -102
  276. package/src/mcps/processor-pipeline.server.ts +70 -108
  277. package/src/mcps/researcher.server.ts +87 -175
  278. package/src/mcps/security-scan.server.ts +57 -76
  279. package/src/mcps/shared/knowledge-skill-base.ts +12 -4
  280. package/src/mcps/state-manager.server.ts +129 -169
  281. package/src/opencode/codex.codex +1 -1
  282. package/src/opencode/commands/auto-format.md +3 -3
  283. package/src/opencode/commands/auto-summary-capture.md +2 -2
  284. package/src/opencode/commands/enforcer-daily-scan.md +3 -3
  285. package/src/opencode/commands/framework-compliance-audit.md +4 -4
  286. package/src/opencode/commands/interactive-validator.md +2 -2
  287. package/src/opencode/commands/job-summary-logger.md +2 -2
  288. package/src/opencode/commands/mode-switch.md +1 -1
  289. package/src/opencode/commands/model-health-check.md +2 -2
  290. package/src/opencode/commands/performance-analysis.md +2 -2
  291. package/src/opencode/commands/pre-commit-introspection.md +3 -3
  292. package/src/opencode/commands/security-scan.md +3 -3
  293. package/src/opencode/commands/sisyphus-validation.md +3 -3
  294. package/src/opencode/commands/summary-logger.md +2 -2
  295. package/src/skills/xray-orchestrator/index.ts +0 -1
  296. package/dist/nucleus/orchestrator.js +0 -479
@@ -5,12 +5,7 @@
5
5
  * query performance analysis, and data modeling best practices
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";
@@ -111,167 +106,141 @@ interface SchemaComparison {
111
106
  hasDataLoss: boolean;
112
107
  }
113
108
 
114
- class XrayDatabaseDesignServer {
115
- private server: Server;
109
+ class XrayDatabaseDesignServer extends XrayKnowledgeSkillBase {
116
110
 
117
111
  constructor() {
118
- this.server = new Server(
112
+ super("database-design", "3.1.0");
113
+
114
+ this.tools = [
119
115
  {
120
- name: "database-design", version: "3.1.0",
116
+ name: "analyze_schema",
117
+ description:
118
+ "Analyze database schema for optimization opportunities and best practices",
119
+ inputSchema: {
120
+ type: "object",
121
+ properties: {
122
+ schemaFile: {
123
+ type: "string",
124
+ description:
125
+ "Path to schema definition file (SQL, migration, or ORM model)",
126
+ },
127
+ databaseType: {
128
+ type: "string",
129
+ enum: ["postgresql", "mysql", "sqlite", "mongodb", "redis"],
130
+ description: "Database type for specific optimizations",
131
+ },
132
+ includeIndexes: {
133
+ type: "boolean",
134
+ description: "Include index recommendations in analysis",
135
+ default: true,
136
+ },
137
+ },
138
+ required: ["schemaFile"],
139
+ },
121
140
  },
122
141
  {
123
- capabilities: {
124
- tools: {},
142
+ name: "optimize_query",
143
+ description:
144
+ "Analyze and optimize SQL queries for better performance",
145
+ inputSchema: {
146
+ type: "object",
147
+ properties: {
148
+ query: {
149
+ type: "string",
150
+ description: "SQL query to analyze and optimize",
151
+ },
152
+ schemaContext: {
153
+ type: "string",
154
+ description:
155
+ "Schema context or file path for better analysis",
156
+ },
157
+ databaseType: {
158
+ type: "string",
159
+ enum: ["postgresql", "mysql", "sqlite"],
160
+ description: "Database type for query optimization",
161
+ },
162
+ },
163
+ required: ["query"],
125
164
  },
126
165
  },
127
- );
128
-
129
- this.setupToolHandlers();
130
- // Server initialization - removed unnecessary startup logging
131
- }
132
-
133
- private setupToolHandlers() {
134
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
135
- return {
136
- tools: [
137
- {
138
- name: "analyze_schema",
139
- description:
140
- "Analyze database schema for optimization opportunities and best practices",
141
- inputSchema: {
142
- type: "object",
143
- properties: {
144
- schemaFile: {
145
- type: "string",
146
- description:
147
- "Path to schema definition file (SQL, migration, or ORM model)",
148
- },
149
- databaseType: {
150
- type: "string",
151
- enum: ["postgresql", "mysql", "sqlite", "mongodb", "redis"],
152
- description: "Database type for specific optimizations",
153
- },
154
- includeIndexes: {
155
- type: "boolean",
156
- description: "Include index recommendations in analysis",
157
- default: true,
158
- },
159
- },
160
- required: ["schemaFile"],
166
+ {
167
+ name: "design_data_model",
168
+ description: "Design optimal data model for given requirements",
169
+ inputSchema: {
170
+ type: "object",
171
+ properties: {
172
+ requirements: {
173
+ type: "string",
174
+ description: "Business requirements and data access patterns",
161
175
  },
162
- },
163
- {
164
- name: "optimize_query",
165
- description:
166
- "Analyze and optimize SQL queries for better performance",
167
- inputSchema: {
168
- type: "object",
169
- properties: {
170
- query: {
171
- type: "string",
172
- description: "SQL query to analyze and optimize",
173
- },
174
- schemaContext: {
175
- type: "string",
176
- description:
177
- "Schema context or file path for better analysis",
178
- },
179
- databaseType: {
180
- type: "string",
181
- enum: ["postgresql", "mysql", "sqlite"],
182
- description: "Database type for query optimization",
183
- },
184
- },
185
- required: ["query"],
176
+ entities: {
177
+ type: "array",
178
+ items: { type: "string" },
179
+ description: "List of main entities/business objects",
186
180
  },
187
- },
188
- {
189
- name: "design_data_model",
190
- description: "Design optimal data model for given requirements",
191
- inputSchema: {
192
- type: "object",
193
- properties: {
194
- requirements: {
195
- type: "string",
196
- description: "Business requirements and data access patterns",
197
- },
198
- entities: {
199
- type: "array",
200
- items: { type: "string" },
201
- description: "List of main entities/business objects",
202
- },
203
- relationships: {
204
- type: "array",
205
- items: {
206
- type: "object",
207
- properties: {
208
- from: { type: "string" },
209
- to: { type: "string" },
210
- type: {
211
- type: "string",
212
- enum: ["one-to-one", "one-to-many", "many-to-many"],
213
- },
214
- },
181
+ relationships: {
182
+ type: "array",
183
+ items: {
184
+ type: "object",
185
+ properties: {
186
+ from: { type: "string" },
187
+ to: { type: "string" },
188
+ type: {
189
+ type: "string",
190
+ enum: ["one-to-one", "one-to-many", "many-to-many"],
215
191
  },
216
- description: "Entity relationships",
217
- },
218
- databaseType: {
219
- type: "string",
220
- enum: ["postgresql", "mysql", "mongodb", "redis"],
221
- description: "Target database type",
222
192
  },
223
193
  },
224
- required: ["requirements", "entities"],
194
+ description: "Entity relationships",
195
+ },
196
+ databaseType: {
197
+ type: "string",
198
+ enum: ["postgresql", "mysql", "mongodb", "redis"],
199
+ description: "Target database type",
225
200
  },
226
201
  },
227
- {
228
- name: "migrate_schema",
229
- description: "Generate migration scripts for schema changes",
230
- inputSchema: {
231
- type: "object",
232
- properties: {
233
- currentSchema: {
234
- type: "string",
235
- description: "Current schema definition",
236
- },
237
- targetSchema: {
238
- type: "string",
239
- description: "Target schema definition",
240
- },
241
- databaseType: {
242
- type: "string",
243
- enum: ["postgresql", "mysql", "sqlite"],
244
- description: "Database type for migration",
245
- },
246
- safeMode: {
247
- type: "boolean",
248
- description: "Generate rollback scripts and safety checks",
249
- default: true,
250
- },
251
- },
252
- required: ["currentSchema", "targetSchema"],
202
+ required: ["requirements", "entities"],
203
+ },
204
+ },
205
+ {
206
+ name: "migrate_schema",
207
+ description: "Generate migration scripts for schema changes",
208
+ inputSchema: {
209
+ type: "object",
210
+ properties: {
211
+ currentSchema: {
212
+ type: "string",
213
+ description: "Current schema definition",
214
+ },
215
+ targetSchema: {
216
+ type: "string",
217
+ description: "Target schema definition",
218
+ },
219
+ databaseType: {
220
+ type: "string",
221
+ enum: ["postgresql", "mysql", "sqlite"],
222
+ description: "Database type for migration",
223
+ },
224
+ safeMode: {
225
+ type: "boolean",
226
+ description: "Generate rollback scripts and safety checks",
227
+ default: true,
253
228
  },
254
229
  },
255
- ],
256
- };
257
- });
230
+ required: ["currentSchema", "targetSchema"],
231
+ },
232
+ },
233
+ ];
258
234
 
259
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
260
- const { name, arguments: args } = request.params;
261
-
262
- switch (name) {
263
- case "analyze_schema":
264
- return await this.analyzeSchema(args);
265
- case "optimize_query":
266
- return await this.optimizeQuery(args);
267
- case "design_data_model":
268
- return await this.designDataModel(args);
269
- case "migrate_schema":
270
- return await this.migrateSchema(args);
271
- default:
272
- throw new Error(`Unknown tool: ${name}`);
273
- }
274
- });
235
+ this.handlers = {
236
+ "analyze_schema": async (args) => this.analyzeSchema(args as Record<string, unknown> | undefined),
237
+ "optimize_query": async (args) => this.optimizeQuery(args as Record<string, unknown> | undefined),
238
+ "design_data_model": async (args) => this.designDataModel(args as Record<string, unknown> | undefined),
239
+ "migrate_schema": async (args) => this.migrateSchema(args as Record<string, unknown> | undefined),
240
+ };
241
+
242
+ this.setupToolHandlers();
243
+ // Server initialization - removed unnecessary startup logging
275
244
  }
276
245
 
277
246
  private async analyzeSchema(args: Record<string, unknown> | undefined) {
@@ -1179,16 +1148,6 @@ class XrayDatabaseDesignServer {
1179
1148
  return icons[severity as keyof typeof icons] || "❓";
1180
1149
  }
1181
1150
 
1182
- async run(): Promise<void> {
1183
- const transport = new StdioServerTransport();
1184
- await this.server.connect(transport);
1185
-
1186
- // Use centralized shutdown handler
1187
- createGracefulShutdown({
1188
- serverName: "database-design.server",
1189
- server: this.server,
1190
- });
1191
- }
1192
1151
  }
1193
1152
 
1194
1153
  // Run the server if this file is executed directly
@@ -5,15 +5,10 @@
5
5
  * CI/CD pipeline design, and infrastructure automation
6
6
  */
7
7
 
8
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
10
9
  import * as fs from "fs";
11
10
  import { frameworkLogger } from "../../core/framework-logger.js";
12
11
  import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
13
- import {
14
- CallToolRequestSchema,
15
- ListToolsRequestSchema,
16
- } from "@modelcontextprotocol/sdk/types.js";
17
12
 
18
13
  interface DeploymentStrategy {
19
14
  name: string;
@@ -207,177 +202,151 @@ interface OptimizationRoadmap {
207
202
  finalMetrics: DeploymentMetricsInput;
208
203
  }
209
204
 
210
- class XrayDevOpsDeploymentServer {
211
- private server: Server;
205
+ class XrayDevOpsDeploymentServer extends XrayKnowledgeSkillBase {
212
206
 
213
207
  constructor() {
214
- this.server = new Server(
208
+ super("devops-deployment", "3.1.0");
209
+
210
+ this.tools = [
215
211
  {
216
- name: "devops-deployment", version: "3.1.0",
212
+ name: "analyze_ci_cd_pipeline",
213
+ description:
214
+ "Analyze CI/CD pipeline configuration and suggest optimizations",
215
+ inputSchema: {
216
+ type: "object",
217
+ properties: {
218
+ pipelineConfig: {
219
+ type: "string",
220
+ description: "CI/CD pipeline configuration (YAML/JSON)",
221
+ },
222
+ platform: {
223
+ type: "string",
224
+ enum: [
225
+ "github-actions",
226
+ "gitlab-ci",
227
+ "jenkins",
228
+ "circle-ci",
229
+ "azure-devops",
230
+ ],
231
+ description: "CI/CD platform being used",
232
+ },
233
+ includeSecurity: {
234
+ type: "boolean",
235
+ description: "Include security gate analysis",
236
+ default: true,
237
+ },
238
+ },
239
+ required: ["pipelineConfig", "platform"],
240
+ },
217
241
  },
218
242
  {
219
- capabilities: {
220
- tools: {},
243
+ name: "design_deployment_strategy",
244
+ description:
245
+ "Design optimal deployment strategy for application requirements",
246
+ inputSchema: {
247
+ type: "object",
248
+ properties: {
249
+ applicationType: {
250
+ type: "string",
251
+ enum: [
252
+ "web-app",
253
+ "api",
254
+ "mobile",
255
+ "microservices",
256
+ "monolith",
257
+ ],
258
+ description: "Type of application",
259
+ },
260
+ scale: {
261
+ type: "string",
262
+ enum: ["small", "medium", "large", "enterprise"],
263
+ description: "Expected scale/traffic",
264
+ },
265
+ availability: {
266
+ type: "string",
267
+ enum: ["basic", "high", "critical"],
268
+ description: "Required availability level",
269
+ },
270
+ budget: {
271
+ type: "string",
272
+ enum: ["cost-optimized", "balanced", "performance-optimized"],
273
+ description: "Budget considerations",
274
+ },
275
+ },
276
+ required: ["applicationType", "scale"],
221
277
  },
222
278
  },
223
- );
224
-
225
- this.setupToolHandlers();
226
- // Server initialization - removed unnecessary startup logging
227
- }
228
-
229
- private setupToolHandlers() {
230
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
231
- return {
232
- tools: [
233
- {
234
- name: "analyze_ci_cd_pipeline",
235
- description:
236
- "Analyze CI/CD pipeline configuration and suggest optimizations",
237
- inputSchema: {
238
- type: "object",
239
- properties: {
240
- pipelineConfig: {
241
- type: "string",
242
- description: "CI/CD pipeline configuration (YAML/JSON)",
243
- },
244
- platform: {
245
- type: "string",
246
- enum: [
247
- "github-actions",
248
- "gitlab-ci",
249
- "jenkins",
250
- "circle-ci",
251
- "azure-devops",
252
- ],
253
- description: "CI/CD platform being used",
254
- },
255
- includeSecurity: {
256
- type: "boolean",
257
- description: "Include security gate analysis",
258
- default: true,
259
- },
260
- },
261
- required: ["pipelineConfig", "platform"],
279
+ {
280
+ name: "generate_infrastructure_code",
281
+ description: "Generate infrastructure as code for deployment",
282
+ inputSchema: {
283
+ type: "object",
284
+ properties: {
285
+ platform: {
286
+ type: "string",
287
+ enum: ["aws", "azure", "gcp", "kubernetes"],
288
+ description: "Target cloud platform",
262
289
  },
263
- },
264
- {
265
- name: "design_deployment_strategy",
266
- description:
267
- "Design optimal deployment strategy for application requirements",
268
- inputSchema: {
269
- type: "object",
270
- properties: {
271
- applicationType: {
272
- type: "string",
273
- enum: [
274
- "web-app",
275
- "api",
276
- "mobile",
277
- "microservices",
278
- "monolith",
279
- ],
280
- description: "Type of application",
281
- },
282
- scale: {
283
- type: "string",
284
- enum: ["small", "medium", "large", "enterprise"],
285
- description: "Expected scale/traffic",
286
- },
287
- availability: {
288
- type: "string",
289
- enum: ["basic", "high", "critical"],
290
- description: "Required availability level",
291
- },
292
- budget: {
293
- type: "string",
294
- enum: ["cost-optimized", "balanced", "performance-optimized"],
295
- description: "Budget considerations",
296
- },
297
- },
298
- required: ["applicationType", "scale"],
290
+ services: {
291
+ type: "array",
292
+ items: { type: "string" },
293
+ description:
294
+ "Required services (database, cache, storage, etc.)",
295
+ },
296
+ environment: {
297
+ type: "string",
298
+ enum: ["development", "staging", "production"],
299
+ description: "Deployment environment",
300
+ },
301
+ scaling: {
302
+ type: "boolean",
303
+ description: "Include auto-scaling configuration",
304
+ default: true,
299
305
  },
300
306
  },
301
- {
302
- name: "generate_infrastructure_code",
303
- description: "Generate infrastructure as code for deployment",
304
- inputSchema: {
307
+ required: ["platform", "services"],
308
+ },
309
+ },
310
+ {
311
+ name: "optimize_deployment_performance",
312
+ description:
313
+ "Analyze and optimize deployment performance and reliability",
314
+ inputSchema: {
315
+ type: "object",
316
+ properties: {
317
+ currentMetrics: {
305
318
  type: "object",
306
319
  properties: {
307
- platform: {
308
- type: "string",
309
- enum: ["aws", "azure", "gcp", "kubernetes"],
310
- description: "Target cloud platform",
311
- },
312
- services: {
313
- type: "array",
314
- items: { type: "string" },
315
- description:
316
- "Required services (database, cache, storage, etc.)",
317
- },
318
- environment: {
319
- type: "string",
320
- enum: ["development", "staging", "production"],
321
- description: "Deployment environment",
322
- },
323
- scaling: {
324
- type: "boolean",
325
- description: "Include auto-scaling configuration",
326
- default: true,
327
- },
320
+ deployTime: { type: "number" },
321
+ failureRate: { type: "number" },
322
+ rollbackTime: { type: "number" },
328
323
  },
329
- required: ["platform", "services"],
324
+ description: "Current deployment metrics",
330
325
  },
331
- },
332
- {
333
- name: "optimize_deployment_performance",
334
- description:
335
- "Analyze and optimize deployment performance and reliability",
336
- inputSchema: {
326
+ constraints: {
337
327
  type: "object",
338
328
  properties: {
339
- currentMetrics: {
340
- type: "object",
341
- properties: {
342
- deployTime: { type: "number" },
343
- failureRate: { type: "number" },
344
- rollbackTime: { type: "number" },
345
- },
346
- description: "Current deployment metrics",
347
- },
348
- constraints: {
349
- type: "object",
350
- properties: {
351
- maxDowntime: { type: "number" },
352
- budget: { type: "number" },
353
- teamSize: { type: "number" },
354
- },
355
- description: "Business and technical constraints",
356
- },
329
+ maxDowntime: { type: "number" },
330
+ budget: { type: "number" },
331
+ teamSize: { type: "number" },
357
332
  },
358
- required: ["currentMetrics"],
333
+ description: "Business and technical constraints",
359
334
  },
360
335
  },
361
- ],
362
- };
363
- });
336
+ required: ["currentMetrics"],
337
+ },
338
+ },
339
+ ];
364
340
 
365
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
366
- const { name, arguments: args } = request.params;
367
-
368
- switch (name) {
369
- case "analyze_ci_cd_pipeline":
370
- return await this.analyzeCICDPipeline(args as unknown as CICDPipelineArgs);
371
- case "design_deployment_strategy":
372
- return await this.designDeploymentStrategy(args as unknown as DeploymentStrategyArgs);
373
- case "generate_infrastructure_code":
374
- return await this.generateInfrastructureCode(args as unknown as InfrastructureCodeArgs);
375
- case "optimize_deployment_performance":
376
- return await this.optimizeDeploymentPerformance(args as unknown as DeploymentPerformanceArgs);
377
- default:
378
- throw new Error(`Unknown tool: ${name}`);
379
- }
380
- });
341
+ this.handlers = {
342
+ "analyze_ci_cd_pipeline": async (args) => this.analyzeCICDPipeline(args as CICDPipelineArgs),
343
+ "design_deployment_strategy": async (args) => this.designDeploymentStrategy(args as DeploymentStrategyArgs),
344
+ "generate_infrastructure_code": async (args) => this.generateInfrastructureCode(args as InfrastructureCodeArgs),
345
+ "optimize_deployment_performance": async (args) => this.optimizeDeploymentPerformance(args as DeploymentPerformanceArgs),
346
+ };
347
+
348
+ this.setupToolHandlers();
349
+ // Server initialization - removed unnecessary startup logging
381
350
  }
382
351
 
383
352
  private async analyzeCICDPipeline(args: CICDPipelineArgs) {
@@ -1602,16 +1571,6 @@ spec:
1602
1571
  }
1603
1572
  }
1604
1573
 
1605
- async run(): Promise<void> {
1606
- const transport = new StdioServerTransport();
1607
- await this.server.connect(transport);
1608
-
1609
- // Use centralized shutdown handler
1610
- createGracefulShutdown({
1611
- serverName: "devops-deployment.server",
1612
- server: this.server,
1613
- });
1614
- }
1615
1574
  }
1616
1575
 
1617
1576
  // Run the server if this file is executed directly