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,6 +11,7 @@ import {
|
|
|
11
11
|
CallToolRequestSchema,
|
|
12
12
|
ListToolsRequestSchema,
|
|
13
13
|
} from '@modelcontextprotocol/sdk/types.js';
|
|
14
|
+
import * as fs from 'fs';
|
|
14
15
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
15
16
|
import { XrayStateManager } from '../../state/state-manager.js';
|
|
16
17
|
import { MultiAgentOrchestrationCoordinator } from '../../orchestrator/multi-agent-orchestration-coordinator.js';
|
|
@@ -19,6 +20,16 @@ import { TaskHandler } from './handlers/task-handler.js';
|
|
|
19
20
|
import { ComplexityHandler } from './handlers/complexity-handler.js';
|
|
20
21
|
import { StatusHandler } from './handlers/status-handler.js';
|
|
21
22
|
import type { OrchestrationTask, OrchestrationResult } from './types.js';
|
|
23
|
+
import {
|
|
24
|
+
spawnAside,
|
|
25
|
+
closeAside,
|
|
26
|
+
closeAllAsides,
|
|
27
|
+
addObservations,
|
|
28
|
+
getActiveAsideCount,
|
|
29
|
+
getActiveAsideIds,
|
|
30
|
+
getAsideState,
|
|
31
|
+
extractGovernanceObservations,
|
|
32
|
+
} from './aside-context.js';
|
|
22
33
|
|
|
23
34
|
/**
|
|
24
35
|
* Orchestrator MCP Server
|
|
@@ -233,33 +244,65 @@ export class OrchestratorServer {
|
|
|
233
244
|
const { name, arguments: args } = request.params;
|
|
234
245
|
|
|
235
246
|
switch (name) {
|
|
236
|
-
case 'orchestrate-task':
|
|
237
|
-
|
|
247
|
+
case 'orchestrate-task': {
|
|
248
|
+
const orchArgs = args as {
|
|
238
249
|
description: string;
|
|
239
250
|
tasks?: OrchestrationTask[];
|
|
240
251
|
sessionId?: string;
|
|
241
252
|
executionMode?: string;
|
|
242
253
|
timeout?: number;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
tasks:
|
|
254
|
+
};
|
|
255
|
+
const aside = await spawnAside({
|
|
256
|
+
description: `Orchestration: ${orchArgs.description}`,
|
|
257
|
+
...(orchArgs.sessionId ? { sessionId: orchArgs.sessionId } : {}),
|
|
258
|
+
inheritedContext: { taskCount: orchArgs.tasks?.length ?? 0, executionMode: orchArgs.executionMode ?? 'optimized' },
|
|
248
259
|
});
|
|
249
|
-
|
|
260
|
+
try {
|
|
261
|
+
const result = await this.taskHandler.handleOrchestrateTask(
|
|
262
|
+
orchArgs,
|
|
263
|
+
{ taskHistory: this.taskHistory, activeTasks: this.activeTasks, asideId: aside.asideId },
|
|
264
|
+
);
|
|
265
|
+
return result;
|
|
266
|
+
} finally {
|
|
267
|
+
closeAside(aside.asideId);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
case 'analyze-complexity': {
|
|
271
|
+
const complexityArgs = args as { tasks: OrchestrationTask[] };
|
|
272
|
+
const aside = await spawnAside({
|
|
273
|
+
description: `Complexity analysis: ${complexityArgs.tasks.length} tasks`,
|
|
274
|
+
});
|
|
275
|
+
try {
|
|
276
|
+
return await this.complexityHandler.handleAnalyzeComplexity(complexityArgs, aside.asideId);
|
|
277
|
+
} finally {
|
|
278
|
+
closeAside(aside.asideId);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
250
281
|
case 'get-orchestration-status':
|
|
251
282
|
return await this.statusHandler.handleGetOrchestrationStatus(args as {
|
|
252
283
|
sessionId?: string;
|
|
253
284
|
detailed?: boolean;
|
|
254
|
-
}, {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
285
|
+
}, {
|
|
286
|
+
taskHistory: this.taskHistory,
|
|
287
|
+
activeTasks: this.activeTasks,
|
|
288
|
+
asideCount: getActiveAsideCount(),
|
|
289
|
+
asideIds: getActiveAsideIds(),
|
|
290
|
+
});
|
|
291
|
+
case 'cancel-orchestration': {
|
|
292
|
+
const cancelArgs = args as { sessionId?: string; taskId?: string; force?: boolean };
|
|
293
|
+
if (cancelArgs.force || (!cancelArgs.sessionId && !cancelArgs.taskId)) {
|
|
294
|
+
closeAllAsides();
|
|
295
|
+
} else if (cancelArgs.sessionId) {
|
|
296
|
+
const asideIds = getActiveAsideIds().filter(
|
|
297
|
+
(id) => getAsideState(id)?.sessionId === cancelArgs.sessionId,
|
|
298
|
+
);
|
|
299
|
+
for (const id of asideIds) closeAside(id);
|
|
300
|
+
}
|
|
301
|
+
return await this.statusHandler.handleCancelOrchestration(cancelArgs, {
|
|
302
|
+
taskHistory: this.taskHistory,
|
|
303
|
+
activeTasks: this.activeTasks,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
263
306
|
case 'optimize-orchestration':
|
|
264
307
|
return await this.statusHandler.handleOptimizeOrchestration(args as {
|
|
265
308
|
history?: boolean;
|
|
@@ -310,26 +353,38 @@ export class OrchestratorServer {
|
|
|
310
353
|
skipApply: args.skipApply ?? false,
|
|
311
354
|
});
|
|
312
355
|
|
|
313
|
-
const
|
|
356
|
+
const aside = await spawnAside({
|
|
357
|
+
description: `Governance cycle: ${args.proposals.length} proposals`,
|
|
358
|
+
priorVerdictContext: { proposalCount: args.proposals.length },
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
let result: import('../../inference/inference-cycle.js').InferenceCycleResult;
|
|
362
|
+
try {
|
|
363
|
+
result = await cycle.governExternalProposals(args.proposals as any);
|
|
364
|
+
addObservations(aside.asideId, extractGovernanceObservations(result));
|
|
365
|
+
} finally {
|
|
366
|
+
closeAside(aside.asideId);
|
|
367
|
+
}
|
|
314
368
|
|
|
315
|
-
const approved = result
|
|
316
|
-
const rejected = result
|
|
369
|
+
const approved = result!.votes.filter((v) => v.decision === 'approve').length;
|
|
370
|
+
const rejected = result!.votes.length - approved;
|
|
317
371
|
|
|
318
372
|
return {
|
|
319
373
|
content: [{
|
|
320
374
|
type: 'text' as const,
|
|
321
375
|
text: JSON.stringify({
|
|
322
|
-
cycleId: result
|
|
376
|
+
cycleId: result!.cycleId,
|
|
377
|
+
asideId: aside.asideId,
|
|
323
378
|
approved,
|
|
324
379
|
rejected,
|
|
325
|
-
votes: result
|
|
326
|
-
proposals: result
|
|
380
|
+
votes: result!.votes,
|
|
381
|
+
proposals: result!.proposals.map((p) => ({
|
|
327
382
|
id: p.id,
|
|
328
383
|
title: p.title,
|
|
329
384
|
type: p.type,
|
|
330
385
|
status: p.status,
|
|
331
386
|
})),
|
|
332
|
-
duration: result
|
|
387
|
+
duration: result!.duration,
|
|
333
388
|
}, null, 2),
|
|
334
389
|
}],
|
|
335
390
|
};
|
|
@@ -359,6 +414,7 @@ export class OrchestratorServer {
|
|
|
359
414
|
* Stop the server
|
|
360
415
|
*/
|
|
361
416
|
async stop(): Promise<void> {
|
|
417
|
+
closeAllAsides();
|
|
362
418
|
await frameworkLogger.log('orchestrator.server', 'shutdown', 'info', {
|
|
363
419
|
message: '0xRay Orchestrator MCP Server shutting down',
|
|
364
420
|
});
|
|
@@ -377,7 +433,7 @@ export function createOrchestratorServer(): OrchestratorServer {
|
|
|
377
433
|
}
|
|
378
434
|
|
|
379
435
|
// Run if called directly
|
|
380
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
436
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|
|
381
437
|
const server = createOrchestratorServer();
|
|
382
438
|
server.start().catch((error) => {
|
|
383
439
|
frameworkLogger.log('orchestrator.server', 'fatal-error', 'error', {
|
|
@@ -52,6 +52,41 @@ export interface TaskValidation {
|
|
|
52
52
|
errors: string[];
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
export interface ActiveAside {
|
|
56
|
+
asideId: string;
|
|
57
|
+
description: string;
|
|
58
|
+
sessionId?: string;
|
|
59
|
+
parentAsideId?: string;
|
|
60
|
+
startedAt: number;
|
|
61
|
+
inheritedContext?: Record<string, unknown>;
|
|
62
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
63
|
+
observations: AsideObservation[];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface AsideObservation {
|
|
67
|
+
key: string;
|
|
68
|
+
value: string;
|
|
69
|
+
source: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface AsideContextOptions {
|
|
73
|
+
description: string;
|
|
74
|
+
inheritedContext?: Record<string, unknown>;
|
|
75
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
parentAsideId?: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface AsideResult {
|
|
81
|
+
asideId: string;
|
|
82
|
+
description: string;
|
|
83
|
+
success: boolean;
|
|
84
|
+
duration: number;
|
|
85
|
+
observations: AsideObservation[];
|
|
86
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
87
|
+
error?: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
55
90
|
export interface OrchestrationStatus {
|
|
56
91
|
activeSessions: number;
|
|
57
92
|
totalTasks: number;
|
|
@@ -62,6 +97,8 @@ export interface OrchestrationStatus {
|
|
|
62
97
|
tasks: number;
|
|
63
98
|
duration: number;
|
|
64
99
|
}>;
|
|
100
|
+
activeAsideCount?: number;
|
|
101
|
+
activeAsideIds?: string[];
|
|
65
102
|
}
|
|
66
103
|
|
|
67
104
|
export interface TaskExecutionContext {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @deprecated Use src/mcps/orchestrator/server.ts instead
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import * as fs from 'fs';
|
|
10
11
|
import { frameworkLogger } from '../core/framework-logger.js';
|
|
11
12
|
|
|
12
13
|
export { OrchestratorServer, createOrchestratorServer } from './orchestrator/server.js';
|
|
@@ -24,7 +25,7 @@ export type {
|
|
|
24
25
|
} from './orchestrator/types.js';
|
|
25
26
|
|
|
26
27
|
// Run if called directly
|
|
27
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
28
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|
|
28
29
|
const { createOrchestratorServer } = await import('./orchestrator/server.js');
|
|
29
30
|
const server = createOrchestratorServer();
|
|
30
31
|
server.start().catch((error) => {
|
|
@@ -4,17 +4,12 @@
|
|
|
4
4
|
* Comprehensive metrics analysis for framework integration and optimization
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
7
|
import { frameworkLogger, generateJobId } from "../core/framework-logger.js";
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import { execSync } from "child_process";
|
|
15
9
|
import fs from "fs";
|
|
16
10
|
import os from "os";
|
|
17
11
|
import path from "path";
|
|
12
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
18
13
|
|
|
19
14
|
interface AnalysisMetrics {
|
|
20
15
|
runtime?: RuntimeMetrics;
|
|
@@ -57,23 +52,73 @@ interface ResourceMetrics {
|
|
|
57
52
|
recommendations: string[];
|
|
58
53
|
}
|
|
59
54
|
|
|
60
|
-
class XrayPerformanceAnalysisServer {
|
|
61
|
-
private server: Server;
|
|
55
|
+
class XrayPerformanceAnalysisServer extends XrayKnowledgeSkillBase {
|
|
62
56
|
private startTime: number;
|
|
63
57
|
|
|
64
58
|
constructor() {
|
|
65
|
-
|
|
59
|
+
super("performance-analysis", "3.1.0");
|
|
60
|
+
|
|
61
|
+
this.startTime = Date.now();
|
|
62
|
+
|
|
63
|
+
this.tools = [
|
|
66
64
|
{
|
|
67
|
-
name: "performance-analysis",
|
|
65
|
+
name: "performance-analysis",
|
|
66
|
+
description:
|
|
67
|
+
"Comprehensive metrics analysis for framework integration and optimization",
|
|
68
|
+
inputSchema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
properties: {
|
|
71
|
+
scope: {
|
|
72
|
+
type: "string",
|
|
73
|
+
enum: [
|
|
74
|
+
"full",
|
|
75
|
+
"runtime",
|
|
76
|
+
"build",
|
|
77
|
+
"resources",
|
|
78
|
+
"bottlenecks",
|
|
79
|
+
],
|
|
80
|
+
default: "full",
|
|
81
|
+
description: "Scope of performance analysis",
|
|
82
|
+
},
|
|
83
|
+
duration: {
|
|
84
|
+
type: "number",
|
|
85
|
+
default: 30,
|
|
86
|
+
description: "Analysis duration in seconds",
|
|
87
|
+
},
|
|
88
|
+
detailed: {
|
|
89
|
+
type: "boolean",
|
|
90
|
+
default: false,
|
|
91
|
+
description: "Include detailed metrics and recommendations",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
68
95
|
},
|
|
69
96
|
{
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
name: "bottleneck-detection",
|
|
98
|
+
description:
|
|
99
|
+
"Identify performance bottlenecks in framework operations",
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: "object",
|
|
102
|
+
properties: {
|
|
103
|
+
operation: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: "Specific operation to analyze",
|
|
106
|
+
},
|
|
107
|
+
threshold: {
|
|
108
|
+
type: "number",
|
|
109
|
+
default: 1000,
|
|
110
|
+
description: "Performance threshold in milliseconds",
|
|
111
|
+
},
|
|
112
|
+
},
|
|
72
113
|
},
|
|
73
114
|
},
|
|
74
|
-
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
this.handlers = {
|
|
118
|
+
"performance-analysis": async (args) => this.handlePerformanceAnalysis(args as Record<string, unknown> | undefined),
|
|
119
|
+
"bottleneck-detection": async (args) => this.handleBottleneckDetection(args as Record<string, unknown> | undefined),
|
|
120
|
+
};
|
|
75
121
|
|
|
76
|
-
this.startTime = Date.now();
|
|
77
122
|
this.setupToolHandlers();
|
|
78
123
|
frameworkLogger.log(
|
|
79
124
|
"mcp-performance-analysis",
|
|
@@ -82,81 +127,6 @@ class XrayPerformanceAnalysisServer {
|
|
|
82
127
|
);
|
|
83
128
|
}
|
|
84
129
|
|
|
85
|
-
private setupToolHandlers() {
|
|
86
|
-
// List available tools
|
|
87
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
88
|
-
return {
|
|
89
|
-
tools: [
|
|
90
|
-
{
|
|
91
|
-
name: "performance-analysis",
|
|
92
|
-
description:
|
|
93
|
-
"Comprehensive metrics analysis for framework integration and optimization",
|
|
94
|
-
inputSchema: {
|
|
95
|
-
type: "object",
|
|
96
|
-
properties: {
|
|
97
|
-
scope: {
|
|
98
|
-
type: "string",
|
|
99
|
-
enum: [
|
|
100
|
-
"full",
|
|
101
|
-
"runtime",
|
|
102
|
-
"build",
|
|
103
|
-
"resources",
|
|
104
|
-
"bottlenecks",
|
|
105
|
-
],
|
|
106
|
-
default: "full",
|
|
107
|
-
description: "Scope of performance analysis",
|
|
108
|
-
},
|
|
109
|
-
duration: {
|
|
110
|
-
type: "number",
|
|
111
|
-
default: 30,
|
|
112
|
-
description: "Analysis duration in seconds",
|
|
113
|
-
},
|
|
114
|
-
detailed: {
|
|
115
|
-
type: "boolean",
|
|
116
|
-
default: false,
|
|
117
|
-
description: "Include detailed metrics and recommendations",
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "bottleneck-detection",
|
|
124
|
-
description:
|
|
125
|
-
"Identify performance bottlenecks in framework operations",
|
|
126
|
-
inputSchema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
operation: {
|
|
130
|
-
type: "string",
|
|
131
|
-
description: "Specific operation to analyze",
|
|
132
|
-
},
|
|
133
|
-
threshold: {
|
|
134
|
-
type: "number",
|
|
135
|
-
default: 1000,
|
|
136
|
-
description: "Performance threshold in milliseconds",
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
};
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Handle tool calls
|
|
146
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
147
|
-
const { name, arguments: args } = request.params;
|
|
148
|
-
|
|
149
|
-
switch (name) {
|
|
150
|
-
case "performance-analysis":
|
|
151
|
-
return await this.handlePerformanceAnalysis(args);
|
|
152
|
-
case "bottleneck-detection":
|
|
153
|
-
return await this.handleBottleneckDetection(args);
|
|
154
|
-
default:
|
|
155
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
130
|
private async handlePerformanceAnalysis(args: Record<string, unknown> | undefined) {
|
|
161
131
|
const scope = (args?.scope as string) || "full";
|
|
162
132
|
const duration = (args?.duration as number) || 30;
|
|
@@ -691,23 +661,10 @@ ${results.recommendations.map((r) => `• 💡 ${r}`).join("\n") || "No recommen
|
|
|
691
661
|
return report;
|
|
692
662
|
}
|
|
693
663
|
|
|
694
|
-
async run() {
|
|
695
|
-
const transport = new StdioServerTransport();
|
|
696
|
-
await this.server.connect(transport);
|
|
697
|
-
const jobId = generateJobId("mcp-performance-analysis-server");
|
|
698
|
-
await frameworkLogger.log(
|
|
699
|
-
"mcp-performance-analysis",
|
|
700
|
-
"server-started",
|
|
701
|
-
"success",
|
|
702
|
-
{},
|
|
703
|
-
undefined, // sessionId
|
|
704
|
-
jobId,
|
|
705
|
-
);
|
|
706
|
-
}
|
|
707
664
|
}
|
|
708
665
|
|
|
709
666
|
// Start the server if run directly
|
|
710
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
667
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|
|
711
668
|
const server = new XrayPerformanceAnalysisServer();
|
|
712
669
|
server.run().catch((error) => frameworkLogger.log("mcps/performance-analysis", "run", "error", { error: String(error) }));
|
|
713
670
|
}
|
|
@@ -4,15 +4,11 @@
|
|
|
4
4
|
* Advanced processor pipeline with codex validation, compliance monitoring, and framework enforcement
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
import {
|
|
10
|
-
CallToolRequestSchema,
|
|
11
|
-
ListToolsRequestSchema,
|
|
12
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
+
import * as fs from "fs";
|
|
13
8
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
14
9
|
import { CodexLoader } from "../enforcement/loaders/codex-loader.js";
|
|
15
10
|
import type { RuleDefinition, RuleValidationContext } from "../enforcement/types.js";
|
|
11
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
16
12
|
|
|
17
13
|
interface PreProcessorArgs {
|
|
18
14
|
content: string;
|
|
@@ -87,8 +83,7 @@ interface FrameworkComplianceResult {
|
|
|
87
83
|
approved: boolean;
|
|
88
84
|
}
|
|
89
85
|
|
|
90
|
-
class XrayProcessorPipelineServer {
|
|
91
|
-
private server: Server;
|
|
86
|
+
class XrayProcessorPipelineServer extends XrayKnowledgeSkillBase {
|
|
92
87
|
private codexLoader: CodexLoader;
|
|
93
88
|
private codexRules: RuleDefinition[] = [];
|
|
94
89
|
private codexTerms: string[] = [
|
|
@@ -104,17 +99,80 @@ class XrayProcessorPipelineServer {
|
|
|
104
99
|
];
|
|
105
100
|
|
|
106
101
|
constructor() {
|
|
102
|
+
super("processor-pipeline", "3.1.0");
|
|
107
103
|
this.codexLoader = new CodexLoader();
|
|
108
|
-
|
|
104
|
+
|
|
105
|
+
this.tools = [
|
|
106
|
+
{
|
|
107
|
+
name: "execute-pre-processors",
|
|
108
|
+
description:
|
|
109
|
+
"Run pre-execution processors on content with codex validation",
|
|
110
|
+
inputSchema: {
|
|
111
|
+
type: "object",
|
|
112
|
+
properties: {
|
|
113
|
+
content: { type: "string" },
|
|
114
|
+
context: { type: "object" },
|
|
115
|
+
validateCodex: { type: "boolean", default: true },
|
|
116
|
+
strictMode: { type: "boolean", default: false },
|
|
117
|
+
},
|
|
118
|
+
required: ["content"],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "execute-post-processors",
|
|
123
|
+
description:
|
|
124
|
+
"Run post-execution processors on results with compliance monitoring",
|
|
125
|
+
inputSchema: {
|
|
126
|
+
type: "object",
|
|
127
|
+
properties: {
|
|
128
|
+
content: { type: "string" },
|
|
129
|
+
results: { type: "object" },
|
|
130
|
+
enforceCompliance: { type: "boolean", default: true },
|
|
131
|
+
auditTrail: { type: "boolean", default: true },
|
|
132
|
+
},
|
|
133
|
+
required: ["content"],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
109
136
|
{
|
|
110
|
-
name: "
|
|
137
|
+
name: "codex-validation",
|
|
138
|
+
description:
|
|
139
|
+
"Validate content against Universal Development Codex terms",
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: "object",
|
|
142
|
+
properties: {
|
|
143
|
+
content: { type: "string" },
|
|
144
|
+
terms: {
|
|
145
|
+
type: "array",
|
|
146
|
+
items: { type: "string" },
|
|
147
|
+
default: ["all"],
|
|
148
|
+
},
|
|
149
|
+
strict: { type: "boolean", default: false },
|
|
150
|
+
},
|
|
151
|
+
required: ["content"],
|
|
152
|
+
},
|
|
111
153
|
},
|
|
112
154
|
{
|
|
113
|
-
|
|
114
|
-
|
|
155
|
+
name: "framework-compliance-check",
|
|
156
|
+
description:
|
|
157
|
+
"Check framework compliance and generate enforcement actions",
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: "object",
|
|
160
|
+
properties: {
|
|
161
|
+
content: { type: "string" },
|
|
162
|
+
operation: { type: "string" },
|
|
163
|
+
context: { type: "object" },
|
|
164
|
+
},
|
|
165
|
+
required: ["content", "operation"],
|
|
115
166
|
},
|
|
116
167
|
},
|
|
117
|
-
|
|
168
|
+
];
|
|
169
|
+
|
|
170
|
+
this.handlers = {
|
|
171
|
+
"execute-pre-processors": async (args) => this.handlePreProcessors(args as PreProcessorArgs),
|
|
172
|
+
"execute-post-processors": async (args) => this.handlePostProcessors(args as PostProcessorArgs),
|
|
173
|
+
"codex-validation": async (args) => this.handleCodexValidation(args as CodexValidationArgs),
|
|
174
|
+
"framework-compliance-check": async (args) => this.handleComplianceCheck(args as ComplianceCheckArgs),
|
|
175
|
+
};
|
|
118
176
|
|
|
119
177
|
this.setupToolHandlers();
|
|
120
178
|
this.loadCodexRules();
|
|
@@ -142,96 +200,6 @@ class XrayProcessorPipelineServer {
|
|
|
142
200
|
}
|
|
143
201
|
}
|
|
144
202
|
|
|
145
|
-
private setupToolHandlers() {
|
|
146
|
-
// List available tools
|
|
147
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
148
|
-
return {
|
|
149
|
-
tools: [
|
|
150
|
-
{
|
|
151
|
-
name: "execute-pre-processors",
|
|
152
|
-
description:
|
|
153
|
-
"Run pre-execution processors on content with codex validation",
|
|
154
|
-
inputSchema: {
|
|
155
|
-
type: "object",
|
|
156
|
-
properties: {
|
|
157
|
-
content: { type: "string" },
|
|
158
|
-
context: { type: "object" },
|
|
159
|
-
validateCodex: { type: "boolean", default: true },
|
|
160
|
-
strictMode: { type: "boolean", default: false },
|
|
161
|
-
},
|
|
162
|
-
required: ["content"],
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
name: "execute-post-processors",
|
|
167
|
-
description:
|
|
168
|
-
"Run post-execution processors on results with compliance monitoring",
|
|
169
|
-
inputSchema: {
|
|
170
|
-
type: "object",
|
|
171
|
-
properties: {
|
|
172
|
-
content: { type: "string" },
|
|
173
|
-
results: { type: "object" },
|
|
174
|
-
enforceCompliance: { type: "boolean", default: true },
|
|
175
|
-
auditTrail: { type: "boolean", default: true },
|
|
176
|
-
},
|
|
177
|
-
required: ["content"],
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
name: "codex-validation",
|
|
182
|
-
description:
|
|
183
|
-
"Validate content against Universal Development Codex terms",
|
|
184
|
-
inputSchema: {
|
|
185
|
-
type: "object",
|
|
186
|
-
properties: {
|
|
187
|
-
content: { type: "string" },
|
|
188
|
-
terms: {
|
|
189
|
-
type: "array",
|
|
190
|
-
items: { type: "string" },
|
|
191
|
-
default: ["all"],
|
|
192
|
-
},
|
|
193
|
-
strict: { type: "boolean", default: false },
|
|
194
|
-
},
|
|
195
|
-
required: ["content"],
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
name: "framework-compliance-check",
|
|
200
|
-
description:
|
|
201
|
-
"Check framework compliance and generate enforcement actions",
|
|
202
|
-
inputSchema: {
|
|
203
|
-
type: "object",
|
|
204
|
-
properties: {
|
|
205
|
-
content: { type: "string" },
|
|
206
|
-
operation: { type: "string" },
|
|
207
|
-
context: { type: "object" },
|
|
208
|
-
},
|
|
209
|
-
required: ["content", "operation"],
|
|
210
|
-
},
|
|
211
|
-
},
|
|
212
|
-
],
|
|
213
|
-
};
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
// Handle tool calls
|
|
217
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
218
|
-
const { name, arguments: args } = request.params;
|
|
219
|
-
|
|
220
|
-
switch (name) {
|
|
221
|
-
case "execute-pre-processors":
|
|
222
|
-
return await this.handlePreProcessors(args as unknown as PreProcessorArgs);
|
|
223
|
-
case "execute-post-processors":
|
|
224
|
-
return await this.handlePostProcessors(args as unknown as PostProcessorArgs);
|
|
225
|
-
case "codex-validation":
|
|
226
|
-
return await this.handleCodexValidation(args as unknown as CodexValidationArgs);
|
|
227
|
-
case "framework-compliance-check":
|
|
228
|
-
return await this.handleComplianceCheck(args as unknown as ComplianceCheckArgs);
|
|
229
|
-
default:
|
|
230
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
|
|
235
203
|
private async handlePreProcessors(args: PreProcessorArgs) {
|
|
236
204
|
const content = args.content;
|
|
237
205
|
const context = args.context || {};
|
|
@@ -762,15 +730,10 @@ ${complianceResults.actions.map((a: string) => `• 🔧 ${a}`).join("\n") || "N
|
|
|
762
730
|
return results;
|
|
763
731
|
}
|
|
764
732
|
|
|
765
|
-
async run() {
|
|
766
|
-
const transport = new StdioServerTransport();
|
|
767
|
-
await this.server.connect(transport);
|
|
768
|
-
// Silent start - no console output
|
|
769
|
-
}
|
|
770
733
|
}
|
|
771
734
|
|
|
772
735
|
// Start the server if run directly
|
|
773
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
736
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1]!)}`) {
|
|
774
737
|
const server = new XrayProcessorPipelineServer();
|
|
775
738
|
server.run().catch((error) => frameworkLogger.log("mcps/processor-pipeline", "run", "error", { error: String(error) }));
|
|
776
739
|
}
|
package/src/mcps/registry.json
CHANGED