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
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
* It always runs proposals through the three real skill servers
|
|
12
12
|
* and the Dynamo Solar SSOT filter (required by default).
|
|
13
13
|
*/
|
|
14
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
15
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
16
14
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
17
15
|
import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
|
|
18
|
-
import { CallToolRequestSchema,
|
|
16
|
+
import { CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
17
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
19
18
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
20
19
|
import * as fs from "fs";
|
|
21
20
|
import { fileURLToPath } from "url";
|
|
@@ -24,16 +23,101 @@ import { getGovernanceService } from "../governance/governance-service.js";
|
|
|
24
23
|
import { getCodexPolicyService } from "../governance/codex-policy.service.js";
|
|
25
24
|
import { initializeGovernanceIntegration } from "../integrations/governance/index.js";
|
|
26
25
|
import { featuresConfigLoader } from "../core/features-config.js";
|
|
27
|
-
class GovernanceServer {
|
|
28
|
-
server;
|
|
26
|
+
class GovernanceServer extends XrayKnowledgeSkillBase {
|
|
29
27
|
constructor() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
super("governance", "3.1.0");
|
|
29
|
+
this.tools = [
|
|
30
|
+
{
|
|
31
|
+
name: "govern_proposals",
|
|
32
|
+
description: "Run one or more proposals through the full 0xRay governance system. " +
|
|
33
|
+
"Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
|
|
34
|
+
"Returns merged structured decisions. " +
|
|
35
|
+
"Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
|
|
36
|
+
"and other compliance-related governance scenarios.",
|
|
37
|
+
inputSchema: {
|
|
38
|
+
type: "object",
|
|
39
|
+
properties: {
|
|
40
|
+
proposals: {
|
|
41
|
+
type: "array",
|
|
42
|
+
items: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: {
|
|
45
|
+
id: { type: "string" },
|
|
46
|
+
type: {
|
|
47
|
+
type: "string",
|
|
48
|
+
enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
|
|
49
|
+
},
|
|
50
|
+
title: { type: "string" },
|
|
51
|
+
description: { type: "string" },
|
|
52
|
+
evidence: { type: "array", items: { type: "string" } },
|
|
53
|
+
source: { type: "string" },
|
|
54
|
+
confidence: { type: "number" },
|
|
55
|
+
},
|
|
56
|
+
required: ["type", "title", "description"],
|
|
57
|
+
},
|
|
58
|
+
description: "List of proposals to govern",
|
|
59
|
+
},
|
|
60
|
+
context: {
|
|
61
|
+
type: "object",
|
|
62
|
+
description: "Optional context about the proposals (project, phase, etc.)",
|
|
63
|
+
},
|
|
64
|
+
options: {
|
|
65
|
+
type: "object",
|
|
66
|
+
properties: {
|
|
67
|
+
require_external: {
|
|
68
|
+
type: "boolean",
|
|
69
|
+
default: true,
|
|
70
|
+
description: "Whether external Dynamo/Solar governance is required (default: true)",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
required: ["proposals"],
|
|
76
|
+
},
|
|
35
77
|
},
|
|
36
|
-
|
|
78
|
+
{
|
|
79
|
+
name: "govern_reflection",
|
|
80
|
+
description: "Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
|
|
81
|
+
"This is the primary way to govern outcomes from reflection-based workflows.",
|
|
82
|
+
inputSchema: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
reflectionPath: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Path to a reflection .md file (alternative to reflectionContent)",
|
|
88
|
+
},
|
|
89
|
+
reflectionContent: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "Raw reflection content (alternative to reflectionPath)",
|
|
92
|
+
},
|
|
93
|
+
context: { type: "object" },
|
|
94
|
+
},
|
|
95
|
+
required: [],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "get_active_codex",
|
|
100
|
+
description: "Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
|
|
101
|
+
"including version, term count, source path, and governance status. " +
|
|
102
|
+
"Optionally include the full raw codex data with includeRaw=true.",
|
|
103
|
+
inputSchema: {
|
|
104
|
+
type: "object",
|
|
105
|
+
properties: {
|
|
106
|
+
includeRaw: {
|
|
107
|
+
type: "boolean",
|
|
108
|
+
description: "Whether to include the full raw codex data in the response",
|
|
109
|
+
default: false,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
required: [],
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
this.handlers = {
|
|
117
|
+
"govern_proposals": async (args) => this.handleGovernProposals(this.validateGovernProposalsArgs(args)),
|
|
118
|
+
"govern_reflection": async (args) => this.handleGovernReflection(this.validateGovernReflectionArgs(args)),
|
|
119
|
+
"get_active_codex": async (args) => this.handleGetActiveCodex(args),
|
|
120
|
+
};
|
|
37
121
|
this.setupToolHandlers();
|
|
38
122
|
}
|
|
39
123
|
validateGovernProposalsArgs(value) {
|
|
@@ -68,97 +152,7 @@ class GovernanceServer {
|
|
|
68
152
|
return value;
|
|
69
153
|
}
|
|
70
154
|
setupToolHandlers() {
|
|
71
|
-
this.
|
|
72
|
-
return {
|
|
73
|
-
tools: [
|
|
74
|
-
{
|
|
75
|
-
name: "govern_proposals",
|
|
76
|
-
description: "Run one or more proposals through the full 0xRay governance system. " +
|
|
77
|
-
"Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
|
|
78
|
-
"Returns merged structured decisions. " +
|
|
79
|
-
"Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
|
|
80
|
-
"and other compliance-related governance scenarios.",
|
|
81
|
-
inputSchema: {
|
|
82
|
-
type: "object",
|
|
83
|
-
properties: {
|
|
84
|
-
proposals: {
|
|
85
|
-
type: "array",
|
|
86
|
-
items: {
|
|
87
|
-
type: "object",
|
|
88
|
-
properties: {
|
|
89
|
-
id: { type: "string" },
|
|
90
|
-
type: {
|
|
91
|
-
type: "string",
|
|
92
|
-
enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
|
|
93
|
-
},
|
|
94
|
-
title: { type: "string" },
|
|
95
|
-
description: { type: "string" },
|
|
96
|
-
evidence: { type: "array", items: { type: "string" } },
|
|
97
|
-
source: { type: "string" },
|
|
98
|
-
confidence: { type: "number" },
|
|
99
|
-
},
|
|
100
|
-
required: ["type", "title", "description"],
|
|
101
|
-
},
|
|
102
|
-
description: "List of proposals to govern",
|
|
103
|
-
},
|
|
104
|
-
context: {
|
|
105
|
-
type: "object",
|
|
106
|
-
description: "Optional context about the proposals (project, phase, etc.)",
|
|
107
|
-
},
|
|
108
|
-
options: {
|
|
109
|
-
type: "object",
|
|
110
|
-
properties: {
|
|
111
|
-
require_external: {
|
|
112
|
-
type: "boolean",
|
|
113
|
-
default: true,
|
|
114
|
-
description: "Whether external Dynamo/Solar governance is required (default: true)",
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
required: ["proposals"],
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "govern_reflection",
|
|
124
|
-
description: "Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
|
|
125
|
-
"This is the primary way to govern outcomes from reflection-based workflows.",
|
|
126
|
-
inputSchema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
reflectionPath: {
|
|
130
|
-
type: "string",
|
|
131
|
-
description: "Path to a reflection .md file (alternative to reflectionContent)",
|
|
132
|
-
},
|
|
133
|
-
reflectionContent: {
|
|
134
|
-
type: "string",
|
|
135
|
-
description: "Raw reflection content (alternative to reflectionPath)",
|
|
136
|
-
},
|
|
137
|
-
context: { type: "object" },
|
|
138
|
-
},
|
|
139
|
-
required: [],
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
name: "get_active_codex",
|
|
144
|
-
description: "Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
|
|
145
|
-
"including version, term count, source path, and governance status. " +
|
|
146
|
-
"Optionally include the full raw codex data with includeRaw=true.",
|
|
147
|
-
inputSchema: {
|
|
148
|
-
type: "object",
|
|
149
|
-
properties: {
|
|
150
|
-
includeRaw: {
|
|
151
|
-
type: "boolean",
|
|
152
|
-
description: "Whether to include the full raw codex data in the response",
|
|
153
|
-
default: false,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
required: [],
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
],
|
|
160
|
-
};
|
|
161
|
-
});
|
|
155
|
+
this.setupListToolsHandler();
|
|
162
156
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
163
157
|
const { name, arguments: args } = request.params;
|
|
164
158
|
try {
|
|
@@ -338,53 +332,7 @@ class GovernanceServer {
|
|
|
338
332
|
}
|
|
339
333
|
async run() {
|
|
340
334
|
await this.initializeGovernance();
|
|
341
|
-
|
|
342
|
-
await this.server.connect(transport);
|
|
343
|
-
let parentCheckTimer = null;
|
|
344
|
-
const cleanup = async (signal) => {
|
|
345
|
-
if (parentCheckTimer !== null) {
|
|
346
|
-
clearTimeout(parentCheckTimer);
|
|
347
|
-
parentCheckTimer = null;
|
|
348
|
-
}
|
|
349
|
-
const timeout = setTimeout(() => {
|
|
350
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
|
|
351
|
-
process.exit(1);
|
|
352
|
-
}, 5000);
|
|
353
|
-
try {
|
|
354
|
-
if (this.server && typeof this.server.close === "function") {
|
|
355
|
-
await this.server.close();
|
|
356
|
-
}
|
|
357
|
-
clearTimeout(timeout);
|
|
358
|
-
process.exit(0);
|
|
359
|
-
}
|
|
360
|
-
catch (error) {
|
|
361
|
-
clearTimeout(timeout);
|
|
362
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
|
|
363
|
-
process.exit(1);
|
|
364
|
-
}
|
|
365
|
-
};
|
|
366
|
-
process.on("SIGINT", () => cleanup("SIGINT"));
|
|
367
|
-
process.on("SIGTERM", () => cleanup("SIGTERM"));
|
|
368
|
-
process.on("SIGHUP", () => cleanup("SIGHUP"));
|
|
369
|
-
const checkParent = () => {
|
|
370
|
-
try {
|
|
371
|
-
process.kill(process.ppid, 0);
|
|
372
|
-
parentCheckTimer = setTimeout(checkParent, 1000);
|
|
373
|
-
}
|
|
374
|
-
catch (error) {
|
|
375
|
-
parentCheckTimer = null;
|
|
376
|
-
cleanup("parent-process-death");
|
|
377
|
-
}
|
|
378
|
-
};
|
|
379
|
-
parentCheckTimer = setTimeout(checkParent, 2000);
|
|
380
|
-
process.on("uncaughtException", (error) => {
|
|
381
|
-
frameworkLogger.log("mcps/governance", "uncaughtException", "error", { message: `Uncaught Exception: ${String(error)}` });
|
|
382
|
-
cleanup("uncaughtException");
|
|
383
|
-
});
|
|
384
|
-
process.on("unhandledRejection", (reason) => {
|
|
385
|
-
frameworkLogger.log("mcps/governance", "unhandledRejection", "error", { message: `Unhandled Rejection: ${String(reason)}` });
|
|
386
|
-
cleanup("unhandledRejection");
|
|
387
|
-
});
|
|
335
|
+
await super.run();
|
|
388
336
|
}
|
|
389
337
|
async connect(transport) {
|
|
390
338
|
await this.server.connect(transport);
|
|
@@ -4,68 +4,45 @@
|
|
|
4
4
|
* Knowledge skill for API design patterns, RESTful conventions,
|
|
5
5
|
* GraphQL schema design, and API documentation standards
|
|
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
|
-
|
|
12
|
-
class XrayApiDesignServer {
|
|
13
|
-
server;
|
|
9
|
+
class XrayApiDesignServer extends XrayKnowledgeSkillBase {
|
|
14
10
|
constructor() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
super("api-design", "3.1.0");
|
|
12
|
+
this.tools = [
|
|
13
|
+
{
|
|
14
|
+
name: "design-api-endpoints",
|
|
15
|
+
description: "Design RESTful API endpoints with proper resource modeling",
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
resource: { type: "string" },
|
|
20
|
+
operations: { type: "array", items: { type: "string" } },
|
|
21
|
+
relationships: { type: "array", items: { type: "string" } },
|
|
22
|
+
},
|
|
23
|
+
required: ["resource"],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "validate-api-design",
|
|
28
|
+
description: "Validate API design against RESTful principles and best practices",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
endpoints: { type: "array", items: { type: "string" } },
|
|
33
|
+
standards: { type: "array", items: { type: "string" } },
|
|
34
|
+
},
|
|
35
|
+
required: ["endpoints"],
|
|
36
|
+
},
|
|
20
37
|
},
|
|
21
|
-
|
|
38
|
+
];
|
|
39
|
+
this.handlers = {
|
|
40
|
+
"design-api-endpoints": async (args) => this.designApiEndpoints(args),
|
|
41
|
+
"validate-api-design": async (args) => this.validateApiDesign(args),
|
|
42
|
+
};
|
|
22
43
|
this.setupToolHandlers();
|
|
23
44
|
// Server initialization - removed unnecessary startup logging
|
|
24
45
|
}
|
|
25
|
-
setupToolHandlers() {
|
|
26
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
27
|
-
return {
|
|
28
|
-
tools: [
|
|
29
|
-
{
|
|
30
|
-
name: "design-api-endpoints",
|
|
31
|
-
description: "Design RESTful API endpoints with proper resource modeling",
|
|
32
|
-
inputSchema: {
|
|
33
|
-
type: "object",
|
|
34
|
-
properties: {
|
|
35
|
-
resource: { type: "string" },
|
|
36
|
-
operations: { type: "array", items: { type: "string" } },
|
|
37
|
-
relationships: { type: "array", items: { type: "string" } },
|
|
38
|
-
},
|
|
39
|
-
required: ["resource"],
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "validate-api-design",
|
|
44
|
-
description: "Validate API design against RESTful principles and best practices",
|
|
45
|
-
inputSchema: {
|
|
46
|
-
type: "object",
|
|
47
|
-
properties: {
|
|
48
|
-
endpoints: { type: "array", items: { type: "string" } },
|
|
49
|
-
standards: { type: "array", items: { type: "string" } },
|
|
50
|
-
},
|
|
51
|
-
required: ["endpoints"],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
58
|
-
const { name, arguments: args } = request.params;
|
|
59
|
-
switch (name) {
|
|
60
|
-
case "design-api-endpoints":
|
|
61
|
-
return await this.designApiEndpoints(args);
|
|
62
|
-
case "validate-api-design":
|
|
63
|
-
return await this.validateApiDesign(args);
|
|
64
|
-
default:
|
|
65
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
46
|
async designApiEndpoints(args) {
|
|
70
47
|
const { resource, operations, relationships } = args;
|
|
71
48
|
const design = {
|
|
@@ -107,15 +84,6 @@ class XrayApiDesignServer {
|
|
|
107
84
|
],
|
|
108
85
|
};
|
|
109
86
|
}
|
|
110
|
-
async run() {
|
|
111
|
-
const transport = new StdioServerTransport();
|
|
112
|
-
await this.server.connect(transport);
|
|
113
|
-
// Use centralized shutdown handler
|
|
114
|
-
createGracefulShutdown({
|
|
115
|
-
serverName: "api-design.server",
|
|
116
|
-
server: this.server,
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
87
|
}
|
|
120
88
|
if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
|
|
121
89
|
const server = new XrayApiDesignServer();
|
|
@@ -4,68 +4,45 @@
|
|
|
4
4
|
* Knowledge skill for architectural pattern recognition,
|
|
5
5
|
* design pattern recommendations, and system architecture guidance
|
|
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
|
-
|
|
12
|
-
class XrayArchitecturePatternsServer {
|
|
13
|
-
server;
|
|
9
|
+
class XrayArchitecturePatternsServer extends XrayKnowledgeSkillBase {
|
|
14
10
|
constructor() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
super("architecture-patterns", "3.1.0");
|
|
12
|
+
this.tools = [
|
|
13
|
+
{
|
|
14
|
+
name: "analyze-architecture",
|
|
15
|
+
description: "Analyze current system architecture and identify patterns",
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
projectRoot: { type: "string" },
|
|
20
|
+
focusPatterns: { type: "array", items: { type: "string" } },
|
|
21
|
+
},
|
|
22
|
+
required: ["projectRoot"],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "recommend-patterns",
|
|
27
|
+
description: "Recommend architectural patterns for specific use cases",
|
|
28
|
+
inputSchema: {
|
|
29
|
+
type: "object",
|
|
30
|
+
properties: {
|
|
31
|
+
useCase: { type: "string" },
|
|
32
|
+
constraints: { type: "array", items: { type: "string" } },
|
|
33
|
+
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
34
|
+
},
|
|
35
|
+
required: ["useCase"],
|
|
36
|
+
},
|
|
20
37
|
},
|
|
21
|
-
|
|
38
|
+
];
|
|
39
|
+
this.handlers = {
|
|
40
|
+
"analyze-architecture": async (args) => this.analyzeArchitecture(args),
|
|
41
|
+
"recommend-patterns": async (args) => this.recommendPatterns(args),
|
|
42
|
+
};
|
|
22
43
|
this.setupToolHandlers();
|
|
23
44
|
// Server initialization - removed unnecessary startup logging
|
|
24
45
|
}
|
|
25
|
-
setupToolHandlers() {
|
|
26
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
27
|
-
return {
|
|
28
|
-
tools: [
|
|
29
|
-
{
|
|
30
|
-
name: "analyze-architecture",
|
|
31
|
-
description: "Analyze current system architecture and identify patterns",
|
|
32
|
-
inputSchema: {
|
|
33
|
-
type: "object",
|
|
34
|
-
properties: {
|
|
35
|
-
projectRoot: { type: "string" },
|
|
36
|
-
focusPatterns: { type: "array", items: { type: "string" } },
|
|
37
|
-
},
|
|
38
|
-
required: ["projectRoot"],
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "recommend-patterns",
|
|
43
|
-
description: "Recommend architectural patterns for specific use cases",
|
|
44
|
-
inputSchema: {
|
|
45
|
-
type: "object",
|
|
46
|
-
properties: {
|
|
47
|
-
useCase: { type: "string" },
|
|
48
|
-
constraints: { type: "array", items: { type: "string" } },
|
|
49
|
-
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
50
|
-
},
|
|
51
|
-
required: ["useCase"],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
58
|
-
const { name, arguments: args } = request.params;
|
|
59
|
-
switch (name) {
|
|
60
|
-
case "analyze-architecture":
|
|
61
|
-
return await this.analyzeArchitecture(args);
|
|
62
|
-
case "recommend-patterns":
|
|
63
|
-
return await this.recommendPatterns(args);
|
|
64
|
-
default:
|
|
65
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
46
|
async analyzeArchitecture(args) {
|
|
70
47
|
const { projectRoot, focusPatterns } = args;
|
|
71
48
|
// Simplified architecture analysis
|
|
@@ -97,15 +74,6 @@ class XrayArchitecturePatternsServer {
|
|
|
97
74
|
],
|
|
98
75
|
};
|
|
99
76
|
}
|
|
100
|
-
async run() {
|
|
101
|
-
const transport = new StdioServerTransport();
|
|
102
|
-
await this.server.connect(transport);
|
|
103
|
-
// Use centralized shutdown handler
|
|
104
|
-
createGracefulShutdown({
|
|
105
|
-
serverName: "architecture-patterns.server",
|
|
106
|
-
server: this.server,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
77
|
}
|
|
110
78
|
if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
|
|
111
79
|
const server = new XrayArchitecturePatternsServer();
|