0xray 2.1.1 → 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 +3 -2
- package/README.md +12 -11
- package/dist/AGENTS.md +3 -2
- 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 +14 -10
- package/scripts/node/setup.cjs +32 -0
- 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/agents_template.md +109 -0
- package/xray/codex.json +598 -0
- package/xray/config.json +26 -0
- package/xray/features.json +132 -0
- package/xray/integrations.json +23 -0
- package/xray/routing-mappings.json +752 -0
- package/xray/workflow_state.json +28 -0
- 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
|
@@ -4,187 +4,89 @@
|
|
|
4
4
|
* Knowledge skill for project structure analysis, complexity assessment,
|
|
5
5
|
* and pattern recognition - provides deep project intelligence
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
10
8
|
import * as fs from "fs";
|
|
11
9
|
import * as path from "path";
|
|
12
10
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
13
|
-
class ProjectAnalysisServer {
|
|
14
|
-
server;
|
|
11
|
+
class ProjectAnalysisServer extends XrayKnowledgeSkillBase {
|
|
15
12
|
constructor() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// List available tools
|
|
28
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
29
|
-
return {
|
|
30
|
-
tools: [
|
|
31
|
-
{
|
|
32
|
-
name: "analyze-project-structure",
|
|
33
|
-
description: "Analyze complete project structure including file organization, directory hierarchy, and module distribution",
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: "object",
|
|
36
|
-
properties: {
|
|
37
|
-
projectRoot: {
|
|
38
|
-
type: "string",
|
|
39
|
-
description: "Root directory of the project to analyze",
|
|
40
|
-
},
|
|
41
|
-
includeMetrics: {
|
|
42
|
-
type: "boolean",
|
|
43
|
-
default: true,
|
|
44
|
-
description: "Include detailed metrics in analysis",
|
|
45
|
-
},
|
|
46
|
-
maxDepth: {
|
|
47
|
-
type: "number",
|
|
48
|
-
default: 10,
|
|
49
|
-
description: "Maximum directory depth to analyze",
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
required: ["projectRoot"],
|
|
53
|
-
},
|
|
13
|
+
super("project-analysis", "2.0.1");
|
|
14
|
+
this.tools = [
|
|
15
|
+
{
|
|
16
|
+
name: "analyze-project-structure",
|
|
17
|
+
description: "Analyze complete project structure including file organization, directory hierarchy, and module distribution",
|
|
18
|
+
inputSchema: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {
|
|
21
|
+
projectRoot: { type: "string", description: "Root directory of the project to analyze" },
|
|
22
|
+
includeMetrics: { type: "boolean", default: true, description: "Include detailed metrics in analysis" },
|
|
23
|
+
maxDepth: { type: "number", default: 10, description: "Maximum directory depth to analyze" },
|
|
54
24
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
default: true,
|
|
68
|
-
description: "Include per-file complexity breakdown",
|
|
69
|
-
},
|
|
70
|
-
focusAreas: {
|
|
71
|
-
type: "array",
|
|
72
|
-
items: {
|
|
73
|
-
type: "string",
|
|
74
|
-
enum: ["functions", "classes", "imports", "dependencies"],
|
|
75
|
-
},
|
|
76
|
-
description: "Specific areas to focus complexity analysis on",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
required: ["projectRoot"],
|
|
80
|
-
},
|
|
25
|
+
required: ["projectRoot"],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "assess-project-complexity",
|
|
30
|
+
description: "Assess overall project complexity including code metrics, maintainability, and technical debt indicators",
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {
|
|
34
|
+
projectRoot: { type: "string", description: "Root directory of the project" },
|
|
35
|
+
includeBreakdown: { type: "boolean", default: true, description: "Include per-file complexity breakdown" },
|
|
36
|
+
focusAreas: { type: "array", items: { type: "string", enum: ["functions", "classes", "imports", "dependencies"] }, description: "Specific areas to focus complexity analysis on" },
|
|
81
37
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
items: {
|
|
95
|
-
type: "string",
|
|
96
|
-
enum: [
|
|
97
|
-
"architectural",
|
|
98
|
-
"code",
|
|
99
|
-
"structural",
|
|
100
|
-
"anti-patterns",
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
description: "Types of patterns to identify",
|
|
104
|
-
},
|
|
105
|
-
confidenceThreshold: {
|
|
106
|
-
type: "number",
|
|
107
|
-
default: 0.7,
|
|
108
|
-
description: "Minimum confidence for pattern detection",
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
required: ["projectRoot"],
|
|
112
|
-
},
|
|
38
|
+
required: ["projectRoot"],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "identify-project-patterns",
|
|
43
|
+
description: "Identify architectural patterns, code patterns, and structural patterns in the project",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: "object",
|
|
46
|
+
properties: {
|
|
47
|
+
projectRoot: { type: "string", description: "Root directory of the project" },
|
|
48
|
+
patternTypes: { type: "array", items: { type: "string", enum: ["architectural", "code", "structural", "anti-patterns"] }, description: "Types of patterns to identify" },
|
|
49
|
+
confidenceThreshold: { type: "number", default: 0.7, description: "Minimum confidence for pattern detection" },
|
|
113
50
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
default: false,
|
|
127
|
-
description: "Include historical trend analysis",
|
|
128
|
-
},
|
|
129
|
-
focusMetrics: {
|
|
130
|
-
type: "array",
|
|
131
|
-
items: {
|
|
132
|
-
type: "string",
|
|
133
|
-
enum: [
|
|
134
|
-
"complexity",
|
|
135
|
-
"coverage",
|
|
136
|
-
"maintainability",
|
|
137
|
-
"dependencies",
|
|
138
|
-
"patterns",
|
|
139
|
-
],
|
|
140
|
-
},
|
|
141
|
-
description: "Specific health metrics to focus on",
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
required: ["projectRoot"],
|
|
145
|
-
},
|
|
51
|
+
required: ["projectRoot"],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "analyze-project-health",
|
|
56
|
+
description: "Provide comprehensive project health assessment including quality metrics and improvement recommendations",
|
|
57
|
+
inputSchema: {
|
|
58
|
+
type: "object",
|
|
59
|
+
properties: {
|
|
60
|
+
projectRoot: { type: "string", description: "Root directory of the project" },
|
|
61
|
+
includeTrends: { type: "boolean", default: false, description: "Include historical trend analysis" },
|
|
62
|
+
focusMetrics: { type: "array", items: { type: "string", enum: ["complexity", "coverage", "maintainability", "dependencies", "patterns"] }, description: "Specific health metrics to focus on" },
|
|
146
63
|
},
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
},
|
|
64
|
+
required: ["projectRoot"],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "analyze_proposal",
|
|
69
|
+
description: "Analyze an inference proposal from a research / codebase pattern perspective and return a structured governance decision",
|
|
70
|
+
inputSchema: {
|
|
71
|
+
type: "object",
|
|
72
|
+
properties: {
|
|
73
|
+
proposalTitle: { type: "string" },
|
|
74
|
+
proposalDescription: { type: "string" },
|
|
75
|
+
evidence: { type: "array", items: { type: "string" } },
|
|
76
|
+
proposalType: { type: "string" },
|
|
160
77
|
},
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
this.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
case "identify-project-patterns":
|
|
174
|
-
return await this.identifyProjectPatterns(args);
|
|
175
|
-
case "analyze-project-health":
|
|
176
|
-
return await this.analyzeProjectHealth(args);
|
|
177
|
-
case "analyze_proposal":
|
|
178
|
-
return await this.analyzeProposal(args);
|
|
179
|
-
default:
|
|
180
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
frameworkLogger.log("mcps/project-analysis", "tool", "error", { tool: name, error: String(error) });
|
|
185
|
-
throw error;
|
|
186
|
-
}
|
|
187
|
-
});
|
|
78
|
+
required: ["proposalTitle", "proposalDescription"],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
this.handlers = {
|
|
83
|
+
"analyze-project-structure": async (args) => this.analyzeProjectStructure(args),
|
|
84
|
+
"assess-project-complexity": async (args) => this.assessProjectComplexity(args),
|
|
85
|
+
"identify-project-patterns": async (args) => this.identifyProjectPatterns(args),
|
|
86
|
+
"analyze-project-health": async (args) => this.analyzeProjectHealth(args),
|
|
87
|
+
"analyze_proposal": async (args) => this.analyzeProposal(args),
|
|
88
|
+
};
|
|
89
|
+
this.setupToolHandlers();
|
|
188
90
|
}
|
|
189
91
|
async analyzeProjectStructure(args) {
|
|
190
92
|
const { projectRoot, includeMetrics = true, maxDepth = 10 } = args;
|
|
@@ -749,63 +651,10 @@ class ProjectAnalysisServer {
|
|
|
749
651
|
],
|
|
750
652
|
};
|
|
751
653
|
}
|
|
752
|
-
async run() {
|
|
753
|
-
const transport = new StdioServerTransport();
|
|
754
|
-
await this.server.connect(transport);
|
|
755
|
-
await frameworkLogger.log("mcp-project-analysis", "server-started", "success");
|
|
756
|
-
const cleanup = async (signal) => {
|
|
757
|
-
frameworkLogger.log("mcps/project-analysis", "shutdown", "info", { signal });
|
|
758
|
-
// Set a timeout to force exit if graceful shutdown fails
|
|
759
|
-
const timeout = setTimeout(() => {
|
|
760
|
-
frameworkLogger.log("mcps/project-analysis", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
|
|
761
|
-
process.exit(1);
|
|
762
|
-
}, 5000); // 5 second timeout
|
|
763
|
-
try {
|
|
764
|
-
if (this.server && typeof this.server.close === "function") {
|
|
765
|
-
await this.server.close();
|
|
766
|
-
}
|
|
767
|
-
clearTimeout(timeout);
|
|
768
|
-
frameworkLogger.log("mcps/project-analysis", "shutdown", "success");
|
|
769
|
-
process.exit(0);
|
|
770
|
-
}
|
|
771
|
-
catch (error) {
|
|
772
|
-
clearTimeout(timeout);
|
|
773
|
-
frameworkLogger.log("mcps/project-analysis", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
|
|
774
|
-
process.exit(1);
|
|
775
|
-
}
|
|
776
|
-
};
|
|
777
|
-
// Handle multiple shutdown signals
|
|
778
|
-
process.on("SIGINT", () => cleanup("SIGINT"));
|
|
779
|
-
process.on("SIGTERM", () => cleanup("SIGTERM"));
|
|
780
|
-
process.on("SIGHUP", () => cleanup("SIGHUP"));
|
|
781
|
-
// Monitor parent process (opencode) and shutdown if it dies
|
|
782
|
-
const checkParent = () => {
|
|
783
|
-
try {
|
|
784
|
-
process.kill(process.ppid, 0); // Check if parent is alive
|
|
785
|
-
setTimeout(checkParent, 1000); // Check again in 1 second
|
|
786
|
-
}
|
|
787
|
-
catch (error) {
|
|
788
|
-
// Parent process died, shut down gracefully
|
|
789
|
-
frameworkLogger.log("mcps/project-analysis", "parent-death", "info");
|
|
790
|
-
cleanup("parent-process-death");
|
|
791
|
-
}
|
|
792
|
-
};
|
|
793
|
-
// Start monitoring parent process
|
|
794
|
-
setTimeout(checkParent, 2000); // Start checking after 2 seconds
|
|
795
|
-
// Handle uncaught exceptions and unhandled rejections
|
|
796
|
-
process.on("uncaughtException", (error) => {
|
|
797
|
-
frameworkLogger.log("mcps/project-analysis", "uncaughtException", "error", { error: String(error) });
|
|
798
|
-
cleanup("uncaughtException");
|
|
799
|
-
});
|
|
800
|
-
process.on("unhandledRejection", (reason, promise) => {
|
|
801
|
-
frameworkLogger.log("mcps/project-analysis", "unhandledRejection", "error", { error: String(reason) });
|
|
802
|
-
cleanup("unhandledRejection");
|
|
803
|
-
});
|
|
804
|
-
}
|
|
805
654
|
}
|
|
806
655
|
// Start the server if run directly
|
|
807
656
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
808
657
|
const server = new ProjectAnalysisServer();
|
|
809
|
-
server.run().catch((error) => frameworkLogger.log("mcps/project-analysis", "run", "error", { error: String(error) }));
|
|
658
|
+
server.run("project-analysis").catch((error) => frameworkLogger.log("mcps/project-analysis", "run", "error", { error: String(error) }));
|
|
810
659
|
}
|
|
811
660
|
export default ProjectAnalysisServer;
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
* Knowledge skill for code refactoring, technical debt elimination,
|
|
5
5
|
* modernization, and code improvement patterns
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
8
|
+
declare class XrayRefactoringStrategiesServer extends XrayKnowledgeSkillBase {
|
|
9
9
|
constructor();
|
|
10
|
-
private setupToolHandlers;
|
|
11
10
|
private analyzeTechnicalDebt;
|
|
12
11
|
private suggestRefactoring;
|
|
13
12
|
private generateRefactoringPlan;
|
|
@@ -28,6 +27,5 @@ declare class XrayRefactoringStrategiesServer {
|
|
|
28
27
|
private getImpactIcon;
|
|
29
28
|
private getRefactoringIcon;
|
|
30
29
|
private getMigrationIcon;
|
|
31
|
-
run(): Promise<void>;
|
|
32
30
|
}
|
|
33
31
|
export { XrayRefactoringStrategiesServer };
|
|
@@ -4,157 +4,73 @@
|
|
|
4
4
|
* Knowledge skill for code refactoring, technical debt elimination,
|
|
5
5
|
* modernization, and code improvement patterns
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
-
class XrayRefactoringStrategiesServer {
|
|
12
|
-
server;
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
8
|
+
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
9
|
+
class XrayRefactoringStrategiesServer extends XrayKnowledgeSkillBase {
|
|
13
10
|
constructor() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
26
|
-
return {
|
|
27
|
-
tools: [
|
|
28
|
-
{
|
|
29
|
-
name: "analyze_technical_debt",
|
|
30
|
-
description: "Analyze codebase for technical debt and refactoring opportunities",
|
|
31
|
-
inputSchema: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
codePath: {
|
|
35
|
-
type: "string",
|
|
36
|
-
description: "Path to code directory to analyze",
|
|
37
|
-
},
|
|
38
|
-
includeModernization: {
|
|
39
|
-
type: "boolean",
|
|
40
|
-
description: "Include technology modernization suggestions",
|
|
41
|
-
default: true,
|
|
42
|
-
},
|
|
43
|
-
debtThreshold: {
|
|
44
|
-
type: "number",
|
|
45
|
-
description: "Minimum debt score to report (0-100)",
|
|
46
|
-
default: 20,
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
required: ["codePath"],
|
|
50
|
-
},
|
|
11
|
+
super("refactoring-strategies", "2.0.1");
|
|
12
|
+
this.tools = [
|
|
13
|
+
{
|
|
14
|
+
name: "analyze_technical_debt",
|
|
15
|
+
description: "Analyze codebase for technical debt and refactoring opportunities",
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
codePath: { type: "string", description: "Path to code directory to analyze" },
|
|
20
|
+
includeModernization: { type: "boolean", description: "Include technology modernization suggestions", default: true },
|
|
21
|
+
debtThreshold: { type: "number", description: "Minimum debt score to report (0-100)", default: 20 },
|
|
51
22
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
items: {
|
|
65
|
-
type: "string",
|
|
66
|
-
enum: [
|
|
67
|
-
"extract-method",
|
|
68
|
-
"rename-variable",
|
|
69
|
-
"remove-duplicate",
|
|
70
|
-
"simplify-condition",
|
|
71
|
-
"extract-class",
|
|
72
|
-
"move-method",
|
|
73
|
-
],
|
|
74
|
-
},
|
|
75
|
-
description: "Types of refactoring to focus on",
|
|
76
|
-
},
|
|
77
|
-
maxSuggestions: {
|
|
78
|
-
type: "number",
|
|
79
|
-
description: "Maximum number of suggestions to return",
|
|
80
|
-
default: 10,
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
required: ["filePath"],
|
|
84
|
-
},
|
|
23
|
+
required: ["codePath"],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "suggest_refactoring",
|
|
28
|
+
description: "Suggest specific refactoring opportunities for improved code quality",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
filePath: { type: "string", description: "Path to specific file to analyze" },
|
|
33
|
+
refactoringTypes: { type: "array", items: { type: "string", enum: ["extract-method", "rename-variable", "remove-duplicate", "simplify-condition", "extract-class", "move-method"] }, description: "Types of refactoring to focus on" },
|
|
34
|
+
maxSuggestions: { type: "number", description: "Maximum number of suggestions to return", default: 10 },
|
|
85
35
|
},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
description: "Available time for refactoring",
|
|
100
|
-
},
|
|
101
|
-
riskTolerance: {
|
|
102
|
-
type: "string",
|
|
103
|
-
enum: ["low", "medium", "high"],
|
|
104
|
-
description: "Risk tolerance for changes",
|
|
105
|
-
},
|
|
106
|
-
priorities: {
|
|
107
|
-
type: "array",
|
|
108
|
-
items: { type: "string" },
|
|
109
|
-
description: "Specific priorities (performance, maintainability, security)",
|
|
110
|
-
default: ["maintainability", "performance"],
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
required: ["codePath", "timeBudget"],
|
|
114
|
-
},
|
|
36
|
+
required: ["filePath"],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "generate_refactoring_plan",
|
|
41
|
+
description: "Generate a comprehensive refactoring plan with prioritization",
|
|
42
|
+
inputSchema: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: {
|
|
45
|
+
codePath: { type: "string", description: "Path to codebase for refactoring analysis" },
|
|
46
|
+
timeBudget: { type: "string", enum: ["1-week", "1-month", "3-months", "6-months"], description: "Available time for refactoring" },
|
|
47
|
+
riskTolerance: { type: "string", enum: ["low", "medium", "high"], description: "Risk tolerance for changes" },
|
|
48
|
+
priorities: { type: "array", items: { type: "string" }, description: "Specific priorities (performance, maintainability, security)", default: ["maintainability", "performance"] },
|
|
115
49
|
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
items: { type: "string" },
|
|
129
|
-
description: "Specific technologies to focus on (node, react, etc.)",
|
|
130
|
-
},
|
|
131
|
-
safeMode: {
|
|
132
|
-
type: "boolean",
|
|
133
|
-
description: "Only suggest low-risk modernization options",
|
|
134
|
-
default: true,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
required: ["codePath"],
|
|
138
|
-
},
|
|
50
|
+
required: ["codePath", "timeBudget"],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "modernize_codebase",
|
|
55
|
+
description: "Suggest modernization strategies for outdated code and dependencies",
|
|
56
|
+
inputSchema: {
|
|
57
|
+
type: "object",
|
|
58
|
+
properties: {
|
|
59
|
+
codePath: { type: "string", description: "Path to codebase to analyze" },
|
|
60
|
+
technologies: { type: "array", items: { type: "string" }, description: "Specific technologies to focus on (node, react, etc.)" },
|
|
61
|
+
safeMode: { type: "boolean", description: "Only suggest low-risk modernization options", default: true },
|
|
139
62
|
},
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return await this.generateRefactoringPlan(args);
|
|
152
|
-
case "modernize_codebase":
|
|
153
|
-
return await this.modernizeCodebase(args);
|
|
154
|
-
default:
|
|
155
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
63
|
+
required: ["codePath"],
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
this.handlers = {
|
|
68
|
+
"analyze_technical_debt": async (args) => this.analyzeTechnicalDebt(args),
|
|
69
|
+
"suggest_refactoring": async (args) => this.suggestRefactoring(args),
|
|
70
|
+
"generate_refactoring_plan": async (args) => this.generateRefactoringPlan(args),
|
|
71
|
+
"modernize_codebase": async (args) => this.modernizeCodebase(args),
|
|
72
|
+
};
|
|
73
|
+
this.setupToolHandlers();
|
|
158
74
|
}
|
|
159
75
|
async analyzeTechnicalDebt(args) {
|
|
160
76
|
const { codePath, includeModernization = true, debtThreshold = 20 } = args;
|
|
@@ -778,19 +694,10 @@ class XrayRefactoringStrategiesServer {
|
|
|
778
694
|
const icons = { low: "🟢", medium: "🟡", high: "🔴" };
|
|
779
695
|
return icons[effort] || "❓";
|
|
780
696
|
}
|
|
781
|
-
async run() {
|
|
782
|
-
const transport = new StdioServerTransport();
|
|
783
|
-
await this.server.connect(transport);
|
|
784
|
-
// Use centralized shutdown handler
|
|
785
|
-
createGracefulShutdown({
|
|
786
|
-
serverName: "refactoring-strategies.server",
|
|
787
|
-
server: this.server,
|
|
788
|
-
});
|
|
789
|
-
}
|
|
790
697
|
}
|
|
791
698
|
// Run the server if this file is executed directly
|
|
792
699
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
793
700
|
const server = new XrayRefactoringStrategiesServer();
|
|
794
|
-
server.run().catch(() => { });
|
|
701
|
+
server.run("refactoring-strategies").catch((err) => { frameworkLogger.log("refactoring-strategies", "run", "error", { error: err instanceof Error ? err.message : String(err) }); });
|
|
795
702
|
}
|
|
796
703
|
export { XrayRefactoringStrategiesServer };
|
|
@@ -4,16 +4,15 @@
|
|
|
4
4
|
* Knowledge skill for comprehensive security analysis, vulnerability assessment,
|
|
5
5
|
* and compliance validation - ensures production-ready security posture
|
|
6
6
|
*/
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
7
8
|
interface AnalyzeProposalArgs {
|
|
8
9
|
proposalTitle?: string;
|
|
9
10
|
proposalDescription?: string;
|
|
10
11
|
evidence?: string[];
|
|
11
12
|
proposalType?: string;
|
|
12
13
|
}
|
|
13
|
-
declare class XraySecurityAuditServer {
|
|
14
|
-
private server;
|
|
14
|
+
declare class XraySecurityAuditServer extends XrayKnowledgeSkillBase {
|
|
15
15
|
constructor();
|
|
16
|
-
private setupToolHandlers;
|
|
17
16
|
private auditSecurity;
|
|
18
17
|
private checkVulnerability;
|
|
19
18
|
private generateSecurityReport;
|
|
@@ -43,6 +42,5 @@ declare class XraySecurityAuditServer {
|
|
|
43
42
|
text: string;
|
|
44
43
|
}[];
|
|
45
44
|
}>;
|
|
46
|
-
run(): Promise<void>;
|
|
47
45
|
}
|
|
48
46
|
export { XraySecurityAuditServer };
|