0xray 3.1.0 → 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/.gitignore.default +59 -0
- package/.mcp.json +35 -0
- 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/dependency-audit.md +3 -3
- 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 +6 -6
- package/.opencode/enforcer-config.json +2 -2
- package/.opencode/hooks/post-commit +1 -1
- package/.opencode/init.sh +6 -0
- package/.plugin/plugin.json +11 -0
- package/AGENTS-consumer.md +46 -0
- package/AGENTS.md +2 -12
- package/LICENSE +1 -1
- package/README.md +6 -6
- package/SKILLS.md +140 -0
- package/dist/.gitignore.default +59 -0
- package/dist/AGENTS.md +2 -12
- package/dist/CHANGELOG.md +54 -0
- package/dist/LICENSE +1 -1
- package/dist/README.md +6 -6
- package/dist/SKILLS.md +140 -0
- package/dist/agents/index.js +3 -1
- package/dist/agents/registry.js +13 -0
- 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 +1 -2
- package/dist/analytics/simple-pattern-analyzer.js +0 -1
- package/dist/architect/architectural-integrity.js +3 -3
- package/dist/benchmark/performance-benchmark.js +1 -2
- package/dist/cli/commands/antigravity-status.js +23 -23
- package/dist/cli/commands/archive-logs.js +0 -1
- package/dist/cli/commands/credible-init.js +1 -1
- package/dist/cli/commands/hermes-install.js +8 -0
- package/dist/cli/commands/mcp-install.js +1 -1
- package/dist/cli/commands/openclaw-install.js +9 -0
- package/dist/cli/commands/opencode-install.js +35 -0
- package/dist/cli/commands/plugin-commands.js +0 -1
- package/dist/cli/commands/skill-install.js +39 -2
- package/dist/cli/commands/status.js +16 -13
- package/dist/cli/commands/storyteller.js +1 -1
- package/dist/cli/index.js +14 -13
- package/dist/core/activity-logger.js +4 -5
- package/dist/core/adaptive-kernel.js +0 -1
- package/dist/core/agent-spawn-gate.js +1 -1
- package/dist/core/boot-orchestrator.js +14 -25
- package/dist/core/bridge.mjs +4 -5
- package/dist/core/codex-formatter.js +1 -3
- package/dist/core/codex-injector.js +3 -4
- package/dist/core/config-loader.js +36 -29
- package/dist/core/config-paths.js +30 -23
- package/dist/core/context-loader.js +0 -4
- package/dist/core/context-validator.js +0 -1
- package/dist/core/features-config.js +38 -2
- package/dist/core/index.js +2 -2
- package/dist/core/kernel-patterns.js +0 -1
- package/dist/core/logging-config.js +7 -7
- package/dist/core/model-router.js +23 -64
- package/dist/core/orchestrator.js +1 -1
- package/dist/core/system-prompt-generator.js +0 -1
- package/dist/core/xray-activation.js +3 -4
- package/dist/delegation/agent-delegator.js +2 -3
- 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/enforcer-tools.js +2 -2
- 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 +2 -3
- 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/execution/opencode-cli-invoker.js +1 -1
- package/dist/governance/codex-policy.service.js +0 -1
- package/dist/governance/governance-service.js +1 -1
- package/dist/governance/llm-governance-provider.js +14 -1
- package/dist/index.js +3 -5
- package/dist/inference/inference-agent-invoker.js +67 -0
- package/dist/inference/inference-applier.js +178 -0
- package/dist/inference/inference-cycle.js +52 -828
- 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/README.md +1 -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 +5 -5
- 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/grok/grok-cli.js +20 -6
- package/dist/integrations/grok/hooks/pre-tool-use.js +3 -3
- package/dist/integrations/grok/plugin/0xray/.mcp.json +16 -4
- package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/dist/integrations/hermes-agent/__init__.py +29 -14
- package/dist/integrations/hermes-agent/bridge.mjs +76 -4
- package/dist/integrations/hermes-agent/schemas.py +49 -0
- package/dist/integrations/hermes-agent/test_plugin.py +7 -7
- package/dist/integrations/hermes-agent/tools.py +107 -3
- package/dist/integrations/openclaw/README.md +6 -6
- package/dist/integrations/openclaw/api-server.js +0 -1
- package/dist/integrations/openclaw/client.js +0 -1
- package/dist/integrations/openclaw/config.js +1 -2
- package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -1
- package/dist/integrations/openclaw/index.js +2 -3
- package/dist/integrations/openclaw/types.js +3 -4
- package/dist/integrations/plugins/index.js +0 -1
- package/dist/integrations/plugins/plugin-integration.js +1 -2
- package/dist/integrations/plugins/plugin-registry.js +1 -2
- package/dist/mcps/agent-resolver.js +0 -1
- package/dist/mcps/architect-tools.server.js +121 -186
- package/dist/mcps/auto-format.server.js +57 -75
- package/dist/mcps/boot-orchestrator.server.js +68 -86
- package/dist/mcps/config/config-loader.js +46 -9
- package/dist/mcps/config/plugin-server-registry.js +0 -1
- package/dist/mcps/enforcer-tools.server.js +208 -274
- package/dist/mcps/estimation.server.js +65 -108
- package/dist/mcps/framework-compliance-audit.server.js +53 -82
- package/dist/mcps/framework-help.server.js +73 -90
- package/dist/mcps/governance.server.js +104 -152
- package/dist/mcps/knowledge-skills/api-design.server.js +35 -66
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -66
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +125 -165
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +211 -238
- package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
- package/dist/mcps/knowledge-skills/content-creator.server.js +205 -227
- package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +125 -158
- package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -325
- package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -161
- package/dist/mcps/knowledge-skills/mobile-development.server.js +172 -202
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +124 -160
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +89 -139
- package/dist/mcps/knowledge-skills/project-analysis.server.js +132 -219
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +117 -151
- package/dist/mcps/knowledge-skills/security-audit.server.js +17 -144
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +22 -214
- package/dist/mcps/knowledge-skills/session-management.server.js +15 -91
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +83 -359
- package/dist/mcps/knowledge-skills/strategist.server.js +12 -57
- package/dist/mcps/knowledge-skills/tech-writer.server.js +18 -193
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +20 -192
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +19 -157
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +24 -297
- package/dist/mcps/lint.server.js +51 -92
- package/dist/mcps/model-health-check.server.js +34 -61
- 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 +65 -9
- package/dist/mcps/orchestrator.server.js +2 -1
- package/dist/mcps/performance-analysis.server.js +57 -88
- package/dist/mcps/processor-pipeline.server.js +70 -100
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.js +81 -154
- package/dist/mcps/security-scan.server.js +57 -71
- package/dist/mcps/shared/knowledge-skill-base.js +11 -4
- package/dist/mcps/state-manager.server.js +127 -155
- package/dist/metrics/agent-metrics.js +1 -1
- 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/enhanced-multi-agent-orchestrator.js +2 -2
- package/dist/orchestrator/intelligent-commit-batcher.js +2 -11
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
- package/dist/orchestrator/orchestrator.js +8 -19
- package/dist/orchestrator/self-direction-activation.js +0 -1
- package/dist/orchestrator/universal-registry-bridge.js +1 -2
- 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 +39 -558
- package/dist/postprocessor/PostProcessor.js +7 -13
- 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 +2 -3
- package/dist/postprocessor/triggers/APITrigger.js +0 -1
- package/dist/postprocessor/triggers/GitHookTrigger.js +4 -4
- 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 -10
- 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 -13
- 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 -29
- 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/public/about.html +6 -6
- package/dist/public/enterprise.html +1 -1
- package/dist/public/features.html +2 -2
- package/dist/public/index.html +4 -4
- package/dist/reporting/report-formatter.js +1 -1
- package/dist/scripts/activate-kernel-pipeline.js +2 -2
- package/dist/scripts/integration.js +0 -1
- package/dist/scripts/pre-command +1 -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 +1 -2
- 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/api-design/SKILL.md +1 -1
- package/dist/skills/architect-tools/SKILL.md +1 -1
- package/dist/skills/architecture-patterns/SKILL.md +1 -1
- package/dist/skills/auto-format/SKILL.md +1 -1
- package/dist/skills/boot-orchestrator/SKILL.md +1 -1
- package/dist/skills/bug-triage/SKILL.md +1 -1
- package/dist/skills/code-analyzer/SKILL.md +1 -1
- package/dist/skills/code-review/SKILL.md +1 -1
- package/dist/skills/enforcer/SKILL.md +1 -1
- package/dist/skills/framework-compliance-audit/SKILL.md +1 -1
- package/dist/skills/git-workflow/SKILL.md +1 -1
- package/dist/skills/hermes-agent/SKILL.md +2 -2
- package/dist/skills/inference-improve/SKILL.md +1 -1
- package/dist/skills/lint/SKILL.md +1 -1
- package/dist/skills/log-monitor/SKILL.md +1 -1
- package/dist/skills/model-health-check/SKILL.md +1 -1
- package/dist/skills/multimodal-looker/SKILL.md +1 -1
- package/dist/skills/orchestrator/SKILL.md +1 -1
- package/dist/skills/performance-analysis/SKILL.md +1 -1
- package/dist/skills/performance-optimization/SKILL.md +1 -1
- package/dist/skills/processor-pipeline/SKILL.md +1 -1
- package/dist/skills/project-analysis/SKILL.md +1 -1
- package/dist/skills/refactoring-strategies/SKILL.md +1 -1
- package/dist/skills/registry.json +1 -1
- package/dist/skills/researcher/SKILL.md +1 -1
- package/dist/skills/security-audit/SKILL.md +1 -1
- package/dist/skills/security-scan/SKILL.md +1 -1
- package/dist/skills/session-management/SKILL.md +1 -1
- package/dist/skills/state-manager/SKILL.md +1 -1
- package/dist/skills/storyteller/SKILL.md +1 -1
- package/dist/skills/testing-best-practices/SKILL.md +1 -1
- package/dist/skills/testing-strategy/SKILL.md +1 -1
- package/dist/skills/ui-ux-design/SKILL.md +1 -1
- package/dist/skills/xray-orchestrator/index.js +0 -1
- package/dist/state/index.js +0 -1
- package/dist/state/state-manager.js +1 -2
- package/dist/utils/codex-parser.js +0 -1
- package/dist/utils/import-resolver.js +1 -1
- package/dist/utils/language-detector.js +0 -1
- package/dist/utils/path-resolver.js +2 -2
- 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 +10 -3
- package/scripts/hooks/pre-command +1 -1
- package/scripts/hooks/run-hook.js +2 -2
- package/scripts/node/auto-reflection-generator.mjs +30 -36
- package/scripts/node/govern-reflection.mjs +1 -1
- package/scripts/node/postinstall.cjs +37 -2
- package/scripts/node/release.mjs +2 -2
- package/scripts/node/setup-xai-oauth.mjs +244 -0
- package/scripts/node/setup.cjs +28 -0
- package/scripts/node/universal-version-manager.js +8 -8
- package/scripts/node/version-manager.mjs +1 -1
- package/src/integrations/grok/plugin/0xray/.mcp.json +16 -4
- package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/src/mcps/agent-resolver.ts +0 -1
- package/src/mcps/architect-tools.server.ts +130 -212
- package/src/mcps/auto-format.server.ts +75 -104
- package/src/mcps/boot-orchestrator.server.ts +72 -97
- package/src/mcps/config/__tests__/config-loader.test.ts +33 -37
- package/src/mcps/config/config-loader.ts +57 -11
- package/src/mcps/config/plugin-server-registry.ts +0 -1
- package/src/mcps/enforcer-tools.server.ts +218 -295
- package/src/mcps/estimation.server.ts +64 -123
- package/src/mcps/framework-compliance-audit.server.ts +54 -96
- package/src/mcps/framework-help.server.ts +76 -97
- package/src/mcps/governance.server.ts +104 -164
- package/src/mcps/knowledge-skills/api-design.server.ts +35 -73
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +34 -73
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +149 -194
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +223 -255
- package/src/mcps/knowledge-skills/code-review.server.ts +116 -158
- package/src/mcps/knowledge-skills/content-creator.server.ts +221 -248
- package/src/mcps/knowledge-skills/database-design.server.ts +120 -161
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +128 -168
- package/src/mcps/knowledge-skills/git-workflow.server.ts +34 -78
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -362
- package/src/mcps/knowledge-skills/log-monitor.server.ts +70 -97
- package/src/mcps/knowledge-skills/mobile-development.server.ts +18 -58
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +15 -61
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +14 -75
- package/src/mcps/knowledge-skills/project-analysis.server.ts +14 -121
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +15 -61
- package/src/mcps/knowledge-skills/security-audit.server.ts +20 -158
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +25 -228
- package/src/mcps/knowledge-skills/session-management.server.ts +19 -107
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +89 -380
- package/src/mcps/knowledge-skills/strategist.server.ts +15 -65
- package/src/mcps/knowledge-skills/tech-writer.server.ts +21 -206
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +23 -205
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +22 -166
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +27 -343
- package/src/mcps/lint.server.ts +53 -106
- package/src/mcps/model-health-check.server.ts +35 -71
- 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 +81 -25
- package/src/mcps/orchestrator/types.ts +37 -0
- package/src/mcps/orchestrator.server.ts +2 -1
- package/src/mcps/performance-analysis.server.ts +60 -103
- package/src/mcps/processor-pipeline.server.ts +72 -109
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +88 -176
- package/src/mcps/security-scan.server.ts +58 -77
- package/src/mcps/shared/knowledge-skill-base.ts +12 -4
- package/src/mcps/state-manager.server.ts +132 -172
- 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/dependency-audit.md +3 -3
- 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 +6 -6
- package/src/opencode/enforcer-config.json +2 -2
- package/src/skills/api-design/SKILL.md +1 -1
- package/src/skills/architect-tools/SKILL.md +1 -1
- package/src/skills/architecture-patterns/SKILL.md +1 -1
- package/src/skills/auto-format/SKILL.md +1 -1
- package/src/skills/boot-orchestrator/SKILL.md +1 -1
- package/src/skills/bug-triage/SKILL.md +1 -1
- package/src/skills/code-analyzer/SKILL.md +1 -1
- package/src/skills/code-review/SKILL.md +1 -1
- package/src/skills/enforcer/SKILL.md +1 -1
- package/src/skills/framework-compliance-audit/SKILL.md +1 -1
- package/src/skills/git-workflow/SKILL.md +1 -1
- package/src/skills/hermes-agent/SKILL.md +2 -2
- package/src/skills/inference-improve/SKILL.md +1 -1
- package/src/skills/lint/SKILL.md +1 -1
- package/src/skills/log-monitor/SKILL.md +1 -1
- package/src/skills/model-health-check/SKILL.md +1 -1
- package/src/skills/multimodal-looker/SKILL.md +1 -1
- package/src/skills/orchestrator/SKILL.md +1 -1
- package/src/skills/performance-analysis/SKILL.md +1 -1
- package/src/skills/performance-optimization/SKILL.md +1 -1
- package/src/skills/processor-pipeline/SKILL.md +1 -1
- package/src/skills/project-analysis/SKILL.md +1 -1
- package/src/skills/refactoring-strategies/SKILL.md +1 -1
- package/src/skills/registry.json +1 -1
- package/src/skills/researcher/SKILL.md +1 -1
- package/src/skills/security-audit/SKILL.md +1 -1
- package/src/skills/security-scan/SKILL.md +1 -1
- package/src/skills/session-management/SKILL.md +1 -1
- package/src/skills/state-manager/SKILL.md +1 -1
- package/src/skills/storyteller/SKILL.md +1 -1
- package/src/skills/testing-best-practices/SKILL.md +1 -1
- package/src/skills/testing-strategy/SKILL.md +1 -1
- package/src/skills/ui-ux-design/SKILL.md +1 -1
- package/src/skills/xray-orchestrator/index.ts +0 -1
- package/xray/agents_template.md +46 -0
- package/xray/codex.json +598 -0
- package/dist/nucleus/orchestrator.js +0 -479
|
@@ -11,30 +11,113 @@
|
|
|
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
|
-
import * as path from "path";
|
|
22
20
|
import { fileURLToPath } from "url";
|
|
23
21
|
import { randomUUID } from "crypto";
|
|
24
22
|
import { getGovernanceService } from "../governance/governance-service.js";
|
|
25
23
|
import { getCodexPolicyService } from "../governance/codex-policy.service.js";
|
|
26
24
|
import { initializeGovernanceIntegration } from "../integrations/governance/index.js";
|
|
27
25
|
import { featuresConfigLoader } from "../core/features-config.js";
|
|
28
|
-
class GovernanceServer {
|
|
29
|
-
server;
|
|
26
|
+
class GovernanceServer extends XrayKnowledgeSkillBase {
|
|
30
27
|
constructor() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
+
},
|
|
36
77
|
},
|
|
37
|
-
|
|
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
|
+
};
|
|
38
121
|
this.setupToolHandlers();
|
|
39
122
|
}
|
|
40
123
|
validateGovernProposalsArgs(value) {
|
|
@@ -69,97 +152,7 @@ class GovernanceServer {
|
|
|
69
152
|
return value;
|
|
70
153
|
}
|
|
71
154
|
setupToolHandlers() {
|
|
72
|
-
this.
|
|
73
|
-
return {
|
|
74
|
-
tools: [
|
|
75
|
-
{
|
|
76
|
-
name: "govern_proposals",
|
|
77
|
-
description: "Run one or more proposals through the full 0xRay governance system. " +
|
|
78
|
-
"Internal deliberation via 3 skill MCPs + required Dynamo Solar SSOT filter. " +
|
|
79
|
-
"Returns merged structured decisions. " +
|
|
80
|
-
"Supports regulatory compliance proposals: AML/KYC, PSD2, GDPR content moderation, " +
|
|
81
|
-
"and other compliance-related governance scenarios.",
|
|
82
|
-
inputSchema: {
|
|
83
|
-
type: "object",
|
|
84
|
-
properties: {
|
|
85
|
-
proposals: {
|
|
86
|
-
type: "array",
|
|
87
|
-
items: {
|
|
88
|
-
type: "object",
|
|
89
|
-
properties: {
|
|
90
|
-
id: { type: "string" },
|
|
91
|
-
type: {
|
|
92
|
-
type: "string",
|
|
93
|
-
enum: ["fix", "refactor", "guard", "automate", "codify", "strategic", "compliance"],
|
|
94
|
-
},
|
|
95
|
-
title: { type: "string" },
|
|
96
|
-
description: { type: "string" },
|
|
97
|
-
evidence: { type: "array", items: { type: "string" } },
|
|
98
|
-
source: { type: "string" },
|
|
99
|
-
confidence: { type: "number" },
|
|
100
|
-
},
|
|
101
|
-
required: ["type", "title", "description"],
|
|
102
|
-
},
|
|
103
|
-
description: "List of proposals to govern",
|
|
104
|
-
},
|
|
105
|
-
context: {
|
|
106
|
-
type: "object",
|
|
107
|
-
description: "Optional context about the proposals (project, phase, etc.)",
|
|
108
|
-
},
|
|
109
|
-
options: {
|
|
110
|
-
type: "object",
|
|
111
|
-
properties: {
|
|
112
|
-
require_external: {
|
|
113
|
-
type: "boolean",
|
|
114
|
-
default: true,
|
|
115
|
-
description: "Whether external Dynamo/Solar governance is required (default: true)",
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
required: ["proposals"],
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
name: "govern_reflection",
|
|
125
|
-
description: "Parse a reflection (or reflection file) and run its extracted proposals through the full governance system. " +
|
|
126
|
-
"This is the primary way to govern outcomes from reflection-based workflows.",
|
|
127
|
-
inputSchema: {
|
|
128
|
-
type: "object",
|
|
129
|
-
properties: {
|
|
130
|
-
reflectionPath: {
|
|
131
|
-
type: "string",
|
|
132
|
-
description: "Path to a reflection .md file (alternative to reflectionContent)",
|
|
133
|
-
},
|
|
134
|
-
reflectionContent: {
|
|
135
|
-
type: "string",
|
|
136
|
-
description: "Raw reflection content (alternative to reflectionPath)",
|
|
137
|
-
},
|
|
138
|
-
context: { type: "object" },
|
|
139
|
-
},
|
|
140
|
-
required: [],
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
name: "get_active_codex",
|
|
145
|
-
description: "Get the currently active Codex (SSOT) — returns metadata about the loaded codex terms, " +
|
|
146
|
-
"including version, term count, source path, and governance status. " +
|
|
147
|
-
"Optionally include the full raw codex data with includeRaw=true.",
|
|
148
|
-
inputSchema: {
|
|
149
|
-
type: "object",
|
|
150
|
-
properties: {
|
|
151
|
-
includeRaw: {
|
|
152
|
-
type: "boolean",
|
|
153
|
-
description: "Whether to include the full raw codex data in the response",
|
|
154
|
-
default: false,
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
required: [],
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
};
|
|
162
|
-
});
|
|
155
|
+
this.setupListToolsHandler();
|
|
163
156
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
164
157
|
const { name, arguments: args } = request.params;
|
|
165
158
|
try {
|
|
@@ -339,53 +332,7 @@ class GovernanceServer {
|
|
|
339
332
|
}
|
|
340
333
|
async run() {
|
|
341
334
|
await this.initializeGovernance();
|
|
342
|
-
|
|
343
|
-
await this.server.connect(transport);
|
|
344
|
-
let parentCheckTimer = null;
|
|
345
|
-
const cleanup = async (signal) => {
|
|
346
|
-
if (parentCheckTimer !== null) {
|
|
347
|
-
clearTimeout(parentCheckTimer);
|
|
348
|
-
parentCheckTimer = null;
|
|
349
|
-
}
|
|
350
|
-
const timeout = setTimeout(() => {
|
|
351
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: "Graceful shutdown timeout, forcing exit..." });
|
|
352
|
-
process.exit(1);
|
|
353
|
-
}, 5000);
|
|
354
|
-
try {
|
|
355
|
-
if (this.server && typeof this.server.close === "function") {
|
|
356
|
-
await this.server.close();
|
|
357
|
-
}
|
|
358
|
-
clearTimeout(timeout);
|
|
359
|
-
process.exit(0);
|
|
360
|
-
}
|
|
361
|
-
catch (error) {
|
|
362
|
-
clearTimeout(timeout);
|
|
363
|
-
frameworkLogger.log("mcps/governance", "shutdown", "error", { message: `Error during server shutdown: ${String(error)}` });
|
|
364
|
-
process.exit(1);
|
|
365
|
-
}
|
|
366
|
-
};
|
|
367
|
-
process.on("SIGINT", () => cleanup("SIGINT"));
|
|
368
|
-
process.on("SIGTERM", () => cleanup("SIGTERM"));
|
|
369
|
-
process.on("SIGHUP", () => cleanup("SIGHUP"));
|
|
370
|
-
const checkParent = () => {
|
|
371
|
-
try {
|
|
372
|
-
process.kill(process.ppid, 0);
|
|
373
|
-
parentCheckTimer = setTimeout(checkParent, 1000);
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
parentCheckTimer = null;
|
|
377
|
-
cleanup("parent-process-death");
|
|
378
|
-
}
|
|
379
|
-
};
|
|
380
|
-
parentCheckTimer = setTimeout(checkParent, 2000);
|
|
381
|
-
process.on("uncaughtException", (error) => {
|
|
382
|
-
frameworkLogger.log("mcps/governance", "uncaughtException", "error", { message: `Uncaught Exception: ${String(error)}` });
|
|
383
|
-
cleanup("uncaughtException");
|
|
384
|
-
});
|
|
385
|
-
process.on("unhandledRejection", (reason) => {
|
|
386
|
-
frameworkLogger.log("mcps/governance", "unhandledRejection", "error", { message: `Unhandled Rejection: ${String(reason)}` });
|
|
387
|
-
cleanup("unhandledRejection");
|
|
388
|
-
});
|
|
335
|
+
await super.run();
|
|
389
336
|
}
|
|
390
337
|
async connect(transport) {
|
|
391
338
|
await this.server.connect(transport);
|
|
@@ -395,7 +342,12 @@ class GovernanceServer {
|
|
|
395
342
|
*/
|
|
396
343
|
async runHttp(port = parseInt(process.env.MCP_PORT ?? "3100", 10)) {
|
|
397
344
|
await this.initializeGovernance();
|
|
398
|
-
const
|
|
345
|
+
const mcpHost = process.env.MCP_HOST || "127.0.0.1";
|
|
346
|
+
const allowedHosts = process.env.MCP_ALLOWED_HOSTS?.split(",");
|
|
347
|
+
const app = createMcpExpressApp({
|
|
348
|
+
host: mcpHost,
|
|
349
|
+
...(allowedHosts ? { allowedHosts } : {}),
|
|
350
|
+
});
|
|
399
351
|
const transport = new StreamableHTTPServerTransport({
|
|
400
352
|
sessionIdGenerator: () => randomUUID(),
|
|
401
353
|
});
|
|
@@ -441,7 +393,7 @@ class GovernanceServer {
|
|
|
441
393
|
}
|
|
442
394
|
}
|
|
443
395
|
// Start the server if this file is run directly
|
|
444
|
-
const entryPoint =
|
|
396
|
+
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
445
397
|
if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
|
|
446
398
|
// If --port or MCP_PORT is set, use HTTP transport (for Grok CLI compatibility)
|
|
447
399
|
const cliPort = process.argv.find((a) => a.startsWith("--port="))?.split("=")[1];
|
|
@@ -4,67 +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
|
|
9
|
-
|
|
10
|
-
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
11
|
-
class XrayApiDesignServer {
|
|
12
|
-
server;
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
8
|
+
import * as fs from "fs";
|
|
9
|
+
class XrayApiDesignServer extends XrayKnowledgeSkillBase {
|
|
13
10
|
constructor() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
+
},
|
|
19
37
|
},
|
|
20
|
-
|
|
38
|
+
];
|
|
39
|
+
this.handlers = {
|
|
40
|
+
"design-api-endpoints": async (args) => this.designApiEndpoints(args),
|
|
41
|
+
"validate-api-design": async (args) => this.validateApiDesign(args),
|
|
42
|
+
};
|
|
21
43
|
this.setupToolHandlers();
|
|
22
44
|
// Server initialization - removed unnecessary startup logging
|
|
23
45
|
}
|
|
24
|
-
setupToolHandlers() {
|
|
25
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
26
|
-
return {
|
|
27
|
-
tools: [
|
|
28
|
-
{
|
|
29
|
-
name: "design-api-endpoints",
|
|
30
|
-
description: "Design RESTful API endpoints with proper resource modeling",
|
|
31
|
-
inputSchema: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
resource: { type: "string" },
|
|
35
|
-
operations: { type: "array", items: { type: "string" } },
|
|
36
|
-
relationships: { type: "array", items: { type: "string" } },
|
|
37
|
-
},
|
|
38
|
-
required: ["resource"],
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "validate-api-design",
|
|
43
|
-
description: "Validate API design against RESTful principles and best practices",
|
|
44
|
-
inputSchema: {
|
|
45
|
-
type: "object",
|
|
46
|
-
properties: {
|
|
47
|
-
endpoints: { type: "array", items: { type: "string" } },
|
|
48
|
-
standards: { type: "array", items: { type: "string" } },
|
|
49
|
-
},
|
|
50
|
-
required: ["endpoints"],
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
57
|
-
const { name, arguments: args } = request.params;
|
|
58
|
-
switch (name) {
|
|
59
|
-
case "design-api-endpoints":
|
|
60
|
-
return await this.designApiEndpoints(args);
|
|
61
|
-
case "validate-api-design":
|
|
62
|
-
return await this.validateApiDesign(args);
|
|
63
|
-
default:
|
|
64
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
46
|
async designApiEndpoints(args) {
|
|
69
47
|
const { resource, operations, relationships } = args;
|
|
70
48
|
const design = {
|
|
@@ -106,17 +84,8 @@ class XrayApiDesignServer {
|
|
|
106
84
|
],
|
|
107
85
|
};
|
|
108
86
|
}
|
|
109
|
-
async run() {
|
|
110
|
-
const transport = new StdioServerTransport();
|
|
111
|
-
await this.server.connect(transport);
|
|
112
|
-
// Use centralized shutdown handler
|
|
113
|
-
createGracefulShutdown({
|
|
114
|
-
serverName: "api-design.server",
|
|
115
|
-
server: this.server,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
87
|
}
|
|
119
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
88
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
|
|
120
89
|
const server = new XrayApiDesignServer();
|
|
121
90
|
server.run().catch(() => { });
|
|
122
91
|
}
|
|
@@ -4,67 +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
|
|
9
|
-
|
|
10
|
-
import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
|
|
11
|
-
class XrayArchitecturePatternsServer {
|
|
12
|
-
server;
|
|
7
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
8
|
+
import * as fs from "fs";
|
|
9
|
+
class XrayArchitecturePatternsServer extends XrayKnowledgeSkillBase {
|
|
13
10
|
constructor() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
+
},
|
|
19
37
|
},
|
|
20
|
-
|
|
38
|
+
];
|
|
39
|
+
this.handlers = {
|
|
40
|
+
"analyze-architecture": async (args) => this.analyzeArchitecture(args),
|
|
41
|
+
"recommend-patterns": async (args) => this.recommendPatterns(args),
|
|
42
|
+
};
|
|
21
43
|
this.setupToolHandlers();
|
|
22
44
|
// Server initialization - removed unnecessary startup logging
|
|
23
45
|
}
|
|
24
|
-
setupToolHandlers() {
|
|
25
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
26
|
-
return {
|
|
27
|
-
tools: [
|
|
28
|
-
{
|
|
29
|
-
name: "analyze-architecture",
|
|
30
|
-
description: "Analyze current system architecture and identify patterns",
|
|
31
|
-
inputSchema: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
projectRoot: { type: "string" },
|
|
35
|
-
focusPatterns: { type: "array", items: { type: "string" } },
|
|
36
|
-
},
|
|
37
|
-
required: ["projectRoot"],
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "recommend-patterns",
|
|
42
|
-
description: "Recommend architectural patterns for specific use cases",
|
|
43
|
-
inputSchema: {
|
|
44
|
-
type: "object",
|
|
45
|
-
properties: {
|
|
46
|
-
useCase: { type: "string" },
|
|
47
|
-
constraints: { type: "array", items: { type: "string" } },
|
|
48
|
-
scale: { type: "string", enum: ["small", "medium", "large"] },
|
|
49
|
-
},
|
|
50
|
-
required: ["useCase"],
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
57
|
-
const { name, arguments: args } = request.params;
|
|
58
|
-
switch (name) {
|
|
59
|
-
case "analyze-architecture":
|
|
60
|
-
return await this.analyzeArchitecture(args);
|
|
61
|
-
case "recommend-patterns":
|
|
62
|
-
return await this.recommendPatterns(args);
|
|
63
|
-
default:
|
|
64
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
46
|
async analyzeArchitecture(args) {
|
|
69
47
|
const { projectRoot, focusPatterns } = args;
|
|
70
48
|
// Simplified architecture analysis
|
|
@@ -96,17 +74,8 @@ class XrayArchitecturePatternsServer {
|
|
|
96
74
|
],
|
|
97
75
|
};
|
|
98
76
|
}
|
|
99
|
-
async run() {
|
|
100
|
-
const transport = new StdioServerTransport();
|
|
101
|
-
await this.server.connect(transport);
|
|
102
|
-
// Use centralized shutdown handler
|
|
103
|
-
createGracefulShutdown({
|
|
104
|
-
serverName: "architecture-patterns.server",
|
|
105
|
-
server: this.server,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
77
|
}
|
|
109
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
78
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
|
|
110
79
|
const server = new XrayArchitecturePatternsServer();
|
|
111
80
|
server.run().catch(() => { });
|
|
112
81
|
}
|