0xray 3.0.14 β 3.1.1
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/dependency-audit.md +3 -3
- package/.opencode/commands/summary-logger.md +4 -4
- package/.opencode/enforcer-config.json +2 -2
- package/.opencode/hooks/post-commit +1 -1
- package/.opencode/init.sh +10 -4
- package/.plugin/plugin.json +11 -0
- package/AGENTS-consumer.md +46 -0
- package/AGENTS.md +10 -10
- package/LICENSE +1 -1
- package/README.md +8 -8
- package/SKILLS.md +140 -0
- package/dist/.gitignore.default +59 -0
- package/dist/AGENTS.md +10 -10
- package/dist/CHANGELOG.md +34 -0
- package/dist/LICENSE +1 -1
- package/dist/README.md +8 -8
- package/dist/SKILLS.md +140 -0
- package/dist/agents/index.js +3 -1
- package/dist/agents/registry.js +13 -0
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/architect/architectural-integrity.js +3 -3
- package/dist/benchmark/performance-benchmark.js +4 -3
- package/dist/cli/commands/antigravity-status.js +23 -23
- package/dist/cli/commands/credible-init.js +1 -1
- package/dist/cli/commands/hermes-install.js +12 -4
- package/dist/cli/commands/mcp-install.js +1 -1
- package/dist/cli/commands/openclaw-install.js +10 -1
- package/dist/cli/commands/opencode-install.js +22 -0
- package/dist/cli/commands/plugin-commands.js +2 -2
- package/dist/cli/commands/publish-agent.js +5 -5
- package/dist/cli/commands/skill-install.js +39 -2
- package/dist/cli/commands/status.js +8 -3
- package/dist/cli/commands/storyteller.js +2 -2
- package/dist/cli/index.js +17 -11
- package/dist/cli/server.js +4 -4
- package/dist/core/activity-logger.js +4 -4
- package/dist/core/agent-spawn-gate.js +1 -1
- package/dist/core/boot-orchestrator.js +30 -31
- package/dist/core/bridge.mjs +26 -26
- package/dist/core/codex-formatter.js +2 -3
- package/dist/core/codex-injector.js +7 -7
- package/dist/core/config-loader.js +3 -2
- package/dist/core/config-paths.js +38 -31
- package/dist/core/context-loader.js +5 -5
- package/dist/core/features-config.js +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/logging-config.js +7 -7
- package/dist/core/orchestrator.js +2 -2
- package/dist/core/system-prompt-generator.js +2 -2
- package/dist/core/xray-activation.js +42 -41
- package/dist/delegation/agent-delegator.js +3 -3
- package/dist/enforcement/enforcer-tools.js +4 -4
- package/dist/enforcement/loaders/codex-loader.js +2 -2
- package/dist/execution/opencode-cli-invoker.js +1 -1
- package/dist/governance/governance-service.js +1 -1
- package/dist/governance/llm-governance-provider.js +223 -0
- package/dist/index.js +6 -6
- package/dist/inference/deploy-verifier.js +1 -1
- package/dist/inference/inference-cycle.js +16 -16
- package/dist/integrations/base/README.md +1 -1
- package/dist/integrations/enforcement-gate.js +2 -2
- package/dist/integrations/governance/index.js +1 -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 +90 -79
- package/dist/integrations/hermes-agent/after-install.md +14 -14
- package/dist/integrations/hermes-agent/bridge.mjs +60 -25
- package/dist/integrations/hermes-agent/plugin.yaml +5 -5
- package/dist/integrations/hermes-agent/schemas.py +61 -12
- package/dist/integrations/hermes-agent/test_plugin.py +124 -124
- package/dist/integrations/hermes-agent/tools.py +129 -25
- package/dist/integrations/openclaw/README.md +6 -6
- package/dist/integrations/openclaw/config.js +1 -1
- package/dist/integrations/openclaw/index.js +2 -2
- package/dist/integrations/openclaw/types.js +3 -3
- package/dist/integrations/plugins/plugin-integration.js +1 -1
- package/dist/integrations/plugins/plugin-registry.js +3 -3
- package/dist/mcps/architect-tools.server.js +3 -2
- package/dist/mcps/auto-format.server.js +2 -2
- package/dist/mcps/boot-orchestrator.server.js +2 -2
- package/dist/mcps/config/config-loader.js +40 -9
- package/dist/mcps/config/server-config-registry.js +10 -10
- package/dist/mcps/connection/mcp-connection.js +1 -1
- package/dist/mcps/enforcer-tools.server.js +2 -2
- package/dist/mcps/estimation.server.js +3 -2
- package/dist/mcps/framework-compliance-audit.server.js +2 -2
- package/dist/mcps/framework-help.server.js +9 -8
- package/dist/mcps/governance.server.js +8 -4
- package/dist/mcps/knowledge-skills/api-design.server.js +3 -2
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +3 -2
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +3 -3
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +2 -2
- package/dist/mcps/knowledge-skills/code-review.server.js +14 -39
- package/dist/mcps/knowledge-skills/content-creator.server.js +3 -3
- package/dist/mcps/knowledge-skills/database-design.server.js +2 -2
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +3 -2
- package/dist/mcps/knowledge-skills/git-workflow.server.js +3 -2
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +3 -3
- package/dist/mcps/knowledge-skills/log-monitor.server.js +3 -3
- package/dist/mcps/knowledge-skills/mobile-development.server.js +3 -3
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +3 -3
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +2 -2
- package/dist/mcps/knowledge-skills/project-analysis.server.js +2 -2
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +3 -2
- package/dist/mcps/knowledge-skills/security-audit.server.js +14 -44
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +3 -2
- package/dist/mcps/knowledge-skills/session-management.server.js +3 -2
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +105 -3
- package/dist/mcps/knowledge-skills/strategist.server.js +3 -3
- package/dist/mcps/knowledge-skills/tech-writer.server.js +3 -3
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +3 -2
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +2 -2
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +5 -4
- package/dist/mcps/lint.server.js +4 -4
- package/dist/mcps/mcp-client.js +5 -5
- package/dist/mcps/model-health-check.server.js +3 -2
- package/dist/mcps/orchestrator/server.js +4 -3
- package/dist/mcps/orchestrator.server.js +2 -1
- package/dist/mcps/performance-analysis.server.js +2 -2
- package/dist/mcps/processor-pipeline.server.js +3 -2
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.js +14 -39
- package/dist/mcps/security-scan.server.js +2 -2
- package/dist/mcps/simulation/server-simulations.js +3 -3
- package/dist/mcps/state-manager.server.js +5 -5
- package/dist/metrics/agent-metrics.js +1 -1
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +4 -4
- package/dist/orchestrator/intelligent-commit-batcher.js +2 -3
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +9 -9
- package/dist/orchestrator/orchestrator.js +9 -8
- package/dist/orchestrator/universal-registry-bridge.js +4 -4
- package/dist/postprocessor/PostProcessor.js +9 -9
- package/dist/postprocessor/services/RegressionAnalysisService.js +4 -4
- package/dist/postprocessor/triggers/GitHookTrigger.js +18 -18
- package/dist/processors/implementations/agents-md-validation-processor.js +2 -2
- package/dist/processors/implementations/inference-improvement-processor.js +1 -2
- package/dist/processors/implementations/log-protection-processor.js +2 -2
- package/dist/processors/implementations/publish-preflight-processor.js +2 -3
- package/dist/processors/implementations/regression-testing-processor.js +2 -2
- package/dist/processors/implementations/session-summary-processor.js +2 -2
- package/dist/processors/implementations/storytelling-trigger-processor.js +1 -2
- 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 +4 -4
- package/dist/scripts/pre-command +1 -1
- package/dist/services/inference-tuner.js +2 -2
- 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 +42 -42
- 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/state/index.js +1 -1
- package/dist/state/state-manager.js +3 -4
- package/dist/utils/import-resolver.js +1 -1
- package/dist/utils/path-resolver.js +2 -2
- package/dist/utils/token-manager.js +1 -1
- package/dist/validation/estimation-validator.js +1 -1
- 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/pre-publish-guard.js +13 -9
- package/scripts/node/setup-xai-oauth.mjs +244 -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/architect-tools.server.ts +2 -2
- package/src/mcps/auto-format.server.ts +2 -2
- package/src/mcps/boot-orchestrator.server.ts +2 -2
- package/src/mcps/config/__tests__/config-loader.test.ts +29 -33
- package/src/mcps/config/__tests__/server-config-registry.test.ts +12 -12
- package/src/mcps/config/config-loader.ts +50 -11
- package/src/mcps/config/server-config-registry.ts +10 -10
- package/src/mcps/connection/mcp-connection.ts +1 -1
- package/src/mcps/enforcer-tools.server.ts +2 -2
- package/src/mcps/estimation.server.ts +3 -2
- package/src/mcps/framework-compliance-audit.server.ts +2 -2
- package/src/mcps/framework-help.server.ts +9 -8
- package/src/mcps/governance.server.ts +8 -3
- package/src/mcps/knowledge-skills/api-design.server.ts +3 -2
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +2 -2
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +2 -2
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +2 -2
- package/src/mcps/knowledge-skills/code-review.server.ts +21 -36
- package/src/mcps/knowledge-skills/content-creator.server.ts +3 -3
- package/src/mcps/knowledge-skills/database-design.server.ts +2 -2
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +3 -2
- package/src/mcps/knowledge-skills/git-workflow.server.ts +3 -2
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +3 -3
- package/src/mcps/knowledge-skills/log-monitor.server.ts +3 -3
- package/src/mcps/knowledge-skills/mobile-development.server.ts +3 -3
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +3 -3
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +2 -2
- package/src/mcps/knowledge-skills/project-analysis.server.ts +2 -2
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +3 -2
- package/src/mcps/knowledge-skills/security-audit.server.ts +21 -40
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +3 -2
- package/src/mcps/knowledge-skills/session-management.server.ts +3 -2
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +113 -3
- package/src/mcps/knowledge-skills/strategist.server.ts +3 -3
- package/src/mcps/knowledge-skills/tech-writer.server.ts +3 -3
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +3 -2
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +2 -2
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +5 -4
- package/src/mcps/lint.server.ts +4 -4
- package/src/mcps/mcp-client.ts +5 -5
- package/src/mcps/model-health-check.server.ts +2 -2
- package/src/mcps/orchestrator/server.ts +4 -3
- package/src/mcps/orchestrator.server.ts +2 -1
- package/src/mcps/performance-analysis.server.ts +2 -2
- package/src/mcps/processor-pipeline.server.ts +3 -2
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +21 -36
- package/src/mcps/security-scan.server.ts +2 -2
- package/src/mcps/simulation/server-simulations.ts +3 -3
- package/src/mcps/state-manager.server.ts +5 -5
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/dependency-audit.md +3 -3
- package/src/opencode/commands/summary-logger.md +4 -4
- 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 +42 -42
- 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/xray/agents_template.md +46 -0
- package/xray/codex.json +598 -0
- package/dist/plugin/xray-codex-injection.js +0 -857
- /package/dist/integrations/openclaw/hooks/{strray-hooks.js β xray-hooks.js} +0 -0
|
@@ -73,7 +73,7 @@ export const researcherSimulations = {
|
|
|
73
73
|
* Framework Help server simulations
|
|
74
74
|
*/
|
|
75
75
|
export const frameworkHelpSimulations = {
|
|
76
|
-
|
|
76
|
+
xray_get_capabilities: () => ({
|
|
77
77
|
content: [
|
|
78
78
|
{
|
|
79
79
|
type: 'text',
|
|
@@ -104,7 +104,7 @@ export const frameworkHelpSimulations = {
|
|
|
104
104
|
},
|
|
105
105
|
],
|
|
106
106
|
}),
|
|
107
|
-
|
|
107
|
+
xray_get_commands: () => ({
|
|
108
108
|
content: [
|
|
109
109
|
{
|
|
110
110
|
type: 'text',
|
|
@@ -131,7 +131,7 @@ framework-reporting-system - Generate comprehensive framework reports
|
|
|
131
131
|
},
|
|
132
132
|
],
|
|
133
133
|
}),
|
|
134
|
-
|
|
134
|
+
xray_explain_capability: () => ({
|
|
135
135
|
content: [
|
|
136
136
|
{
|
|
137
137
|
type: 'text',
|
|
@@ -9,14 +9,14 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
|
|
|
9
9
|
import fs from "fs";
|
|
10
10
|
import path from "path";
|
|
11
11
|
import { frameworkLogger, generateJobId } from "../core/framework-logger.js";
|
|
12
|
-
class
|
|
12
|
+
class XrayStateManagerServer {
|
|
13
13
|
server;
|
|
14
14
|
state = new Map();
|
|
15
15
|
stateFile;
|
|
16
16
|
backups = new Map();
|
|
17
17
|
constructor() {
|
|
18
18
|
this.server = new Server({
|
|
19
|
-
name: "state-manager", version: "1.
|
|
19
|
+
name: "state-manager", version: "3.1.0",
|
|
20
20
|
}, {
|
|
21
21
|
capabilities: {
|
|
22
22
|
tools: {},
|
|
@@ -630,8 +630,8 @@ ${results.repairedKeys.length > 0 ? `**Repaired Keys:**\n${results.repairedKeys.
|
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
// Start the server if run directly
|
|
633
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
634
|
-
const server = new
|
|
633
|
+
if (import.meta.url === `file://${fs.realpathSync(process.argv[1])}`) {
|
|
634
|
+
const server = new XrayStateManagerServer();
|
|
635
635
|
server.run().catch((error) => frameworkLogger.log("mcps/state-manager", "run", "error", { error: String(error) }));
|
|
636
636
|
}
|
|
637
|
-
export {
|
|
637
|
+
export { XrayStateManagerServer };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Consumer runtime compat shim from prior
|
|
1
|
+
// Consumer runtime compat shim from prior 0xRay releases (1-line min per Scope Rule; primary xray paths + .xray fallbacks)
|
|
2
2
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
3
3
|
const DEFAULT_RETENTION_CONFIG = {
|
|
4
4
|
maxEntries: 10000,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Enhanced Multi-Agent Orchestration with Clickable Monitoring
|
|
3
3
|
* Integrates subagent spawning visibility and lifecycle management
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { XrayStateManager } from "../state/state-manager.js";
|
|
6
6
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
7
7
|
import { ComplexityAnalyzer, } from "../delegation/complexity-analyzer.js";
|
|
8
8
|
import { createAgentDelegator, } from "../delegation/agent-delegator.js";
|
|
9
|
-
import {
|
|
9
|
+
import { xrayConfigLoader } from "../core/config-loader.js";
|
|
10
10
|
import { agentSpawnGovernor } from "./agent-spawn-governor.js";
|
|
11
11
|
import { spawnGate } from "../core/agent-spawn-gate.js";
|
|
12
12
|
export class EnhancedMultiAgentOrchestrator {
|
|
@@ -17,9 +17,9 @@ export class EnhancedMultiAgentOrchestrator {
|
|
|
17
17
|
executionContext;
|
|
18
18
|
cleanupTimer = null;
|
|
19
19
|
constructor(stateManager, isMainOrchestrator = false) {
|
|
20
|
-
this.stateManager = stateManager || new
|
|
20
|
+
this.stateManager = stateManager || new XrayStateManager();
|
|
21
21
|
this.complexityAnalyzer = new ComplexityAnalyzer();
|
|
22
|
-
this.agentDelegator = createAgentDelegator(this.stateManager,
|
|
22
|
+
this.agentDelegator = createAgentDelegator(this.stateManager, xrayConfigLoader);
|
|
23
23
|
this.state = {
|
|
24
24
|
activeAgents: new Map(),
|
|
25
25
|
pendingSpawns: [],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Intelligent Commit Batcher - Batches related changes for optimal commit history
|
|
3
3
|
* Implements configurable thresholds for file count, time windows, and risk levels
|
|
4
4
|
*
|
|
5
|
-
* Configuration is read from .
|
|
5
|
+
* Configuration is read from .xray/features.json -> commit_cycle
|
|
6
6
|
*/
|
|
7
7
|
import * as fs from "fs";
|
|
8
8
|
import * as path from "path";
|
|
@@ -36,8 +36,7 @@ export class IntelligentCommitBatcher {
|
|
|
36
36
|
loadFeaturesConfig() {
|
|
37
37
|
try {
|
|
38
38
|
const configPaths = [
|
|
39
|
-
path.join(process.cwd(), ".
|
|
40
|
-
path.join(process.cwd(), ".opencode", "strray", "features.json"),
|
|
39
|
+
path.join(process.cwd(), ".xray", "features.json"),
|
|
41
40
|
];
|
|
42
41
|
for (const configPath of configPaths) {
|
|
43
42
|
if (fs.existsSync(configPath)) {
|
|
@@ -10,22 +10,22 @@
|
|
|
10
10
|
import { KernelOrchestrator } from "../core/orchestrator.js";
|
|
11
11
|
import { enhancedMultiAgentOrchestrator } from "./enhanced-multi-agent-orchestrator.js";
|
|
12
12
|
import { createAgentDelegator } from "../delegation/agent-delegator.js";
|
|
13
|
-
import {
|
|
13
|
+
import { XrayStateManager } from "../state/state-manager.js";
|
|
14
14
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
15
15
|
import { ComplexityAnalyzer } from "../delegation/complexity-analyzer.js";
|
|
16
|
-
import {
|
|
16
|
+
import { xrayConfigLoader } from "../core/config-loader.js";
|
|
17
17
|
export class MultiAgentOrchestrationCoordinator {
|
|
18
|
-
|
|
18
|
+
xrayOrchestrator;
|
|
19
19
|
enhancedOrchestrator;
|
|
20
20
|
agentDelegator;
|
|
21
21
|
stateManager;
|
|
22
22
|
complexityAnalyzer;
|
|
23
23
|
coordinationMetrics;
|
|
24
24
|
constructor(stateManager) {
|
|
25
|
-
this.stateManager = stateManager || new
|
|
26
|
-
this.
|
|
25
|
+
this.stateManager = stateManager || new XrayStateManager();
|
|
26
|
+
this.xrayOrchestrator = new KernelOrchestrator();
|
|
27
27
|
this.enhancedOrchestrator = enhancedMultiAgentOrchestrator;
|
|
28
|
-
this.agentDelegator = createAgentDelegator(this.stateManager,
|
|
28
|
+
this.agentDelegator = createAgentDelegator(this.stateManager, xrayConfigLoader);
|
|
29
29
|
this.complexityAnalyzer = new ComplexityAnalyzer();
|
|
30
30
|
this.coordinationMetrics = {
|
|
31
31
|
totalWorkflows: 0,
|
|
@@ -43,7 +43,7 @@ export class MultiAgentOrchestrationCoordinator {
|
|
|
43
43
|
initializeCoordinationSystem() {
|
|
44
44
|
// Register coordination components in state manager
|
|
45
45
|
this.stateManager.set("coordination:main_coordinator", this);
|
|
46
|
-
this.stateManager.set("coordination:
|
|
46
|
+
this.stateManager.set("coordination:xray_orchestrator", this.xrayOrchestrator);
|
|
47
47
|
this.stateManager.set("coordination:enhanced_orchestrator", this.enhancedOrchestrator);
|
|
48
48
|
this.stateManager.set("coordination:agent_delegator", this.agentDelegator);
|
|
49
49
|
this.stateManager.set("coordination:metrics", this.coordinationMetrics);
|
|
@@ -175,7 +175,7 @@ export class MultiAgentOrchestrationCoordinator {
|
|
|
175
175
|
dependencies: [],
|
|
176
176
|
subagentType: "orchestrator",
|
|
177
177
|
};
|
|
178
|
-
const result = await this.
|
|
178
|
+
const result = await this.xrayOrchestrator.executeComplexTask(task.description, [task]);
|
|
179
179
|
result.forEach((r) => {
|
|
180
180
|
taskResults.push({
|
|
181
181
|
success: r.success,
|
|
@@ -448,7 +448,7 @@ export class MultiAgentOrchestrationCoordinator {
|
|
|
448
448
|
async shutdown() {
|
|
449
449
|
frameworkLogger.log("orchestration-coordinator", "Shutting down multi-agent orchestration coordinator", "info");
|
|
450
450
|
await this.enhancedOrchestrator.shutdown();
|
|
451
|
-
await this.
|
|
451
|
+
await this.xrayOrchestrator.getStatus(); // Just get status, no actual shutdown method
|
|
452
452
|
frameworkLogger.log("orchestration-coordinator", "Multi-agent orchestration coordinator shutdown complete", "info");
|
|
453
453
|
}
|
|
454
454
|
}
|
|
@@ -13,9 +13,9 @@ import { routingOutcomeTracker } from "../delegation/analytics/outcome-tracker.j
|
|
|
13
13
|
import { patternPerformanceTracker } from "../analytics/pattern-performance-tracker.js";
|
|
14
14
|
import { VotingCoordinator } from "../delegation/voting-coordinator.js";
|
|
15
15
|
import { getAgentExpertiseLevel } from "../delegation/agent-expertise.js";
|
|
16
|
-
import {
|
|
16
|
+
import { XrayStateManager } from "../state/state-manager.js";
|
|
17
17
|
import fs from "fs";
|
|
18
|
-
export class
|
|
18
|
+
export class XrayOrchestrator {
|
|
19
19
|
config;
|
|
20
20
|
activeTasks = new Map();
|
|
21
21
|
taskToAgentMap = new Map();
|
|
@@ -28,7 +28,7 @@ export class StringRayOrchestrator {
|
|
|
28
28
|
conflictResolutionStrategy: loadedConfig?.conflictResolutionStrategy ?? "majority_vote",
|
|
29
29
|
...config,
|
|
30
30
|
};
|
|
31
|
-
this.votingCoordinator = new VotingCoordinator(new
|
|
31
|
+
this.votingCoordinator = new VotingCoordinator(new XrayStateManager());
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Load orchestrator config from features.json
|
|
@@ -36,8 +36,8 @@ export class StringRayOrchestrator {
|
|
|
36
36
|
loadOrchestratorConfig() {
|
|
37
37
|
try {
|
|
38
38
|
const configPaths = [
|
|
39
|
-
".
|
|
40
|
-
".
|
|
39
|
+
".xray/features.json",
|
|
40
|
+
".xray/features.json",
|
|
41
41
|
];
|
|
42
42
|
for (const configPath of configPaths) {
|
|
43
43
|
if (fs.existsSync(configPath)) {
|
|
@@ -151,7 +151,7 @@ export class StringRayOrchestrator {
|
|
|
151
151
|
// Execute post-processors for agent task completion logging
|
|
152
152
|
try {
|
|
153
153
|
// Get processor manager from global state
|
|
154
|
-
const globalStateManager = globalThis.
|
|
154
|
+
const globalStateManager = globalThis.xrayStateManager;
|
|
155
155
|
frameworkLogger.log("orchestrator", "global-state-check", "debug", {
|
|
156
156
|
jobId,
|
|
157
157
|
exists: !!globalStateManager,
|
|
@@ -200,7 +200,7 @@ export class StringRayOrchestrator {
|
|
|
200
200
|
await frameworkLogger.log("orchestrator", "task-execution-failed", "error", { taskId: task.id, duration, error: String(error) });
|
|
201
201
|
// Execute post-processors even on failure for error logging
|
|
202
202
|
try {
|
|
203
|
-
const globalStateManager = globalThis.
|
|
203
|
+
const globalStateManager = globalThis.xrayStateManager;
|
|
204
204
|
const processorManager = globalStateManager?.get("processor:manager");
|
|
205
205
|
if (processorManager) {
|
|
206
206
|
const agentContext = {
|
|
@@ -654,4 +654,5 @@ export class StringRayOrchestrator {
|
|
|
654
654
|
}
|
|
655
655
|
}
|
|
656
656
|
// Export singleton instance
|
|
657
|
-
export const
|
|
657
|
+
export const xrayOrchestrator = new XrayOrchestrator();
|
|
658
|
+
// Backward compatibility alias
|
|
@@ -114,7 +114,7 @@ export class UniversalRegistryBridge {
|
|
|
114
114
|
currentAgent = {
|
|
115
115
|
name: nameMatch[1].trim(),
|
|
116
116
|
description: "",
|
|
117
|
-
version: "1.
|
|
117
|
+
version: "3.1.0",
|
|
118
118
|
};
|
|
119
119
|
inAgent = true;
|
|
120
120
|
continue;
|
|
@@ -164,8 +164,8 @@ export class UniversalRegistryBridge {
|
|
|
164
164
|
}
|
|
165
165
|
const pkg = await response.json();
|
|
166
166
|
// Look for agent definitions in package exports
|
|
167
|
-
if (pkg.
|
|
168
|
-
return pkg.
|
|
167
|
+
if (pkg.xray?.agents) {
|
|
168
|
+
return pkg.xray.agents;
|
|
169
169
|
}
|
|
170
170
|
return [];
|
|
171
171
|
}
|
|
@@ -214,7 +214,7 @@ export class UniversalRegistryBridge {
|
|
|
214
214
|
* Create a bridge from integration config
|
|
215
215
|
*/
|
|
216
216
|
export async function createRegistryBridge(configPath) {
|
|
217
|
-
const defaultPath = resolve(process.cwd(), ".
|
|
217
|
+
const defaultPath = resolve(process.cwd(), ".xray/integration/registries.json");
|
|
218
218
|
const path = configPath || defaultPath;
|
|
219
219
|
let registries = [];
|
|
220
220
|
if (existsSync(path)) {
|
|
@@ -208,7 +208,7 @@ export class PostProcessor {
|
|
|
208
208
|
const fs = await import("fs");
|
|
209
209
|
const path = await import("path");
|
|
210
210
|
try {
|
|
211
|
-
const configPath = resolveConfigPath("features.json") ?? path.join(process.cwd(), ".
|
|
211
|
+
const configPath = resolveConfigPath("features.json") ?? path.join(process.cwd(), ".xray", "features.json");
|
|
212
212
|
if (fs.existsSync(configPath)) {
|
|
213
213
|
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
214
214
|
return config.processors || {};
|
|
@@ -225,7 +225,7 @@ export class PostProcessor {
|
|
|
225
225
|
* Initialize the post-processor system
|
|
226
226
|
*/
|
|
227
227
|
async initialize() {
|
|
228
|
-
await frameworkLogger.log("-post-processor", "-initializing-
|
|
228
|
+
await frameworkLogger.log("-post-processor", "-initializing-xray-post-processor-", "info", { message: "π Initializing 0xRay Post-Processor..." });
|
|
229
229
|
// Initialize monitoring
|
|
230
230
|
if (this.config.monitoring.enabled) {
|
|
231
231
|
await this.monitoringEngine.initialize();
|
|
@@ -333,13 +333,13 @@ export class PostProcessor {
|
|
|
333
333
|
}
|
|
334
334
|
async checkSystemIntegrity(context) {
|
|
335
335
|
// Check if all critical framework components are active
|
|
336
|
-
const stateManager = globalThis.
|
|
337
|
-
const postProcessor = globalThis.
|
|
336
|
+
const stateManager = globalThis.xrayStateManager;
|
|
337
|
+
const postProcessor = globalThis.xrayPostProcessor;
|
|
338
338
|
if (!stateManager) {
|
|
339
339
|
try {
|
|
340
|
-
const {
|
|
341
|
-
const tempStateManager = new
|
|
342
|
-
globalThis.
|
|
340
|
+
const { XrayStateManager } = await import("../state/state-manager.js");
|
|
341
|
+
const tempStateManager = new XrayStateManager();
|
|
342
|
+
globalThis.xrayStateManager = tempStateManager;
|
|
343
343
|
return {
|
|
344
344
|
passed: true,
|
|
345
345
|
message: "System integrity verified (graceful mode)",
|
|
@@ -372,7 +372,7 @@ export class PostProcessor {
|
|
|
372
372
|
// Check for path resolution issues in committed files
|
|
373
373
|
// This would require reading the actual file contents from git
|
|
374
374
|
// For now, we verify that the framework's path resolution is working
|
|
375
|
-
const pathResolver = globalThis.
|
|
375
|
+
const pathResolver = globalThis.xrayPathResolver;
|
|
376
376
|
if (!pathResolver) {
|
|
377
377
|
return {
|
|
378
378
|
passed: true,
|
|
@@ -500,7 +500,7 @@ import { Config } from "./config/config.js";
|
|
|
500
500
|
|
|
501
501
|
**Solution A: Environment Variables (Simple)**
|
|
502
502
|
\`\`\`typescript
|
|
503
|
-
const AGENTS_PATH = process.env.
|
|
503
|
+
const AGENTS_PATH = process.env.XRAY_AGENTS_PATH || '../agents';
|
|
504
504
|
import { AgentConfig } from \`\${AGENTS_PATH}/code-reviewer.js\`;
|
|
505
505
|
\`\`\`
|
|
506
506
|
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
import { getKernel } from '../../core/kernel-patterns.js';
|
|
12
12
|
import { createAgentDelegator } from '../../delegation/agent-delegator.js';
|
|
13
13
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { XrayStateManager } from '../../state/state-manager.js';
|
|
15
|
+
import { xrayConfigLoader } from '../../core/config-loader.js';
|
|
16
16
|
/**
|
|
17
17
|
* Main service for systematic regression analysis
|
|
18
18
|
*/
|
|
@@ -94,8 +94,8 @@ export class RegressionAnalysisService {
|
|
|
94
94
|
conferenceType: 'regression-investigation'
|
|
95
95
|
};
|
|
96
96
|
// Create agent delegator for this operation
|
|
97
|
-
const stateManager = new
|
|
98
|
-
const agentDelegator = createAgentDelegator(stateManager,
|
|
97
|
+
const stateManager = new XrayStateManager();
|
|
98
|
+
const agentDelegator = createAgentDelegator(stateManager, xrayConfigLoader);
|
|
99
99
|
// Analyze delegation strategy
|
|
100
100
|
const analysis = await agentDelegator.analyzeDelegation(delegationRequest);
|
|
101
101
|
// Execute delegation
|
|
@@ -314,7 +314,7 @@ if [ -z "$COMMIT_SHA" ]; then
|
|
|
314
314
|
fi
|
|
315
315
|
|
|
316
316
|
# Get repository info
|
|
317
|
-
REPO="
|
|
317
|
+
REPO="0xRayAI/xray" # Placeholder for now
|
|
318
318
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
319
319
|
AUTHOR=$(git log -1 --pretty=format:'%an <%ae>')
|
|
320
320
|
|
|
@@ -330,25 +330,25 @@ fi
|
|
|
330
330
|
cd "$(dirname "$0")/../.." # Navigate to project root
|
|
331
331
|
|
|
332
332
|
# Find the 0xRay plugin in node_modules or current project (development)
|
|
333
|
-
|
|
334
|
-
if [ -d "node_modules/
|
|
335
|
-
|
|
336
|
-
elif [ -d "node_modules/@
|
|
337
|
-
|
|
338
|
-
elif [ -d "node_modules/OpenCode/plugins/
|
|
339
|
-
|
|
333
|
+
XRAY_PLUGIN=""
|
|
334
|
+
if [ -d "node_modules/0xray" ]; then
|
|
335
|
+
XRAY_PLUGIN="node_modules/0xray"
|
|
336
|
+
elif [ -d "node_modules/@0xray/xray" ]; then
|
|
337
|
+
XRAY_PLUGIN="node_modules/@0xray/xray"
|
|
338
|
+
elif [ -d "node_modules/OpenCode/plugins/0xray" ]; then
|
|
339
|
+
XRAY_PLUGIN="node_modules/OpenCode/plugins/0xray"
|
|
340
340
|
elif [ -f "dist/postprocessor/PostProcessor.js" ]; then
|
|
341
341
|
# Development mode - use current project
|
|
342
|
-
|
|
342
|
+
XRAY_PLUGIN="."
|
|
343
343
|
fi
|
|
344
344
|
|
|
345
|
-
if command -v node >/dev/null 2>&1 && [ -n "$
|
|
345
|
+
if command -v node >/dev/null 2>&1 && [ -n "$XRAY_PLUGIN" ]; then
|
|
346
346
|
# Call a separate script to avoid bash variable issues
|
|
347
347
|
export COMMIT_SHA="$COMMIT_SHA"
|
|
348
348
|
export REPO="$REPO"
|
|
349
349
|
export BRANCH="$BRANCH"
|
|
350
350
|
export AUTHOR="$AUTHOR"
|
|
351
|
-
export
|
|
351
|
+
export XRAY_PLUGIN="$XRAY_PLUGIN"
|
|
352
352
|
export MONITORING_LEVEL="$MONITORING_LEVEL"
|
|
353
353
|
export IS_FULL_MONITORING="$([ "$MONITORING_LEVEL" = "full" ] && echo "true" || echo "false")"
|
|
354
354
|
|
|
@@ -397,8 +397,8 @@ fi
|
|
|
397
397
|
(async () => {
|
|
398
398
|
try {
|
|
399
399
|
// Use dynamic import that works in both dev and consumer
|
|
400
|
-
const basePath = process.env.
|
|
401
|
-
const distPath = process.env.
|
|
400
|
+
const basePath = process.env.XRAY_BASE_PATH || '.';
|
|
401
|
+
const distPath = process.env.XRAY_DIST_PATH || 'dist';
|
|
402
402
|
// First archive logs (compress and rotate) before cleanup
|
|
403
403
|
const { archiveLogFiles } = await import(basePath + '/' + distPath + '/postprocessor/triggers/GitHookTrigger.js');
|
|
404
404
|
const archiveResult = await archiveLogFiles({
|
|
@@ -422,7 +422,7 @@ fi
|
|
|
422
422
|
// Core inference/logging - NEVER DELETE
|
|
423
423
|
'activity.log',
|
|
424
424
|
'framework-activity-',
|
|
425
|
-
'
|
|
425
|
+
'xray-plugin-',
|
|
426
426
|
|
|
427
427
|
// Analysis & reflections - Contains inference data
|
|
428
428
|
'kernel-',
|
|
@@ -441,8 +441,8 @@ fi
|
|
|
441
441
|
'reflections/',
|
|
442
442
|
|
|
443
443
|
// Init logs can be cleaned but keep recent
|
|
444
|
-
'
|
|
445
|
-
'
|
|
444
|
+
'xray-init-2026-01-2', // Keep Jan 20s
|
|
445
|
+
'xray-init-2026-01-3', // Keep Jan 30s
|
|
446
446
|
|
|
447
447
|
// Other important files
|
|
448
448
|
'current-session.log',
|
|
@@ -484,8 +484,8 @@ fi
|
|
|
484
484
|
node -e "
|
|
485
485
|
(async () => {
|
|
486
486
|
try {
|
|
487
|
-
const basePath = process.env.
|
|
488
|
-
const distPath = process.env.
|
|
487
|
+
const basePath = process.env.XRAY_BASE_PATH || '.';
|
|
488
|
+
const distPath = process.env.XRAY_DIST_PATH || 'dist';
|
|
489
489
|
const { HookMetricsCollector } = await import(basePath + '/' + distPath + '/postprocessor/validation/HookMetricsCollector.js');
|
|
490
490
|
const collector = new HookMetricsCollector();
|
|
491
491
|
collector.recordMetrics('post-push', \${DURATION_MS}, \${EXIT_CODE});
|
|
@@ -212,7 +212,7 @@ export class AgentsMdValidationProcessor {
|
|
|
212
212
|
"",
|
|
213
213
|
"## Available Skills",
|
|
214
214
|
"",
|
|
215
|
-
"
|
|
215
|
+
"0xRay ships with 30 framework skills and provides a registry of 10 curated community sources.",
|
|
216
216
|
"",
|
|
217
217
|
"```bash",
|
|
218
218
|
"npx 0xray skill:install # Show starter packs + available sources",
|
|
@@ -225,7 +225,7 @@ export class AgentsMdValidationProcessor {
|
|
|
225
225
|
"",
|
|
226
226
|
"## Codex",
|
|
227
227
|
"",
|
|
228
|
-
`
|
|
228
|
+
`0xRay enforces Universal Development Codex (60 terms) for systematic error prevention.`,
|
|
229
229
|
"",
|
|
230
230
|
].join("\n"),
|
|
231
231
|
"## CLI Commands": [
|
|
@@ -38,8 +38,7 @@ export class InferenceImprovementProcessor extends PostProcessor {
|
|
|
38
38
|
loadInferenceConfig() {
|
|
39
39
|
try {
|
|
40
40
|
const configPaths = [
|
|
41
|
-
path.join(process.cwd(), ".
|
|
42
|
-
path.join(process.cwd(), ".opencode", "strray", "features.json"),
|
|
41
|
+
path.join(process.cwd(), ".xray", "features.json"),
|
|
43
42
|
];
|
|
44
43
|
for (const configPath of configPaths) {
|
|
45
44
|
if (fs.existsSync(configPath)) {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Protected files:
|
|
8
8
|
* - routing-outcomes.json (routing analytics - NEVER delete)
|
|
9
9
|
* - activity.log (framework activity - NEVER delete)
|
|
10
|
-
* -
|
|
10
|
+
* - xray-plugin-*.log (plugin logs)
|
|
11
11
|
*
|
|
12
12
|
* Archival flow is ALLOWED:
|
|
13
13
|
* - framework-activity-*.log.gz (archived/compressed logs)
|
|
@@ -31,7 +31,7 @@ const ACTIVE_LOG_PATTERNS = [
|
|
|
31
31
|
*/
|
|
32
32
|
const ARCHIVE_PATTERNS = [
|
|
33
33
|
/framework-activity-.+\.log\.gz$/,
|
|
34
|
-
/
|
|
34
|
+
/xray-plugin-.+\.log\.gz$/,
|
|
35
35
|
];
|
|
36
36
|
/**
|
|
37
37
|
* Directories/files that are protected
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Ensures README.md, AGENTS.md, and reflection documents are up-to-date
|
|
6
6
|
* before allowing npm publish.
|
|
7
7
|
*
|
|
8
|
-
* Configuration is read from .
|
|
8
|
+
* Configuration is read from .xray/features.json
|
|
9
9
|
*
|
|
10
10
|
* @processor_type post
|
|
11
11
|
* @priority 10 (runs early after post-processing starts)
|
|
@@ -45,8 +45,7 @@ export class PublishPreflightProcessor extends PostProcessor {
|
|
|
45
45
|
loadConfig() {
|
|
46
46
|
try {
|
|
47
47
|
const configPaths = [
|
|
48
|
-
path.join(process.cwd(), ".
|
|
49
|
-
path.join(process.cwd(), ".opencode", "strray", "features.json"),
|
|
48
|
+
path.join(process.cwd(), ".xray", "features.json"),
|
|
50
49
|
];
|
|
51
50
|
for (const configPath of configPaths) {
|
|
52
51
|
if (fs.existsSync(configPath)) {
|
|
@@ -14,7 +14,7 @@ export class RegressionTestingProcessor extends PostProcessor {
|
|
|
14
14
|
};
|
|
15
15
|
try {
|
|
16
16
|
const projectRoot = process.cwd();
|
|
17
|
-
const testCountPath = path.join(projectRoot, ".opencode", "
|
|
17
|
+
const testCountPath = path.join(projectRoot, ".opencode", "xray", "test-count.json");
|
|
18
18
|
if (!fs.existsSync(testCountPath)) {
|
|
19
19
|
frameworkLogger.log("regression-testing-processor", "no-baseline", "info", { message: "No test-count.json baseline found" });
|
|
20
20
|
return result;
|
|
@@ -46,7 +46,7 @@ export class RegressionTestingProcessor extends PostProcessor {
|
|
|
46
46
|
}
|
|
47
47
|
getCurrentTestCount(projectRoot) {
|
|
48
48
|
try {
|
|
49
|
-
const testCountPath = path.join(projectRoot, ".opencode", "
|
|
49
|
+
const testCountPath = path.join(projectRoot, ".opencode", "xray", "test-count.json");
|
|
50
50
|
if (!fs.existsSync(testCountPath))
|
|
51
51
|
return 0;
|
|
52
52
|
const data = JSON.parse(fs.readFileSync(testCountPath, "utf-8"));
|
|
@@ -30,8 +30,8 @@ export class SessionSummaryProcessor extends PostProcessor {
|
|
|
30
30
|
}
|
|
31
31
|
loadConfig() {
|
|
32
32
|
try {
|
|
33
|
-
const featuresPath = path.join(process.cwd(), ".
|
|
34
|
-
const altPath = path.join(process.cwd(), ".
|
|
33
|
+
const featuresPath = path.join(process.cwd(), ".xray", "features.json");
|
|
34
|
+
const altPath = path.join(process.cwd(), ".opencode", "xray", "features.json");
|
|
35
35
|
const configPath = fs.existsSync(featuresPath) ? featuresPath :
|
|
36
36
|
fs.existsSync(altPath) ? altPath : null;
|
|
37
37
|
if (configPath) {
|
|
@@ -34,8 +34,7 @@ export class StorytellingTriggerProcessor extends PostProcessor {
|
|
|
34
34
|
}
|
|
35
35
|
resolveConfigPath(filename) {
|
|
36
36
|
const candidates = [
|
|
37
|
-
path.join(process.cwd(), ".
|
|
38
|
-
path.join(process.cwd(), ".opencode", "strray", filename),
|
|
37
|
+
path.join(process.cwd(), ".xray", filename),
|
|
39
38
|
];
|
|
40
39
|
for (const candidate of candidates) {
|
|
41
40
|
if (fs.existsSync(candidate))
|
package/dist/public/about.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>About
|
|
6
|
+
<title>About 0xRay - Enterprise AI Orchestration</title>
|
|
7
7
|
<style>
|
|
8
8
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
9
9
|
body {
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
<div class="container">
|
|
114
114
|
<header>
|
|
115
115
|
<span class="version">v1.4.20</span>
|
|
116
|
-
<h1>
|
|
116
|
+
<h1>0xRay</h1>
|
|
117
117
|
<p class="tagline">Enterprise AI Orchestration Framework</p>
|
|
118
118
|
</header>
|
|
119
119
|
|
|
@@ -141,8 +141,8 @@
|
|
|
141
141
|
</div>
|
|
142
142
|
|
|
143
143
|
<section class="section">
|
|
144
|
-
<h2>π― What is
|
|
145
|
-
<p>
|
|
144
|
+
<h2>π― What is 0xRay?</h2>
|
|
145
|
+
<p>0xRay is an enterprise-grade AI orchestration framework that provides intelligent task routing, systematic error prevention, and comprehensive monitoring for AI-driven development workflows.</p>
|
|
146
146
|
</section>
|
|
147
147
|
|
|
148
148
|
<section class="section">
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<h2>π 8 Pipeline System</h2>
|
|
192
192
|
<div class="pipeline-diagram">
|
|
193
193
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
194
|
-
β
|
|
194
|
+
β 0xRAY FRAMEWORK v3.0.0 β
|
|
195
195
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
196
196
|
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββ β
|
|
197
197
|
β β INIT βββΆβ AGENT βββΆβ RULE βββΆβ POST β β
|
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
</section>
|
|
221
221
|
|
|
222
222
|
<footer>
|
|
223
|
-
<p>
|
|
223
|
+
<p>0xRay Framework © 2026 | Built for Enterprise AI Orchestration</p>
|
|
224
224
|
<p style="margin-top: 10px; color: #6e7681;">338 logging points | 51 core files | JobId tracking enabled</p>
|
|
225
225
|
</footer>
|
|
226
226
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Enterprise -
|
|
6
|
+
<title>Enterprise - 0xRay</title>
|
|
7
7
|
<style>
|
|
8
8
|
body { margin: 0; padding: 0; background: #0a0a0f; color: #e0e0e0; font-family: system-ui, sans-serif; }
|
|
9
9
|
.container { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>
|
|
6
|
+
<title>0xRay - Features</title>
|
|
7
7
|
<style>
|
|
8
8
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
9
9
|
body {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
<body>
|
|
57
57
|
<div class="container">
|
|
58
58
|
<header>
|
|
59
|
-
<h1>
|
|
59
|
+
<h1>0xRay Features</h1>
|
|
60
60
|
<p class="subtitle">Enterprise AI Orchestration Platform</p>
|
|
61
61
|
</header>
|
|
62
62
|
|
package/dist/public/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>β‘
|
|
6
|
+
<title>β‘ 0xRay Dashboard</title>
|
|
7
7
|
<style>
|
|
8
8
|
body {
|
|
9
9
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
<body>
|
|
82
82
|
<div class="container">
|
|
83
83
|
<div class="header">
|
|
84
|
-
<h1>β‘
|
|
84
|
+
<h1>β‘ 0xRay</h1>
|
|
85
85
|
<p>AI Agent Orchestration Framework - Production-Ready Code, No Dead Ends</p>
|
|
86
86
|
</div>
|
|
87
87
|
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
</div>
|
|
122
122
|
|
|
123
123
|
<div class="footer">
|
|
124
|
-
<p>π‘οΈ
|
|
124
|
+
<p>π‘οΈ 0xRay - The AI Sentinel: Your Unwavering Guardian Against AI Development Catastrophes</p>
|
|
125
125
|
</div>
|
|
126
126
|
</div>
|
|
127
127
|
|
|
@@ -142,4 +142,4 @@
|
|
|
142
142
|
</script>
|
|
143
143
|
</body>
|
|
144
144
|
</html></content>
|
|
145
|
-
<parameter name="filePath">/Users/blaze/dev/
|
|
145
|
+
<parameter name="filePath">/Users/blaze/dev/xray/public/index.html
|