0xray 2.1.2 → 2.1.4
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.
- package/.opencode/codex.codex +1 -1
- package/.opencode/commands/dependency-audit.md +3 -3
- package/.opencode/enforcer-config.json +2 -2
- package/AGENTS.md +2 -1
- package/README.md +12 -11
- package/dist/AGENTS.md +2 -1
- package/dist/CHANGELOG.md +38 -0
- package/dist/README.md +12 -11
- package/dist/agents/code-reviewer.js +1 -1
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/cli/index.js +11 -1
- package/dist/cli/server.js +3 -3
- package/dist/core/activity-logger.d.ts +2 -2
- package/dist/core/activity-logger.js +4 -4
- package/dist/core/boot-orchestrator.d.ts +1 -1
- package/dist/core/boot-orchestrator.js +13 -28
- package/dist/core/bridge.mjs +3 -3
- package/dist/core/codex-formatter.js +2 -2
- package/dist/core/codex-injector.d.ts +0 -1
- package/dist/core/codex-injector.js +2 -3
- package/dist/core/config-loader.d.ts +1 -1
- package/dist/core/config-loader.js +1 -1
- package/dist/core/config-paths.d.ts +0 -2
- package/dist/core/config-paths.js +7 -8
- package/dist/core/context-loader.d.ts +1 -1
- package/dist/core/context-loader.js +1 -1
- package/dist/core/errors.d.ts +3 -0
- package/dist/core/errors.js +10 -0
- package/dist/core/features-config.js +1 -1
- package/dist/core/framework-logger.d.ts +3 -3
- package/dist/core/framework-logger.js +17 -9
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +4 -2
- package/dist/core/logging-config.d.ts +2 -1
- package/dist/core/logging-config.js +7 -7
- package/dist/enforcement/loaders/codex-loader.js +1 -1
- package/dist/execution/opencode-cli-invoker.js +5 -5
- package/dist/governance/governance-service.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/inference/inference-cycle.d.ts +1 -1
- package/dist/inference/inference-cycle.js +10 -10
- package/dist/integrations/base/Integration.js +1 -1
- package/dist/integrations/base/registry.js +19 -19
- package/dist/integrations/grok/grok-cli.js +17 -17
- package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
- package/dist/integrations/hermes-agent/bridge.mjs +1 -1
- package/dist/integrations/openclaw/api-server.d.ts +0 -1
- package/dist/integrations/openclaw/api-server.js +7 -10
- package/dist/integrations/openclaw/client.d.ts +0 -1
- package/dist/integrations/openclaw/client.js +22 -24
- package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -1
- package/dist/integrations/openclaw/hooks/xray-hooks.js +17 -18
- package/dist/integrations/plugins/plugin-registry.js +5 -5
- package/dist/mcps/architect-tools.server.d.ts +2 -4
- package/dist/mcps/architect-tools.server.js +112 -195
- package/dist/mcps/auto-format.server.d.ts +2 -4
- package/dist/mcps/auto-format.server.js +49 -95
- package/dist/mcps/boot-orchestrator.server.d.ts +2 -4
- package/dist/mcps/boot-orchestrator.server.js +73 -105
- package/dist/mcps/config/server-config-registry.js +3 -3
- package/dist/mcps/enforcer-tools.server.d.ts +2 -4
- package/dist/mcps/enforcer-tools.server.js +202 -285
- package/dist/mcps/estimation.server.d.ts +2 -4
- package/dist/mcps/estimation.server.js +63 -107
- package/dist/mcps/framework-compliance-audit.server.d.ts +2 -4
- package/dist/mcps/framework-compliance-audit.server.js +53 -82
- package/dist/mcps/framework-help.server.d.ts +2 -4
- package/dist/mcps/framework-help.server.js +63 -101
- package/dist/mcps/governance.server.js +2 -2
- package/dist/mcps/knowledge-skills/api-design.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/api-design.server.js +35 -67
- package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +2 -10
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -74
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +143 -162
- package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +3 -4
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +20 -45
- package/dist/mcps/knowledge-skills/code-review.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
- package/dist/mcps/knowledge-skills/content-creator.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/content-creator.server.js +205 -226
- package/dist/mcps/knowledge-skills/database-design.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
- package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +71 -160
- package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
- package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -324
- package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -160
- package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/mobile-development.server.js +92 -209
- package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +123 -159
- package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +2 -5
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +155 -296
- package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/project-analysis.server.js +75 -226
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +63 -156
- package/dist/mcps/knowledge-skills/security-audit.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/security-audit.server.js +102 -136
- package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +80 -203
- package/dist/mcps/knowledge-skills/session-management.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/session-management.server.js +50 -203
- package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +168 -347
- package/dist/mcps/knowledge-skills/strategist.server.d.ts +2 -11
- package/dist/mcps/knowledge-skills/strategist.server.js +72 -122
- package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/tech-writer.server.js +87 -300
- package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +147 -182
- package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +78 -153
- package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +2 -5
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +90 -399
- package/dist/mcps/lint.server.d.ts +2 -4
- package/dist/mcps/lint.server.js +51 -92
- package/dist/mcps/mcp-client.js +2 -2
- package/dist/mcps/model-health-check.server.d.ts +2 -4
- package/dist/mcps/model-health-check.server.js +32 -60
- package/dist/mcps/performance-analysis.server.d.ts +2 -4
- package/dist/mcps/performance-analysis.server.js +57 -88
- package/dist/mcps/processor-pipeline.server.d.ts +2 -4
- package/dist/mcps/processor-pipeline.server.js +69 -100
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.d.ts +3 -5
- package/dist/mcps/researcher.server.js +81 -154
- package/dist/mcps/security-scan.server.d.ts +2 -4
- package/dist/mcps/security-scan.server.js +54 -96
- package/dist/mcps/shared/knowledge-skill-base.d.ts +14 -0
- package/dist/mcps/shared/knowledge-skill-base.js +45 -0
- package/dist/{security → mcps/shared}/security-scanner.js +1 -1
- package/dist/mcps/state-manager.server.d.ts +2 -4
- package/dist/mcps/state-manager.server.js +115 -160
- package/dist/orchestrator/orchestrator.d.ts +1 -1
- package/dist/orchestrator/orchestrator.js +1 -1
- package/dist/orchestrator/universal-registry-bridge.js +1 -1
- package/dist/plugin/xray-codex-injection.d.ts +1 -1
- package/dist/plugin/xray-codex-injection.js +1 -1
- package/dist/postprocessor/PostProcessor.d.ts +4 -44
- package/dist/postprocessor/PostProcessor.js +39 -553
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +11 -0
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
- package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.d.ts +11 -0
- package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.js +356 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +44 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.js +21 -0
- package/dist/postprocessor/reporting/PostProcessorReporter.d.ts +19 -0
- package/dist/postprocessor/reporting/PostProcessorReporter.js +96 -0
- package/dist/postprocessor/triggers/GitHookTrigger.js +11 -11
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +32 -0
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +95 -1
- package/dist/processors/processor-manager.js +346 -314
- package/dist/reporting/report-formatter.js +1 -1
- package/dist/security/security-hardener.d.ts +69 -2
- package/dist/security/security-hardener.js +129 -1
- package/dist/skills/registry.json +1 -1
- package/dist/state/index.d.ts +3 -5
- package/dist/state/index.js +1 -7
- package/dist/state/state-manager.d.ts +1 -1
- package/dist/state/state-manager.js +2 -3
- package/package.json +13 -10
- package/scripts/node/universal-version-manager.js +11 -11
- package/src/mcps/architect-tools.server.ts +112 -215
- package/src/mcps/auto-format.server.ts +50 -110
- package/src/mcps/boot-orchestrator.server.ts +75 -121
- package/src/mcps/config/__tests__/server-config-registry.test.ts +21 -12
- package/src/mcps/config/server-config-registry.ts +3 -3
- package/src/mcps/enforcer-tools.server.ts +212 -310
- package/src/mcps/estimation.server.ts +62 -122
- package/src/mcps/framework-compliance-audit.server.ts +52 -97
- package/src/mcps/framework-help.server.ts +64 -114
- package/src/mcps/governance.server.ts +2 -2
- package/src/mcps/knowledge-skills/api-design.server.ts +32 -77
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +31 -87
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +165 -193
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +20 -55
- package/src/mcps/knowledge-skills/code-review.server.ts +114 -161
- package/src/mcps/knowledge-skills/content-creator.server.ts +218 -255
- package/src/mcps/knowledge-skills/database-design.server.ts +118 -165
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +67 -172
- package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -361
- package/src/mcps/knowledge-skills/log-monitor.server.ts +160 -187
- package/src/mcps/knowledge-skills/mobile-development.server.ts +89 -223
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +128 -175
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +156 -329
- package/src/mcps/knowledge-skills/project-analysis.server.ts +72 -248
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +59 -171
- package/src/mcps/knowledge-skills/security-audit.server.ts +104 -151
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +80 -220
- package/src/mcps/knowledge-skills/session-management.server.ts +51 -232
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +165 -372
- package/src/mcps/knowledge-skills/strategist.server.ts +72 -143
- package/src/mcps/knowledge-skills/tech-writer.server.ts +85 -350
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +146 -195
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +75 -161
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +93 -487
- package/src/mcps/lint.server.ts +53 -107
- package/src/mcps/mcp-client.ts +2 -2
- package/src/mcps/model-health-check.server.ts +34 -71
- package/src/mcps/performance-analysis.server.ts +60 -104
- package/src/mcps/processor-pipeline.server.ts +72 -110
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +88 -177
- package/src/mcps/security-scan.server.ts +55 -104
- package/src/mcps/shared/knowledge-skill-base.ts +62 -0
- package/src/mcps/shared/prompt-security-validator.ts +199 -0
- package/src/mcps/shared/security-scanner.ts +599 -0
- package/src/mcps/state-manager.server.ts +117 -175
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/dependency-audit.md +3 -3
- package/src/opencode/enforcer-config.json +2 -2
- package/src/skills/registry.json +1 -1
- package/xray/codex.json +1 -1
- package/xray/config.json +1 -1
- package/xray/features.json +1 -1
- package/xray/integrations.json +3 -3
- package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/conftest.py +0 -14
- package/dist/integrations/hermes-agent/test_plugin.py +0 -1103
- package/dist/processors/implementations/refactoring-logging-processor.d.ts +0 -31
- package/dist/processors/implementations/refactoring-logging-processor.js +0 -96
- package/dist/processors/implementations/session-capture-processor.d.ts +0 -14
- package/dist/processors/implementations/session-capture-processor.js +0 -37
- package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
- package/dist/scripts/activate-kernel-pipeline.js +0 -101
- package/dist/security/index.d.ts +0 -13
- package/dist/security/index.js +0 -13
- package/dist/security/security-agent-coordinator.d.ts +0 -72
- package/dist/security/security-agent-coordinator.js +0 -204
- package/dist/security/security-auditor.d.ts +0 -56
- package/dist/security/security-auditor.js +0 -584
- package/dist/security/security-hardening-system.d.ts +0 -239
- package/dist/security/security-hardening-system.js +0 -727
- package/dist/security/security-orchestration-layer.d.ts +0 -119
- package/dist/security/security-orchestration-layer.js +0 -496
- /package/dist/{security → mcps/shared}/prompt-security-validator.d.ts +0 -0
- /package/dist/{security → mcps/shared}/prompt-security-validator.js +0 -0
- /package/dist/{security → mcps/shared}/security-scanner.d.ts +0 -0
|
@@ -5,14 +5,8 @@
|
|
|
5
5
|
* GraphQL schema design, and API documentation standards
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
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 { frameworkLogger } from "../../core/framework-logger.js";
|
|
15
|
-
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
16
10
|
|
|
17
11
|
interface DesignApiEndpointsArgs {
|
|
18
12
|
resource: string;
|
|
@@ -25,72 +19,43 @@ interface ValidateApiDesignArgs {
|
|
|
25
19
|
standards?: string[];
|
|
26
20
|
}
|
|
27
21
|
|
|
28
|
-
class XrayApiDesignServer {
|
|
29
|
-
private server: Server;
|
|
30
|
-
|
|
22
|
+
class XrayApiDesignServer extends XrayKnowledgeSkillBase {
|
|
31
23
|
constructor() {
|
|
32
|
-
|
|
24
|
+
super("api-design", "2.0.1");
|
|
25
|
+
this.tools = [
|
|
33
26
|
{
|
|
34
|
-
name: "api-
|
|
27
|
+
name: "design-api-endpoints",
|
|
28
|
+
description:
|
|
29
|
+
"Design RESTful API endpoints with proper resource modeling",
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: "object",
|
|
32
|
+
properties: {
|
|
33
|
+
resource: { type: "string" },
|
|
34
|
+
operations: { type: "array", items: { type: "string" } },
|
|
35
|
+
relationships: { type: "array", items: { type: "string" } },
|
|
36
|
+
},
|
|
37
|
+
required: ["resource"],
|
|
38
|
+
},
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
name: "validate-api-design",
|
|
42
|
+
description:
|
|
43
|
+
"Validate API design against RESTful principles and best practices",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: "object",
|
|
46
|
+
properties: {
|
|
47
|
+
endpoints: { type: "array", items: { type: "string" } },
|
|
48
|
+
standards: { type: "array", items: { type: "string" } },
|
|
49
|
+
},
|
|
50
|
+
required: ["endpoints"],
|
|
39
51
|
},
|
|
40
52
|
},
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
];
|
|
54
|
+
this.handlers = {
|
|
55
|
+
"design-api-endpoints": async (args) => this.designApiEndpoints(args as unknown as DesignApiEndpointsArgs),
|
|
56
|
+
"validate-api-design": async (args) => this.validateApiDesign(args as unknown as ValidateApiDesignArgs),
|
|
57
|
+
};
|
|
43
58
|
this.setupToolHandlers();
|
|
44
|
-
// Server initialization - removed unnecessary startup logging
|
|
45
|
-
}
|
|
46
|
-
|
|
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
59
|
}
|
|
95
60
|
|
|
96
61
|
private async designApiEndpoints(args: DesignApiEndpointsArgs) {
|
|
@@ -140,21 +105,11 @@ class XrayApiDesignServer {
|
|
|
140
105
|
};
|
|
141
106
|
}
|
|
142
107
|
|
|
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
108
|
}
|
|
154
109
|
|
|
155
110
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
156
111
|
const server = new XrayApiDesignServer();
|
|
157
|
-
server.run().catch(() => {});
|
|
112
|
+
server.run("api-design").catch((err) => { frameworkLogger.log("api-design", "run", "error", { error: err instanceof Error ? err.message : String(err) }); });
|
|
158
113
|
}
|
|
159
114
|
|
|
160
115
|
export default XrayApiDesignServer;
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Knowledge skill for architectural pattern recognition,
|
|
5
|
-
* design pattern recommendations, and system architecture guidance
|
|
6
|
-
*/
|
|
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";
|
|
1
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
2
|
+
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
14
3
|
import * as fs from "fs";
|
|
15
4
|
import * as path from "path";
|
|
16
|
-
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
17
|
-
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
18
5
|
|
|
19
6
|
interface AnalyzeArchitectureArgs {
|
|
20
7
|
projectRoot: string;
|
|
@@ -27,78 +14,46 @@ interface RecommendPatternsArgs {
|
|
|
27
14
|
scale?: string;
|
|
28
15
|
}
|
|
29
16
|
|
|
30
|
-
class XrayArchitecturePatternsServer {
|
|
31
|
-
private server: Server;
|
|
32
|
-
|
|
17
|
+
class XrayArchitecturePatternsServer extends XrayKnowledgeSkillBase {
|
|
33
18
|
constructor() {
|
|
34
|
-
|
|
19
|
+
super("architecture-patterns", "2.0.1");
|
|
20
|
+
this.tools = [
|
|
35
21
|
{
|
|
36
|
-
name: "architecture
|
|
22
|
+
name: "analyze-architecture",
|
|
23
|
+
description: "Analyze current system architecture and identify patterns",
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
projectRoot: { type: "string" },
|
|
28
|
+
focusPatterns: { type: "array", items: { type: "string" } },
|
|
29
|
+
},
|
|
30
|
+
required: ["projectRoot"],
|
|
31
|
+
},
|
|
37
32
|
},
|
|
38
33
|
{
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
name: "recommend-patterns",
|
|
35
|
+
description: "Recommend architectural patterns for specific use cases",
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: "object",
|
|
38
|
+
properties: {
|
|
39
|
+
useCase: { type: "string" },
|
|
40
|
+
constraints: { type: "array", items: { type: "string" } },
|
|
41
|
+
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
42
|
+
},
|
|
43
|
+
required: ["useCase"],
|
|
41
44
|
},
|
|
42
45
|
},
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
];
|
|
47
|
+
this.handlers = {
|
|
48
|
+
"analyze-architecture": async (args) => this.analyzeArchitecture(args as unknown as AnalyzeArchitectureArgs),
|
|
49
|
+
"recommend-patterns": async (args) => this.recommendPatterns(args as unknown as RecommendPatternsArgs),
|
|
50
|
+
};
|
|
45
51
|
this.setupToolHandlers();
|
|
46
|
-
// Server initialization - removed unnecessary startup logging
|
|
47
|
-
}
|
|
48
|
-
|
|
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
52
|
}
|
|
97
53
|
|
|
98
54
|
private async analyzeArchitecture(args: AnalyzeArchitectureArgs) {
|
|
99
55
|
const { projectRoot, focusPatterns } = args;
|
|
100
56
|
|
|
101
|
-
// Simplified architecture analysis
|
|
102
57
|
const analysis = {
|
|
103
58
|
patterns: ["MVC", "Repository"],
|
|
104
59
|
recommendations: ["Consider microservices for scaling"],
|
|
@@ -131,22 +86,11 @@ class XrayArchitecturePatternsServer {
|
|
|
131
86
|
],
|
|
132
87
|
};
|
|
133
88
|
}
|
|
134
|
-
|
|
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
89
|
}
|
|
146
90
|
|
|
147
91
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
148
92
|
const server = new XrayArchitecturePatternsServer();
|
|
149
|
-
server.run().catch(() => {});
|
|
93
|
+
server.run("architecture-patterns.server").catch((err) => { frameworkLogger.log("architecture-patterns", "run", "error", { error: err instanceof Error ? err.message : String(err) }); });
|
|
150
94
|
}
|
|
151
95
|
|
|
152
96
|
export default XrayArchitecturePatternsServer;
|