0xray 2.1.2 → 2.1.3
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 +26 -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
package/src/mcps/lint.server.ts
CHANGED
|
@@ -4,15 +4,10 @@
|
|
|
4
4
|
* Comprehensive ESLint validation and automated code quality checking
|
|
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 { execFileSync } from "child_process";
|
|
14
8
|
import fs from "fs";
|
|
15
9
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
10
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
16
11
|
|
|
17
12
|
interface LintArgs {
|
|
18
13
|
files?: string[];
|
|
@@ -33,20 +28,63 @@ interface LintResults {
|
|
|
33
28
|
details: string[];
|
|
34
29
|
}
|
|
35
30
|
|
|
36
|
-
class XrayLintServer {
|
|
37
|
-
private server: Server;
|
|
38
|
-
|
|
31
|
+
class XrayLintServer extends XrayKnowledgeSkillBase {
|
|
39
32
|
constructor() {
|
|
40
|
-
|
|
33
|
+
super("lint", "2.0.1");
|
|
34
|
+
|
|
35
|
+
this.tools = [
|
|
41
36
|
{
|
|
42
|
-
name: "lint",
|
|
37
|
+
name: "lint",
|
|
38
|
+
description:
|
|
39
|
+
"Comprehensive ESLint validation and automated code quality checking",
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: "object",
|
|
42
|
+
properties: {
|
|
43
|
+
files: {
|
|
44
|
+
type: "array",
|
|
45
|
+
items: { type: "string" },
|
|
46
|
+
description:
|
|
47
|
+
"Specific files to lint (optional - lints all if empty)",
|
|
48
|
+
},
|
|
49
|
+
fix: {
|
|
50
|
+
type: "boolean",
|
|
51
|
+
default: false,
|
|
52
|
+
description:
|
|
53
|
+
"Automatically fix linting issues where possible",
|
|
54
|
+
},
|
|
55
|
+
strict: {
|
|
56
|
+
type: "boolean",
|
|
57
|
+
default: false,
|
|
58
|
+
description: "Use strict linting rules",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
43
62
|
},
|
|
44
63
|
{
|
|
45
|
-
|
|
46
|
-
|
|
64
|
+
name: "lint-check",
|
|
65
|
+
description: "Check code quality without making changes",
|
|
66
|
+
inputSchema: {
|
|
67
|
+
type: "object",
|
|
68
|
+
properties: {
|
|
69
|
+
files: {
|
|
70
|
+
type: "array",
|
|
71
|
+
items: { type: "string" },
|
|
72
|
+
description: "Files to check",
|
|
73
|
+
},
|
|
74
|
+
rules: {
|
|
75
|
+
type: "array",
|
|
76
|
+
items: { type: "string" },
|
|
77
|
+
description: "Specific ESLint rules to check",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
47
80
|
},
|
|
48
81
|
},
|
|
49
|
-
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
this.handlers = {
|
|
85
|
+
"lint": async (args) => this.handleLint(args as unknown as LintArgs),
|
|
86
|
+
"lint-check": async (args) => this.handleLintCheck(args as unknown as LintCheckArgs),
|
|
87
|
+
};
|
|
50
88
|
|
|
51
89
|
this.setupToolHandlers();
|
|
52
90
|
void frameworkLogger.log(
|
|
@@ -57,87 +95,6 @@ class XrayLintServer {
|
|
|
57
95
|
);
|
|
58
96
|
}
|
|
59
97
|
|
|
60
|
-
private setupToolHandlers() {
|
|
61
|
-
// List available tools
|
|
62
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
63
|
-
return {
|
|
64
|
-
tools: [
|
|
65
|
-
{
|
|
66
|
-
name: "lint",
|
|
67
|
-
description:
|
|
68
|
-
"Comprehensive ESLint validation and automated code quality checking",
|
|
69
|
-
inputSchema: {
|
|
70
|
-
type: "object",
|
|
71
|
-
properties: {
|
|
72
|
-
files: {
|
|
73
|
-
type: "array",
|
|
74
|
-
items: { type: "string" },
|
|
75
|
-
description:
|
|
76
|
-
"Specific files to lint (optional - lints all if empty)",
|
|
77
|
-
},
|
|
78
|
-
fix: {
|
|
79
|
-
type: "boolean",
|
|
80
|
-
default: false,
|
|
81
|
-
description:
|
|
82
|
-
"Automatically fix linting issues where possible",
|
|
83
|
-
},
|
|
84
|
-
strict: {
|
|
85
|
-
type: "boolean",
|
|
86
|
-
default: false,
|
|
87
|
-
description: "Use strict linting rules",
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
name: "lint-check",
|
|
94
|
-
description: "Check code quality without making changes",
|
|
95
|
-
inputSchema: {
|
|
96
|
-
type: "object",
|
|
97
|
-
properties: {
|
|
98
|
-
files: {
|
|
99
|
-
type: "array",
|
|
100
|
-
items: { type: "string" },
|
|
101
|
-
description: "Files to check",
|
|
102
|
-
},
|
|
103
|
-
rules: {
|
|
104
|
-
type: "array",
|
|
105
|
-
items: { type: "string" },
|
|
106
|
-
description: "Specific ESLint rules to check",
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
};
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
// Handle tool calls
|
|
116
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
117
|
-
const { name, arguments: args } = request.params;
|
|
118
|
-
|
|
119
|
-
try {
|
|
120
|
-
switch (name) {
|
|
121
|
-
case "lint":
|
|
122
|
-
return await this.handleLint(args as unknown as LintArgs);
|
|
123
|
-
case "lint-check":
|
|
124
|
-
return await this.handleLintCheck(args as unknown as LintCheckArgs);
|
|
125
|
-
default:
|
|
126
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
127
|
-
}
|
|
128
|
-
} catch (error) {
|
|
129
|
-
return {
|
|
130
|
-
content: [
|
|
131
|
-
{
|
|
132
|
-
type: "text",
|
|
133
|
-
text: `❌ Tool execution failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
134
|
-
},
|
|
135
|
-
],
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
98
|
private async handleLint(args: LintArgs) {
|
|
142
99
|
const files = args.files || [];
|
|
143
100
|
const fix = args.fix || false;
|
|
@@ -461,23 +418,12 @@ ${checkResults.details.map((d) => `• ${d}`).join("\n")}
|
|
|
461
418
|
- Warnings: ${results.issues.warnings}
|
|
462
419
|
- Fixed: ${results.issues.fixed}`;
|
|
463
420
|
}
|
|
464
|
-
|
|
465
|
-
async run() {
|
|
466
|
-
const transport = new StdioServerTransport();
|
|
467
|
-
await this.server.connect(transport);
|
|
468
|
-
await frameworkLogger.log(
|
|
469
|
-
"lint.server",
|
|
470
|
-
"-xray-lint-mcp-server-started-",
|
|
471
|
-
"info",
|
|
472
|
-
{ message: "0xRay Lint MCP Server started" },
|
|
473
|
-
);
|
|
474
|
-
}
|
|
475
421
|
}
|
|
476
422
|
|
|
477
423
|
// Start the server if run directly
|
|
478
424
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
479
425
|
const server = new XrayLintServer();
|
|
480
|
-
server.run().catch((error) => frameworkLogger.log("mcps/lint", "run", "error", { error: String(error) }));
|
|
426
|
+
server.run("lint").catch((error) => frameworkLogger.log("mcps/lint", "run", "error", { error: String(error) }));
|
|
481
427
|
}
|
|
482
428
|
|
|
483
429
|
export { XrayLintServer };
|
package/src/mcps/mcp-client.ts
CHANGED
|
@@ -153,7 +153,7 @@ export class MCPClient extends EventEmitter {
|
|
|
153
153
|
* Pure MCP mode — simulation and generic fallbacks are disabled.
|
|
154
154
|
*/
|
|
155
155
|
private get isPureMcpMode(): boolean {
|
|
156
|
-
return process.env.
|
|
156
|
+
return (process.env.XRAY_FORCE_MCP_GOVERNANCE) === 'true';
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
/**
|
|
@@ -470,7 +470,7 @@ export class MCPClient extends EventEmitter {
|
|
|
470
470
|
if (this.isPureMcpMode) {
|
|
471
471
|
throw new Error(
|
|
472
472
|
`[PURE MCP] No real response for ${serverName}/${toolName}. ` +
|
|
473
|
-
`All fallbacks are disabled when
|
|
473
|
+
`All fallbacks are disabled when XRAY_FORCE_MCP_GOVERNANCE=true.`
|
|
474
474
|
);
|
|
475
475
|
}
|
|
476
476
|
|
|
@@ -4,16 +4,11 @@
|
|
|
4
4
|
* Advanced model compatibility validation and dynamic health assessment
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
7
|
import { modelRouter } from "../core/model-router.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import { execSync } from "child_process";
|
|
15
9
|
import fs from "fs";
|
|
16
10
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
11
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
17
12
|
|
|
18
13
|
interface ModelHealthCheckArgs {
|
|
19
14
|
models?: string[];
|
|
@@ -36,73 +31,47 @@ interface ModelHealthReportData {
|
|
|
36
31
|
summary: { total: number; healthy: number; issues: number };
|
|
37
32
|
}
|
|
38
33
|
|
|
39
|
-
class XrayModelHealthCheckServer {
|
|
40
|
-
private server: Server;
|
|
41
|
-
|
|
34
|
+
class XrayModelHealthCheckServer extends XrayKnowledgeSkillBase {
|
|
42
35
|
constructor() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
36
|
+
super("model-health-check", "2.0.1");
|
|
37
|
+
|
|
38
|
+
this.tools = [
|
|
47
39
|
{
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
name: "model-health-check",
|
|
41
|
+
description:
|
|
42
|
+
"Advanced model compatibility validation and dynamic health assessment",
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: "object",
|
|
45
|
+
properties: {
|
|
46
|
+
models: {
|
|
47
|
+
type: "array",
|
|
48
|
+
items: { type: "string" },
|
|
49
|
+
description:
|
|
50
|
+
"Specific models to check (optional - checks all configured if empty)",
|
|
51
|
+
},
|
|
52
|
+
compatibility: {
|
|
53
|
+
type: "boolean",
|
|
54
|
+
default: true,
|
|
55
|
+
description: "Include compatibility matrix in results",
|
|
56
|
+
},
|
|
57
|
+
performance: {
|
|
58
|
+
type: "boolean",
|
|
59
|
+
default: true,
|
|
60
|
+
description: "Include performance metrics in results",
|
|
61
|
+
},
|
|
62
|
+
},
|
|
50
63
|
},
|
|
51
64
|
},
|
|
52
|
-
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
this.handlers = {
|
|
68
|
+
"model-health-check": async (args) => this.handleModelHealthCheck((args || {}) as unknown as ModelHealthCheckArgs),
|
|
69
|
+
};
|
|
53
70
|
|
|
54
71
|
this.setupToolHandlers();
|
|
55
72
|
frameworkLogger.log("mcps/model-health-check", "initialize", "info");
|
|
56
73
|
}
|
|
57
74
|
|
|
58
|
-
private setupToolHandlers() {
|
|
59
|
-
// List available tools
|
|
60
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
61
|
-
return {
|
|
62
|
-
tools: [
|
|
63
|
-
{
|
|
64
|
-
name: "model-health-check",
|
|
65
|
-
description:
|
|
66
|
-
"Advanced model compatibility validation and dynamic health assessment",
|
|
67
|
-
inputSchema: {
|
|
68
|
-
type: "object",
|
|
69
|
-
properties: {
|
|
70
|
-
models: {
|
|
71
|
-
type: "array",
|
|
72
|
-
items: { type: "string" },
|
|
73
|
-
description:
|
|
74
|
-
"Specific models to check (optional - checks all configured if empty)",
|
|
75
|
-
},
|
|
76
|
-
compatibility: {
|
|
77
|
-
type: "boolean",
|
|
78
|
-
default: true,
|
|
79
|
-
description: "Include compatibility matrix in results",
|
|
80
|
-
},
|
|
81
|
-
performance: {
|
|
82
|
-
type: "boolean",
|
|
83
|
-
default: true,
|
|
84
|
-
description: "Include performance metrics in results",
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
};
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
// Handle tool calls
|
|
94
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
95
|
-
const { name, arguments: args } = request.params;
|
|
96
|
-
|
|
97
|
-
switch (name) {
|
|
98
|
-
case "model-health-check":
|
|
99
|
-
return await this.handleModelHealthCheck((args || {}) as unknown as ModelHealthCheckArgs);
|
|
100
|
-
default:
|
|
101
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
75
|
private async handleModelHealthCheck(args: ModelHealthCheckArgs) {
|
|
107
76
|
const models = args.models || [modelRouter.getValidatedModel()];
|
|
108
77
|
const includeCompatibility = args.compatibility !== false;
|
|
@@ -275,18 +244,12 @@ class XrayModelHealthCheckServer {
|
|
|
275
244
|
|
|
276
245
|
return report;
|
|
277
246
|
}
|
|
278
|
-
|
|
279
|
-
public async start() {
|
|
280
|
-
const transport = new StdioServerTransport();
|
|
281
|
-
await this.server.connect(transport);
|
|
282
|
-
frameworkLogger.log("mcps/model-health-check", "start", "info");
|
|
283
|
-
}
|
|
284
247
|
}
|
|
285
248
|
|
|
286
249
|
// Start the server if this file is run directly
|
|
287
250
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
288
251
|
const server = new XrayModelHealthCheckServer();
|
|
289
|
-
server.
|
|
252
|
+
server.run("model-health-check").catch((error) => frameworkLogger.log("mcps/model-health-check", "run", "error", { error: String(error) }));
|
|
290
253
|
}
|
|
291
254
|
|
|
292
255
|
export default XrayModelHealthCheckServer;
|
|
@@ -4,17 +4,12 @@
|
|
|
4
4
|
* Comprehensive metrics analysis for framework integration and optimization
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
7
|
import { frameworkLogger, generateJobId } from "../core/framework-logger.js";
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import { execSync } from "child_process";
|
|
15
9
|
import fs from "fs";
|
|
16
10
|
import os from "os";
|
|
17
11
|
import path from "path";
|
|
12
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
18
13
|
|
|
19
14
|
interface AnalysisMetrics {
|
|
20
15
|
runtime?: RuntimeMetrics;
|
|
@@ -57,23 +52,73 @@ interface ResourceMetrics {
|
|
|
57
52
|
recommendations: string[];
|
|
58
53
|
}
|
|
59
54
|
|
|
60
|
-
class XrayPerformanceAnalysisServer {
|
|
61
|
-
private server: Server;
|
|
55
|
+
class XrayPerformanceAnalysisServer extends XrayKnowledgeSkillBase {
|
|
62
56
|
private startTime: number;
|
|
63
57
|
|
|
64
58
|
constructor() {
|
|
65
|
-
|
|
59
|
+
super("performance-analysis", "2.0.1");
|
|
60
|
+
|
|
61
|
+
this.startTime = Date.now();
|
|
62
|
+
|
|
63
|
+
this.tools = [
|
|
66
64
|
{
|
|
67
|
-
name: "performance-analysis",
|
|
65
|
+
name: "performance-analysis",
|
|
66
|
+
description:
|
|
67
|
+
"Comprehensive metrics analysis for framework integration and optimization",
|
|
68
|
+
inputSchema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
properties: {
|
|
71
|
+
scope: {
|
|
72
|
+
type: "string",
|
|
73
|
+
enum: [
|
|
74
|
+
"full",
|
|
75
|
+
"runtime",
|
|
76
|
+
"build",
|
|
77
|
+
"resources",
|
|
78
|
+
"bottlenecks",
|
|
79
|
+
],
|
|
80
|
+
default: "full",
|
|
81
|
+
description: "Scope of performance analysis",
|
|
82
|
+
},
|
|
83
|
+
duration: {
|
|
84
|
+
type: "number",
|
|
85
|
+
default: 30,
|
|
86
|
+
description: "Analysis duration in seconds",
|
|
87
|
+
},
|
|
88
|
+
detailed: {
|
|
89
|
+
type: "boolean",
|
|
90
|
+
default: false,
|
|
91
|
+
description: "Include detailed metrics and recommendations",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
68
95
|
},
|
|
69
96
|
{
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
name: "bottleneck-detection",
|
|
98
|
+
description:
|
|
99
|
+
"Identify performance bottlenecks in framework operations",
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: "object",
|
|
102
|
+
properties: {
|
|
103
|
+
operation: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: "Specific operation to analyze",
|
|
106
|
+
},
|
|
107
|
+
threshold: {
|
|
108
|
+
type: "number",
|
|
109
|
+
default: 1000,
|
|
110
|
+
description: "Performance threshold in milliseconds",
|
|
111
|
+
},
|
|
112
|
+
},
|
|
72
113
|
},
|
|
73
114
|
},
|
|
74
|
-
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
this.handlers = {
|
|
118
|
+
"performance-analysis": async (args) => this.handlePerformanceAnalysis(args as Record<string, unknown> | undefined),
|
|
119
|
+
"bottleneck-detection": async (args) => this.handleBottleneckDetection(args as Record<string, unknown> | undefined),
|
|
120
|
+
};
|
|
75
121
|
|
|
76
|
-
this.startTime = Date.now();
|
|
77
122
|
this.setupToolHandlers();
|
|
78
123
|
frameworkLogger.log(
|
|
79
124
|
"mcp-performance-analysis",
|
|
@@ -82,81 +127,6 @@ class XrayPerformanceAnalysisServer {
|
|
|
82
127
|
);
|
|
83
128
|
}
|
|
84
129
|
|
|
85
|
-
private setupToolHandlers() {
|
|
86
|
-
// List available tools
|
|
87
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
88
|
-
return {
|
|
89
|
-
tools: [
|
|
90
|
-
{
|
|
91
|
-
name: "performance-analysis",
|
|
92
|
-
description:
|
|
93
|
-
"Comprehensive metrics analysis for framework integration and optimization",
|
|
94
|
-
inputSchema: {
|
|
95
|
-
type: "object",
|
|
96
|
-
properties: {
|
|
97
|
-
scope: {
|
|
98
|
-
type: "string",
|
|
99
|
-
enum: [
|
|
100
|
-
"full",
|
|
101
|
-
"runtime",
|
|
102
|
-
"build",
|
|
103
|
-
"resources",
|
|
104
|
-
"bottlenecks",
|
|
105
|
-
],
|
|
106
|
-
default: "full",
|
|
107
|
-
description: "Scope of performance analysis",
|
|
108
|
-
},
|
|
109
|
-
duration: {
|
|
110
|
-
type: "number",
|
|
111
|
-
default: 30,
|
|
112
|
-
description: "Analysis duration in seconds",
|
|
113
|
-
},
|
|
114
|
-
detailed: {
|
|
115
|
-
type: "boolean",
|
|
116
|
-
default: false,
|
|
117
|
-
description: "Include detailed metrics and recommendations",
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "bottleneck-detection",
|
|
124
|
-
description:
|
|
125
|
-
"Identify performance bottlenecks in framework operations",
|
|
126
|
-
inputSchema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
operation: {
|
|
130
|
-
type: "string",
|
|
131
|
-
description: "Specific operation to analyze",
|
|
132
|
-
},
|
|
133
|
-
threshold: {
|
|
134
|
-
type: "number",
|
|
135
|
-
default: 1000,
|
|
136
|
-
description: "Performance threshold in milliseconds",
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
};
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Handle tool calls
|
|
146
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
147
|
-
const { name, arguments: args } = request.params;
|
|
148
|
-
|
|
149
|
-
switch (name) {
|
|
150
|
-
case "performance-analysis":
|
|
151
|
-
return await this.handlePerformanceAnalysis(args);
|
|
152
|
-
case "bottleneck-detection":
|
|
153
|
-
return await this.handleBottleneckDetection(args);
|
|
154
|
-
default:
|
|
155
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
130
|
private async handlePerformanceAnalysis(args: Record<string, unknown> | undefined) {
|
|
161
131
|
const scope = (args?.scope as string) || "full";
|
|
162
132
|
const duration = (args?.duration as number) || 30;
|
|
@@ -690,26 +660,12 @@ ${results.recommendations.map((r) => `• 💡 ${r}`).join("\n") || "No recommen
|
|
|
690
660
|
|
|
691
661
|
return report;
|
|
692
662
|
}
|
|
693
|
-
|
|
694
|
-
async run() {
|
|
695
|
-
const transport = new StdioServerTransport();
|
|
696
|
-
await this.server.connect(transport);
|
|
697
|
-
const jobId = generateJobId("mcp-performance-analysis-server");
|
|
698
|
-
await frameworkLogger.log(
|
|
699
|
-
"mcp-performance-analysis",
|
|
700
|
-
"server-started",
|
|
701
|
-
"success",
|
|
702
|
-
{},
|
|
703
|
-
undefined, // sessionId
|
|
704
|
-
jobId,
|
|
705
|
-
);
|
|
706
|
-
}
|
|
707
663
|
}
|
|
708
664
|
|
|
709
665
|
// Start the server if run directly
|
|
710
666
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
711
667
|
const server = new XrayPerformanceAnalysisServer();
|
|
712
|
-
server.run().catch((error) => frameworkLogger.log("mcps/performance-analysis", "run", "error", { error: String(error) }));
|
|
668
|
+
server.run("performance-analysis").catch((error) => frameworkLogger.log("mcps/performance-analysis", "run", "error", { error: String(error) }));
|
|
713
669
|
}
|
|
714
670
|
|
|
715
671
|
export { XrayPerformanceAnalysisServer };
|