0xray 3.1.1 → 3.3.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 +55 -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 +40 -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/config/agent-capabilities.js +30 -11
- package/dist/mcps/orchestrator/config/memory-routing-bridge.js +70 -0
- package/dist/mcps/orchestrator/execution/execution-planner.js +25 -7
- 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 +59 -1
- 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/memory-routing/index.js +4 -0
- package/dist/memory-routing/null-provider.js +51 -0
- package/dist/memory-routing/provider-loader.js +91 -0
- package/dist/memory-routing/provider-registry.js +40 -0
- package/dist/memory-routing/types.js +7 -0
- package/dist/memory-routing/validate-config.js +32 -0
- 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/nucleus/thin-dispatch.js +29 -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/config/agent-capabilities.ts +49 -14
- package/src/mcps/orchestrator/config/memory-routing-bridge.ts +80 -0
- package/src/mcps/orchestrator/execution/execution-planner.ts +36 -9
- 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 +78 -2
- package/src/mcps/orchestrator/index.ts +29 -0
- package/src/mcps/orchestrator/server.ts +79 -24
- package/src/mcps/orchestrator/types.ts +50 -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
|
@@ -12,16 +12,15 @@
|
|
|
12
12
|
* and the Dynamo Solar SSOT filter (required by default).
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
16
15
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
17
16
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
18
17
|
import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
|
|
19
18
|
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
20
19
|
import {
|
|
21
20
|
CallToolRequestSchema,
|
|
22
|
-
ListToolsRequestSchema,
|
|
23
21
|
type CallToolResult,
|
|
24
22
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
23
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
25
24
|
import { mcpClientManager } from "./mcp-client.js";
|
|
26
25
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
27
26
|
import * as fs from "fs";
|
|
@@ -62,21 +61,104 @@ interface GovernReflectionArgs {
|
|
|
62
61
|
context?: Record<string, unknown>;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
class GovernanceServer {
|
|
66
|
-
private server: Server;
|
|
67
|
-
|
|
64
|
+
class GovernanceServer extends XrayKnowledgeSkillBase {
|
|
68
65
|
constructor() {
|
|
69
|
-
|
|
66
|
+
super("governance", "3.1.0");
|
|
67
|
+
this.tools = [
|
|
70
68
|
{
|
|
71
|
-
name: "
|
|
69
|
+
name: "govern_proposals",
|
|
70
|
+
description:
|
|
71
|
+
"Run one or more proposals through the full 0xRay governance system. " +
|
|
72
|
+
"Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
|
|
73
|
+
"Returns merged structured decisions. " +
|
|
74
|
+
"Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
|
|
75
|
+
"and other compliance-related governance scenarios.",
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: {
|
|
79
|
+
proposals: {
|
|
80
|
+
type: "array",
|
|
81
|
+
items: {
|
|
82
|
+
type: "object",
|
|
83
|
+
properties: {
|
|
84
|
+
id: { type: "string" },
|
|
85
|
+
type: {
|
|
86
|
+
type: "string",
|
|
87
|
+
enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
|
|
88
|
+
},
|
|
89
|
+
title: { type: "string" },
|
|
90
|
+
description: { type: "string" },
|
|
91
|
+
evidence: { type: "array", items: { type: "string" } },
|
|
92
|
+
source: { type: "string" },
|
|
93
|
+
confidence: { type: "number" },
|
|
94
|
+
},
|
|
95
|
+
required: ["type", "title", "description"],
|
|
96
|
+
},
|
|
97
|
+
description: "List of proposals to govern",
|
|
98
|
+
},
|
|
99
|
+
context: {
|
|
100
|
+
type: "object",
|
|
101
|
+
description: "Optional context about the proposals (project, phase, etc.)",
|
|
102
|
+
},
|
|
103
|
+
options: {
|
|
104
|
+
type: "object",
|
|
105
|
+
properties: {
|
|
106
|
+
require_external: {
|
|
107
|
+
type: "boolean",
|
|
108
|
+
default: true,
|
|
109
|
+
description: "Whether external Dynamo/Solar governance is required (default: true)",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
required: ["proposals"],
|
|
115
|
+
},
|
|
72
116
|
},
|
|
73
117
|
{
|
|
74
|
-
|
|
75
|
-
|
|
118
|
+
name: "govern_reflection",
|
|
119
|
+
description:
|
|
120
|
+
"Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
|
|
121
|
+
"This is the primary way to govern outcomes from reflection-based workflows.",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: "object",
|
|
124
|
+
properties: {
|
|
125
|
+
reflectionPath: {
|
|
126
|
+
type: "string",
|
|
127
|
+
description: "Path to a reflection .md file (alternative to reflectionContent)",
|
|
128
|
+
},
|
|
129
|
+
reflectionContent: {
|
|
130
|
+
type: "string",
|
|
131
|
+
description: "Raw reflection content (alternative to reflectionPath)",
|
|
132
|
+
},
|
|
133
|
+
context: { type: "object" },
|
|
134
|
+
},
|
|
135
|
+
required: [],
|
|
76
136
|
},
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "get_active_codex",
|
|
140
|
+
description:
|
|
141
|
+
"Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
|
|
142
|
+
"including version, term count, source path, and governance status. " +
|
|
143
|
+
"Optionally include the full raw codex data with includeRaw=true.",
|
|
144
|
+
inputSchema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
includeRaw: {
|
|
148
|
+
type: "boolean",
|
|
149
|
+
description: "Whether to include the full raw codex data in the response",
|
|
150
|
+
default: false,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
required: [],
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
this.handlers = {
|
|
158
|
+
"govern_proposals": async (args) => this.handleGovernProposals(this.validateGovernProposalsArgs(args)),
|
|
159
|
+
"govern_reflection": async (args) => this.handleGovernReflection(this.validateGovernReflectionArgs(args)),
|
|
160
|
+
"get_active_codex": async (args) => this.handleGetActiveCodex(args as { includeRaw?: boolean }),
|
|
161
|
+
};
|
|
80
162
|
this.setupToolHandlers();
|
|
81
163
|
}
|
|
82
164
|
|
|
@@ -113,101 +195,8 @@ class GovernanceServer {
|
|
|
113
195
|
return value as GovernReflectionArgs;
|
|
114
196
|
}
|
|
115
197
|
|
|
116
|
-
|
|
117
|
-
this.
|
|
118
|
-
return {
|
|
119
|
-
tools: [
|
|
120
|
-
{
|
|
121
|
-
name: "govern_proposals",
|
|
122
|
-
description:
|
|
123
|
-
"Run one or more proposals through the full 0xRay governance system. " +
|
|
124
|
-
"Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
|
|
125
|
-
"Returns merged structured decisions. " +
|
|
126
|
-
"Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
|
|
127
|
-
"and other compliance-related governance scenarios.",
|
|
128
|
-
inputSchema: {
|
|
129
|
-
type: "object",
|
|
130
|
-
properties: {
|
|
131
|
-
proposals: {
|
|
132
|
-
type: "array",
|
|
133
|
-
items: {
|
|
134
|
-
type: "object",
|
|
135
|
-
properties: {
|
|
136
|
-
id: { type: "string" },
|
|
137
|
-
type: {
|
|
138
|
-
type: "string",
|
|
139
|
-
enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
|
|
140
|
-
},
|
|
141
|
-
title: { type: "string" },
|
|
142
|
-
description: { type: "string" },
|
|
143
|
-
evidence: { type: "array", items: { type: "string" } },
|
|
144
|
-
source: { type: "string" },
|
|
145
|
-
confidence: { type: "number" },
|
|
146
|
-
},
|
|
147
|
-
required: ["type", "title", "description"],
|
|
148
|
-
},
|
|
149
|
-
description: "List of proposals to govern",
|
|
150
|
-
},
|
|
151
|
-
context: {
|
|
152
|
-
type: "object",
|
|
153
|
-
description: "Optional context about the proposals (project, phase, etc.)",
|
|
154
|
-
},
|
|
155
|
-
options: {
|
|
156
|
-
type: "object",
|
|
157
|
-
properties: {
|
|
158
|
-
require_external: {
|
|
159
|
-
type: "boolean",
|
|
160
|
-
default: true,
|
|
161
|
-
description: "Whether external Dynamo/Solar governance is required (default: true)",
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
required: ["proposals"],
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
name: "govern_reflection",
|
|
171
|
-
description:
|
|
172
|
-
"Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
|
|
173
|
-
"This is the primary way to govern outcomes from reflection-based workflows.",
|
|
174
|
-
inputSchema: {
|
|
175
|
-
type: "object",
|
|
176
|
-
properties: {
|
|
177
|
-
reflectionPath: {
|
|
178
|
-
type: "string",
|
|
179
|
-
description: "Path to a reflection .md file (alternative to reflectionContent)",
|
|
180
|
-
},
|
|
181
|
-
reflectionContent: {
|
|
182
|
-
type: "string",
|
|
183
|
-
description: "Raw reflection content (alternative to reflectionPath)",
|
|
184
|
-
},
|
|
185
|
-
context: { type: "object" },
|
|
186
|
-
},
|
|
187
|
-
required: [],
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
name: "get_active_codex",
|
|
192
|
-
description:
|
|
193
|
-
"Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
|
|
194
|
-
"including version, term count, source path, and governance status. " +
|
|
195
|
-
"Optionally include the full raw codex data with includeRaw=true.",
|
|
196
|
-
inputSchema: {
|
|
197
|
-
type: "object",
|
|
198
|
-
properties: {
|
|
199
|
-
includeRaw: {
|
|
200
|
-
type: "boolean",
|
|
201
|
-
description: "Whether to include the full raw codex data in the response",
|
|
202
|
-
default: false,
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
|
-
required: [],
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
],
|
|
209
|
-
};
|
|
210
|
-
});
|
|
198
|
+
protected setupToolHandlers(): void {
|
|
199
|
+
this.setupListToolsHandler();
|
|
211
200
|
|
|
212
201
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
213
202
|
const { name, arguments: args } = request.params;
|
|
@@ -408,61 +397,7 @@ class GovernanceServer {
|
|
|
408
397
|
|
|
409
398
|
async run(): Promise<void> {
|
|
410
399
|
await this.initializeGovernance();
|
|
411
|
-
|
|
412
|
-
const transport = new StdioServerTransport();
|
|
413
|
-
await this.server.connect(transport);
|
|
414
|
-
|
|
415
|
-
let parentCheckTimer: ReturnType<typeof setTimeout> | null = null;
|
|
416
|
-
|
|
417
|
-
const cleanup = async (signal: string) => {
|
|
418
|
-
if (parentCheckTimer !== null) {
|
|
419
|
-
clearTimeout(parentCheckTimer);
|
|
420
|
-
parentCheckTimer = null;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
const timeout = setTimeout(() => {
|
|
424
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
|
|
425
|
-
process.exit(1);
|
|
426
|
-
}, 5000);
|
|
427
|
-
|
|
428
|
-
try {
|
|
429
|
-
if (this.server && typeof this.server.close === "function") {
|
|
430
|
-
await this.server.close();
|
|
431
|
-
}
|
|
432
|
-
clearTimeout(timeout);
|
|
433
|
-
process.exit(0);
|
|
434
|
-
} catch (error) {
|
|
435
|
-
clearTimeout(timeout);
|
|
436
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
|
|
437
|
-
process.exit(1);
|
|
438
|
-
}
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
process.on("SIGINT", () => cleanup("SIGINT"));
|
|
442
|
-
process.on("SIGTERM", () => cleanup("SIGTERM"));
|
|
443
|
-
process.on("SIGHUP", () => cleanup("SIGHUP"));
|
|
444
|
-
|
|
445
|
-
const checkParent = () => {
|
|
446
|
-
try {
|
|
447
|
-
process.kill(process.ppid, 0);
|
|
448
|
-
parentCheckTimer = setTimeout(checkParent, 1000);
|
|
449
|
-
} catch (error) {
|
|
450
|
-
parentCheckTimer = null;
|
|
451
|
-
cleanup("parent-process-death");
|
|
452
|
-
}
|
|
453
|
-
};
|
|
454
|
-
|
|
455
|
-
parentCheckTimer = setTimeout(checkParent, 2000);
|
|
456
|
-
|
|
457
|
-
process.on("uncaughtException", (error) => {
|
|
458
|
-
frameworkLogger.log("mcps/governance", "uncaughtException", "error", { message: `Uncaught Exception: ${String(error)}` });
|
|
459
|
-
cleanup("uncaughtException");
|
|
460
|
-
});
|
|
461
|
-
|
|
462
|
-
process.on("unhandledRejection", (reason) => {
|
|
463
|
-
frameworkLogger.log("mcps/governance", "unhandledRejection", "error", { message: `Unhandled Rejection: ${String(reason)}` });
|
|
464
|
-
cleanup("unhandledRejection");
|
|
465
|
-
});
|
|
400
|
+
await super.run();
|
|
466
401
|
}
|
|
467
402
|
|
|
468
403
|
async connect(transport: Transport): Promise<void> {
|
|
@@ -5,12 +5,7 @@
|
|
|
5
5
|
* GraphQL schema design, and API documentation standards
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
14
9
|
import * as fs from "fs";
|
|
15
10
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
16
11
|
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
@@ -26,74 +21,50 @@ interface ValidateApiDesignArgs {
|
|
|
26
21
|
standards?: string[];
|
|
27
22
|
}
|
|
28
23
|
|
|
29
|
-
class XrayApiDesignServer {
|
|
30
|
-
private server: Server;
|
|
24
|
+
class XrayApiDesignServer extends XrayKnowledgeSkillBase {
|
|
31
25
|
|
|
32
26
|
constructor() {
|
|
33
|
-
|
|
27
|
+
super("api-design", "3.1.0");
|
|
28
|
+
|
|
29
|
+
this.tools = [
|
|
34
30
|
{
|
|
35
|
-
name: "api-
|
|
31
|
+
name: "design-api-endpoints",
|
|
32
|
+
description:
|
|
33
|
+
"Design RESTful API endpoints with proper resource modeling",
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: "object",
|
|
36
|
+
properties: {
|
|
37
|
+
resource: { type: "string" },
|
|
38
|
+
operations: { type: "array", items: { type: "string" } },
|
|
39
|
+
relationships: { type: "array", items: { type: "string" } },
|
|
40
|
+
},
|
|
41
|
+
required: ["resource"],
|
|
42
|
+
},
|
|
36
43
|
},
|
|
37
44
|
{
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
name: "validate-api-design",
|
|
46
|
+
description:
|
|
47
|
+
"Validate API design against RESTful principles and best practices",
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: "object",
|
|
50
|
+
properties: {
|
|
51
|
+
endpoints: { type: "array", items: { type: "string" } },
|
|
52
|
+
standards: { type: "array", items: { type: "string" } },
|
|
53
|
+
},
|
|
54
|
+
required: ["endpoints"],
|
|
40
55
|
},
|
|
41
56
|
},
|
|
42
|
-
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
this.handlers = {
|
|
60
|
+
"design-api-endpoints": async (args) => this.designApiEndpoints(args as DesignApiEndpointsArgs),
|
|
61
|
+
"validate-api-design": async (args) => this.validateApiDesign(args as ValidateApiDesignArgs),
|
|
62
|
+
};
|
|
43
63
|
|
|
44
64
|
this.setupToolHandlers();
|
|
45
65
|
// Server initialization - removed unnecessary startup logging
|
|
46
66
|
}
|
|
47
67
|
|
|
48
|
-
private setupToolHandlers() {
|
|
49
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
50
|
-
return {
|
|
51
|
-
tools: [
|
|
52
|
-
{
|
|
53
|
-
name: "design-api-endpoints",
|
|
54
|
-
description:
|
|
55
|
-
"Design RESTful API endpoints with proper resource modeling",
|
|
56
|
-
inputSchema: {
|
|
57
|
-
type: "object",
|
|
58
|
-
properties: {
|
|
59
|
-
resource: { type: "string" },
|
|
60
|
-
operations: { type: "array", items: { type: "string" } },
|
|
61
|
-
relationships: { type: "array", items: { type: "string" } },
|
|
62
|
-
},
|
|
63
|
-
required: ["resource"],
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: "validate-api-design",
|
|
68
|
-
description:
|
|
69
|
-
"Validate API design against RESTful principles and best practices",
|
|
70
|
-
inputSchema: {
|
|
71
|
-
type: "object",
|
|
72
|
-
properties: {
|
|
73
|
-
endpoints: { type: "array", items: { type: "string" } },
|
|
74
|
-
standards: { type: "array", items: { type: "string" } },
|
|
75
|
-
},
|
|
76
|
-
required: ["endpoints"],
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
84
|
-
const { name, arguments: args } = request.params;
|
|
85
|
-
|
|
86
|
-
switch (name) {
|
|
87
|
-
case "design-api-endpoints":
|
|
88
|
-
return await this.designApiEndpoints(args as unknown as DesignApiEndpointsArgs);
|
|
89
|
-
case "validate-api-design":
|
|
90
|
-
return await this.validateApiDesign(args as unknown as ValidateApiDesignArgs);
|
|
91
|
-
default:
|
|
92
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
68
|
private async designApiEndpoints(args: DesignApiEndpointsArgs) {
|
|
98
69
|
const { resource, operations, relationships } = args;
|
|
99
70
|
|
|
@@ -141,16 +112,6 @@ class XrayApiDesignServer {
|
|
|
141
112
|
};
|
|
142
113
|
}
|
|
143
114
|
|
|
144
|
-
async run(): Promise<void> {
|
|
145
|
-
const transport = new StdioServerTransport();
|
|
146
|
-
await this.server.connect(transport);
|
|
147
|
-
|
|
148
|
-
// Use centralized shutdown handler
|
|
149
|
-
createGracefulShutdown({
|
|
150
|
-
serverName: "api-design.server",
|
|
151
|
-
server: this.server,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
115
|
}
|
|
155
116
|
|
|
156
117
|
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|
|
@@ -5,12 +5,7 @@
|
|
|
5
5
|
* design pattern recommendations, and system architecture guidance
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
14
9
|
import * as fs from "fs";
|
|
15
10
|
import * as path from "path";
|
|
16
11
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
@@ -27,74 +22,50 @@ interface RecommendPatternsArgs {
|
|
|
27
22
|
scale?: string;
|
|
28
23
|
}
|
|
29
24
|
|
|
30
|
-
class XrayArchitecturePatternsServer {
|
|
31
|
-
private server: Server;
|
|
25
|
+
class XrayArchitecturePatternsServer extends XrayKnowledgeSkillBase {
|
|
32
26
|
|
|
33
27
|
constructor() {
|
|
34
|
-
|
|
28
|
+
super("architecture-patterns", "3.1.0");
|
|
29
|
+
|
|
30
|
+
this.tools = [
|
|
35
31
|
{
|
|
36
|
-
name: "architecture
|
|
32
|
+
name: "analyze-architecture",
|
|
33
|
+
description:
|
|
34
|
+
"Analyze current system architecture and identify patterns",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
projectRoot: { type: "string" },
|
|
39
|
+
focusPatterns: { type: "array", items: { type: "string" } },
|
|
40
|
+
},
|
|
41
|
+
required: ["projectRoot"],
|
|
42
|
+
},
|
|
37
43
|
},
|
|
38
44
|
{
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
name: "recommend-patterns",
|
|
46
|
+
description:
|
|
47
|
+
"Recommend architectural patterns for specific use cases",
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: "object",
|
|
50
|
+
properties: {
|
|
51
|
+
useCase: { type: "string" },
|
|
52
|
+
constraints: { type: "array", items: { type: "string" } },
|
|
53
|
+
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
54
|
+
},
|
|
55
|
+
required: ["useCase"],
|
|
41
56
|
},
|
|
42
57
|
},
|
|
43
|
-
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
this.handlers = {
|
|
61
|
+
"analyze-architecture": async (args) => this.analyzeArchitecture(args as unknown as AnalyzeArchitectureArgs),
|
|
62
|
+
"recommend-patterns": async (args) => this.recommendPatterns(args as unknown as RecommendPatternsArgs),
|
|
63
|
+
};
|
|
44
64
|
|
|
45
65
|
this.setupToolHandlers();
|
|
46
66
|
// Server initialization - removed unnecessary startup logging
|
|
47
67
|
}
|
|
48
68
|
|
|
49
|
-
private setupToolHandlers() {
|
|
50
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
51
|
-
return {
|
|
52
|
-
tools: [
|
|
53
|
-
{
|
|
54
|
-
name: "analyze-architecture",
|
|
55
|
-
description:
|
|
56
|
-
"Analyze current system architecture and identify patterns",
|
|
57
|
-
inputSchema: {
|
|
58
|
-
type: "object",
|
|
59
|
-
properties: {
|
|
60
|
-
projectRoot: { type: "string" },
|
|
61
|
-
focusPatterns: { type: "array", items: { type: "string" } },
|
|
62
|
-
},
|
|
63
|
-
required: ["projectRoot"],
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: "recommend-patterns",
|
|
68
|
-
description:
|
|
69
|
-
"Recommend architectural patterns for specific use cases",
|
|
70
|
-
inputSchema: {
|
|
71
|
-
type: "object",
|
|
72
|
-
properties: {
|
|
73
|
-
useCase: { type: "string" },
|
|
74
|
-
constraints: { type: "array", items: { type: "string" } },
|
|
75
|
-
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
76
|
-
},
|
|
77
|
-
required: ["useCase"],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
85
|
-
const { name, arguments: args } = request.params;
|
|
86
|
-
|
|
87
|
-
switch (name) {
|
|
88
|
-
case "analyze-architecture":
|
|
89
|
-
return await this.analyzeArchitecture(args as unknown as AnalyzeArchitectureArgs);
|
|
90
|
-
case "recommend-patterns":
|
|
91
|
-
return await this.recommendPatterns(args as unknown as RecommendPatternsArgs);
|
|
92
|
-
default:
|
|
93
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
69
|
private async analyzeArchitecture(args: AnalyzeArchitectureArgs) {
|
|
99
70
|
const { projectRoot, focusPatterns } = args;
|
|
100
71
|
|
|
@@ -132,16 +103,6 @@ class XrayArchitecturePatternsServer {
|
|
|
132
103
|
};
|
|
133
104
|
}
|
|
134
105
|
|
|
135
|
-
async run(): Promise<void> {
|
|
136
|
-
const transport = new StdioServerTransport();
|
|
137
|
-
await this.server.connect(transport);
|
|
138
|
-
|
|
139
|
-
// Use centralized shutdown handler
|
|
140
|
-
createGracefulShutdown({
|
|
141
|
-
serverName: "architecture-patterns.server",
|
|
142
|
-
server: this.server,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
106
|
}
|
|
146
107
|
|
|
147
108
|
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|