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
|
@@ -1,322 +1,56 @@
|
|
|
1
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
1
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
2
|
import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
|
|
5
|
-
import {
|
|
6
|
-
import * as
|
|
3
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
4
|
+
import * as fs from "fs";
|
|
7
5
|
import { fileURLToPath } from "url";
|
|
8
6
|
import { randomUUID } from "crypto";
|
|
9
7
|
import { mcpClientManager } from "../mcp-client.js";
|
|
10
8
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
import { skillInstallCommand, skillRegistryCommand } from "../../cli/commands/skill-install.js";
|
|
10
|
+
class SkillInvocationServer extends XrayKnowledgeSkillBase {
|
|
13
11
|
constructor() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
|
|
12
|
+
super("skill-invocation", "3.1.0");
|
|
13
|
+
this.tools = [
|
|
14
|
+
{ name: "list-skills", description: "List all available skills with descriptions", inputSchema: { type: "object", properties: { category: { type: "string", enum: ["all", "core", "registry", "knowledge"], description: "Filter by category" } } } },
|
|
15
|
+
{ name: "invoke-skill", description: "Generic skill invocation tool for calling any MCP skill server", inputSchema: { type: "object", properties: { skillName: { type: "string", description: "Name of the skill to invoke (use list-skills to see available)" }, toolName: { type: "string", description: "Name of the tool within the skill to execute" }, args: { type: "object", description: "Arguments to pass to the skill tool" } }, required: ["skillName", "toolName"] } },
|
|
16
|
+
{ name: "skill-code-review", description: "Invoke code review skill for comprehensive code analysis", inputSchema: { type: "object", properties: { code: { type: "string", description: "Code to analyze" }, language: { type: "string", description: "Programming language" }, context: { type: "object", description: "Additional context" } }, required: ["code"] } },
|
|
17
|
+
{ name: "skill-security-audit", description: "Invoke security audit skill for vulnerability scanning", inputSchema: { type: "object", properties: { files: { type: "array", items: { type: "string" }, description: "Files to audit" }, severity: { type: "string", enum: ["low", "medium", "high", "critical"], description: "Minimum severity level" } }, required: ["files"] } },
|
|
18
|
+
{ name: "skill-performance-optimization", description: "Invoke performance optimization skill for bottleneck analysis", inputSchema: { type: "object", properties: { code: { type: "string", description: "Code to analyze" }, language: { type: "string", description: "Programming language" }, metrics: { type: "array", items: { type: "string" }, description: "Performance metrics to analyze" } }, required: ["code"] } },
|
|
19
|
+
{ name: "skill-testing-strategy", description: "Invoke testing strategy skill for test planning", inputSchema: { type: "object", properties: { code: { type: "string", description: "Code to analyze for testing" }, existingTests: { type: "array", items: { type: "string" }, description: "Existing test files" }, requirements: { type: "object", description: "Testing requirements and constraints" } }, required: ["code"] } },
|
|
20
|
+
{ name: "skill-project-analysis", description: "Invoke project analysis skill for codebase insights", inputSchema: { type: "object", properties: { scope: { type: "string", enum: ["full", "directory", "file"], description: "Analysis scope" }, analysis: { type: "array", items: { type: "string" }, description: "Types of analysis to perform" } } } },
|
|
21
|
+
{ name: "skill-database-design", description: "Invoke database design skill for schema design and query optimization", inputSchema: { type: "object", properties: { schema: { type: "string", description: "Database schema or entities" }, databaseType: { type: "string", enum: ["postgresql", "mysql", "mongodb", "dynamodb"], description: "Target database type" } }, required: ["schema"] } },
|
|
22
|
+
{ name: "skill-devops-deployment", description: "Invoke DevOps deployment skill for CI/CD and infrastructure", inputSchema: { type: "object", properties: { projectType: { type: "string", description: "Type of project" }, cloudProvider: { type: "string", enum: ["aws", "gcp", "azure"], description: "Target cloud provider" } }, required: ["projectType"] } },
|
|
23
|
+
{ name: "skill-api-design", description: "Invoke API design skill for REST/GraphQL endpoints", inputSchema: { type: "object", properties: { resources: { type: "array", items: { type: "string" }, description: "API resources" }, style: { type: "string", enum: ["rest", "graphql"], description: "API style" } }, required: ["resources"] } },
|
|
24
|
+
{ name: "skill-ui-ux-design", description: "Invoke UI/UX design skill for component design", inputSchema: { type: "object", properties: { component: { type: "string", description: "Component to design" }, framework: { type: "string", enum: ["react", "vue", "angular", "svelte"], description: "Target framework" } }, required: ["component"] } },
|
|
25
|
+
{ name: "skill-documentation-generation", description: "Invoke documentation skill for API docs and README", inputSchema: { type: "object", properties: { type: { type: "string", enum: ["api", "readme", "guide"], description: "Documentation type" }, code: { type: "string", description: "Code to document" } }, required: ["type"] } },
|
|
26
|
+
{ name: "skill-storyteller", description: "Invoke storyteller skill for writing reflections, sagas, and journeys", inputSchema: { type: "object", properties: { storyType: { type: "string", enum: ["reflection", "saga", "journey", "narrative"], description: "Type of story to write" }, title: { type: "string", description: "Title for the story" }, context: { type: "object", description: "Context including commits, changes, metadata" }, framework: { type: "string", enum: ["three_act_structure", "hero_journey", "spiral"], description: "Storytelling framework to use" } }, required: ["storyType"] } },
|
|
27
|
+
{ name: "install-skill", description: "Install skills from the registry or any git repo", inputSchema: { type: "object", properties: { source: { type: "string", description: "Source name or git URL to install skills from" }, path: { type: "string", description: "Subdirectory in repo containing skills" }, force: { type: "boolean", description: "Reinstall even if already installed" } }, required: ["source"] } },
|
|
28
|
+
{ name: "skill-registry-list", description: "List all available skill registry sources", inputSchema: { type: "object", properties: {} } },
|
|
29
|
+
{ name: "skill-registry-add", description: "Add a new source to the skills registry", inputSchema: { type: "object", properties: { name: { type: "string", description: "Unique source name" }, url: { type: "string", description: "Repository URL" }, desc: { type: "string", description: "Short description" }, license: { type: "string", description: "License type" } }, required: ["name", "url"] } },
|
|
30
|
+
{ name: "skill-registry-remove", description: "Remove a source from the skills registry", inputSchema: { type: "object", properties: { name: { type: "string", description: "Source name to remove" } }, required: ["name"] } },
|
|
31
|
+
];
|
|
32
|
+
this.handlers = {
|
|
33
|
+
"list-skills": async (args) => this.handleListSkills(args),
|
|
34
|
+
"invoke-skill": async (args) => this.handleInvokeSkill(args),
|
|
35
|
+
"skill-code-review": async (args) => this.handleSkillCodeReview(args),
|
|
36
|
+
"skill-security-audit": async (args) => this.handleSkillSecurityAudit(args),
|
|
37
|
+
"skill-performance-optimization": async (args) => this.handleSkillPerformanceOptimization(args),
|
|
38
|
+
"skill-testing-strategy": async (args) => this.handleSkillTestingStrategy(args),
|
|
39
|
+
"skill-project-analysis": async (args) => this.handleSkillProjectAnalysis(args),
|
|
40
|
+
"skill-database-design": async (args) => this.handleSkillDatabaseDesign(args),
|
|
41
|
+
"skill-devops-deployment": async (args) => this.handleSkillDevopsDeployment(args),
|
|
42
|
+
"skill-api-design": async (args) => this.handleSkillApiDesign(args),
|
|
43
|
+
"skill-ui-ux-design": async (args) => this.handleSkillUiUxDesign(args),
|
|
44
|
+
"skill-documentation-generation": async (args) => this.handleSkillDocumentationGeneration(args),
|
|
45
|
+
"skill-storyteller": async (args) => this.handleSkillStoryteller(args),
|
|
46
|
+
"install-skill": async (args) => this.handleInstallSkill(args),
|
|
47
|
+
"skill-registry-list": async () => this.handleSkillRegistryList(),
|
|
48
|
+
"skill-registry-add": async (args) => this.handleSkillRegistryAdd(args),
|
|
49
|
+
"skill-registry-remove": async (args) => this.handleSkillRegistryRemove(args),
|
|
50
|
+
};
|
|
21
51
|
this.setupToolHandlers();
|
|
22
52
|
}
|
|
23
|
-
setupToolHandlers
|
|
24
|
-
// List available tools
|
|
25
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
26
|
-
return {
|
|
27
|
-
tools: [
|
|
28
|
-
{
|
|
29
|
-
name: "list-skills",
|
|
30
|
-
description: "List all available skills with descriptions",
|
|
31
|
-
inputSchema: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
category: {
|
|
35
|
-
type: "string",
|
|
36
|
-
enum: ["all", "core", "registry", "knowledge"],
|
|
37
|
-
description: "Filter by category",
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "invoke-skill",
|
|
44
|
-
description: "Generic skill invocation tool for calling any MCP skill server",
|
|
45
|
-
inputSchema: {
|
|
46
|
-
type: "object",
|
|
47
|
-
properties: {
|
|
48
|
-
skillName: {
|
|
49
|
-
type: "string",
|
|
50
|
-
description: "Name of the skill to invoke (use list-skills to see available)",
|
|
51
|
-
},
|
|
52
|
-
toolName: {
|
|
53
|
-
type: "string",
|
|
54
|
-
description: "Name of the tool within the skill to execute",
|
|
55
|
-
},
|
|
56
|
-
args: {
|
|
57
|
-
type: "object",
|
|
58
|
-
description: "Arguments to pass to the skill tool",
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
required: ["skillName", "toolName"],
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "skill-code-review",
|
|
66
|
-
description: "Invoke code review skill for comprehensive code analysis",
|
|
67
|
-
inputSchema: {
|
|
68
|
-
type: "object",
|
|
69
|
-
properties: {
|
|
70
|
-
code: { type: "string", description: "Code to analyze" },
|
|
71
|
-
language: {
|
|
72
|
-
type: "string",
|
|
73
|
-
description: "Programming language",
|
|
74
|
-
},
|
|
75
|
-
context: { type: "object", description: "Additional context" },
|
|
76
|
-
},
|
|
77
|
-
required: ["code"],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "skill-security-audit",
|
|
82
|
-
description: "Invoke security audit skill for vulnerability scanning",
|
|
83
|
-
inputSchema: {
|
|
84
|
-
type: "object",
|
|
85
|
-
properties: {
|
|
86
|
-
files: {
|
|
87
|
-
type: "array",
|
|
88
|
-
items: { type: "string" },
|
|
89
|
-
description: "Files to audit",
|
|
90
|
-
},
|
|
91
|
-
severity: {
|
|
92
|
-
type: "string",
|
|
93
|
-
enum: ["low", "medium", "high", "critical"],
|
|
94
|
-
description: "Minimum severity level",
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
required: ["files"],
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: "skill-performance-optimization",
|
|
102
|
-
description: "Invoke performance optimization skill for bottleneck analysis",
|
|
103
|
-
inputSchema: {
|
|
104
|
-
type: "object",
|
|
105
|
-
properties: {
|
|
106
|
-
code: { type: "string", description: "Code to analyze" },
|
|
107
|
-
language: {
|
|
108
|
-
type: "string",
|
|
109
|
-
description: "Programming language",
|
|
110
|
-
},
|
|
111
|
-
metrics: {
|
|
112
|
-
type: "array",
|
|
113
|
-
items: { type: "string" },
|
|
114
|
-
description: "Performance metrics to analyze",
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
required: ["code"],
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: "skill-testing-strategy",
|
|
122
|
-
description: "Invoke testing strategy skill for test planning",
|
|
123
|
-
inputSchema: {
|
|
124
|
-
type: "object",
|
|
125
|
-
properties: {
|
|
126
|
-
code: {
|
|
127
|
-
type: "string",
|
|
128
|
-
description: "Code to analyze for testing",
|
|
129
|
-
},
|
|
130
|
-
existingTests: {
|
|
131
|
-
type: "array",
|
|
132
|
-
items: { type: "string" },
|
|
133
|
-
description: "Existing test files",
|
|
134
|
-
},
|
|
135
|
-
requirements: {
|
|
136
|
-
type: "object",
|
|
137
|
-
description: "Testing requirements and constraints",
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
required: ["code"],
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
name: "skill-project-analysis",
|
|
145
|
-
description: "Invoke project analysis skill for codebase insights",
|
|
146
|
-
inputSchema: {
|
|
147
|
-
type: "object",
|
|
148
|
-
properties: {
|
|
149
|
-
scope: {
|
|
150
|
-
type: "string",
|
|
151
|
-
enum: ["full", "directory", "file"],
|
|
152
|
-
description: "Analysis scope",
|
|
153
|
-
},
|
|
154
|
-
analysis: {
|
|
155
|
-
type: "array",
|
|
156
|
-
items: { type: "string" },
|
|
157
|
-
description: "Types of analysis to perform",
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
name: "skill-database-design",
|
|
164
|
-
description: "Invoke database design skill for schema design and query optimization",
|
|
165
|
-
inputSchema: {
|
|
166
|
-
type: "object",
|
|
167
|
-
properties: {
|
|
168
|
-
schema: {
|
|
169
|
-
type: "string",
|
|
170
|
-
description: "Database schema or entities",
|
|
171
|
-
},
|
|
172
|
-
databaseType: {
|
|
173
|
-
type: "string",
|
|
174
|
-
enum: ["postgresql", "mysql", "mongodb", "dynamodb"],
|
|
175
|
-
description: "Target database type",
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
required: ["schema"],
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
name: "skill-devops-deployment",
|
|
183
|
-
description: "Invoke DevOps deployment skill for CI/CD and infrastructure",
|
|
184
|
-
inputSchema: {
|
|
185
|
-
type: "object",
|
|
186
|
-
properties: {
|
|
187
|
-
projectType: { type: "string", description: "Type of project" },
|
|
188
|
-
cloudProvider: {
|
|
189
|
-
type: "string",
|
|
190
|
-
enum: ["aws", "gcp", "azure"],
|
|
191
|
-
description: "Target cloud provider",
|
|
192
|
-
},
|
|
193
|
-
},
|
|
194
|
-
required: ["projectType"],
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
name: "skill-api-design",
|
|
199
|
-
description: "Invoke API design skill for REST/GraphQL endpoints",
|
|
200
|
-
inputSchema: {
|
|
201
|
-
type: "object",
|
|
202
|
-
properties: {
|
|
203
|
-
resources: {
|
|
204
|
-
type: "array",
|
|
205
|
-
items: { type: "string" },
|
|
206
|
-
description: "API resources",
|
|
207
|
-
},
|
|
208
|
-
style: {
|
|
209
|
-
type: "string",
|
|
210
|
-
enum: ["rest", "graphql"],
|
|
211
|
-
description: "API style",
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
required: ["resources"],
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
name: "skill-ui-ux-design",
|
|
219
|
-
description: "Invoke UI/UX design skill for component design",
|
|
220
|
-
inputSchema: {
|
|
221
|
-
type: "object",
|
|
222
|
-
properties: {
|
|
223
|
-
component: {
|
|
224
|
-
type: "string",
|
|
225
|
-
description: "Component to design",
|
|
226
|
-
},
|
|
227
|
-
framework: {
|
|
228
|
-
type: "string",
|
|
229
|
-
enum: ["react", "vue", "angular", "svelte"],
|
|
230
|
-
description: "Target framework",
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
required: ["component"],
|
|
234
|
-
},
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
name: "skill-documentation-generation",
|
|
238
|
-
description: "Invoke documentation skill for API docs and README",
|
|
239
|
-
inputSchema: {
|
|
240
|
-
type: "object",
|
|
241
|
-
properties: {
|
|
242
|
-
type: {
|
|
243
|
-
type: "string",
|
|
244
|
-
enum: ["api", "readme", "guide"],
|
|
245
|
-
description: "Documentation type",
|
|
246
|
-
},
|
|
247
|
-
code: { type: "string", description: "Code to document" },
|
|
248
|
-
},
|
|
249
|
-
required: ["type"],
|
|
250
|
-
},
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
name: "skill-storyteller",
|
|
254
|
-
description: "Invoke storyteller skill for writing reflections, sagas, and journeys",
|
|
255
|
-
inputSchema: {
|
|
256
|
-
type: "object",
|
|
257
|
-
properties: {
|
|
258
|
-
storyType: {
|
|
259
|
-
type: "string",
|
|
260
|
-
enum: ["reflection", "saga", "journey", "narrative"],
|
|
261
|
-
description: "Type of story to write",
|
|
262
|
-
},
|
|
263
|
-
title: { type: "string", description: "Title for the story" },
|
|
264
|
-
context: {
|
|
265
|
-
type: "object",
|
|
266
|
-
description: "Context including commits, changes, metadata",
|
|
267
|
-
},
|
|
268
|
-
framework: {
|
|
269
|
-
type: "string",
|
|
270
|
-
enum: ["three_act_structure", "hero_journey", "spiral"],
|
|
271
|
-
description: "Storytelling framework to use",
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
required: ["storyType"],
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
],
|
|
278
|
-
};
|
|
279
|
-
});
|
|
280
|
-
// Handle tool calls
|
|
281
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
282
|
-
const { name, arguments: args } = request.params;
|
|
283
|
-
try {
|
|
284
|
-
switch (name) {
|
|
285
|
-
case "list-skills":
|
|
286
|
-
return await this.handleListSkills(args);
|
|
287
|
-
case "invoke-skill":
|
|
288
|
-
return await this.handleInvokeSkill(args);
|
|
289
|
-
case "skill-code-review":
|
|
290
|
-
return await this.handleSkillCodeReview(args);
|
|
291
|
-
case "skill-security-audit":
|
|
292
|
-
return await this.handleSkillSecurityAudit(args);
|
|
293
|
-
case "skill-performance-optimization":
|
|
294
|
-
return await this.handleSkillPerformanceOptimization(args);
|
|
295
|
-
case "skill-testing-strategy":
|
|
296
|
-
return await this.handleSkillTestingStrategy(args);
|
|
297
|
-
case "skill-project-analysis":
|
|
298
|
-
return await this.handleSkillProjectAnalysis(args);
|
|
299
|
-
case "skill-database-design":
|
|
300
|
-
return await this.handleSkillDatabaseDesign(args);
|
|
301
|
-
case "skill-devops-deployment":
|
|
302
|
-
return await this.handleSkillDevopsDeployment(args);
|
|
303
|
-
case "skill-api-design":
|
|
304
|
-
return await this.handleSkillApiDesign(args);
|
|
305
|
-
case "skill-ui-ux-design":
|
|
306
|
-
return await this.handleSkillUiUxDesign(args);
|
|
307
|
-
case "skill-documentation-generation":
|
|
308
|
-
return await this.handleSkillDocumentationGeneration(args);
|
|
309
|
-
case "skill-storyteller":
|
|
310
|
-
return await this.handleSkillStoryteller(args);
|
|
311
|
-
default:
|
|
312
|
-
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
}
|
|
53
|
+
// setupToolHandlers removed — handled by XrayKnowledgeSkillBase via this.tools + this.handlers
|
|
320
54
|
skillMetrics = new Map();
|
|
321
55
|
/**
|
|
322
56
|
* Record skill invocation outcome for adaptive learning
|
|
@@ -626,55 +360,45 @@ class SkillInvocationServer {
|
|
|
626
360
|
],
|
|
627
361
|
};
|
|
628
362
|
}
|
|
629
|
-
async
|
|
630
|
-
const
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
}
|
|
667
|
-
};
|
|
668
|
-
parentCheckTimer = setTimeout(checkParent, 2000);
|
|
669
|
-
process.on("uncaughtException", (error) => {
|
|
670
|
-
frameworkLogger.log("mcps/skill-invocation", "uncaughtException", "error", { message: `Uncaught Exception: ${String(error)}` });
|
|
671
|
-
cleanup("uncaughtException");
|
|
672
|
-
});
|
|
673
|
-
process.on("unhandledRejection", (reason) => {
|
|
674
|
-
frameworkLogger.log("mcps/skill-invocation", "unhandledRejection", "error", { message: `Unhandled Rejection: ${String(reason)}` });
|
|
675
|
-
cleanup("unhandledRejection");
|
|
676
|
-
});
|
|
363
|
+
async captureConsole(fn) {
|
|
364
|
+
const chunks = [];
|
|
365
|
+
const origLog = console.log;
|
|
366
|
+
console.log = (...args) => chunks.push(args.map(String).join(" "));
|
|
367
|
+
try {
|
|
368
|
+
await fn();
|
|
369
|
+
}
|
|
370
|
+
finally {
|
|
371
|
+
console.log = origLog;
|
|
372
|
+
}
|
|
373
|
+
return chunks.join("\n");
|
|
374
|
+
}
|
|
375
|
+
async handleInstallSkill(args) {
|
|
376
|
+
const opts = {};
|
|
377
|
+
if (args.path !== undefined)
|
|
378
|
+
opts.path = args.path;
|
|
379
|
+
if (args.force !== undefined)
|
|
380
|
+
opts.force = args.force;
|
|
381
|
+
const output = await this.captureConsole(() => skillInstallCommand(args.source, opts));
|
|
382
|
+
return { content: [{ type: "text", text: output || "Skill installation completed." }] };
|
|
383
|
+
}
|
|
384
|
+
async handleSkillRegistryList() {
|
|
385
|
+
const output = await this.captureConsole(() => skillRegistryCommand("list"));
|
|
386
|
+
return { content: [{ type: "text", text: output || "No registry sources configured." }] };
|
|
387
|
+
}
|
|
388
|
+
async handleSkillRegistryAdd(args) {
|
|
389
|
+
const registryArgs = { name: args.name, url: args.url };
|
|
390
|
+
if (args.desc !== undefined)
|
|
391
|
+
registryArgs.desc = args.desc;
|
|
392
|
+
if (args.license !== undefined)
|
|
393
|
+
registryArgs.license = args.license;
|
|
394
|
+
const output = await this.captureConsole(() => skillRegistryCommand("add", registryArgs));
|
|
395
|
+
return { content: [{ type: "text", text: output || "Source added." }] };
|
|
396
|
+
}
|
|
397
|
+
async handleSkillRegistryRemove(args) {
|
|
398
|
+
const output = await this.captureConsole(() => skillRegistryCommand("remove", { name: args.name }));
|
|
399
|
+
return { content: [{ type: "text", text: output || "Source removed." }] };
|
|
677
400
|
}
|
|
401
|
+
// run() removed — handled by XrayKnowledgeSkillBase
|
|
678
402
|
/**
|
|
679
403
|
* Run as HTTP server using Streamable HTTP transport (for Grok CLI compatibility).
|
|
680
404
|
*/
|
|
@@ -706,7 +430,7 @@ class SkillInvocationServer {
|
|
|
706
430
|
}
|
|
707
431
|
}
|
|
708
432
|
// Start the server if this file is run directly
|
|
709
|
-
const entryPoint =
|
|
433
|
+
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
710
434
|
if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
|
|
711
435
|
// If --port or MCP_PORT is set, use HTTP transport (for Grok CLI compatibility)
|
|
712
436
|
const cliPort = process.argv.find((a) => a.startsWith("--port="))?.split("=")[1];
|
|
@@ -4,14 +4,11 @@
|
|
|
4
4
|
* Strategic guidance and complex problem-solving for architectural decisions.
|
|
5
5
|
* Provides strategic planning, risk assessment, and technical strategy tools.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
-
import * as path from "path";
|
|
7
|
+
import * as fs from "fs";
|
|
11
8
|
import { fileURLToPath } from "url";
|
|
12
9
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
|
|
11
|
+
class StrategistServer extends XrayKnowledgeSkillBase {
|
|
15
12
|
tools = [
|
|
16
13
|
{
|
|
17
14
|
name: "strategic_guidance",
|
|
@@ -77,52 +74,15 @@ class StrategistServer {
|
|
|
77
74
|
},
|
|
78
75
|
];
|
|
79
76
|
constructor() {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
});
|
|
77
|
+
super("strategist", "3.1.0");
|
|
78
|
+
this.handlers = {
|
|
79
|
+
strategic_guidance: async (args) => this.handleStrategicGuidance(args),
|
|
80
|
+
risk_assessment: async (args) => this.handleRiskAssessment(args),
|
|
81
|
+
architecture_review: async (args) => this.handleArchitectureReview(args),
|
|
82
|
+
};
|
|
87
83
|
this.setupToolHandlers();
|
|
88
84
|
}
|
|
89
|
-
setupToolHandlers
|
|
90
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
91
|
-
return {
|
|
92
|
-
tools: this.tools.map((tool) => ({
|
|
93
|
-
name: tool.name,
|
|
94
|
-
description: tool.description,
|
|
95
|
-
inputSchema: tool.inputSchema,
|
|
96
|
-
})),
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
100
|
-
const { name, arguments: args } = request.params;
|
|
101
|
-
try {
|
|
102
|
-
switch (name) {
|
|
103
|
-
case "strategic_guidance":
|
|
104
|
-
return await this.handleStrategicGuidance(args);
|
|
105
|
-
case "risk_assessment":
|
|
106
|
-
return await this.handleRiskAssessment(args);
|
|
107
|
-
case "architecture_review":
|
|
108
|
-
return await this.handleArchitectureReview(args);
|
|
109
|
-
default:
|
|
110
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
return {
|
|
115
|
-
content: [
|
|
116
|
-
{
|
|
117
|
-
type: "text",
|
|
118
|
-
text: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
119
|
-
},
|
|
120
|
-
],
|
|
121
|
-
isError: true,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
85
|
+
// setupToolHandlers removed — handled by XrayKnowledgeSkillBase via this.tools + this.handlers
|
|
126
86
|
async handleStrategicGuidance(args) {
|
|
127
87
|
const { context, options = [], criteria = [] } = args;
|
|
128
88
|
const analysis = [
|
|
@@ -203,15 +163,10 @@ class StrategistServer {
|
|
|
203
163
|
content: [{ type: "text", text: analysis.join("\n") }],
|
|
204
164
|
};
|
|
205
165
|
}
|
|
206
|
-
async start() {
|
|
207
|
-
const transport = new StdioServerTransport();
|
|
208
|
-
await this.server.connect(transport);
|
|
209
|
-
await frameworkLogger.log("mcp-strategist", "server-started", "success");
|
|
210
|
-
}
|
|
211
166
|
}
|
|
212
|
-
const entryPoint =
|
|
167
|
+
const entryPoint = fs.realpathSync(process.argv[1] ?? "");
|
|
213
168
|
if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
|
|
214
169
|
const server = new StrategistServer();
|
|
215
|
-
server.
|
|
170
|
+
server.run().catch((error) => frameworkLogger.log("mcps/strategist", "run", "error", { error: String(error) }));
|
|
216
171
|
}
|
|
217
172
|
export { StrategistServer };
|