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
@@ -4,135 +4,84 @@
4
4
  * Provides tools for tracking and validating estimates
5
5
  */
6
6
 
7
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
- import {
10
- CallToolRequestSchema,
11
- ListToolsRequestSchema,
12
- } from "@modelcontextprotocol/sdk/types.js";
13
7
  import * as fs from "fs";
14
8
  import { frameworkLogger } from "../core/framework-logger.js";
9
+ import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
15
10
  import { getEstimationValidator } from "../validation/estimation-validator.js";
16
11
 
17
12
  /**
18
13
  * Estimation MCP Server
19
14
  * Tracks estimates vs actuals and provides calibrated predictions
20
15
  */
21
- class EstimationServer {
22
- private server: Server;
16
+ class EstimationServer extends XrayKnowledgeSkillBase {
23
17
  private validator = getEstimationValidator();
24
18
 
25
19
  constructor() {
26
- this.server = new Server(
20
+ super("estimation-validator", "3.1.0");
21
+ this.tools = [
27
22
  {
28
- name: "estimation-validator", version: "3.1.0",
29
- },
30
- {
31
- capabilities: { tools: {} },
32
- }
33
- );
34
-
35
- this.setupToolHandlers();
36
- }
37
-
38
- private setupToolHandlers(): void {
39
- // List available tools
40
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
41
- return {
42
- tools: [
43
- {
44
- name: "validate-estimate",
45
- description: "Validate an estimate against historical data",
46
- inputSchema: {
47
- type: "object",
48
- properties: {
49
- category: {
50
- type: "string",
51
- description: "Task category (e.g., 'refactoring', 'testing', 'documentation')",
52
- },
53
- estimate: {
54
- type: "number",
55
- description: "Estimated time in minutes",
56
- },
57
- description: {
58
- type: "string",
59
- description: "Brief description of the task",
60
- },
61
- },
62
- required: ["category", "estimate"],
23
+ name: "validate-estimate",
24
+ description: "Validate an estimate against historical data",
25
+ inputSchema: {
26
+ type: "object",
27
+ properties: {
28
+ category: {
29
+ type: "string",
30
+ description: "Task category (e.g., 'refactoring', 'testing', 'documentation')",
63
31
  },
64
- },
65
- {
66
- name: "start-tracking",
67
- description: "Start tracking time for a task",
68
- inputSchema: {
69
- type: "object",
70
- properties: {
71
- taskId: { type: "string" },
72
- category: { type: "string" },
73
- estimate: { type: "number" },
74
- description: { type: "string" },
75
- },
76
- required: ["taskId", "category", "estimate"],
32
+ estimate: {
33
+ type: "number",
34
+ description: "Estimated time in minutes",
77
35
  },
78
- },
79
- {
80
- name: "complete-tracking",
81
- description: "Complete tracking for a task",
82
- inputSchema: {
83
- type: "object",
84
- properties: {
85
- taskId: { type: "string" },
86
- },
87
- required: ["taskId"],
36
+ description: {
37
+ type: "string",
38
+ description: "Brief description of the task",
88
39
  },
89
40
  },
90
- {
91
- name: "get-accuracy-report",
92
- description: "Get estimation accuracy report",
93
- inputSchema: {
94
- type: "object",
95
- properties: {},
96
- },
41
+ required: ["category", "estimate"],
42
+ },
43
+ },
44
+ {
45
+ name: "start-tracking",
46
+ description: "Start tracking time for a task",
47
+ inputSchema: {
48
+ type: "object",
49
+ properties: {
50
+ taskId: { type: "string" },
51
+ category: { type: "string" },
52
+ estimate: { type: "number" },
53
+ description: { type: "string" },
97
54
  },
98
- ],
99
- };
100
- });
101
-
102
- // Handle tool calls
103
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
104
- try {
105
- const { name, arguments: args } = request.params;
106
-
107
- if (args == null) {
108
- throw new Error(`Tool '${name}' called with no arguments`);
109
- }
110
-
111
- switch (name) {
112
- case "validate-estimate":
113
- return this.handleValidateEstimate(args as { category: string; estimate: number; description?: string });
114
-
115
- case "start-tracking":
116
- return this.handleStartTracking(args as { taskId: string; category: string; estimate: number; description?: string });
117
-
118
- case "complete-tracking":
119
- return this.handleCompleteTracking(args as { taskId: string });
120
-
121
- case "get-accuracy-report":
122
- return this.handleGetReport();
123
-
124
- default:
125
- throw new Error(`Unknown tool: ${name}`);
126
- }
127
- } catch (error) {
128
- return {
129
- content: [{
130
- type: "text" as const,
131
- text: `Error handling tool '${request.params.name}': ${error instanceof Error ? error.message : String(error)}`,
132
- }],
133
- };
134
- }
135
- });
55
+ required: ["taskId", "category", "estimate"],
56
+ },
57
+ },
58
+ {
59
+ name: "complete-tracking",
60
+ description: "Complete tracking for a task",
61
+ inputSchema: {
62
+ type: "object",
63
+ properties: {
64
+ taskId: { type: "string" },
65
+ },
66
+ required: ["taskId"],
67
+ },
68
+ },
69
+ {
70
+ name: "get-accuracy-report",
71
+ description: "Get estimation accuracy report",
72
+ inputSchema: {
73
+ type: "object",
74
+ properties: {},
75
+ },
76
+ },
77
+ ];
78
+ this.handlers = {
79
+ "validate-estimate": async (args) => this.handleValidateEstimate(args as { category: string; estimate: number; description?: string }),
80
+ "start-tracking": async (args) => this.handleStartTracking(args as { taskId: string; category: string; estimate: number; description?: string }),
81
+ "complete-tracking": async (args) => this.handleCompleteTracking(args as { taskId: string }),
82
+ "get-accuracy-report": async () => this.handleGetReport(),
83
+ };
84
+ this.setupToolHandlers();
136
85
  }
137
86
 
138
87
  private handleValidateEstimate(args: { category: string; estimate: number; description?: string }): { content: Array<{ type: string; text: string }> } {
@@ -210,21 +159,12 @@ class EstimationServer {
210
159
 
211
160
  return { content: [{ type: "text", text: response }] };
212
161
  }
213
-
214
- async start(): Promise<void> {
215
- const transport = new StdioServerTransport();
216
- await this.server.connect(transport);
217
-
218
- frameworkLogger.log("estimation-server", "start", "info", {
219
- message: "Estimation Validator Server started",
220
- });
221
- }
222
162
  }
223
163
 
224
164
  // Run if called directly
225
165
  if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
226
166
  const server = new EstimationServer();
227
- server.start().catch((error) => frameworkLogger.log("mcps/estimation", "run", "error", { error: String(error) }));
167
+ server.run().catch((error) => frameworkLogger.log("mcps/estimation", "run", "error", { error: String(error) }));
228
168
  }
229
169
 
230
170
  export { EstimationServer };
@@ -4,15 +4,10 @@
4
4
  * Comprehensive validation of all framework components and Universal Development Codex compliance
5
5
  */
6
6
 
7
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
- import {
10
- CallToolRequestSchema,
11
- ListToolsRequestSchema,
12
- } from "@modelcontextprotocol/sdk/types.js";
13
7
  import fs from "fs";
14
8
  import path from "path";
15
9
  import { frameworkLogger } from "../core/framework-logger.js";
10
+ import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
16
11
 
17
12
  interface FrameworkComplianceAuditArgs {
18
13
  scope?: string;
@@ -33,20 +28,64 @@ interface AuditResults {
33
28
  summary: string;
34
29
  }
35
30
 
36
- class XrayFrameworkComplianceAuditServer {
37
- private server: Server;
38
-
31
+ class XrayFrameworkComplianceAuditServer extends XrayKnowledgeSkillBase {
39
32
  constructor() {
40
- this.server = new Server(
33
+ super("framework-compliance-audit", "3.1.0");
34
+
35
+ this.tools = [
41
36
  {
42
- name: "framework-compliance-audit", version: "3.1.0",
37
+ name: "framework-compliance-audit",
38
+ description:
39
+ "Comprehensive validation of all framework components and Universal Development Codex compliance",
40
+ inputSchema: {
41
+ type: "object",
42
+ properties: {
43
+ scope: {
44
+ type: "string",
45
+ enum: [
46
+ "full",
47
+ "codex",
48
+ "configuration",
49
+ "agents",
50
+ "performance",
51
+ ],
52
+ default: "full",
53
+ description: "Scope of compliance audit",
54
+ },
55
+ detailed: {
56
+ type: "boolean",
57
+ default: false,
58
+ description: "Include detailed findings and recommendations",
59
+ },
60
+ },
61
+ },
43
62
  },
44
63
  {
45
- capabilities: {
46
- tools: {},
64
+ name: "codex-validation",
65
+ description:
66
+ "Validate compliance with Universal Development Codex v1.2.0",
67
+ inputSchema: {
68
+ type: "object",
69
+ properties: {
70
+ terms: {
71
+ type: "array",
72
+ items: { type: "number", minimum: 1, maximum: 43 },
73
+ description: "Specific codex terms to validate (1-43)",
74
+ },
75
+ strict: {
76
+ type: "boolean",
77
+ default: true,
78
+ description: "Enforce strict compliance",
79
+ },
80
+ },
47
81
  },
48
82
  },
49
- );
83
+ ];
84
+
85
+ this.handlers = {
86
+ "framework-compliance-audit": async (args) => this.handleFrameworkComplianceAudit(args as FrameworkComplianceAuditArgs),
87
+ "codex-validation": async (args) => this.handleCodexValidation(args as CodexValidationArgs),
88
+ };
50
89
 
51
90
  this.setupToolHandlers();
52
91
  void frameworkLogger.log(
@@ -57,77 +96,6 @@ class XrayFrameworkComplianceAuditServer {
57
96
  );
58
97
  }
59
98
 
60
- private setupToolHandlers() {
61
- // List available tools
62
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
63
- return {
64
- tools: [
65
- {
66
- name: "framework-compliance-audit",
67
- description:
68
- "Comprehensive validation of all framework components and Universal Development Codex compliance",
69
- inputSchema: {
70
- type: "object",
71
- properties: {
72
- scope: {
73
- type: "string",
74
- enum: [
75
- "full",
76
- "codex",
77
- "configuration",
78
- "agents",
79
- "performance",
80
- ],
81
- default: "full",
82
- description: "Scope of compliance audit",
83
- },
84
- detailed: {
85
- type: "boolean",
86
- default: false,
87
- description: "Include detailed findings and recommendations",
88
- },
89
- },
90
- },
91
- },
92
- {
93
- name: "codex-validation",
94
- description:
95
- "Validate compliance with Universal Development Codex v1.2.0",
96
- inputSchema: {
97
- type: "object",
98
- properties: {
99
- terms: {
100
- type: "array",
101
- items: { type: "number", minimum: 1, maximum: 43 },
102
- description: "Specific codex terms to validate (1-43)",
103
- },
104
- strict: {
105
- type: "boolean",
106
- default: true,
107
- description: "Enforce strict compliance",
108
- },
109
- },
110
- },
111
- },
112
- ],
113
- };
114
- });
115
-
116
- // Handle tool calls
117
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
118
- const { name, arguments: args } = request.params;
119
-
120
- switch (name) {
121
- case "framework-compliance-audit":
122
- return await this.handleFrameworkComplianceAudit(args as unknown as FrameworkComplianceAuditArgs);
123
- case "codex-validation":
124
- return await this.handleCodexValidation(args as unknown as CodexValidationArgs);
125
- default:
126
- throw new Error(`Unknown tool: ${name}`);
127
- }
128
- });
129
- }
130
-
131
99
  private async handleFrameworkComplianceAudit(args: FrameworkComplianceAuditArgs) {
132
100
  const scope = args.scope || "full";
133
101
  const detailed = args.detailed || false;
@@ -614,16 +582,6 @@ ${results.recommendations.map((r) => `• 💡 ${r}`).join("\n")}
614
582
  return details;
615
583
  }
616
584
 
617
- async run() {
618
- const transport = new StdioServerTransport();
619
- await this.server.connect(transport);
620
- void frameworkLogger.log(
621
- "framework-compliance-audit.server",
622
- "compliance-audit-startup",
623
- "info",
624
- { message: "0xRay Framework Compliance Audit MCP Server started" },
625
- );
626
- }
627
585
  }
628
586
 
629
587
  // Start the server if run directly
@@ -1,11 +1,9 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
1
  import {
4
2
  CallToolRequestSchema,
5
3
  ErrorCode,
6
- ListToolsRequestSchema,
7
4
  McpError,
8
5
  } from "@modelcontextprotocol/sdk/types.js";
6
+ import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
9
7
  import * as fs from "fs";
10
8
  import { frameworkLogger } from "../core/framework-logger.js";
11
9
  import { AGENT_REGISTRY, getActiveAgents } from "../agents/registry.js";
@@ -17,107 +15,92 @@ interface CapabilitiesMap {
17
15
  reporting: { [key: string]: string };
18
16
  }
19
17
 
20
- class FrameworkHelpServer {
21
- private server: Server;
18
+ class FrameworkHelpServer extends XrayKnowledgeSkillBase {
22
19
 
23
20
  constructor() {
24
- this.server = new Server(
21
+ super("xray/framework-help", "3.1.0");
22
+
23
+ this.tools = [
25
24
  {
26
- name: "xray/framework-help", version: "3.1.0",
25
+ name: "xray_get_capabilities",
26
+ description:
27
+ "Get comprehensive list of all 0xRay framework capabilities, commands, and available tools",
28
+ inputSchema: {
29
+ type: "object",
30
+ properties: {
31
+ category: {
32
+ type: "string",
33
+ enum: ["all", "agents", "skills", "commands", "reporting"],
34
+ description: "Filter capabilities by category",
35
+ default: "all",
36
+ },
37
+ format: {
38
+ type: "string",
39
+ enum: ["summary", "detailed", "commands"],
40
+ description: "Output format",
41
+ default: "summary",
42
+ },
43
+ },
44
+ required: [],
45
+ },
27
46
  },
28
47
  {
29
- capabilities: {
30
- tools: {},
48
+ name: "xray_get_commands",
49
+ description:
50
+ "Get list of available 0xRay commands and their usage",
51
+ inputSchema: {
52
+ type: "object",
53
+ properties: {
54
+ type: {
55
+ type: "string",
56
+ enum: [
57
+ "agent-commands",
58
+ "system-commands",
59
+ "reporting-commands",
60
+ ],
61
+ description: "Type of commands to list",
62
+ default: "agent-commands",
63
+ },
64
+ },
65
+ required: [],
31
66
  },
32
67
  },
33
- );
68
+ {
69
+ name: "xray_explain_capability",
70
+ description:
71
+ "Get detailed explanation of a specific 0xRay capability",
72
+ inputSchema: {
73
+ type: "object",
74
+ properties: {
75
+ capability: {
76
+ type: "string",
77
+ description: "Name of the capability to explain",
78
+ },
79
+ },
80
+ required: ["capability"],
81
+ },
82
+ },
83
+ ];
84
+
85
+ this.handlers = {
86
+ "xray_get_capabilities": async (args) => this.handleGetCapabilities(args as Record<string, unknown> | undefined),
87
+ "xray_get_commands": async (args) => this.handleGetCommands(args as Record<string, unknown> | undefined),
88
+ "xray_explain_capability": async (args) => this.handleExplainCapability(args as Record<string, unknown> | undefined),
89
+ };
34
90
 
35
91
  this.setupToolHandlers();
36
92
  }
37
93
 
38
- private setupToolHandlers() {
39
- // List available tools - required MCP protocol handler for tool discovery
40
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
41
- return {
42
- tools: [
43
- {
44
- name: "xray_get_capabilities",
45
- description:
46
- "Get comprehensive list of all 0xRay framework capabilities, commands, and available tools",
47
- inputSchema: {
48
- type: "object",
49
- properties: {
50
- category: {
51
- type: "string",
52
- enum: ["all", "agents", "skills", "commands", "reporting"],
53
- description: "Filter capabilities by category",
54
- default: "all",
55
- },
56
- format: {
57
- type: "string",
58
- enum: ["summary", "detailed", "commands"],
59
- description: "Output format",
60
- default: "summary",
61
- },
62
- },
63
- required: [],
64
- },
65
- },
66
- {
67
- name: "xray_get_commands",
68
- description:
69
- "Get list of available 0xRay commands and their usage",
70
- inputSchema: {
71
- type: "object",
72
- properties: {
73
- type: {
74
- type: "string",
75
- enum: [
76
- "agent-commands",
77
- "system-commands",
78
- "reporting-commands",
79
- ],
80
- description: "Type of commands to list",
81
- default: "agent-commands",
82
- },
83
- },
84
- required: [],
85
- },
86
- },
87
- {
88
- name: "xray_explain_capability",
89
- description:
90
- "Get detailed explanation of a specific 0xRay capability",
91
- inputSchema: {
92
- type: "object",
93
- properties: {
94
- capability: {
95
- type: "string",
96
- description: "Name of the capability to explain",
97
- },
98
- },
99
- required: ["capability"],
100
- },
101
- },
102
- ],
103
- };
104
- });
105
-
106
- // Handle tool calls - required MCP protocol handler for tool execution
94
+ override setupToolHandlers(): void {
95
+ this.setupListToolsHandler();
107
96
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
108
97
  const { name, arguments: args } = request.params;
109
-
98
+ const handler = this.handlers[name];
99
+ if (!handler) {
100
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
101
+ }
110
102
  try {
111
- switch (name) {
112
- case "xray_get_capabilities":
113
- return this.handleGetCapabilities(args);
114
- case "xray_get_commands":
115
- return this.handleGetCommands(args);
116
- case "xray_explain_capability":
117
- return this.handleExplainCapability(args);
118
- default:
119
- throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
120
- }
103
+ return await handler(args);
121
104
  } catch (error) {
122
105
  if (error instanceof McpError) {
123
106
  throw error;
@@ -452,17 +435,12 @@ ${items.map(([name, desc]) => `- **${name}**: ${desc}`).join("\n")}
452
435
  `.trim();
453
436
  }
454
437
 
455
- async start() {
456
- const transport = new StdioServerTransport();
457
- await this.server.connect(transport);
458
- frameworkLogger.log("mcps/framework-help", "start", "info", { message: "0xRay Framework Help Server started" });
459
- }
460
438
  }
461
439
 
462
440
  // Auto-start if this file is run directly - conditional server initialization for development/testing
463
441
  if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
464
442
  const server = new FrameworkHelpServer();
465
- server.start().catch((error) => frameworkLogger.log("mcps/framework-help", "run", "error", { error: String(error) }));
443
+ server.run().catch((error) => frameworkLogger.log("mcps/framework-help", "run", "error", { error: String(error) }));
466
444
  }
467
445
 
468
446
  export { FrameworkHelpServer };