0xray 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/codex.codex +2 -2
- package/.opencode/commands/dependency-audit.md +3 -3
- package/.opencode/enforcer-config.json +2 -2
- package/.opencode/init.sh +22 -19
- package/AGENTS.md +6 -6
- package/README.md +276 -76
- package/dist/AGENTS.md +6 -6
- package/dist/CHANGELOG.md +91 -10
- package/dist/README.md +276 -76
- package/dist/agents/architect.d.ts +2 -0
- package/dist/agents/backend-engineer.d.ts +8 -0
- package/dist/agents/bug-triage-specialist.d.ts +2 -0
- package/dist/agents/code-analyzer.d.ts +7 -0
- package/dist/agents/code-reviewer.d.ts +2 -0
- package/dist/agents/code-reviewer.js +1 -1
- package/dist/agents/content-creator.d.ts +9 -0
- package/dist/agents/database-engineer.d.ts +8 -0
- package/dist/agents/devops-engineer.d.ts +8 -0
- package/dist/agents/frontend-engineer.d.ts +8 -0
- package/dist/agents/frontend-ui-ux-engineer.d.ts +8 -0
- package/dist/agents/growth-strategist.d.ts +8 -0
- package/dist/agents/index.d.ts +24 -0
- package/dist/agents/librarian-agents-updater.d.ts +30 -0
- package/dist/agents/log-monitor.d.ts +2 -0
- package/dist/agents/mobile-developer.d.ts +9 -0
- package/dist/agents/multimodal-looker.d.ts +9 -0
- package/dist/agents/performance-engineer.d.ts +8 -0
- package/dist/agents/refactorer.d.ts +2 -0
- package/dist/agents/registry.d.ts +35 -0
- package/dist/agents/researcher.d.ts +2 -0
- package/dist/agents/security-auditor.d.ts +2 -0
- package/dist/agents/seo-consultant.d.ts +8 -0
- package/dist/agents/strategist.d.ts +7 -0
- package/dist/agents/tech-writer.d.ts +8 -0
- package/dist/agents/testing-lead.d.ts +2 -0
- package/dist/agents/types.d.ts +45 -0
- package/dist/analytics/consent-manager.d.ts +93 -0
- package/dist/analytics/emerging-pattern-detector.d.ts +67 -0
- package/dist/analytics/pattern-learning-engine.d.ts +80 -0
- package/dist/analytics/pattern-performance-tracker.d.ts +97 -0
- package/dist/analytics/predictive-analytics.d.ts +41 -0
- package/dist/analytics/prompt-pattern-analyzer.d.ts +99 -0
- package/dist/analytics/routing-performance-analyzer.d.ts +101 -0
- package/dist/analytics/routing-refiner.d.ts +104 -0
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/analytics/simple-pattern-analyzer.d.ts +80 -0
- package/dist/architect/architect-tools.d.ts +70 -0
- package/dist/architect/architectural-integrity.d.ts +20 -0
- package/dist/benchmark/performance-benchmark.d.ts +103 -0
- package/dist/benchmark/performance-benchmark.js +3 -3
- package/dist/cli/commands/analytics-disable.d.ts +9 -0
- package/dist/cli/commands/analytics-enable-action.d.ts +8 -0
- package/dist/cli/commands/analytics-preview.d.ts +9 -0
- package/dist/cli/commands/analytics-status.d.ts +9 -0
- package/dist/cli/commands/antigravity-status.d.ts +9 -0
- package/dist/cli/commands/archive-logs.d.ts +24 -0
- package/dist/cli/commands/credible-init.d.ts +11 -0
- package/dist/cli/commands/grok-install.d.ts +7 -0
- package/dist/cli/commands/hermes-install.d.ts +2 -0
- package/dist/cli/commands/hermes-install.js +4 -4
- package/dist/cli/commands/mcp-install.d.ts +4 -0
- package/dist/cli/commands/mcp-install.js +1 -1
- package/dist/cli/commands/openclaw-install.d.ts +2 -0
- package/dist/cli/commands/openclaw-install.js +1 -1
- package/dist/cli/commands/opencode-install.d.ts +2 -0
- package/dist/cli/commands/plugin-commands.d.ts +19 -0
- package/dist/cli/commands/plugin-commands.js +2 -2
- package/dist/cli/commands/publish-agent.d.ts +15 -0
- package/dist/cli/commands/publish-agent.js +5 -5
- package/dist/cli/commands/security-audit.d.ts +23 -0
- package/dist/cli/commands/skill-install.d.ts +5 -0
- package/dist/cli/commands/skill-install.js +1 -1
- package/dist/cli/commands/status.d.ts +41 -0
- package/dist/cli/commands/status.js +3 -3
- package/dist/cli/commands/storyteller.d.ts +19 -0
- package/dist/cli/commands/storyteller.js +2 -2
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.js +8 -8
- package/dist/cli/server.d.ts +1 -0
- package/dist/cli/server.js +1 -1
- package/dist/config/default-agents.d.ts +12 -0
- package/dist/core/activity-logger.d.ts +72 -0
- package/dist/core/adaptive-kernel.d.ts +109 -0
- package/dist/core/agent-spawn-gate.d.ts +56 -0
- package/dist/core/agent-spawn-gate.js +1 -1
- package/dist/core/boot-orchestrator.d.ts +99 -0
- package/dist/core/boot-orchestrator.js +28 -28
- package/dist/core/bridge.mjs +22 -22
- package/dist/core/codex-formatter.d.ts +96 -0
- package/dist/core/codex-formatter.js +2 -2
- package/dist/core/codex-injector.d.ts +75 -0
- package/dist/core/codex-injector.js +11 -10
- package/dist/core/config-loader.d.ts +71 -0
- package/dist/core/config-loader.js +4 -2
- package/dist/core/config-paths.d.ts +62 -0
- package/dist/core/config-paths.js +24 -23
- package/dist/core/context-loader.d.ts +122 -0
- package/dist/core/context-loader.js +7 -5
- package/dist/core/context-validator.d.ts +53 -0
- package/dist/core/features-config.d.ts +462 -0
- package/dist/core/features-config.js +1 -1
- package/dist/core/framework-logger.d.ts +76 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.js +1 -1
- package/dist/core/kernel-patterns.d.ts +130 -0
- package/dist/core/logging-config.d.ts +10 -0
- package/dist/core/model-router.d.ts +61 -0
- package/dist/core/orchestrator.d.ts +72 -0
- package/dist/core/orchestrator.js +3 -2
- package/dist/core/system-prompt-generator.d.ts +35 -0
- package/dist/core/system-prompt-generator.js +2 -2
- package/dist/core/trace-context.d.ts +12 -0
- package/dist/core/xray-activation.d.ts +14 -0
- package/dist/core/xray-activation.js +29 -24
- package/dist/delegation/agent-delegator.d.ts +186 -0
- package/dist/delegation/agent-delegator.js +3 -3
- package/dist/delegation/agent-expertise.d.ts +16 -0
- package/dist/delegation/analytics/index.d.ts +12 -0
- package/dist/delegation/analytics/learning-engine.d.ts +85 -0
- package/dist/delegation/analytics/outcome-tracker.d.ts +118 -0
- package/dist/delegation/analytics/routing-analytics.d.ts +61 -0
- package/dist/delegation/ast-code-parser.d.ts +174 -0
- package/dist/delegation/codebase-context-analyzer.d.ts +164 -0
- package/dist/delegation/complexity-analyzer.d.ts +111 -0
- package/dist/delegation/complexity-core.d.ts +119 -0
- package/dist/delegation/config/types.d.ts +247 -0
- package/dist/delegation/dependency-graph-builder.d.ts +95 -0
- package/dist/delegation/index.d.ts +25 -0
- package/dist/delegation/metrics-aggregator.d.ts +92 -0
- package/dist/delegation/session-coordinator.d.ts +133 -0
- package/dist/delegation/strategy-selector.d.ts +28 -0
- package/dist/delegation/voting-coordinator.d.ts +49 -0
- package/dist/delegation/voting-types.d.ts +155 -0
- package/dist/delegation/weighted-voting-aggregator.d.ts +37 -0
- package/dist/enforcement/core/index.d.ts +15 -0
- package/dist/enforcement/core/rule-executor.d.ts +158 -0
- package/dist/enforcement/core/rule-hierarchy.d.ts +146 -0
- package/dist/enforcement/core/rule-registry.d.ts +197 -0
- package/dist/enforcement/core/violation-fixer.d.ts +106 -0
- package/dist/enforcement/enforcer-tools.d.ts +78 -0
- package/dist/enforcement/enforcer-tools.js +2 -2
- package/dist/enforcement/index.d.ts +23 -0
- package/dist/enforcement/loaders/agent-triage-loader.d.ts +99 -0
- package/dist/enforcement/loaders/agents-md-validation-loader.d.ts +76 -0
- package/dist/enforcement/loaders/base-loader.d.ts +83 -0
- package/dist/enforcement/loaders/codex-loader.d.ts +77 -0
- package/dist/enforcement/loaders/codex-loader.js +2 -2
- package/dist/enforcement/loaders/index.d.ts +37 -0
- package/dist/enforcement/loaders/loader-orchestrator.d.ts +97 -0
- package/dist/enforcement/loaders/processor-loader.d.ts +60 -0
- package/dist/enforcement/rule-enforcer.d.ts +142 -0
- package/dist/enforcement/test-auto-healing.d.ts +83 -0
- package/dist/enforcement/types.d.ts +501 -0
- package/dist/enforcement/validators/architecture-validators.d.ts +155 -0
- package/dist/enforcement/validators/base-validator.d.ts +88 -0
- package/dist/enforcement/validators/code-quality-validators.d.ts +89 -0
- package/dist/enforcement/validators/index.d.ts +15 -0
- package/dist/enforcement/validators/security-validators.d.ts +53 -0
- package/dist/enforcement/validators/testing-validators.d.ts +81 -0
- package/dist/enforcement/validators/validator-registry.d.ts +92 -0
- package/dist/execution/opencode-cli-invoker.d.ts +8 -0
- package/dist/execution/proposal-applier.d.ts +24 -0
- package/dist/governance/codex-policy.service.d.ts +57 -0
- package/dist/governance/governance-core.d.ts +46 -0
- package/dist/governance/governance-service.d.ts +38 -0
- package/dist/governance/governance-types.d.ts +83 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +6 -6
- package/dist/inference/deploy-verifier.d.ts +26 -0
- package/dist/inference/deploy-verifier.js +1 -1
- package/dist/inference/index.d.ts +10 -0
- package/dist/inference/inference-accumulator.d.ts +29 -0
- package/dist/inference/inference-cycle.d.ts +110 -0
- package/dist/inference/inference-cycle.js +7 -7
- package/dist/inference/semantic-patterns.d.ts +7 -0
- package/dist/inference/session-capture.d.ts +32 -0
- package/dist/integrations/base/ExampleIntegration.d.ts +47 -0
- package/dist/integrations/base/Integration.d.ts +267 -0
- package/dist/integrations/base/README.md +2 -2
- package/dist/integrations/base/index.d.ts +12 -0
- package/dist/integrations/base/registry.d.ts +273 -0
- package/dist/integrations/base/types.d.ts +168 -0
- package/dist/integrations/governance/governance-client.d.ts +76 -0
- package/dist/integrations/governance/index.d.ts +99 -0
- package/dist/integrations/governance/index.js +1 -1
- package/dist/integrations/governance/types.d.ts +239 -0
- package/dist/integrations/grok/grok-cli.d.ts +25 -0
- package/dist/integrations/grok/grok-cli.js +6 -6
- package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
- package/dist/integrations/grok/plugin/0xray/.mcp.json +3 -3
- package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/dist/integrations/hermes-agent/__init__.py +78 -72
- package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/after-install.md +14 -14
- package/dist/integrations/hermes-agent/bridge.mjs +14 -14
- package/dist/integrations/hermes-agent/logs/framework/routing-outcomes.json +1 -0
- package/dist/integrations/hermes-agent/plugin.yaml +5 -5
- package/dist/integrations/hermes-agent/schemas.py +12 -12
- package/dist/integrations/hermes-agent/test_plugin.py +128 -125
- package/dist/integrations/hermes-agent/tools.py +85 -23
- package/dist/integrations/openclaw/README.md +16 -16
- package/dist/integrations/openclaw/api-server.d.ts +87 -0
- package/dist/integrations/openclaw/api-server.js +9 -9
- package/dist/integrations/openclaw/client.d.ts +122 -0
- package/dist/integrations/openclaw/config.d.ts +96 -0
- package/dist/integrations/openclaw/config.js +1 -1
- package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +124 -0
- package/dist/integrations/openclaw/index.d.ts +101 -0
- package/dist/integrations/openclaw/index.js +4 -4
- package/dist/integrations/openclaw/types.d.ts +426 -0
- package/dist/integrations/plugins/index.d.ts +10 -0
- package/dist/integrations/plugins/plugin-integration.d.ts +289 -0
- package/dist/integrations/plugins/plugin-registry.d.ts +224 -0
- package/dist/integrations/plugins/plugin-registry.js +2 -2
- package/dist/mcps/agent-resolver.d.ts +46 -0
- package/dist/mcps/architect-tools.server.d.ts +17 -0
- package/dist/mcps/architect-tools.server.js +4 -4
- package/dist/mcps/auto-format.server.d.ts +19 -0
- package/dist/mcps/auto-format.server.js +4 -4
- package/dist/mcps/boot-orchestrator.server.d.ts +49 -0
- package/dist/mcps/boot-orchestrator.server.js +4 -4
- package/dist/mcps/config/config-loader.d.ts +52 -0
- package/dist/mcps/config/config-validator.d.ts +40 -0
- package/dist/mcps/config/index.d.ts +31 -0
- package/dist/mcps/config/plugin-server-registry.d.ts +127 -0
- package/dist/mcps/config/server-config-registry.d.ts +51 -0
- package/dist/mcps/config/server-config-registry.js +7 -7
- package/dist/mcps/connection/connection-manager.d.ts +39 -0
- package/dist/mcps/connection/connection-pool.d.ts +64 -0
- package/dist/mcps/connection/mcp-connection.d.ts +66 -0
- package/dist/mcps/connection/mcp-connection.js +1 -1
- package/dist/mcps/connection/process-spawner.d.ts +24 -0
- package/dist/mcps/enforcer-tools.server.d.ts +27 -0
- package/dist/mcps/enforcer-tools.server.js +4 -4
- package/dist/mcps/estimation.server.d.ts +21 -0
- package/dist/mcps/estimation.server.js +1 -1
- package/dist/mcps/framework-compliance-audit.server.d.ts +22 -0
- package/dist/mcps/framework-compliance-audit.server.js +4 -4
- package/dist/mcps/framework-help.server.d.ts +14 -0
- package/dist/mcps/framework-help.server.js +7 -7
- package/dist/mcps/governance.server.d.ts +33 -0
- package/dist/mcps/in-process-skill-registry.d.ts +20 -0
- package/dist/mcps/in-process-skill-registry.js +6 -6
- package/dist/mcps/knowledge-skills/api-design.server.d.ts +15 -0
- package/dist/mcps/knowledge-skills/api-design.server.js +4 -4
- package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +15 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +4 -4
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +33 -0
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +1 -1
- package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +31 -0
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +1 -1
- package/dist/mcps/knowledge-skills/code-review.server.d.ts +46 -0
- package/dist/mcps/knowledge-skills/code-review.server.js +4 -4
- package/dist/mcps/knowledge-skills/content-creator.server.d.ts +13 -0
- package/dist/mcps/knowledge-skills/content-creator.server.js +1 -1
- package/dist/mcps/knowledge-skills/database-design.server.d.ts +43 -0
- package/dist/mcps/knowledge-skills/database-design.server.js +4 -4
- package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +43 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +4 -4
- package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +15 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.js +4 -4
- package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +13 -0
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +1 -1
- package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +24 -0
- package/dist/mcps/knowledge-skills/log-monitor.server.js +1 -1
- package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +19 -0
- package/dist/mcps/knowledge-skills/mobile-development.server.js +4 -4
- package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +55 -0
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +3 -2
- package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +72 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +4 -4
- package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +37 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.js +1 -1
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +33 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +4 -4
- package/dist/mcps/knowledge-skills/security-audit.server.d.ts +48 -0
- package/dist/mcps/knowledge-skills/security-audit.server.js +4 -4
- package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +26 -0
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +1 -1
- package/dist/mcps/knowledge-skills/session-management.server.d.ts +23 -0
- package/dist/mcps/knowledge-skills/session-management.server.js +1 -1
- package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +29 -0
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +1 -1
- package/dist/mcps/knowledge-skills/strategist.server.d.ts +17 -0
- package/dist/mcps/knowledge-skills/strategist.server.js +1 -1
- package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +47 -0
- package/dist/mcps/knowledge-skills/tech-writer.server.js +5 -5
- package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +36 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +4 -4
- package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +47 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +4 -4
- package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +69 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +6 -6
- package/dist/mcps/lint.server.d.ts +17 -0
- package/dist/mcps/lint.server.js +6 -6
- package/dist/mcps/mcp-client.d.ts +157 -0
- package/dist/mcps/mcp-client.js +3 -3
- package/dist/mcps/model-health-check.server.d.ts +16 -0
- package/dist/mcps/model-health-check.server.js +4 -4
- package/dist/mcps/orchestrator/config/agent-capabilities.d.ts +35 -0
- package/dist/mcps/orchestrator/execution/execution-planner.d.ts +62 -0
- package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +32 -0
- package/dist/mcps/orchestrator/handlers/status-handler.d.ts +69 -0
- package/dist/mcps/orchestrator/handlers/task-handler.d.ts +52 -0
- package/dist/mcps/orchestrator/server.d.ts +38 -0
- package/dist/mcps/orchestrator/server.js +2 -2
- package/dist/mcps/orchestrator/types.d.ts +79 -0
- package/dist/mcps/orchestrator.server.d.ts +10 -0
- package/dist/mcps/performance-analysis.server.d.ts +27 -0
- package/dist/mcps/performance-analysis.server.js +4 -4
- package/dist/mcps/processor-pipeline.server.d.ts +31 -0
- package/dist/mcps/processor-pipeline.server.js +4 -4
- package/dist/mcps/protocol/protocol-constants.d.ts +46 -0
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.d.ts +31 -0
- package/dist/mcps/researcher.server.js +5 -5
- package/dist/mcps/security-scan.server.d.ts +20 -0
- package/dist/mcps/security-scan.server.js +4 -4
- package/dist/mcps/simulation/index.d.ts +12 -0
- package/dist/mcps/simulation/server-simulations.d.ts +39 -0
- package/dist/mcps/simulation/server-simulations.js +3 -3
- package/dist/mcps/simulation/simulation-engine.d.ts +51 -0
- package/dist/mcps/state-manager.server.d.ts +28 -0
- package/dist/mcps/state-manager.server.js +1 -1
- package/dist/mcps/tools/index.d.ts +14 -0
- package/dist/mcps/tools/tool-cache.d.ts +53 -0
- package/dist/mcps/tools/tool-discovery.d.ts +27 -0
- package/dist/mcps/tools/tool-executor.d.ts +41 -0
- package/dist/mcps/tools/tool-registry.d.ts +42 -0
- package/dist/mcps/types/index.d.ts +13 -0
- package/dist/mcps/types/json-rpc.types.d.ts +35 -0
- package/dist/mcps/types/mcp.types.d.ts +105 -0
- package/dist/metrics/agent-metrics.d.ts +169 -0
- package/dist/metrics/agent-metrics.js +1 -1
- package/dist/metrics/index.d.ts +6 -0
- package/dist/monitoring/advanced-profiler.d.ts +51 -0
- package/dist/monitoring/memory-monitor.d.ts +113 -0
- package/dist/monitoring/nudge-watchdog.d.ts +88 -0
- package/dist/monitoring/test-auto-generation-monitor.d.ts +64 -0
- package/dist/orchestrator/agent-spawn-governor.d.ts +127 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +156 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
- package/dist/orchestrator/intelligent-commit-batcher.d.ts +114 -0
- package/dist/orchestrator/intelligent-commit-batcher.js +3 -3
- package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +127 -0
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +9 -9
- package/dist/orchestrator/orchestrator.d.ts +143 -0
- package/dist/orchestrator/orchestrator.js +8 -6
- package/dist/orchestrator/self-direction-activation.d.ts +109 -0
- package/dist/orchestrator/universal-librarian-consultation.d.ts +98 -0
- package/dist/orchestrator/universal-registry-bridge.d.ts +85 -0
- package/dist/orchestrator/universal-registry-bridge.js +1 -1
- package/dist/performance/performance-budget-enforcer.d.ts +158 -0
- package/dist/performance/performance-regression-tester.d.ts +108 -0
- package/dist/plugin/xray-codex-injection.d.ts +55 -0
- package/dist/plugin/xray-codex-injection.js +15 -14
- package/dist/postprocessor/PostProcessor.d.ts +108 -0
- package/dist/postprocessor/PostProcessor.js +1 -1
- package/dist/postprocessor/analysis/FailureAnalysisEngine.d.ts +39 -0
- package/dist/postprocessor/autofix/AutoFixEngine.d.ts +48 -0
- package/dist/postprocessor/autofix/FixValidator.d.ts +23 -0
- package/dist/postprocessor/config.d.ts +6 -0
- package/dist/postprocessor/escalation/EscalationEngine.d.ts +154 -0
- package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +40 -0
- package/dist/postprocessor/redeploy/RedeployCoordinator.d.ts +91 -0
- package/dist/postprocessor/services/RegressionAnalysisService.d.ts +40 -0
- package/dist/postprocessor/services/RegressionAnalysisService.js +2 -2
- package/dist/postprocessor/success/SuccessHandler.d.ts +57 -0
- package/dist/postprocessor/triggers/APITrigger.d.ts +35 -0
- package/dist/postprocessor/triggers/GitHookTrigger.d.ts +38 -0
- package/dist/postprocessor/triggers/GitHookTrigger.js +14 -14
- package/dist/postprocessor/triggers/WebhookTrigger.d.ts +47 -0
- package/dist/postprocessor/types.d.ts +227 -0
- package/dist/processors/doc-write-guard.d.ts +6 -0
- package/dist/processors/implementations/agents-md-validation-processor.d.ts +63 -0
- package/dist/processors/implementations/agents-md-validation-processor.js +2 -2
- package/dist/processors/implementations/async-pattern-processor.d.ts +48 -0
- package/dist/processors/implementations/codex-compliance-processor.d.ts +7 -0
- package/dist/processors/implementations/commit-batcher-processor.d.ts +13 -0
- package/dist/processors/implementations/console-log-guard-processor.d.ts +33 -0
- package/dist/processors/implementations/coverage-analysis-processor.d.ts +20 -0
- package/dist/processors/implementations/error-boundary-processor.d.ts +7 -0
- package/dist/processors/implementations/inference-improvement-processor.d.ts +36 -0
- package/dist/processors/implementations/inference-improvement-processor.js +2 -2
- package/dist/processors/implementations/log-protection-processor.d.ts +30 -0
- package/dist/processors/implementations/log-protection-processor.js +2 -2
- package/dist/processors/implementations/nudge-processor.d.ts +22 -0
- package/dist/processors/implementations/performance-budget-processor.d.ts +50 -0
- package/dist/processors/implementations/postprocessor-chain-validator.d.ts +46 -0
- package/dist/processors/implementations/pre-validate-processor.d.ts +7 -0
- package/dist/processors/implementations/publish-preflight-processor.d.ts +38 -0
- package/dist/processors/implementations/publish-preflight-processor.js +3 -3
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +7 -0
- package/dist/processors/implementations/refactoring-logging-processor.d.ts +31 -0
- package/dist/processors/implementations/regression-testing-processor.d.ts +20 -0
- package/dist/processors/implementations/regression-testing-processor.js +2 -2
- package/dist/processors/implementations/session-capture-processor.d.ts +14 -0
- package/dist/processors/implementations/session-summary-processor.d.ts +27 -0
- package/dist/processors/implementations/session-summary-processor.js +2 -2
- package/dist/processors/implementations/spawn-governance-processor.d.ts +58 -0
- package/dist/processors/implementations/state-validation-processor.d.ts +11 -0
- package/dist/processors/implementations/storytelling-trigger-processor.d.ts +42 -0
- package/dist/processors/implementations/storytelling-trigger-processor.js +2 -2
- package/dist/processors/implementations/test-auto-creation-processor.d.ts +17 -0
- package/dist/processors/implementations/test-execution-processor.d.ts +11 -0
- package/dist/processors/implementations/typescript-compilation-processor.d.ts +38 -0
- package/dist/processors/implementations/version-compliance-processor.d.ts +112 -0
- package/dist/processors/processor-interfaces.d.ts +127 -0
- package/dist/processors/processor-manager.d.ts +80 -0
- package/dist/processors/processor-types.d.ts +190 -0
- 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/framework-reporting-system.d.ts +19 -0
- package/dist/reporting/log-parser.d.ts +10 -0
- package/dist/reporting/metrics.d.ts +15 -0
- package/dist/reporting/report-formatter.d.ts +5 -0
- package/dist/reporting/report-formatter.js +1 -1
- package/dist/reporting/types.d.ts +102 -0
- package/dist/scripts/activate-kernel-pipeline.d.ts +7 -0
- package/dist/scripts/activate-kernel-pipeline.js +2 -2
- package/dist/scripts/integration.d.ts +37 -0
- package/dist/scripts/pre-command +1 -1
- package/dist/security/comprehensive-security-audit.d.ts +158 -0
- package/dist/security/index.d.ts +13 -0
- package/dist/security/prompt-security-validator.d.ts +44 -0
- package/dist/security/security-agent-coordinator.d.ts +72 -0
- package/dist/security/security-auditor.d.ts +56 -0
- package/dist/security/security-hardener.d.ts +62 -0
- package/dist/security/security-hardening-system.d.ts +239 -0
- package/dist/security/security-headers.d.ts +64 -0
- package/dist/security/security-orchestration-layer.d.ts +119 -0
- package/dist/security/security-scanner.d.ts +119 -0
- package/dist/services/inference-tuner.d.ts +77 -0
- package/dist/services/inference-tuner.js +2 -2
- package/dist/session/index.d.ts +3 -0
- package/dist/session/session-cleanup-manager.d.ts +118 -0
- package/dist/session/session-monitor.d.ts +133 -0
- package/dist/session/session-state-manager.d.ts +145 -0
- package/dist/skills/hermes-agent/SKILL.md +11 -11
- package/dist/skills/registry.json +1 -1
- package/dist/skills/storyteller/SKILL.md +1 -1
- package/dist/skills/xray-orchestrator/SKILL.md +141 -0
- package/dist/skills/xray-orchestrator/index.d.ts +13 -0
- package/dist/skills/xray-orchestrator/index.js +224 -0
- package/dist/state/context-providers.d.ts +4 -0
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.js +2 -1
- package/dist/state/state-manager.d.ts +42 -0
- package/dist/state/state-manager.js +5 -4
- package/dist/state/state-types.d.ts +5 -0
- package/dist/testing/memory-regression-suite.d.ts +105 -0
- package/dist/utils/batch-operations.d.ts +25 -0
- package/dist/utils/codex-parser.d.ts +61 -0
- package/dist/utils/command-runner.d.ts +32 -0
- package/dist/utils/import-resolver.d.ts +54 -0
- package/dist/utils/import-resolver.js +1 -1
- package/dist/utils/language-detector.d.ts +44 -0
- package/dist/utils/path-resolver.d.ts +48 -0
- package/dist/utils/path-resolver.js +2 -2
- package/dist/utils/shutdown-handler.d.ts +27 -0
- package/dist/utils/test-template-generator.d.ts +25 -0
- package/dist/utils/token-manager.d.ts +48 -0
- package/dist/utils/token-manager.js +1 -1
- package/dist/validation/estimation-validator.d.ts +61 -0
- package/dist/validation/estimation-validator.js +1 -1
- package/dist/validation/report-content-validator.d.ts +42 -0
- package/package.json +4 -3
- package/scripts/hooks/pre-command +1 -1
- package/scripts/hooks/run-hook.js +2 -2
- package/scripts/node/auto-reflection-generator.mjs +2 -2
- package/scripts/node/postinstall.cjs +1 -1
- package/scripts/node/release.js +6 -6
- package/scripts/node/release.mjs +10 -10
- package/scripts/node/universal-version-manager.js +53 -54
- package/scripts/node/version-manager.mjs +1 -1
- package/src/integrations/grok/plugin/0xray/.mcp.json +3 -3
- package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/src/mcps/architect-tools.server.ts +4 -4
- package/src/mcps/auto-format.server.ts +4 -4
- package/src/mcps/boot-orchestrator.server.ts +4 -4
- package/src/mcps/config/server-config-registry.ts +7 -7
- package/src/mcps/connection/mcp-connection.ts +1 -1
- package/src/mcps/enforcer-tools.server.ts +4 -4
- package/src/mcps/estimation.server.ts +1 -1
- package/src/mcps/framework-compliance-audit.server.ts +4 -4
- package/src/mcps/framework-help.server.ts +7 -7
- package/src/mcps/in-process-skill-registry.ts +6 -6
- package/src/mcps/knowledge-skills/api-design.server.test.ts +8 -8
- package/src/mcps/knowledge-skills/api-design.server.ts +4 -4
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +4 -4
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +1 -1
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +1 -1
- package/src/mcps/knowledge-skills/code-review.server.ts +4 -4
- package/src/mcps/knowledge-skills/content-creator.server.ts +1 -1
- package/src/mcps/knowledge-skills/database-design.server.ts +4 -4
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +4 -4
- package/src/mcps/knowledge-skills/git-workflow.server.ts +4 -4
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +1 -1
- package/src/mcps/knowledge-skills/log-monitor.server.ts +1 -1
- package/src/mcps/knowledge-skills/mobile-development.server.ts +4 -4
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +3 -2
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +4 -4
- package/src/mcps/knowledge-skills/project-analysis.server.ts +1 -1
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +4 -4
- package/src/mcps/knowledge-skills/security-audit.server.test.ts +23 -23
- package/src/mcps/knowledge-skills/security-audit.server.ts +4 -4
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +1 -1
- package/src/mcps/knowledge-skills/session-management.server.ts +1 -1
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +1 -1
- package/src/mcps/knowledge-skills/strategist.server.ts +1 -1
- package/src/mcps/knowledge-skills/tech-writer.server.ts +5 -5
- package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +28 -28
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +4 -4
- package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +19 -19
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +4 -4
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +6 -6
- package/src/mcps/lint.server.ts +6 -6
- package/src/mcps/mcp-client.ts +3 -3
- package/src/mcps/model-health-check.server.ts +4 -4
- package/src/mcps/orchestrator/server.ts +2 -2
- package/src/mcps/performance-analysis.server.ts +4 -4
- package/src/mcps/processor-pipeline.server.ts +4 -4
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +5 -5
- package/src/mcps/security-scan.server.ts +4 -4
- package/src/mcps/simulation/server-simulations.ts +3 -3
- package/src/mcps/state-manager.server.ts +1 -1
- package/src/opencode/codex.codex +2 -2
- package/src/opencode/commands/dependency-audit.md +3 -3
- package/src/opencode/enforcer-config.json +2 -2
- package/src/skills/hermes-agent/SKILL.md +11 -11
- package/src/skills/registry.json +1 -1
- package/src/skills/storyteller/SKILL.md +1 -1
- package/src/skills/xray-orchestrator/SKILL.md +141 -0
- package/src/skills/xray-orchestrator/index.ts +268 -0
- package/.opencode/hooks/hook-metrics.json +0 -380
- package/.opencode/skills/api-design/SKILL.md +0 -37
- package/.opencode/skills/architect-tools/SKILL.md +0 -37
- package/.opencode/skills/architecture-patterns/SKILL.md +0 -37
- package/.opencode/skills/auto-format/SKILL.md +0 -37
- package/.opencode/skills/backend-engineer/SKILL.md +0 -49
- package/.opencode/skills/boot-orchestrator/SKILL.md +0 -37
- package/.opencode/skills/bug-triage/SKILL.md +0 -43
- package/.opencode/skills/code-analyzer/SKILL.md +0 -45
- package/.opencode/skills/code-review/SKILL.md +0 -52
- package/.opencode/skills/content-creator/SKILL.md +0 -38
- package/.opencode/skills/database-engineer/SKILL.md +0 -46
- package/.opencode/skills/devops-engineer/SKILL.md +0 -49
- package/.opencode/skills/enforcer/SKILL.md +0 -37
- package/.opencode/skills/framework-compliance-audit/SKILL.md +0 -37
- package/.opencode/skills/frontend-engineer/SKILL.md +0 -49
- package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +0 -41
- package/.opencode/skills/git-workflow/SKILL.md +0 -37
- package/.opencode/skills/growth-strategist/SKILL.md +0 -48
- package/.opencode/skills/hermes-agent/SKILL.md +0 -212
- package/.opencode/skills/inference-improve/SKILL.md +0 -97
- package/.opencode/skills/lint/SKILL.md +0 -37
- package/.opencode/skills/log-monitor/SKILL.md +0 -44
- package/.opencode/skills/mobile-developer/SKILL.md +0 -42
- package/.opencode/skills/model-health-check/SKILL.md +0 -37
- package/.opencode/skills/multimodal-looker/SKILL.md +0 -45
- package/.opencode/skills/orchestrator/SKILL.md +0 -37
- package/.opencode/skills/performance-analysis/SKILL.md +0 -37
- package/.opencode/skills/performance-engineer/SKILL.md +0 -41
- package/.opencode/skills/performance-optimization/SKILL.md +0 -37
- package/.opencode/skills/processor-pipeline/SKILL.md +0 -37
- package/.opencode/skills/project-analysis/SKILL.md +0 -42
- package/.opencode/skills/refactoring-strategies/SKILL.md +0 -37
- package/.opencode/skills/registry.json +0 -66
- package/.opencode/skills/researcher/SKILL.md +0 -37
- package/.opencode/skills/security-audit/SKILL.md +0 -47
- package/.opencode/skills/security-scan/SKILL.md +0 -37
- package/.opencode/skills/seo-consultant/SKILL.md +0 -43
- package/.opencode/skills/session-management/SKILL.md +0 -36
- package/.opencode/skills/state-manager/SKILL.md +0 -37
- package/.opencode/skills/storyteller/SKILL.md +0 -130
- package/.opencode/skills/strategist/SKILL.md +0 -32
- package/.opencode/skills/tech-writer/SKILL.md +0 -37
- package/.opencode/skills/testing-best-practices/SKILL.md +0 -37
- package/.opencode/skills/testing-strategy/SKILL.md +0 -43
- package/.opencode/skills/ui-ux-design/SKILL.md +0 -603
- package/scripts/validate-stringray-comprehensive.js +0 -636
- /package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boot Orchestrator (min documented consumer runtime compat shim from prior StringRay releases; primary Xray* paths + XRAY_||STRRAY_ env + .xray fallbacks only; 1-line per Scope Rule).
|
|
3
|
+
*/
|
|
4
|
+
import { XrayStateManager } from "../state/state-manager.js";
|
|
5
|
+
import { type MemoryStats } from "../monitoring/memory-monitor.js";
|
|
6
|
+
export interface BootSequenceConfig {
|
|
7
|
+
enableEnforcement: boolean;
|
|
8
|
+
codexValidation: boolean;
|
|
9
|
+
sessionManagement: boolean;
|
|
10
|
+
processorActivation: boolean;
|
|
11
|
+
agentLoading: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface BootResult {
|
|
14
|
+
success: boolean;
|
|
15
|
+
orchestratorLoaded: boolean;
|
|
16
|
+
sessionManagementActive: boolean;
|
|
17
|
+
processorsActivated: boolean;
|
|
18
|
+
enforcementEnabled: boolean;
|
|
19
|
+
codexComplianceActive: boolean;
|
|
20
|
+
agentsLoaded: string[];
|
|
21
|
+
errors: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare class BootOrchestrator {
|
|
24
|
+
private contextLoader;
|
|
25
|
+
private stateManager;
|
|
26
|
+
private processorManager;
|
|
27
|
+
private config;
|
|
28
|
+
private pluginRegistry?;
|
|
29
|
+
private pluginServerRegistry?;
|
|
30
|
+
private shutdownInitialized;
|
|
31
|
+
constructor(config?: Partial<BootSequenceConfig>, stateManager?: XrayStateManager);
|
|
32
|
+
/**
|
|
33
|
+
* Initialize delegation system components
|
|
34
|
+
*/
|
|
35
|
+
private initializeDelegationSystem;
|
|
36
|
+
private loadProcessorsConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Initialize plugin system and register MCP servers
|
|
39
|
+
*/
|
|
40
|
+
private initializePluginSystem;
|
|
41
|
+
/**
|
|
42
|
+
* Load orchestrator as the first component
|
|
43
|
+
*/
|
|
44
|
+
private loadOrchestrator;
|
|
45
|
+
/**
|
|
46
|
+
* Initialize session management system
|
|
47
|
+
*/
|
|
48
|
+
private initializeSessionManagement;
|
|
49
|
+
/**
|
|
50
|
+
* Activate pre/post processors
|
|
51
|
+
*/
|
|
52
|
+
private activateProcessors;
|
|
53
|
+
/**
|
|
54
|
+
* Load remaining agents after orchestrator
|
|
55
|
+
*/
|
|
56
|
+
private loadRemainingAgents;
|
|
57
|
+
/**
|
|
58
|
+
* Enable automatic enforcement activation
|
|
59
|
+
*/
|
|
60
|
+
private enableEnforcement;
|
|
61
|
+
/**
|
|
62
|
+
* Activate codex compliance checking during boot
|
|
63
|
+
*/
|
|
64
|
+
private activateCodexCompliance;
|
|
65
|
+
private initializeSecurityComponents;
|
|
66
|
+
private finalizeSecurityIntegration;
|
|
67
|
+
private runInitialSecurityAudit;
|
|
68
|
+
/**
|
|
69
|
+
* Validate processor health during boot
|
|
70
|
+
*/
|
|
71
|
+
private validateProcessorHealth;
|
|
72
|
+
/**
|
|
73
|
+
* Get current boot status information
|
|
74
|
+
*/
|
|
75
|
+
getBootStatus(): BootResult;
|
|
76
|
+
/**
|
|
77
|
+
* Set up comprehensive memory monitoring and alerting
|
|
78
|
+
*/
|
|
79
|
+
private setupMemoryMonitoring;
|
|
80
|
+
/**
|
|
81
|
+
* Perform comprehensive memory health check
|
|
82
|
+
*/
|
|
83
|
+
getMemoryHealth(): {
|
|
84
|
+
healthy: boolean;
|
|
85
|
+
issues: string[];
|
|
86
|
+
metrics: {
|
|
87
|
+
current: MemoryStats;
|
|
88
|
+
peak: MemoryStats;
|
|
89
|
+
average: number;
|
|
90
|
+
trend: string;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Execute the boot sequence (internal framework initialization)
|
|
95
|
+
*/
|
|
96
|
+
executeBootSequence(): Promise<BootResult>;
|
|
97
|
+
private loadXrayConfiguration;
|
|
98
|
+
}
|
|
99
|
+
export declare const bootOrchestrator: BootOrchestrator;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Boot Orchestrator (min documented consumer runtime compat shim from prior StringRay releases; primary Xray* paths + XRAY_||STRRAY_ env + .
|
|
2
|
+
* Boot Orchestrator (min documented consumer runtime compat shim from prior StringRay releases; primary Xray* paths + XRAY_||STRRAY_ env + .xray fallbacks only; 1-line per Scope Rule).
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { XrayContextLoader } from "./context-loader.js";
|
|
5
|
+
import { XrayStateManager } from "../state/state-manager.js";
|
|
6
6
|
import { ProcessorManager } from "../processors/processor-manager.js";
|
|
7
7
|
import { pathResolver } from "../utils/path-resolver.js";
|
|
8
8
|
import * as fs from "fs";
|
|
@@ -20,7 +20,7 @@ import { frameworkLogger } from "../core/framework-logger.js";
|
|
|
20
20
|
import { featuresConfigLoader } from "../core/features-config.js";
|
|
21
21
|
import { memoryMonitor } from "../monitoring/memory-monitor.js";
|
|
22
22
|
import { advancedProfiler } from "../monitoring/advanced-profiler.js";
|
|
23
|
-
import {
|
|
23
|
+
import { xrayConfigLoader } from "./config-loader.js";
|
|
24
24
|
import { PluginRegistry } from "../integrations/plugins/index.js";
|
|
25
25
|
import { PluginServerConfigRegistry } from "../mcps/config/index.js";
|
|
26
26
|
import { initializeGovernanceIntegration } from "../integrations/governance/index.js";
|
|
@@ -30,10 +30,10 @@ import { initializeGovernanceIntegration } from "../integrations/governance/inde
|
|
|
30
30
|
*/
|
|
31
31
|
function setupGracefulShutdown() {
|
|
32
32
|
// Prevent duplicate listeners
|
|
33
|
-
if (process.
|
|
33
|
+
if (process._xrayShutdownSetup) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
process.
|
|
36
|
+
process._xrayShutdownSetup = true;
|
|
37
37
|
let isShuttingDown = false;
|
|
38
38
|
process.on("SIGINT", async () => {
|
|
39
39
|
if (isShuttingDown) {
|
|
@@ -98,8 +98,8 @@ export class BootOrchestrator {
|
|
|
98
98
|
shutdownInitialized = false;
|
|
99
99
|
constructor(config = {}, stateManager) {
|
|
100
100
|
// Initialize components first for state management
|
|
101
|
-
this.contextLoader =
|
|
102
|
-
this.stateManager = stateManager || new
|
|
101
|
+
this.contextLoader = XrayContextLoader.getInstance();
|
|
102
|
+
this.stateManager = stateManager || new XrayStateManager();
|
|
103
103
|
this.processorManager = new ProcessorManager(this.stateManager);
|
|
104
104
|
this.config = {
|
|
105
105
|
enableEnforcement: true,
|
|
@@ -115,7 +115,7 @@ export class BootOrchestrator {
|
|
|
115
115
|
*/
|
|
116
116
|
async initializeDelegationSystem() {
|
|
117
117
|
try {
|
|
118
|
-
const agentDelegator = createAgentDelegator(this.stateManager,
|
|
118
|
+
const agentDelegator = createAgentDelegator(this.stateManager, xrayConfigLoader);
|
|
119
119
|
this.stateManager.set("delegation:agent_delegator", agentDelegator);
|
|
120
120
|
const sessionCoordinator = createSessionCoordinator(this.stateManager);
|
|
121
121
|
this.stateManager.set("delegation:session_coordinator", sessionCoordinator);
|
|
@@ -131,8 +131,8 @@ export class BootOrchestrator {
|
|
|
131
131
|
loadProcessorsConfig() {
|
|
132
132
|
try {
|
|
133
133
|
const configPaths = [
|
|
134
|
-
path.join(process.cwd(), ".
|
|
135
|
-
path.join(process.cwd(), ".opencode", "
|
|
134
|
+
path.join(process.cwd(), ".xray", "features.json"),
|
|
135
|
+
path.join(process.cwd(), ".opencode", "xray", "features.json"),
|
|
136
136
|
];
|
|
137
137
|
for (const configPath of configPaths) {
|
|
138
138
|
if (existsSync(configPath)) {
|
|
@@ -152,7 +152,7 @@ export class BootOrchestrator {
|
|
|
152
152
|
async initializePluginSystem(jobId) {
|
|
153
153
|
try {
|
|
154
154
|
frameworkLogger.log("boot-orchestrator", "initializing plugin system", "info", { jobId });
|
|
155
|
-
const pluginsDir = path.join(process.cwd(), ".
|
|
155
|
+
const pluginsDir = path.join(process.cwd(), ".xray", "plugins");
|
|
156
156
|
this.pluginRegistry = new PluginRegistry({
|
|
157
157
|
pluginsDir,
|
|
158
158
|
autoStart: true,
|
|
@@ -189,7 +189,7 @@ export class BootOrchestrator {
|
|
|
189
189
|
});
|
|
190
190
|
return false;
|
|
191
191
|
}
|
|
192
|
-
const orchestratorInstance = orchestratorModule.strRayOrchestrator;
|
|
192
|
+
const orchestratorInstance = orchestratorModule.xrayOrchestrator || orchestratorModule.strRayOrchestrator;
|
|
193
193
|
if (!orchestratorInstance) {
|
|
194
194
|
frameworkLogger.log("boot-orchestrator", "orchestrator-not-found", "error", { message: "Orchestrator instance not found in module" });
|
|
195
195
|
return false;
|
|
@@ -596,8 +596,8 @@ export class BootOrchestrator {
|
|
|
596
596
|
};
|
|
597
597
|
try {
|
|
598
598
|
frameworkLogger.log("boot-orchestrator", "loading xray configuration", "info", { jobId });
|
|
599
|
-
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .
|
|
600
|
-
await this.
|
|
599
|
+
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .xray fallbacks)
|
|
600
|
+
await this.loadXrayConfiguration(jobId);
|
|
601
601
|
frameworkLogger.log("boot-orchestrator", "xray configuration loaded", "success", { jobId });
|
|
602
602
|
// Phase 1: Initialize core systems
|
|
603
603
|
frameworkLogger.log("boot-orchestrator", "initializing core systems", "info", { jobId });
|
|
@@ -727,14 +727,14 @@ export class BootOrchestrator {
|
|
|
727
727
|
this.stateManager.set("boot:errors", result.errors);
|
|
728
728
|
return result;
|
|
729
729
|
}
|
|
730
|
-
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .
|
|
731
|
-
async
|
|
730
|
+
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .xray fallbacks)
|
|
731
|
+
async loadXrayConfiguration(jobId) {
|
|
732
732
|
try {
|
|
733
|
-
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .
|
|
734
|
-
const
|
|
735
|
-
version: "
|
|
733
|
+
// Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .xray fallbacks)
|
|
734
|
+
const xrayConfig = {
|
|
735
|
+
version: "2.0.0",
|
|
736
736
|
codex_enabled: true,
|
|
737
|
-
codex_version: "
|
|
737
|
+
codex_version: "v2.0.0",
|
|
738
738
|
codex_terms: [
|
|
739
739
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
740
740
|
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
@@ -793,13 +793,13 @@ export class BootOrchestrator {
|
|
|
793
793
|
},
|
|
794
794
|
};
|
|
795
795
|
// Store configuration in state manager for use by other components
|
|
796
|
-
this.stateManager.set("
|
|
797
|
-
this.stateManager.set("
|
|
798
|
-
this.stateManager.set("
|
|
799
|
-
this.stateManager.set("
|
|
800
|
-
this.stateManager.set("
|
|
801
|
-
this.stateManager.set("
|
|
802
|
-
this.stateManager.set("
|
|
796
|
+
this.stateManager.set("xray:config", xrayConfig);
|
|
797
|
+
this.stateManager.set("xray:version", xrayConfig.version);
|
|
798
|
+
this.stateManager.set("xray:codex_enabled", xrayConfig.codex_enabled);
|
|
799
|
+
this.stateManager.set("xray:codex_terms", xrayConfig.codex_terms);
|
|
800
|
+
this.stateManager.set("xray:monitoring_metrics", xrayConfig.monitoring_metrics);
|
|
801
|
+
this.stateManager.set("xray:monitoring_alerts", xrayConfig.monitoring_alerts);
|
|
802
|
+
this.stateManager.set("xray:agent_capabilities", xrayConfig.agent_capabilities);
|
|
803
803
|
await frameworkLogger.log("boot-orchestrator", "configuration-loaded", "success", { jobId });
|
|
804
804
|
}
|
|
805
805
|
catch (error) {
|
package/dist/core/bridge.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Xray Universal Bridge
|
|
5
5
|
*
|
|
6
|
-
* Standalone bridge that provides
|
|
6
|
+
* Standalone bridge that provides Xray framework capabilities
|
|
7
7
|
* to ANY consumer — no OpenCode dependency.
|
|
8
8
|
*
|
|
9
9
|
* Supports three transport modes:
|
|
@@ -84,7 +84,7 @@ function findProjectRoot() {
|
|
|
84
84
|
const pkgPath = join(dir, "package.json");
|
|
85
85
|
if (existsSync(pkgPath)) {
|
|
86
86
|
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
87
|
-
if (pkg.name === "
|
|
87
|
+
if (pkg.name === "0xray" || pkg.dependencies?.["0xray"]) {
|
|
88
88
|
return dir;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -219,11 +219,11 @@ async function handleHealth(input) {
|
|
|
219
219
|
*/
|
|
220
220
|
/** Codex candidate paths — single source of truth for both loadCodexFromFs and handleGetConfig */
|
|
221
221
|
function getCodexCandidates(projectRoot) {
|
|
222
|
-
const envDir = process.env.STRRAY_CONFIG_DIR;
|
|
222
|
+
const envDir = process.env.XRAY_CONFIG_DIR || process.env.STRRAY_CONFIG_DIR;
|
|
223
223
|
const candidates = [];
|
|
224
224
|
if (envDir) candidates.push(join(projectRoot, envDir, "codex.json"));
|
|
225
|
-
candidates.push(join(projectRoot, ".
|
|
226
|
-
candidates.push(join(projectRoot, ".opencode", "
|
|
225
|
+
candidates.push(join(projectRoot, ".xray", "codex.json"));
|
|
226
|
+
candidates.push(join(projectRoot, ".opencode", "xray", "codex.json"));
|
|
227
227
|
candidates.push(join(projectRoot, "codex.json"));
|
|
228
228
|
return candidates;
|
|
229
229
|
}
|
|
@@ -281,7 +281,7 @@ async function handleGetCodexPrompt(input, projectRoot, logDir) {
|
|
|
281
281
|
terms.sort((a, b) => (severityOrder[a.severity] || 3) - (severityOrder[b.severity] || 3));
|
|
282
282
|
if (maxTerms) terms = terms.slice(0, maxTerms);
|
|
283
283
|
|
|
284
|
-
const lines = [`##
|
|
284
|
+
const lines = [`## Xray Universal Development Codex v${termsSource.version}`];
|
|
285
285
|
const emojis = { blocking: "🔴", high: "🟡", medium: "🟢" };
|
|
286
286
|
const labels = { blocking: "BLOCKING", high: "HIGH PRIORITY", medium: "MEDIUM" };
|
|
287
287
|
|
|
@@ -348,8 +348,8 @@ async function handleGetConfig(input, projectRoot, logDir) {
|
|
|
348
348
|
// Load features.json
|
|
349
349
|
const featurePaths = [];
|
|
350
350
|
if (envDir) featurePaths.push(join(projectRoot, envDir, "features.json"));
|
|
351
|
-
featurePaths.push(join(projectRoot, ".
|
|
352
|
-
featurePaths.push(join(projectRoot, ".opencode", "
|
|
351
|
+
featurePaths.push(join(projectRoot, ".xray", "features.json"));
|
|
352
|
+
featurePaths.push(join(projectRoot, ".opencode", "xray", "features.json"));
|
|
353
353
|
|
|
354
354
|
let featurePath = null;
|
|
355
355
|
for (const p of featurePaths) {
|
|
@@ -604,7 +604,7 @@ function handleHooks(input, projectRoot) {
|
|
|
604
604
|
const { action, hooks } = input;
|
|
605
605
|
const hookTypes = hooks || ["pre-commit", "post-commit", "pre-push", "post-push"];
|
|
606
606
|
const gitHooksDir = join(projectRoot, ".git", "hooks");
|
|
607
|
-
const
|
|
607
|
+
const xrayHooksDir = join(projectRoot, "hooks");
|
|
608
608
|
|
|
609
609
|
if (!existsSync(gitHooksDir)) {
|
|
610
610
|
return { error: "Not a git repository — no .git/hooks directory" };
|
|
@@ -616,14 +616,14 @@ function handleHooks(input, projectRoot) {
|
|
|
616
616
|
if (action === "list" || action === "status") {
|
|
617
617
|
for (const hookName of hookTypes) {
|
|
618
618
|
const gitHook = join(gitHooksDir, hookName);
|
|
619
|
-
const
|
|
619
|
+
const xrayHook = join(xrayHooksDir, hookName);
|
|
620
620
|
|
|
621
621
|
if (!existsSync(gitHook)) {
|
|
622
622
|
result.missing.push(hookName);
|
|
623
623
|
} else {
|
|
624
624
|
try {
|
|
625
625
|
const content = readFileSync(gitHook, "utf-8");
|
|
626
|
-
if (content.includes("StringRay") || content.includes("strray") || content.includes("run-hook.js")) {
|
|
626
|
+
if (content.includes("Xray") || content.includes("StringRay") || content.includes("xray") || content.includes("strray") || content.includes("run-hook.js")) {
|
|
627
627
|
result.managed.push(hookName);
|
|
628
628
|
} else {
|
|
629
629
|
result.external.push(hookName);
|
|
@@ -633,8 +633,8 @@ function handleHooks(input, projectRoot) {
|
|
|
633
633
|
}
|
|
634
634
|
}
|
|
635
635
|
|
|
636
|
-
// Check if
|
|
637
|
-
if (!existsSync(
|
|
636
|
+
// Check if xray source hook exists
|
|
637
|
+
if (!existsSync(xrayHook)) {
|
|
638
638
|
result.stale.push(hookName);
|
|
639
639
|
}
|
|
640
640
|
}
|
|
@@ -644,7 +644,7 @@ function handleHooks(input, projectRoot) {
|
|
|
644
644
|
action,
|
|
645
645
|
hooks: result,
|
|
646
646
|
gitHooksDir,
|
|
647
|
-
|
|
647
|
+
xrayHooksDir,
|
|
648
648
|
};
|
|
649
649
|
}
|
|
650
650
|
|
|
@@ -655,7 +655,7 @@ function handleHooks(input, projectRoot) {
|
|
|
655
655
|
const errors = [];
|
|
656
656
|
|
|
657
657
|
for (const hookName of hookTypes) {
|
|
658
|
-
const src = join(
|
|
658
|
+
const src = join(xrayHooksDir, hookName);
|
|
659
659
|
const dst = join(gitHooksDir, hookName);
|
|
660
660
|
|
|
661
661
|
if (!existsSync(src)) {
|
|
@@ -664,11 +664,11 @@ function handleHooks(input, projectRoot) {
|
|
|
664
664
|
}
|
|
665
665
|
|
|
666
666
|
try {
|
|
667
|
-
// Backup existing non-
|
|
667
|
+
// Backup existing non-xray hooks
|
|
668
668
|
if (existsSync(dst)) {
|
|
669
669
|
const content = readFileSync(dst, "utf-8");
|
|
670
|
-
if (!content.includes("StringRay") && !content.includes("strray") && !content.includes("run-hook.js")) {
|
|
671
|
-
renameSync(dst, `${dst}.
|
|
670
|
+
if (!content.includes("Xray") && !content.includes("StringRay") && !content.includes("xray") && !content.includes("strray") && !content.includes("run-hook.js")) {
|
|
671
|
+
renameSync(dst, `${dst}.xray-backup`);
|
|
672
672
|
} else {
|
|
673
673
|
unlinkSync(dst);
|
|
674
674
|
}
|
|
@@ -699,15 +699,15 @@ function handleHooks(input, projectRoot) {
|
|
|
699
699
|
|
|
700
700
|
for (const hookName of hookTypes) {
|
|
701
701
|
const dst = join(gitHooksDir, hookName);
|
|
702
|
-
const backup = `${dst}.
|
|
702
|
+
const backup = `${dst}.xray-backup`;
|
|
703
703
|
|
|
704
704
|
if (!existsSync(dst)) continue;
|
|
705
705
|
|
|
706
706
|
try {
|
|
707
707
|
const content = readFileSync(dst, "utf-8");
|
|
708
|
-
const
|
|
708
|
+
const isXray = content.includes("Xray") || content.includes("StringRay") || content.includes("xray") || content.includes("strray") || content.includes("run-hook.js");
|
|
709
709
|
|
|
710
|
-
if (
|
|
710
|
+
if (isXray || lstatSync(dst).isSymbolicLink()) {
|
|
711
711
|
unlinkSync(dst);
|
|
712
712
|
|
|
713
713
|
// Restore backup if exists
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Formatter — Standalone Codex-to-Prompt Converter
|
|
3
|
+
*
|
|
4
|
+
* Converts 0xRay's Universal Development Codex terms into
|
|
5
|
+
* formatted system prompt text. No OpenCode dependency, no plugin
|
|
6
|
+
* API, no framework imports. Pure input/output.
|
|
7
|
+
*
|
|
8
|
+
* This is the decoupled replacement for the codex injection that
|
|
9
|
+
* previously lived inside the OpenCode plugin (xray-codex-injection.ts).
|
|
10
|
+
*
|
|
11
|
+
* Usage from any host (Node.js, Python via bridge, HTTP, etc.):
|
|
12
|
+
* import { formatCodexPrompt } from './codex-formatter.js';
|
|
13
|
+
* const prompt = formatCodexPrompt({ projectRoot: '/path' });
|
|
14
|
+
* // Append to system prompt
|
|
15
|
+
*
|
|
16
|
+
* @version 1.0.0
|
|
17
|
+
* @since 2026-03-28
|
|
18
|
+
*/
|
|
19
|
+
export interface CodexTerm {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description: string;
|
|
23
|
+
severity: "blocking" | "high" | "medium";
|
|
24
|
+
examples?: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface CodexConfig {
|
|
27
|
+
version: string;
|
|
28
|
+
terms: CodexTerm[];
|
|
29
|
+
categories?: Record<string, string[]>;
|
|
30
|
+
}
|
|
31
|
+
export interface FormatOptions {
|
|
32
|
+
/** Project root for config resolution (default: cwd) */
|
|
33
|
+
projectRoot?: string;
|
|
34
|
+
/** Include only terms matching these severity levels (default: all) */
|
|
35
|
+
severityFilter?: Array<"blocking" | "high" | "medium">;
|
|
36
|
+
/** Include examples for each term (default: false) */
|
|
37
|
+
includeExamples?: boolean;
|
|
38
|
+
/** Maximum number of terms to include (default: all) */
|
|
39
|
+
maxTerms?: number;
|
|
40
|
+
/** Custom header text (default: auto-generated) */
|
|
41
|
+
header?: string;
|
|
42
|
+
/** Include config path reference in footer (default: true) */
|
|
43
|
+
includeConfigPath?: boolean;
|
|
44
|
+
/** Compress output by omitting descriptions for medium-severity terms */
|
|
45
|
+
compressed?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface FormatResult {
|
|
48
|
+
/** The formatted prompt text */
|
|
49
|
+
prompt: string;
|
|
50
|
+
/** Number of terms included */
|
|
51
|
+
termCount: number;
|
|
52
|
+
/** Total terms available */
|
|
53
|
+
totalTerms: number;
|
|
54
|
+
/** Codex version */
|
|
55
|
+
version: string;
|
|
56
|
+
/** Config source path (or null if using built-in fallback) */
|
|
57
|
+
configPath: string | null;
|
|
58
|
+
/** Approximate character count */
|
|
59
|
+
charCount: number;
|
|
60
|
+
}
|
|
61
|
+
export declare const BUILTIN_CODEX: CodexConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Find codex.json using the standard priority chain.
|
|
64
|
+
* Mirrors config-paths.ts resolveCodexPath() but returns first match.
|
|
65
|
+
*/
|
|
66
|
+
export declare function findCodexPath(projectRoot?: string): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* Load and parse codex.json. Falls back to built-in codex if not found.
|
|
69
|
+
*/
|
|
70
|
+
export declare function loadCodex(projectRoot?: string): {
|
|
71
|
+
config: CodexConfig;
|
|
72
|
+
source: string | null;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Format codex terms into a system-prompt-ready string.
|
|
76
|
+
*
|
|
77
|
+
* This is the primary export. Any host (OpenCode, Hermes, Claude Desktop,
|
|
78
|
+
* custom agent) can call this to get enforcement text for their system prompt.
|
|
79
|
+
*/
|
|
80
|
+
export declare function formatCodexPrompt(options?: FormatOptions): FormatResult;
|
|
81
|
+
/**
|
|
82
|
+
* Get codex as a structured JSON object (for programmatic consumers).
|
|
83
|
+
*/
|
|
84
|
+
export declare function getCodexConfig(options?: {
|
|
85
|
+
projectRoot?: string;
|
|
86
|
+
}): {
|
|
87
|
+
version: string;
|
|
88
|
+
terms: CodexTerm[];
|
|
89
|
+
termCount: number;
|
|
90
|
+
source: string | null;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Get a minimal codex prompt for token-constrained environments.
|
|
94
|
+
* Only includes blocking terms, no descriptions.
|
|
95
|
+
*/
|
|
96
|
+
export declare function formatMinimalCodexPrompt(options?: FormatOptions): FormatResult;
|
|
@@ -89,8 +89,8 @@ export function findCodexPath(projectRoot) {
|
|
|
89
89
|
if (envDir) {
|
|
90
90
|
candidates.push(resolve(root, envDir, "codex.json"));
|
|
91
91
|
}
|
|
92
|
-
candidates.push(join(root, ".
|
|
93
|
-
candidates.push(join(root, ".opencode", "
|
|
92
|
+
candidates.push(join(root, ".xray", "codex.json"));
|
|
93
|
+
candidates.push(join(root, ".opencode", "xray", "codex.json"));
|
|
94
94
|
// Additional fallback locations (for standalone usage)
|
|
95
95
|
candidates.push(join(root, "codex.json"));
|
|
96
96
|
candidates.push(join(root, "src", "codex.json"));
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0xRay Codex Context Injector Hook
|
|
3
|
+
*
|
|
4
|
+
* Injects Universal Development Codex v1.2.0 context into agent operations.
|
|
5
|
+
* Follows production-tested pattern from rules-injector.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-01-06
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Create xray-codex-injector hook
|
|
12
|
+
*
|
|
13
|
+
* This hook injects codex context into tool outputs and displays
|
|
14
|
+
* a welcome message on agent startup, following the production-tested
|
|
15
|
+
* pattern from OpenCode's rules-injector.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createXrayCodexInjectorHook(): {
|
|
18
|
+
name: "xray-codex-injector";
|
|
19
|
+
hooks: {
|
|
20
|
+
"agent.start": (sessionId: string) => Promise<void>;
|
|
21
|
+
"tool.execute.before": (input: {
|
|
22
|
+
tool: string;
|
|
23
|
+
args?: Record<string, unknown>;
|
|
24
|
+
}, sessionId: string) => Promise<void>;
|
|
25
|
+
"tool.execute.after": (input: {
|
|
26
|
+
tool: string;
|
|
27
|
+
args?: Record<string, unknown>;
|
|
28
|
+
}, output: {
|
|
29
|
+
output?: string;
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}, sessionId: string) => Promise<{
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
output?: string;
|
|
34
|
+
} | {
|
|
35
|
+
output: string;
|
|
36
|
+
}>;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Get codex statistics for debugging
|
|
41
|
+
*/
|
|
42
|
+
export declare function getCodexStats(sessionId: string): {
|
|
43
|
+
loaded: boolean;
|
|
44
|
+
fileCount: number;
|
|
45
|
+
totalTerms: number;
|
|
46
|
+
version: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Clear codex cache (useful for testing or forced reload)
|
|
50
|
+
*/
|
|
51
|
+
export declare function clearCodexCache(sessionId?: string): void;
|
|
52
|
+
/**
|
|
53
|
+
* CodexInjector class for plugin compatibility
|
|
54
|
+
*/
|
|
55
|
+
export declare class CodexInjector {
|
|
56
|
+
injectCodexRules(context: Record<string, unknown>, options: {
|
|
57
|
+
priority?: string;
|
|
58
|
+
mergeStrategy?: string;
|
|
59
|
+
}): Record<string, unknown>;
|
|
60
|
+
getCodexStats(): {
|
|
61
|
+
loaded: boolean;
|
|
62
|
+
fileCount: number;
|
|
63
|
+
totalTerms: number;
|
|
64
|
+
version: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Permissive comment validation - recognizes that comments are beneficial
|
|
68
|
+
* Only flags truly problematic patterns, provides guidance not requirements
|
|
69
|
+
*/
|
|
70
|
+
validateCommentsPermissively(content: string): {
|
|
71
|
+
guidance: string[];
|
|
72
|
+
concerns: string[];
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export { createXrayCodexInjectorHook as createStringRayCodexInjectorHook };
|
|
@@ -13,7 +13,7 @@ import { frameworkLogger } from "../core/framework-logger.js";
|
|
|
13
13
|
import { resolveCodexPath } from "./config-paths.js";
|
|
14
14
|
// Dynamic imports for cross-environment compatibility
|
|
15
15
|
let extractCodexMetadata;
|
|
16
|
-
let
|
|
16
|
+
let XrayContextLoader;
|
|
17
17
|
let importsInitialized = false;
|
|
18
18
|
async function initializeImports() {
|
|
19
19
|
if (importsInitialized)
|
|
@@ -22,13 +22,13 @@ async function initializeImports() {
|
|
|
22
22
|
const codexParser = await import("../utils/codex-parser.js");
|
|
23
23
|
const contextLoaderModule = await import("./context-loader.js");
|
|
24
24
|
extractCodexMetadata = codexParser.extractCodexMetadata;
|
|
25
|
-
|
|
25
|
+
XrayContextLoader = contextLoaderModule.XrayContextLoader;
|
|
26
26
|
}
|
|
27
27
|
catch {
|
|
28
28
|
const codexParser = await import("../utils/codex-parser");
|
|
29
29
|
const contextLoaderModule = await import("./context-loader");
|
|
30
30
|
extractCodexMetadata = codexParser.extractCodexMetadata;
|
|
31
|
-
|
|
31
|
+
XrayContextLoader = contextLoaderModule.XrayContextLoader;
|
|
32
32
|
}
|
|
33
33
|
importsInitialized = true;
|
|
34
34
|
}
|
|
@@ -38,7 +38,7 @@ async function initializeImports() {
|
|
|
38
38
|
const codexCache = new Map();
|
|
39
39
|
/**
|
|
40
40
|
* Codex file locations resolved through the standard priority chain.
|
|
41
|
-
* Uses config-paths.ts resolver so
|
|
41
|
+
* Uses config-paths.ts resolver so XRAY_CONFIG_DIR and .xray/ work.
|
|
42
42
|
*/
|
|
43
43
|
function getCodexFileLocations(projectRoot) {
|
|
44
44
|
const root = projectRoot || process.cwd();
|
|
@@ -68,7 +68,7 @@ async function createCodexContextEntry(filePath, content) {
|
|
|
68
68
|
}
|
|
69
69
|
const metadata = extractCodexMetadata(content);
|
|
70
70
|
return {
|
|
71
|
-
id: `
|
|
71
|
+
id: `xray-codex-${path.basename(filePath)}`,
|
|
72
72
|
source: filePath,
|
|
73
73
|
content,
|
|
74
74
|
priority: "critical",
|
|
@@ -121,15 +121,15 @@ function formatCodexContext(contexts, sessionId) {
|
|
|
121
121
|
return parts.join("\n");
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
|
-
* Create
|
|
124
|
+
* Create xray-codex-injector hook
|
|
125
125
|
*
|
|
126
126
|
* This hook injects codex context into tool outputs and displays
|
|
127
127
|
* a welcome message on agent startup, following the production-tested
|
|
128
128
|
* pattern from OpenCode's rules-injector.
|
|
129
129
|
*/
|
|
130
|
-
export function
|
|
130
|
+
export function createXrayCodexInjectorHook() {
|
|
131
131
|
return {
|
|
132
|
-
name: "
|
|
132
|
+
name: "xray-codex-injector",
|
|
133
133
|
hooks: {
|
|
134
134
|
"agent.start": async (sessionId) => {
|
|
135
135
|
const jobId = `agent-start-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
@@ -145,7 +145,7 @@ export function createStringRayCodexInjectorHook() {
|
|
|
145
145
|
await frameworkLogger.log("codex-injector", "codex context loaded successfully", "success", { jobId, ...stats });
|
|
146
146
|
}
|
|
147
147
|
else {
|
|
148
|
-
await frameworkLogger.log("codex-injector", "-no-codex-files-found-checked-
|
|
148
|
+
await frameworkLogger.log("codex-injector", "-no-codex-files-found-checked-xray-codex-json-co", "info", {
|
|
149
149
|
message: `⚠️ No codex files found. Checked: ${getCodexFileLocations().join(", ")}`,
|
|
150
150
|
});
|
|
151
151
|
await frameworkLogger.log("codex-injector", "no codex files found", "error", { jobId });
|
|
@@ -193,7 +193,7 @@ export function createStringRayCodexInjectorHook() {
|
|
|
193
193
|
await frameworkLogger.log("codex-injector", "codex context loaded for validation", "success", { jobId, contextCount: codexContexts.length });
|
|
194
194
|
// Use the initialized context loader
|
|
195
195
|
await initializeImports();
|
|
196
|
-
const ContextLoaderClass =
|
|
196
|
+
const ContextLoaderClass = XrayContextLoader;
|
|
197
197
|
const contextLoader = new ContextLoaderClass();
|
|
198
198
|
const loadResult = await contextLoader.loadCodexContext(sessionId);
|
|
199
199
|
if (!loadResult.success || !loadResult.context) {
|
|
@@ -422,3 +422,4 @@ export class CodexInjector {
|
|
|
422
422
|
return { guidance, concerns };
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
|
+
export { createXrayCodexInjectorHook as createStringRayCodexInjectorHook };
|