0xray 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/codex.codex +1 -1
- package/.opencode/commands/auto-format.md +3 -3
- package/.opencode/commands/auto-summary-capture.md +2 -2
- package/.opencode/commands/enforcer-daily-scan.md +3 -3
- package/.opencode/commands/framework-compliance-audit.md +4 -4
- package/.opencode/commands/interactive-validator.md +2 -2
- package/.opencode/commands/job-summary-logger.md +2 -2
- package/.opencode/commands/mode-switch.md +1 -1
- package/.opencode/commands/model-health-check.md +2 -2
- package/.opencode/commands/performance-analysis.md +2 -2
- package/.opencode/commands/pre-commit-introspection.md +3 -3
- package/.opencode/commands/security-scan.md +3 -3
- package/.opencode/commands/sisyphus-validation.md +3 -3
- package/.opencode/commands/summary-logger.md +2 -2
- package/AGENTS.md +3 -13
- package/README.md +3 -3
- package/dist/AGENTS.md +3 -13
- package/dist/CHANGELOG.md +29 -0
- package/dist/README.md +3 -3
- package/dist/analytics/consent-manager.js +0 -1
- package/dist/analytics/emerging-pattern-detector.js +0 -1
- package/dist/analytics/pattern-learning-engine.js +0 -1
- package/dist/analytics/pattern-performance-tracker.js +0 -1
- package/dist/analytics/predictive-analytics.js +0 -1
- package/dist/analytics/prompt-pattern-analyzer.js +0 -1
- package/dist/analytics/routing-performance-analyzer.js +0 -1
- package/dist/analytics/routing-refiner.js +0 -1
- package/dist/analytics/simple-pattern-analyzer.js +0 -1
- package/dist/cli/commands/archive-logs.js +0 -1
- package/dist/cli/commands/opencode-install.js +13 -0
- package/dist/cli/commands/plugin-commands.js +0 -1
- package/dist/cli/commands/status.js +11 -13
- package/dist/cli/index.js +2 -7
- package/dist/core/activity-logger.js +0 -1
- package/dist/core/adaptive-kernel.js +0 -1
- package/dist/core/boot-orchestrator.js +2 -12
- package/dist/core/bridge.mjs +0 -1
- package/dist/core/codex-formatter.js +0 -1
- package/dist/core/codex-injector.js +0 -1
- package/dist/core/config-loader.js +36 -28
- package/dist/core/context-loader.js +0 -1
- package/dist/core/context-validator.js +0 -1
- package/dist/core/features-config.js +37 -1
- package/dist/core/kernel-patterns.js +0 -1
- package/dist/core/model-router.js +23 -64
- package/dist/core/system-prompt-generator.js +0 -1
- package/dist/delegation/agent-delegator.js +0 -1
- package/dist/delegation/agent-expertise.js +0 -1
- package/dist/delegation/analytics/index.js +0 -1
- package/dist/delegation/analytics/learning-engine.js +0 -1
- package/dist/delegation/analytics/outcome-tracker.js +0 -1
- package/dist/delegation/analytics/routing-analytics.js +0 -1
- package/dist/delegation/ast-code-parser.js +0 -1
- package/dist/delegation/complexity-analyzer.js +0 -1
- package/dist/delegation/dependency-graph-builder.js +0 -1
- package/dist/delegation/index.js +0 -1
- package/dist/delegation/metrics-aggregator.js +0 -1
- package/dist/delegation/session-coordinator.js +0 -1
- package/dist/delegation/strategy-selector.js +0 -1
- package/dist/delegation/voting-coordinator.js +0 -1
- package/dist/delegation/voting-types.js +0 -1
- package/dist/delegation/weighted-voting-aggregator.js +0 -1
- package/dist/enforcement/core/index.js +0 -1
- package/dist/enforcement/core/rule-executor.js +0 -1
- package/dist/enforcement/core/rule-hierarchy.js +0 -1
- package/dist/enforcement/core/rule-registry.js +0 -1
- package/dist/enforcement/core/violation-fixer.js +0 -1
- package/dist/enforcement/index.js +0 -1
- package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
- package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
- package/dist/enforcement/loaders/base-loader.js +0 -1
- package/dist/enforcement/loaders/codex-loader.js +0 -1
- package/dist/enforcement/loaders/index.js +0 -1
- package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
- package/dist/enforcement/loaders/processor-loader.js +0 -1
- package/dist/enforcement/types.js +0 -1
- package/dist/enforcement/validators/architecture-validators.js +0 -1
- package/dist/enforcement/validators/base-validator.js +0 -1
- package/dist/enforcement/validators/code-quality-validators.js +0 -1
- package/dist/enforcement/validators/index.js +0 -1
- package/dist/enforcement/validators/security-validators.js +0 -1
- package/dist/enforcement/validators/testing-validators.js +0 -1
- package/dist/enforcement/validators/validator-registry.js +0 -1
- package/dist/governance/codex-policy.service.js +0 -1
- package/dist/inference/inference-agent-invoker.js +67 -0
- package/dist/inference/inference-applier.js +178 -0
- package/dist/inference/inference-cycle.js +51 -827
- package/dist/inference/inference-proposal-generator.js +149 -0
- package/dist/infrastructure/iac-validator.js +465 -0
- package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
- package/dist/integrations/base/ExampleIntegration.js +0 -1
- package/dist/integrations/base/Integration.js +0 -1
- package/dist/integrations/base/index.js +0 -1
- package/dist/integrations/base/registry.js +0 -1
- package/dist/integrations/base/types.js +0 -1
- package/dist/integrations/enforcement-gate.js +3 -3
- package/dist/integrations/governance/governance-client.js +0 -1
- package/dist/integrations/governance/index.js +11 -19
- package/dist/integrations/governance/types.js +0 -1
- package/dist/integrations/hermes-agent/__init__.py +4 -0
- package/dist/integrations/hermes-agent/bridge.mjs +37 -0
- package/dist/integrations/openclaw/api-server.js +0 -1
- package/dist/integrations/openclaw/client.js +0 -1
- package/dist/integrations/openclaw/config.js +0 -1
- package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -1
- package/dist/integrations/openclaw/index.js +0 -1
- package/dist/integrations/openclaw/types.js +0 -1
- package/dist/integrations/plugins/index.js +0 -1
- package/dist/integrations/plugins/plugin-integration.js +0 -1
- package/dist/integrations/plugins/plugin-registry.js +0 -1
- package/dist/mcps/agent-resolver.js +0 -1
- package/dist/mcps/architect-tools.server.js +119 -185
- package/dist/mcps/auto-format.server.js +56 -74
- package/dist/mcps/boot-orchestrator.server.js +67 -85
- package/dist/mcps/config/config-loader.js +6 -0
- package/dist/mcps/config/plugin-server-registry.js +0 -1
- package/dist/mcps/enforcer-tools.server.js +207 -273
- package/dist/mcps/estimation.server.js +63 -107
- package/dist/mcps/framework-compliance-audit.server.js +52 -81
- package/dist/mcps/framework-help.server.js +71 -89
- package/dist/mcps/governance.server.js +97 -149
- package/dist/mcps/knowledge-skills/api-design.server.js +33 -65
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +33 -65
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +123 -163
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +210 -237
- package/dist/mcps/knowledge-skills/code-review.server.js +108 -142
- package/dist/mcps/knowledge-skills/content-creator.server.js +203 -225
- package/dist/mcps/knowledge-skills/database-design.server.js +116 -150
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +123 -157
- package/dist/mcps/knowledge-skills/git-workflow.server.js +34 -67
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +301 -323
- package/dist/mcps/knowledge-skills/log-monitor.server.js +139 -159
- package/dist/mcps/knowledge-skills/mobile-development.server.js +170 -200
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +122 -158
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +88 -138
- package/dist/mcps/knowledge-skills/project-analysis.server.js +131 -218
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +115 -150
- package/dist/mcps/knowledge-skills/security-audit.server.js +16 -143
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +20 -213
- package/dist/mcps/knowledge-skills/session-management.server.js +13 -90
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +43 -421
- package/dist/mcps/knowledge-skills/strategist.server.js +10 -55
- package/dist/mcps/knowledge-skills/tech-writer.server.js +16 -191
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +18 -191
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +18 -156
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +22 -296
- package/dist/mcps/lint.server.js +50 -91
- package/dist/mcps/model-health-check.server.js +32 -60
- package/dist/mcps/orchestrator/aside-context.js +207 -0
- package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
- package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
- package/dist/mcps/orchestrator/handlers/task-handler.js +5 -0
- package/dist/mcps/orchestrator/index.js +5 -0
- package/dist/mcps/orchestrator/server.js +63 -8
- package/dist/mcps/performance-analysis.server.js +56 -87
- package/dist/mcps/processor-pipeline.server.js +68 -99
- package/dist/mcps/researcher.server.js +80 -153
- package/dist/mcps/security-scan.server.js +56 -70
- package/dist/mcps/shared/knowledge-skill-base.js +11 -4
- package/dist/mcps/state-manager.server.js +124 -152
- package/dist/monitoring/nudge-watchdog.js +0 -1
- package/dist/nucleus/default-plugins.js +13 -19
- package/dist/nucleus/index.js +0 -1
- package/dist/orchestrator/agent-spawn-governor.js +0 -1
- package/dist/orchestrator/intelligent-commit-batcher.js +2 -10
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -1
- package/dist/orchestrator/orchestrator.js +8 -18
- package/dist/orchestrator/self-direction-activation.js +0 -1
- package/dist/orchestrator/universal-registry-bridge.js +0 -1
- package/dist/performance/performance-budget-enforcer.js +0 -1
- package/dist/performance/performance-regression-tester.js +0 -1
- package/dist/plugin/plugin-codex-context.js +87 -0
- package/dist/plugin/plugin-helpers.js +155 -0
- package/dist/plugin/plugin-logger.js +46 -0
- package/dist/plugin/plugin-modules.js +144 -0
- package/dist/plugin/plugin-quality-gate.js +88 -0
- package/dist/plugin/plugin-types.js +1 -0
- package/dist/plugin/xray-codex-injection.js +338 -0
- package/dist/postprocessor/PostProcessor.js +3 -9
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
- package/dist/postprocessor/integration.js +194 -0
- package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
- package/dist/postprocessor/metamorphosis/index.js +1 -0
- package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
- package/dist/postprocessor/services/RegressionAnalysisService.js +0 -1
- package/dist/postprocessor/triggers/APITrigger.js +0 -1
- package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
- package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
- package/dist/processors/implementations/async-pattern-processor.js +0 -1
- package/dist/processors/implementations/console-log-guard-processor.js +0 -1
- package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
- package/dist/processors/implementations/inference-improvement-processor.js +2 -9
- package/dist/processors/implementations/log-protection-processor.js +0 -1
- package/dist/processors/implementations/nudge-processor.js +0 -1
- package/dist/processors/implementations/performance-budget-processor.js +0 -1
- package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
- package/dist/processors/implementations/publish-preflight-processor.js +4 -12
- package/dist/processors/implementations/session-summary-processor.js +8 -16
- package/dist/processors/implementations/spawn-governance-processor.js +0 -1
- package/dist/processors/implementations/storytelling-trigger-processor.js +3 -28
- package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
- package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
- package/dist/processors/implementations/version-compliance-processor.js +0 -1
- package/dist/processors/processor-interfaces.js +0 -1
- package/dist/processors/processor-types.js +0 -1
- package/dist/scripts/integration.js +0 -1
- package/dist/security/comprehensive-security-audit.js +0 -1
- package/dist/security/security-agent-coordinator.js +0 -1
- package/dist/security/security-auditor.js +0 -1
- package/dist/security/security-hardener.js +0 -1
- package/dist/security/security-hardening-system.js +0 -1
- package/dist/security/security-headers.js +0 -1
- package/dist/security/security-orchestration-layer.js +0 -1
- package/dist/services/inference-tuner.js +0 -1
- package/dist/session/session-cleanup-manager.js +0 -1
- package/dist/session/session-monitor.js +0 -1
- package/dist/session/session-state-manager.js +0 -1
- package/dist/skills/xray-orchestrator/index.js +0 -1
- package/dist/utils/codex-parser.js +0 -1
- package/dist/utils/language-detector.js +0 -1
- package/dist/utils/shutdown-handler.js +0 -1
- package/dist/validation/agent-config-validator.js +280 -0
- package/dist/validation/orchestration-flow-validator.js +606 -0
- package/package.json +1 -1
- package/scripts/node/release.mjs +2 -2
- package/scripts/node/setup.cjs +28 -0
- package/scripts/node/universal-version-manager.js +1 -1
- package/src/mcps/agent-resolver.ts +0 -1
- package/src/mcps/architect-tools.server.ts +129 -211
- package/src/mcps/auto-format.server.ts +74 -103
- package/src/mcps/boot-orchestrator.server.ts +71 -96
- package/src/mcps/config/__tests__/config-loader.test.ts +6 -6
- package/src/mcps/config/config-loader.ts +7 -0
- package/src/mcps/config/plugin-server-registry.ts +0 -1
- package/src/mcps/enforcer-tools.server.ts +217 -294
- package/src/mcps/estimation.server.ts +62 -122
- package/src/mcps/framework-compliance-audit.server.ts +53 -95
- package/src/mcps/framework-help.server.ts +74 -96
- package/src/mcps/governance.server.ts +97 -162
- package/src/mcps/knowledge-skills/api-design.server.ts +33 -72
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +33 -72
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +148 -193
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +222 -254
- package/src/mcps/knowledge-skills/code-review.server.ts +115 -157
- package/src/mcps/knowledge-skills/content-creator.server.ts +219 -246
- package/src/mcps/knowledge-skills/database-design.server.ts +119 -160
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +126 -167
- package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +322 -360
- package/src/mcps/knowledge-skills/log-monitor.server.ts +68 -95
- package/src/mcps/knowledge-skills/mobile-development.server.ts +16 -56
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +13 -59
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +13 -74
- package/src/mcps/knowledge-skills/project-analysis.server.ts +13 -120
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +13 -60
- package/src/mcps/knowledge-skills/security-audit.server.ts +19 -157
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +23 -227
- package/src/mcps/knowledge-skills/session-management.server.ts +17 -106
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +45 -446
- package/src/mcps/knowledge-skills/strategist.server.ts +13 -63
- package/src/mcps/knowledge-skills/tech-writer.server.ts +19 -204
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +21 -204
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +21 -165
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +25 -342
- package/src/mcps/lint.server.ts +52 -105
- package/src/mcps/model-health-check.server.ts +34 -70
- package/src/mcps/orchestrator/aside-context.ts +245 -0
- package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
- package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
- package/src/mcps/orchestrator/handlers/task-handler.ts +8 -1
- package/src/mcps/orchestrator/index.ts +29 -0
- package/src/mcps/orchestrator/server.ts +79 -24
- package/src/mcps/orchestrator/types.ts +37 -0
- package/src/mcps/performance-analysis.server.ts +59 -102
- package/src/mcps/processor-pipeline.server.ts +70 -108
- package/src/mcps/researcher.server.ts +87 -175
- package/src/mcps/security-scan.server.ts +57 -76
- package/src/mcps/shared/knowledge-skill-base.ts +12 -4
- package/src/mcps/state-manager.server.ts +129 -169
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/auto-format.md +3 -3
- package/src/opencode/commands/auto-summary-capture.md +2 -2
- package/src/opencode/commands/enforcer-daily-scan.md +3 -3
- package/src/opencode/commands/framework-compliance-audit.md +4 -4
- package/src/opencode/commands/interactive-validator.md +2 -2
- package/src/opencode/commands/job-summary-logger.md +2 -2
- package/src/opencode/commands/mode-switch.md +1 -1
- package/src/opencode/commands/model-health-check.md +2 -2
- package/src/opencode/commands/performance-analysis.md +2 -2
- package/src/opencode/commands/pre-commit-introspection.md +3 -3
- package/src/opencode/commands/security-scan.md +3 -3
- package/src/opencode/commands/sisyphus-validation.md +3 -3
- package/src/opencode/commands/summary-logger.md +2 -2
- package/src/skills/xray-orchestrator/index.ts +0 -1
- package/dist/nucleus/orchestrator.js +0 -479
|
@@ -6,14 +6,9 @@
|
|
|
6
6
|
* and performance issues in real-time.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
10
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
11
|
-
import {
|
|
12
|
-
CallToolRequestSchema,
|
|
13
|
-
ListToolsRequestSchema,
|
|
14
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
15
9
|
import * as fs from "fs";
|
|
16
10
|
import { fileURLToPath } from "url";
|
|
11
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
17
12
|
|
|
18
13
|
interface LogEntry {
|
|
19
14
|
timestamp: string;
|
|
@@ -65,8 +60,7 @@ interface LogAnomaly {
|
|
|
65
60
|
count: number;
|
|
66
61
|
}
|
|
67
62
|
|
|
68
|
-
class LogMonitorServer {
|
|
69
|
-
private server: Server;
|
|
63
|
+
class LogMonitorServer extends XrayKnowledgeSkillBase {
|
|
70
64
|
private patternLibrary: LogPattern[] = [
|
|
71
65
|
{
|
|
72
66
|
id: "memory-leak",
|
|
@@ -116,16 +110,8 @@ class LogMonitorServer {
|
|
|
116
110
|
];
|
|
117
111
|
|
|
118
112
|
constructor() {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
{ capabilities: { tools: {} } },
|
|
122
|
-
);
|
|
123
|
-
this.setupToolHandlers();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
private setupToolHandlers() {
|
|
127
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
128
|
-
tools: [
|
|
113
|
+
super("log-monitor", "3.1.0");
|
|
114
|
+
this.tools = [
|
|
129
115
|
{
|
|
130
116
|
name: "analyze_logs",
|
|
131
117
|
description:
|
|
@@ -238,82 +224,72 @@ class LogMonitorServer {
|
|
|
238
224
|
required: ["analysis"],
|
|
239
225
|
},
|
|
240
226
|
},
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
245
|
-
const { name, arguments: args = {} } = request.params;
|
|
246
|
-
|
|
247
|
-
try {
|
|
227
|
+
];
|
|
228
|
+
this.handlers = {
|
|
229
|
+
"analyze_logs": async (args) => {
|
|
248
230
|
const params = args as Record<string, unknown>;
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
(params.options as Record<string, unknown>) || {},
|
|
254
|
-
);
|
|
255
|
-
return {
|
|
256
|
-
content: [
|
|
257
|
-
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
258
|
-
],
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
case "detect_patterns": {
|
|
262
|
-
const result = this.detectPatterns(
|
|
263
|
-
(params.logs as string[]) || [],
|
|
264
|
-
(params.customPatterns as string[]) || [],
|
|
265
|
-
(params.sensitivity as number) || 80,
|
|
266
|
-
);
|
|
267
|
-
return {
|
|
268
|
-
content: [
|
|
269
|
-
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
270
|
-
],
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
case "alert_on_issues": {
|
|
274
|
-
const result = this.alertOnIssues(
|
|
275
|
-
params.analysis as unknown as LogAnalysis,
|
|
276
|
-
(params.thresholds as Record<string, unknown>) || {},
|
|
277
|
-
);
|
|
278
|
-
return {
|
|
279
|
-
content: [
|
|
280
|
-
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
281
|
-
],
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
case "correlate_events": {
|
|
285
|
-
const result = this.correlateEvents(
|
|
286
|
-
(params.logSets as Array<{ source: string; logs: string[] }>) ||
|
|
287
|
-
[],
|
|
288
|
-
(params.timeWindow as number) || 60,
|
|
289
|
-
);
|
|
290
|
-
return {
|
|
291
|
-
content: [
|
|
292
|
-
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
293
|
-
],
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
case "generate_report": {
|
|
297
|
-
const result = this.generateReport(
|
|
298
|
-
params.analysis as unknown as LogAnalysis,
|
|
299
|
-
(params.format as string) || "json",
|
|
300
|
-
);
|
|
301
|
-
return {
|
|
302
|
-
content: [
|
|
303
|
-
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
304
|
-
],
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
default:
|
|
308
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
309
|
-
}
|
|
310
|
-
} catch (error) {
|
|
231
|
+
const result = this.analyzeLogs(
|
|
232
|
+
(params.logs as string[]) || [],
|
|
233
|
+
(params.options as Record<string, unknown>) || {},
|
|
234
|
+
);
|
|
311
235
|
return {
|
|
312
|
-
content: [
|
|
313
|
-
|
|
236
|
+
content: [
|
|
237
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
238
|
+
],
|
|
314
239
|
};
|
|
315
|
-
}
|
|
316
|
-
|
|
240
|
+
},
|
|
241
|
+
"detect_patterns": async (args) => {
|
|
242
|
+
const params = args as Record<string, unknown>;
|
|
243
|
+
const result = this.detectPatterns(
|
|
244
|
+
(params.logs as string[]) || [],
|
|
245
|
+
(params.customPatterns as string[]) || [],
|
|
246
|
+
(params.sensitivity as number) || 80,
|
|
247
|
+
);
|
|
248
|
+
return {
|
|
249
|
+
content: [
|
|
250
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
251
|
+
],
|
|
252
|
+
};
|
|
253
|
+
},
|
|
254
|
+
"alert_on_issues": async (args) => {
|
|
255
|
+
const params = args as Record<string, unknown>;
|
|
256
|
+
const result = this.alertOnIssues(
|
|
257
|
+
params.analysis as unknown as LogAnalysis,
|
|
258
|
+
(params.thresholds as Record<string, unknown>) || {},
|
|
259
|
+
);
|
|
260
|
+
return {
|
|
261
|
+
content: [
|
|
262
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
263
|
+
],
|
|
264
|
+
};
|
|
265
|
+
},
|
|
266
|
+
"correlate_events": async (args) => {
|
|
267
|
+
const params = args as Record<string, unknown>;
|
|
268
|
+
const result = this.correlateEvents(
|
|
269
|
+
(params.logSets as Array<{ source: string; logs: string[] }>) ||
|
|
270
|
+
[],
|
|
271
|
+
(params.timeWindow as number) || 60,
|
|
272
|
+
);
|
|
273
|
+
return {
|
|
274
|
+
content: [
|
|
275
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
276
|
+
],
|
|
277
|
+
};
|
|
278
|
+
},
|
|
279
|
+
"generate_report": async (args) => {
|
|
280
|
+
const params = args as Record<string, unknown>;
|
|
281
|
+
const result = this.generateReport(
|
|
282
|
+
params.analysis as unknown as LogAnalysis,
|
|
283
|
+
(params.format as string) || "json",
|
|
284
|
+
);
|
|
285
|
+
return {
|
|
286
|
+
content: [
|
|
287
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
288
|
+
],
|
|
289
|
+
};
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
this.setupToolHandlers();
|
|
317
293
|
}
|
|
318
294
|
|
|
319
295
|
private analyzeLogs(logs: string[], options: Record<string, unknown>): LogAnalysis {
|
|
@@ -604,10 +580,7 @@ ${analysis.recommendations.map((r) => `- ${r}`).join("\n")}
|
|
|
604
580
|
return recs;
|
|
605
581
|
}
|
|
606
582
|
|
|
607
|
-
|
|
608
|
-
const transport = new StdioServerTransport();
|
|
609
|
-
await this.server.connect(transport);
|
|
610
|
-
}
|
|
583
|
+
|
|
611
584
|
}
|
|
612
585
|
|
|
613
586
|
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
@@ -5,14 +5,9 @@
|
|
|
5
5
|
* React Native, Flutter, and mobile performance optimization
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import * as fs from "fs";
|
|
15
9
|
import { fileURLToPath } from "url";
|
|
10
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
16
11
|
|
|
17
12
|
interface IOSBlueprint {
|
|
18
13
|
projectName: string;
|
|
@@ -107,28 +102,10 @@ interface AppStoreMetadataArgs {
|
|
|
107
102
|
features?: string[];
|
|
108
103
|
}
|
|
109
104
|
|
|
110
|
-
class XrayMobileDevelopmentServer {
|
|
111
|
-
private server: Server;
|
|
112
|
-
|
|
105
|
+
class XrayMobileDevelopmentServer extends XrayKnowledgeSkillBase {
|
|
113
106
|
constructor() {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
name: "mobile-development", version: "3.1.0",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
capabilities: {
|
|
120
|
-
tools: {},
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
this.setupToolHandlers();
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
private setupToolHandlers() {
|
|
129
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
130
|
-
return {
|
|
131
|
-
tools: [
|
|
107
|
+
super("mobile-development", "3.1.0");
|
|
108
|
+
this.tools = [
|
|
132
109
|
{
|
|
133
110
|
name: "ios_blueprint",
|
|
134
111
|
description:
|
|
@@ -305,30 +282,16 @@ class XrayMobileDevelopmentServer {
|
|
|
305
282
|
required: ["appName", "platform"],
|
|
306
283
|
},
|
|
307
284
|
},
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
case "android_blueprint":
|
|
319
|
-
return await this.generateAndroidBlueprint(args ?? {});
|
|
320
|
-
case "react_native_boilerplate":
|
|
321
|
-
return await this.generateReactNativeBlueprint(args ?? {});
|
|
322
|
-
case "flutter_boilerplate":
|
|
323
|
-
return await this.generateFlutterBlueprint(args ?? {});
|
|
324
|
-
case "mobile_performance_profile":
|
|
325
|
-
return await this.analyzeMobilePerformance(args ?? {});
|
|
326
|
-
case "app_store_metadata":
|
|
327
|
-
return await this.generateAppStoreMetadata(args ?? {});
|
|
328
|
-
default:
|
|
329
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
330
|
-
}
|
|
331
|
-
});
|
|
285
|
+
];
|
|
286
|
+
this.handlers = {
|
|
287
|
+
"ios_blueprint": async (args) => this.generateIOSBlueprint((args ?? {}) as Record<string, unknown>),
|
|
288
|
+
"android_blueprint": async (args) => this.generateAndroidBlueprint((args ?? {}) as Record<string, unknown>),
|
|
289
|
+
"react_native_boilerplate": async (args) => this.generateReactNativeBlueprint((args ?? {}) as Record<string, unknown>),
|
|
290
|
+
"flutter_boilerplate": async (args) => this.generateFlutterBlueprint((args ?? {}) as Record<string, unknown>),
|
|
291
|
+
"mobile_performance_profile": async (args) => this.analyzeMobilePerformance((args ?? {}) as Record<string, unknown>),
|
|
292
|
+
"app_store_metadata": async (args) => this.generateAppStoreMetadata((args ?? {}) as Record<string, unknown>),
|
|
293
|
+
};
|
|
294
|
+
this.setupToolHandlers();
|
|
332
295
|
}
|
|
333
296
|
|
|
334
297
|
private async generateIOSBlueprint(args: Record<string, unknown>) {
|
|
@@ -657,16 +620,13 @@ class HomePage extends StatelessWidget {
|
|
|
657
620
|
};
|
|
658
621
|
}
|
|
659
622
|
|
|
660
|
-
|
|
661
|
-
const transport = new StdioServerTransport();
|
|
662
|
-
await this.server.connect(transport);
|
|
663
|
-
}
|
|
623
|
+
|
|
664
624
|
}
|
|
665
625
|
|
|
666
626
|
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
667
627
|
if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
|
|
668
628
|
const server = new XrayMobileDevelopmentServer();
|
|
669
|
-
server.
|
|
629
|
+
server.run().catch(() => {});
|
|
670
630
|
}
|
|
671
631
|
|
|
672
632
|
export { XrayMobileDevelopmentServer };
|
|
@@ -8,15 +8,10 @@
|
|
|
8
8
|
* Production-ready implementation with real analysis logic.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
12
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
13
|
-
import {
|
|
14
|
-
CallToolRequestSchema,
|
|
15
|
-
ListToolsRequestSchema,
|
|
16
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
17
11
|
import * as fs from "fs";
|
|
18
12
|
import { fileURLToPath } from "url";
|
|
19
13
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
14
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
20
15
|
|
|
21
16
|
/* ============================================================================
|
|
22
17
|
* Type Definitions
|
|
@@ -162,24 +157,10 @@ interface VisualComparison {
|
|
|
162
157
|
* Analysis Engine
|
|
163
158
|
* ============================================================================ */
|
|
164
159
|
|
|
165
|
-
class MultimodalLookerServer {
|
|
166
|
-
private server: Server;
|
|
167
|
-
|
|
160
|
+
class MultimodalLookerServer extends XrayKnowledgeSkillBase {
|
|
168
161
|
constructor() {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
{ capabilities: { tools: {} } },
|
|
172
|
-
);
|
|
173
|
-
this.setupToolHandlers();
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/* --------------------------------------------------------------------------
|
|
177
|
-
* Tool Registration
|
|
178
|
-
* -------------------------------------------------------------------------- */
|
|
179
|
-
|
|
180
|
-
private setupToolHandlers() {
|
|
181
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
182
|
-
tools: [
|
|
162
|
+
super("multimodal-looker", "3.1.0");
|
|
163
|
+
this.tools = [
|
|
183
164
|
{
|
|
184
165
|
name: "analyze-screenshot",
|
|
185
166
|
description:
|
|
@@ -309,35 +290,15 @@ class MultimodalLookerServer {
|
|
|
309
290
|
required: ["imageA", "imageB"],
|
|
310
291
|
},
|
|
311
292
|
},
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
case "analyze-screenshot":
|
|
322
|
-
return this.handleAnalyzeScreenshot(params);
|
|
323
|
-
case "describe-diagram":
|
|
324
|
-
return this.handleDescribeDiagram(params);
|
|
325
|
-
case "review-ui-mockup":
|
|
326
|
-
return this.handleReviewUIMockup(params);
|
|
327
|
-
case "extract-visual-specs":
|
|
328
|
-
return this.handleExtractVisualSpecs(params);
|
|
329
|
-
case "compare-designs":
|
|
330
|
-
return this.handleCompareDesigns(params);
|
|
331
|
-
default:
|
|
332
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
333
|
-
}
|
|
334
|
-
} catch (error) {
|
|
335
|
-
return {
|
|
336
|
-
content: [{ type: "text", text: `Error: ${error}` }],
|
|
337
|
-
isError: true,
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
|
-
});
|
|
293
|
+
];
|
|
294
|
+
this.handlers = {
|
|
295
|
+
"analyze-screenshot": async (args) => this.handleAnalyzeScreenshot(args as Record<string, unknown>),
|
|
296
|
+
"describe-diagram": async (args) => this.handleDescribeDiagram(args as Record<string, unknown>),
|
|
297
|
+
"review-ui-mockup": async (args) => this.handleReviewUIMockup(args as Record<string, unknown>),
|
|
298
|
+
"extract-visual-specs": async (args) => this.handleExtractVisualSpecs(args as Record<string, unknown>),
|
|
299
|
+
"compare-designs": async (args) => this.handleCompareDesigns(args as Record<string, unknown>),
|
|
300
|
+
};
|
|
301
|
+
this.setupToolHandlers();
|
|
341
302
|
}
|
|
342
303
|
|
|
343
304
|
/* --------------------------------------------------------------------------
|
|
@@ -1482,14 +1443,7 @@ class MultimodalLookerServer {
|
|
|
1482
1443
|
return recommendations;
|
|
1483
1444
|
}
|
|
1484
1445
|
|
|
1485
|
-
/* --------------------------------------------------------------------------
|
|
1486
|
-
* Server Lifecycle
|
|
1487
|
-
* -------------------------------------------------------------------------- */
|
|
1488
1446
|
|
|
1489
|
-
async run(): Promise<void> {
|
|
1490
|
-
const transport = new StdioServerTransport();
|
|
1491
|
-
await this.server.connect(transport);
|
|
1492
|
-
}
|
|
1493
1447
|
}
|
|
1494
1448
|
|
|
1495
1449
|
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
@@ -5,18 +5,12 @@
|
|
|
5
5
|
* profiling, benchmarking, memory analysis, and Core Web Vitals measurement
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import { frameworkLogger, generateJobId } from "../../core/framework-logger.js";
|
|
15
|
-
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
16
9
|
import fs from "fs";
|
|
17
10
|
import path from "path";
|
|
18
11
|
import os from "os";
|
|
19
12
|
import { execSync } from "child_process";
|
|
13
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
20
14
|
|
|
21
15
|
interface ProfileApplicationArgs {
|
|
22
16
|
projectRoot: string;
|
|
@@ -217,30 +211,10 @@ interface McpToolResponse {
|
|
|
217
211
|
data?: Record<string, unknown>;
|
|
218
212
|
}
|
|
219
213
|
|
|
220
|
-
class XrayPerformanceOptimizationServer {
|
|
221
|
-
private server: Server;
|
|
222
|
-
private startTime: number;
|
|
223
|
-
|
|
214
|
+
class XrayPerformanceOptimizationServer extends XrayKnowledgeSkillBase {
|
|
224
215
|
constructor() {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
name: "performance-optimization", version: "3.1.0",
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
capabilities: {
|
|
231
|
-
tools: {},
|
|
232
|
-
},
|
|
233
|
-
},
|
|
234
|
-
);
|
|
235
|
-
|
|
236
|
-
this.startTime = Date.now();
|
|
237
|
-
this.setupToolHandlers();
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
private setupToolHandlers() {
|
|
241
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
242
|
-
return {
|
|
243
|
-
tools: [
|
|
216
|
+
super("performance-optimization", "3.1.0");
|
|
217
|
+
this.tools = [
|
|
244
218
|
{
|
|
245
219
|
name: "profile-application",
|
|
246
220
|
description: "Run comprehensive performance profiling on the codebase to identify bottlenecks and hot paths",
|
|
@@ -323,38 +297,15 @@ class XrayPerformanceOptimizationServer {
|
|
|
323
297
|
required: ["projectRoot"]
|
|
324
298
|
}
|
|
325
299
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
case "profile-application":
|
|
336
|
-
return await this.handleProfileApplication(args as unknown as ProfileApplicationArgs) as never;
|
|
337
|
-
case "analyze-memory":
|
|
338
|
-
return await this.handleAnalyzeMemory(args as unknown as AnalyzeMemoryArgs) as never;
|
|
339
|
-
case "benchmark-code":
|
|
340
|
-
return await this.handleBenchmarkCode(args as unknown as BenchmarkCodeArgs) as never;
|
|
341
|
-
case "suggest-optimizations":
|
|
342
|
-
return await this.handleSuggestOptimizations(args as unknown as SuggestOptimizationsArgs) as never;
|
|
343
|
-
case "measure-core-web-vitals":
|
|
344
|
-
return await this.handleMeasureCoreWebVitals(args as unknown as MeasureCoreWebVitalsArgs) as never;
|
|
345
|
-
default:
|
|
346
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
347
|
-
}
|
|
348
|
-
} catch (error) {
|
|
349
|
-
frameworkLogger.log("mcp/performance-optimization", "tool-handler", "error", { tool: name, error: String(error) });
|
|
350
|
-
return {
|
|
351
|
-
content: [{
|
|
352
|
-
type: "text",
|
|
353
|
-
text: `Error executing tool "${name}": ${error instanceof Error ? error.message : String(error)}`
|
|
354
|
-
}]
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
});
|
|
300
|
+
];
|
|
301
|
+
this.handlers = {
|
|
302
|
+
"profile-application": async (args) => this.handleProfileApplication(args as unknown as ProfileApplicationArgs),
|
|
303
|
+
"analyze-memory": async (args) => this.handleAnalyzeMemory(args as unknown as AnalyzeMemoryArgs),
|
|
304
|
+
"benchmark-code": async (args) => this.handleBenchmarkCode(args as unknown as BenchmarkCodeArgs),
|
|
305
|
+
"suggest-optimizations": async (args) => this.handleSuggestOptimizations(args as unknown as SuggestOptimizationsArgs),
|
|
306
|
+
"measure-core-web-vitals": async (args) => this.handleMeasureCoreWebVitals(args as unknown as MeasureCoreWebVitalsArgs),
|
|
307
|
+
};
|
|
308
|
+
this.setupToolHandlers();
|
|
358
309
|
}
|
|
359
310
|
|
|
360
311
|
private async handleProfileApplication(args: ProfileApplicationArgs): Promise<McpToolResponse> {
|
|
@@ -2040,19 +1991,7 @@ ${result.recommendations.slice(0, 5).map((r, i) => `${i + 1}. ${r}`).join("\n")
|
|
|
2040
1991
|
return files.slice(0, 100);
|
|
2041
1992
|
}
|
|
2042
1993
|
|
|
2043
|
-
async run(): Promise<void> {
|
|
2044
|
-
const transport = new StdioServerTransport();
|
|
2045
|
-
await this.server.connect(transport);
|
|
2046
|
-
|
|
2047
|
-
createGracefulShutdown({
|
|
2048
|
-
serverName: "performance-optimization.server",
|
|
2049
|
-
server: this.server,
|
|
2050
|
-
});
|
|
2051
1994
|
|
|
2052
|
-
frameworkLogger.log("mcp/performance-optimization", "server-started", "info", {
|
|
2053
|
-
uptime: Date.now() - this.startTime
|
|
2054
|
-
});
|
|
2055
|
-
}
|
|
2056
1995
|
}
|
|
2057
1996
|
|
|
2058
1997
|
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|