0xray 2.0.1 → 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.
Files changed (240) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/AGENTS.md +1 -1
  3. package/dist/AGENTS.md +1 -1
  4. package/dist/benchmark/performance-benchmark.d.ts +2 -2
  5. package/dist/benchmark/performance-benchmark.js +3 -3
  6. package/dist/cli/commands/hermes-install.js +4 -4
  7. package/dist/cli/commands/mcp-install.js +1 -1
  8. package/dist/cli/commands/openclaw-install.js +1 -1
  9. package/dist/cli/commands/plugin-commands.js +2 -2
  10. package/dist/cli/commands/publish-agent.js +5 -5
  11. package/dist/cli/commands/skill-install.js +1 -1
  12. package/dist/cli/commands/status.js +3 -3
  13. package/dist/cli/commands/storyteller.js +2 -2
  14. package/dist/cli/index.js +8 -8
  15. package/dist/cli/server.js +1 -1
  16. package/dist/core/agent-spawn-gate.d.ts +1 -1
  17. package/dist/core/agent-spawn-gate.js +1 -1
  18. package/dist/core/boot-orchestrator.d.ts +4 -4
  19. package/dist/core/boot-orchestrator.js +26 -26
  20. package/dist/core/bridge.mjs +22 -22
  21. package/dist/core/codex-formatter.js +2 -2
  22. package/dist/core/codex-injector.d.ts +4 -3
  23. package/dist/core/codex-injector.js +11 -10
  24. package/dist/core/config-loader.d.ts +5 -4
  25. package/dist/core/config-loader.js +4 -2
  26. package/dist/core/config-paths.d.ts +9 -8
  27. package/dist/core/config-paths.js +24 -23
  28. package/dist/core/context-loader.d.ts +4 -3
  29. package/dist/core/context-loader.js +7 -5
  30. package/dist/core/index.d.ts +1 -1
  31. package/dist/core/index.js +1 -1
  32. package/dist/core/orchestrator.d.ts +1 -0
  33. package/dist/core/orchestrator.js +3 -2
  34. package/dist/core/system-prompt-generator.js +2 -2
  35. package/dist/core/xray-activation.d.ts +4 -4
  36. package/dist/core/xray-activation.js +29 -24
  37. package/dist/delegation/agent-delegator.d.ts +3 -3
  38. package/dist/delegation/agent-delegator.js +3 -3
  39. package/dist/delegation/metrics-aggregator.d.ts +11 -11
  40. package/dist/delegation/session-coordinator.d.ts +3 -3
  41. package/dist/delegation/voting-coordinator.d.ts +3 -3
  42. package/dist/enforcement/enforcer-tools.js +2 -2
  43. package/dist/enforcement/loaders/codex-loader.d.ts +1 -1
  44. package/dist/enforcement/loaders/codex-loader.js +2 -2
  45. package/dist/index.d.ts +5 -5
  46. package/dist/index.js +6 -6
  47. package/dist/inference/deploy-verifier.js +1 -1
  48. package/dist/inference/inference-cycle.js +7 -7
  49. package/dist/integrations/base/README.md +2 -2
  50. package/dist/integrations/governance/index.js +1 -1
  51. package/dist/integrations/grok/grok-cli.d.ts +1 -1
  52. package/dist/integrations/grok/grok-cli.js +6 -6
  53. package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
  54. package/dist/integrations/grok/plugin/0xray/.mcp.json +3 -3
  55. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  56. package/dist/integrations/hermes-agent/__init__.py +77 -71
  57. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  58. package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
  59. package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
  60. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
  61. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
  62. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  63. package/dist/integrations/hermes-agent/after-install.md +14 -14
  64. package/dist/integrations/hermes-agent/bridge.mjs +14 -14
  65. package/dist/integrations/hermes-agent/logs/framework/routing-outcomes.json +1 -0
  66. package/dist/integrations/hermes-agent/plugin.yaml +5 -5
  67. package/dist/integrations/hermes-agent/schemas.py +12 -12
  68. package/dist/integrations/hermes-agent/test_plugin.py +128 -125
  69. package/dist/integrations/hermes-agent/tools.py +85 -23
  70. package/dist/integrations/openclaw/README.md +16 -16
  71. package/dist/integrations/openclaw/api-server.d.ts +4 -4
  72. package/dist/integrations/openclaw/api-server.js +9 -9
  73. package/dist/integrations/openclaw/config.js +1 -1
  74. package/dist/integrations/openclaw/hooks/{strray-hooks.d.ts → xray-hooks.d.ts} +4 -4
  75. package/dist/integrations/openclaw/index.d.ts +4 -4
  76. package/dist/integrations/openclaw/index.js +4 -4
  77. package/dist/integrations/openclaw/types.d.ts +1 -1
  78. package/dist/integrations/plugins/plugin-registry.js +2 -2
  79. package/dist/mcps/architect-tools.server.d.ts +2 -2
  80. package/dist/mcps/architect-tools.server.js +3 -3
  81. package/dist/mcps/auto-format.server.d.ts +2 -2
  82. package/dist/mcps/auto-format.server.js +3 -3
  83. package/dist/mcps/boot-orchestrator.server.d.ts +2 -2
  84. package/dist/mcps/boot-orchestrator.server.js +3 -3
  85. package/dist/mcps/config/server-config-registry.d.ts +1 -1
  86. package/dist/mcps/config/server-config-registry.js +7 -7
  87. package/dist/mcps/connection/mcp-connection.js +1 -1
  88. package/dist/mcps/enforcer-tools.server.d.ts +2 -2
  89. package/dist/mcps/enforcer-tools.server.js +3 -3
  90. package/dist/mcps/framework-compliance-audit.server.d.ts +2 -2
  91. package/dist/mcps/framework-compliance-audit.server.js +3 -3
  92. package/dist/mcps/framework-help.server.js +6 -6
  93. package/dist/mcps/in-process-skill-registry.js +6 -6
  94. package/dist/mcps/knowledge-skills/api-design.server.d.ts +2 -2
  95. package/dist/mcps/knowledge-skills/api-design.server.js +3 -3
  96. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +2 -2
  97. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +3 -3
  98. package/dist/mcps/knowledge-skills/code-review.server.d.ts +2 -2
  99. package/dist/mcps/knowledge-skills/code-review.server.js +3 -3
  100. package/dist/mcps/knowledge-skills/database-design.server.d.ts +2 -2
  101. package/dist/mcps/knowledge-skills/database-design.server.js +3 -3
  102. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +2 -2
  103. package/dist/mcps/knowledge-skills/devops-deployment.server.js +3 -3
  104. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +2 -2
  105. package/dist/mcps/knowledge-skills/git-workflow.server.js +3 -3
  106. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +2 -2
  107. package/dist/mcps/knowledge-skills/mobile-development.server.js +3 -3
  108. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +2 -2
  109. package/dist/mcps/knowledge-skills/performance-optimization.server.js +3 -3
  110. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +2 -2
  111. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +3 -3
  112. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +2 -2
  113. package/dist/mcps/knowledge-skills/security-audit.server.js +3 -3
  114. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +2 -2
  115. package/dist/mcps/knowledge-skills/tech-writer.server.js +3 -3
  116. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +2 -2
  117. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +3 -3
  118. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +2 -2
  119. package/dist/mcps/knowledge-skills/testing-strategy.server.js +3 -3
  120. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +2 -2
  121. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +5 -5
  122. package/dist/mcps/lint.server.d.ts +2 -2
  123. package/dist/mcps/lint.server.js +5 -5
  124. package/dist/mcps/mcp-client.js +3 -3
  125. package/dist/mcps/model-health-check.server.d.ts +2 -2
  126. package/dist/mcps/model-health-check.server.js +3 -3
  127. package/dist/mcps/orchestrator/server.js +2 -2
  128. package/dist/mcps/performance-analysis.server.d.ts +2 -2
  129. package/dist/mcps/performance-analysis.server.js +3 -3
  130. package/dist/mcps/processor-pipeline.server.d.ts +2 -2
  131. package/dist/mcps/processor-pipeline.server.js +3 -3
  132. package/dist/mcps/researcher.server.d.ts +3 -3
  133. package/dist/mcps/researcher.server.js +4 -4
  134. package/dist/mcps/security-scan.server.d.ts +2 -2
  135. package/dist/mcps/security-scan.server.js +3 -3
  136. package/dist/mcps/simulation/server-simulations.js +3 -3
  137. package/dist/metrics/agent-metrics.d.ts +4 -4
  138. package/dist/metrics/agent-metrics.js +1 -1
  139. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +2 -2
  140. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
  141. package/dist/orchestrator/intelligent-commit-batcher.d.ts +1 -1
  142. package/dist/orchestrator/intelligent-commit-batcher.js +3 -3
  143. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +3 -3
  144. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +9 -9
  145. package/dist/orchestrator/orchestrator.d.ts +3 -2
  146. package/dist/orchestrator/orchestrator.js +8 -6
  147. package/dist/plugin/xray-codex-injection.d.ts +1 -1
  148. package/dist/plugin/xray-codex-injection.js +8 -7
  149. package/dist/postprocessor/PostProcessor.d.ts +2 -2
  150. package/dist/postprocessor/PostProcessor.js +1 -1
  151. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +2 -2
  152. package/dist/postprocessor/services/RegressionAnalysisService.js +2 -2
  153. package/dist/postprocessor/triggers/GitHookTrigger.js +14 -14
  154. package/dist/processors/implementations/agents-md-validation-processor.js +2 -2
  155. package/dist/processors/implementations/inference-improvement-processor.js +2 -2
  156. package/dist/processors/implementations/log-protection-processor.d.ts +1 -1
  157. package/dist/processors/implementations/log-protection-processor.js +2 -2
  158. package/dist/processors/implementations/publish-preflight-processor.d.ts +1 -1
  159. package/dist/processors/implementations/publish-preflight-processor.js +3 -3
  160. package/dist/processors/implementations/regression-testing-processor.js +2 -2
  161. package/dist/processors/implementations/session-summary-processor.js +2 -2
  162. package/dist/processors/implementations/storytelling-trigger-processor.js +2 -2
  163. package/dist/processors/processor-manager.d.ts +2 -2
  164. package/dist/public/about.html +6 -6
  165. package/dist/public/enterprise.html +1 -1
  166. package/dist/public/features.html +2 -2
  167. package/dist/public/index.html +4 -4
  168. package/dist/reporting/report-formatter.js +1 -1
  169. package/dist/scripts/activate-kernel-pipeline.js +2 -2
  170. package/dist/scripts/pre-command +1 -1
  171. package/dist/services/inference-tuner.js +2 -2
  172. package/dist/session/session-cleanup-manager.d.ts +3 -3
  173. package/dist/session/session-monitor.d.ts +3 -3
  174. package/dist/session/session-state-manager.d.ts +3 -3
  175. package/dist/skills/hermes-agent/SKILL.md +11 -11
  176. package/dist/skills/storyteller/SKILL.md +1 -1
  177. package/dist/skills/xray-orchestrator/SKILL.md +141 -0
  178. package/dist/skills/xray-orchestrator/index.d.ts +13 -0
  179. package/dist/skills/xray-orchestrator/index.js +224 -0
  180. package/dist/state/index.d.ts +2 -1
  181. package/dist/state/index.js +2 -1
  182. package/dist/state/state-manager.d.ts +2 -2
  183. package/dist/state/state-manager.js +5 -4
  184. package/dist/utils/import-resolver.js +1 -1
  185. package/dist/utils/path-resolver.js +2 -2
  186. package/dist/utils/token-manager.js +1 -1
  187. package/dist/validation/estimation-validator.js +1 -1
  188. package/package.json +2 -2
  189. package/scripts/hooks/pre-command +1 -1
  190. package/scripts/hooks/run-hook.js +2 -2
  191. package/scripts/node/auto-reflection-generator.mjs +2 -2
  192. package/scripts/node/postinstall.cjs +1 -1
  193. package/scripts/node/release.js +6 -6
  194. package/scripts/node/release.mjs +10 -10
  195. package/scripts/node/version-manager.mjs +1 -1
  196. package/src/integrations/grok/plugin/0xray/.mcp.json +3 -3
  197. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  198. package/src/mcps/architect-tools.server.ts +3 -3
  199. package/src/mcps/auto-format.server.ts +3 -3
  200. package/src/mcps/boot-orchestrator.server.ts +3 -3
  201. package/src/mcps/config/server-config-registry.ts +7 -7
  202. package/src/mcps/connection/mcp-connection.ts +1 -1
  203. package/src/mcps/enforcer-tools.server.ts +3 -3
  204. package/src/mcps/framework-compliance-audit.server.ts +3 -3
  205. package/src/mcps/framework-help.server.ts +6 -6
  206. package/src/mcps/in-process-skill-registry.ts +6 -6
  207. package/src/mcps/knowledge-skills/api-design.server.test.ts +8 -8
  208. package/src/mcps/knowledge-skills/api-design.server.ts +3 -3
  209. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +3 -3
  210. package/src/mcps/knowledge-skills/code-review.server.ts +3 -3
  211. package/src/mcps/knowledge-skills/database-design.server.ts +3 -3
  212. package/src/mcps/knowledge-skills/devops-deployment.server.ts +3 -3
  213. package/src/mcps/knowledge-skills/git-workflow.server.ts +3 -3
  214. package/src/mcps/knowledge-skills/mobile-development.server.ts +3 -3
  215. package/src/mcps/knowledge-skills/performance-optimization.server.ts +3 -3
  216. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +3 -3
  217. package/src/mcps/knowledge-skills/security-audit.server.test.ts +23 -23
  218. package/src/mcps/knowledge-skills/security-audit.server.ts +3 -3
  219. package/src/mcps/knowledge-skills/tech-writer.server.ts +3 -3
  220. package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +28 -28
  221. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +3 -3
  222. package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +19 -19
  223. package/src/mcps/knowledge-skills/testing-strategy.server.ts +3 -3
  224. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +5 -5
  225. package/src/mcps/lint.server.ts +5 -5
  226. package/src/mcps/mcp-client.ts +3 -3
  227. package/src/mcps/model-health-check.server.ts +3 -3
  228. package/src/mcps/orchestrator/server.ts +2 -2
  229. package/src/mcps/performance-analysis.server.ts +3 -3
  230. package/src/mcps/processor-pipeline.server.ts +3 -3
  231. package/src/mcps/researcher.server.ts +4 -4
  232. package/src/mcps/security-scan.server.ts +3 -3
  233. package/src/mcps/simulation/server-simulations.ts +3 -3
  234. package/src/opencode/codex.codex +1 -1
  235. package/src/skills/hermes-agent/SKILL.md +11 -11
  236. package/src/skills/storyteller/SKILL.md +1 -1
  237. package/src/skills/xray-orchestrator/SKILL.md +141 -0
  238. package/src/skills/xray-orchestrator/index.ts +268 -0
  239. package/scripts/validate-stringray-comprehensive.js +0 -636
  240. /package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Knowledge skill for test planning, coverage optimization,
5
5
  * and testing methodology recommendations
6
6
  */
7
- declare class StringRayTestingStrategyServer {
7
+ declare class XrayTestingStrategyServer {
8
8
  private server;
9
9
  constructor();
10
10
  private setupToolHandlers;
@@ -44,4 +44,4 @@ declare class StringRayTestingStrategyServer {
44
44
  private shouldIgnorePath;
45
45
  run(): Promise<void>;
46
46
  }
47
- export default StringRayTestingStrategyServer;
47
+ export default XrayTestingStrategyServer;
@@ -12,7 +12,7 @@ import * as path from "path";
12
12
  import { frameworkLogger } from "../../core/framework-logger.js";
13
13
  import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
14
14
  import { detectProjectLanguage, LANGUAGE_CONFIGS, } from "../../utils/language-detector.js";
15
- class StringRayTestingStrategyServer {
15
+ class XrayTestingStrategyServer {
16
16
  server;
17
17
  constructor() {
18
18
  this.server = new Server({
@@ -821,7 +821,7 @@ describe("${pathModule.basename(sourceFile, ".ts")}", () => {${testCases}
821
821
  }
822
822
  // Start the server if run directly
823
823
  if (import.meta.url === `file://${process.argv[1]}`) {
824
- const server = new StringRayTestingStrategyServer();
824
+ const server = new XrayTestingStrategyServer();
825
825
  server.run().catch(() => { });
826
826
  }
827
- export default StringRayTestingStrategyServer;
827
+ export default XrayTestingStrategyServer;
@@ -4,7 +4,7 @@
4
4
  * Knowledge skill for user interface and user experience design,
5
5
  * component patterns, accessibility compliance, and design system guidance
6
6
  */
7
- declare class StringRayUIUXDesignServer {
7
+ declare class XrayUIUXDesignServer {
8
8
  private server;
9
9
  constructor();
10
10
  private setupToolHandlers;
@@ -66,4 +66,4 @@ declare class StringRayUIUXDesignServer {
66
66
  private recommendImages;
67
67
  run(): Promise<void>;
68
68
  }
69
- export { StringRayUIUXDesignServer };
69
+ export { XrayUIUXDesignServer };
@@ -8,7 +8,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
9
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
10
  import { frameworkLogger } from "../../core/framework-logger.js";
11
- class StringRayUIUXDesignServer {
11
+ class XrayUIUXDesignServer {
12
12
  server;
13
13
  constructor() {
14
14
  this.server = new Server({
@@ -1475,7 +1475,7 @@ Available: ${Object.keys(system.components).length} component types
1475
1475
  async run() {
1476
1476
  const transport = new StdioServerTransport();
1477
1477
  await this.server.connect(transport);
1478
- await frameworkLogger.log("ui-ux-design.server", "-strray-ui-ux-design-mcp-server-running-", "info", { message: "xray UI/UX Design MCP Server running..." });
1478
+ await frameworkLogger.log("ui-ux-design.server", "-xray-ui-ux-design-mcp-server-running-", "info", { message: "xray UI/UX Design MCP Server running..." });
1479
1479
  const cleanup = async (signal) => {
1480
1480
  await frameworkLogger.log("ui-ux-design.server", "-received-signal-shutting-down-gracefully-", "info", { message: `Received ${signal}, shutting down gracefully...` });
1481
1481
  // Set a timeout to force exit if graceful shutdown fails
@@ -1488,7 +1488,7 @@ Available: ${Object.keys(system.components).length} component types
1488
1488
  await this.server.close();
1489
1489
  }
1490
1490
  clearTimeout(timeout);
1491
- await frameworkLogger.log("ui-ux-design.server", "-strray-mcp-server-shut-down-gracefully-", "info", { message: "xray MCP Server shut down gracefully" });
1491
+ await frameworkLogger.log("ui-ux-design.server", "-xray-mcp-server-shut-down-gracefully-", "info", { message: "xray MCP Server shut down gracefully" });
1492
1492
  process.exit(0);
1493
1493
  }
1494
1494
  catch (error) {
@@ -1532,7 +1532,7 @@ Available: ${Object.keys(system.components).length} component types
1532
1532
  }
1533
1533
  // Run the server if this file is executed directly
1534
1534
  if (import.meta.url === `file://${process.argv[1]}`) {
1535
- const server = new StringRayUIUXDesignServer();
1535
+ const server = new XrayUIUXDesignServer();
1536
1536
  server.run().catch((error) => frameworkLogger.log("mcps/ui-ux-design", "run", "error", { error: String(error) }));
1537
1537
  }
1538
- export { StringRayUIUXDesignServer };
1538
+ export { XrayUIUXDesignServer };
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Comprehensive ESLint validation and automated code quality checking
5
5
  */
6
- declare class StringRayLintServer {
6
+ declare class XrayLintServer {
7
7
  private server;
8
8
  constructor();
9
9
  private setupToolHandlers;
@@ -14,4 +14,4 @@ declare class StringRayLintServer {
14
14
  private generateLintSummary;
15
15
  run(): Promise<void>;
16
16
  }
17
- export { StringRayLintServer };
17
+ export { XrayLintServer };
@@ -9,7 +9,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
9
9
  import { execFileSync } from "child_process";
10
10
  import fs from "fs";
11
11
  import { frameworkLogger } from "../core/framework-logger.js";
12
- class StringRayLintServer {
12
+ class XrayLintServer {
13
13
  server;
14
14
  constructor() {
15
15
  this.server = new Server({
@@ -20,7 +20,7 @@ class StringRayLintServer {
20
20
  },
21
21
  });
22
22
  this.setupToolHandlers();
23
- void frameworkLogger.log("lint.server", "-strray-lint-mcp-server-initialized-", "info", { message: "0xRay Lint MCP Server initialized" });
23
+ void frameworkLogger.log("lint.server", "-xray-lint-mcp-server-initialized-", "info", { message: "0xRay Lint MCP Server initialized" });
24
24
  }
25
25
  setupToolHandlers() {
26
26
  // List available tools
@@ -370,12 +370,12 @@ ${checkResults.details.map((d) => `• ${d}`).join("\n")}
370
370
  async run() {
371
371
  const transport = new StdioServerTransport();
372
372
  await this.server.connect(transport);
373
- await frameworkLogger.log("lint.server", "-strray-lint-mcp-server-started-", "info", { message: "0xRay Lint MCP Server started" });
373
+ await frameworkLogger.log("lint.server", "-xray-lint-mcp-server-started-", "info", { message: "0xRay Lint MCP Server started" });
374
374
  }
375
375
  }
376
376
  // Start the server if run directly
377
377
  if (import.meta.url === `file://${process.argv[1]}`) {
378
- const server = new StringRayLintServer();
378
+ const server = new XrayLintServer();
379
379
  server.run().catch((error) => frameworkLogger.log("mcps/lint", "run", "error", { error: String(error) }));
380
380
  }
381
- export { StringRayLintServer };
381
+ export { XrayLintServer };
@@ -267,17 +267,17 @@ export class MCPClient extends EventEmitter {
267
267
  ],
268
268
  'framework-help': [
269
269
  {
270
- name: 'strray_get_capabilities',
270
+ name: 'xray_get_capabilities',
271
271
  description: 'Get 0xRay framework capabilities',
272
272
  inputSchema: { type: 'object', properties: {} },
273
273
  },
274
274
  {
275
- name: 'strray_get_commands',
275
+ name: 'xray_get_commands',
276
276
  description: 'Get available 0xRay commands',
277
277
  inputSchema: { type: 'object', properties: {} },
278
278
  },
279
279
  {
280
- name: 'strray_explain_capability',
280
+ name: 'xray_explain_capability',
281
281
  description: 'Explain a specific capability',
282
282
  inputSchema: {
283
283
  type: 'object',
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Advanced model compatibility validation and dynamic health assessment
5
5
  */
6
- declare class StringRayModelHealthCheckServer {
6
+ declare class XrayModelHealthCheckServer {
7
7
  private server;
8
8
  constructor();
9
9
  private setupToolHandlers;
@@ -13,4 +13,4 @@ declare class StringRayModelHealthCheckServer {
13
13
  private generateHealthReport;
14
14
  start(): Promise<void>;
15
15
  }
16
- export default StringRayModelHealthCheckServer;
16
+ export default XrayModelHealthCheckServer;
@@ -8,7 +8,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
8
8
  import { modelRouter } from "../core/model-router.js";
9
9
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
10
  import { frameworkLogger } from "../core/framework-logger.js";
11
- class StringRayModelHealthCheckServer {
11
+ class XrayModelHealthCheckServer {
12
12
  server;
13
13
  constructor() {
14
14
  this.server = new Server({
@@ -222,7 +222,7 @@ class StringRayModelHealthCheckServer {
222
222
  }
223
223
  // Start the server if this file is run directly
224
224
  if (import.meta.url === `file://${process.argv[1]}`) {
225
- const server = new StringRayModelHealthCheckServer();
225
+ const server = new XrayModelHealthCheckServer();
226
226
  server.start().catch((error) => frameworkLogger.log("mcps/model-health-check", "run", "error", { error: String(error) }));
227
227
  }
228
- export default StringRayModelHealthCheckServer;
228
+ export default XrayModelHealthCheckServer;
@@ -8,7 +8,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
8
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
9
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
10
10
  import { frameworkLogger } from '../../core/framework-logger.js';
11
- import { StringRayStateManager } from '../../state/state-manager.js';
11
+ import { XrayStateManager } from '../../state/state-manager.js';
12
12
  import { MultiAgentOrchestrationCoordinator } from '../../orchestrator/multi-agent-orchestration-coordinator.js';
13
13
  import { TaskHandler } from './handlers/task-handler.js';
14
14
  import { ComplexityHandler } from './handlers/complexity-handler.js';
@@ -29,7 +29,7 @@ export class OrchestratorServer {
29
29
  coordinator;
30
30
  constructor() {
31
31
  // Initialize actual coordinator
32
- const stateManager = new StringRayStateManager();
32
+ const stateManager = new XrayStateManager();
33
33
  this.coordinator = new MultiAgentOrchestrationCoordinator(stateManager);
34
34
  // Initialize handlers
35
35
  this.taskHandler = new TaskHandler();
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Comprehensive metrics analysis for framework integration and optimization
5
5
  */
6
- declare class StringRayPerformanceAnalysisServer {
6
+ declare class XrayPerformanceAnalysisServer {
7
7
  private server;
8
8
  private startTime;
9
9
  constructor();
@@ -24,4 +24,4 @@ declare class StringRayPerformanceAnalysisServer {
24
24
  private generateDetailedReport;
25
25
  run(): Promise<void>;
26
26
  }
27
- export { StringRayPerformanceAnalysisServer };
27
+ export { XrayPerformanceAnalysisServer };
@@ -11,7 +11,7 @@ import { execSync } from "child_process";
11
11
  import fs from "fs";
12
12
  import os from "os";
13
13
  import path from "path";
14
- class StringRayPerformanceAnalysisServer {
14
+ class XrayPerformanceAnalysisServer {
15
15
  server;
16
16
  startTime;
17
17
  constructor() {
@@ -513,7 +513,7 @@ ${results.recommendations.map((r) => `• 💡 ${r}`).join("\n") || "No recommen
513
513
  }
514
514
  // Start the server if run directly
515
515
  if (import.meta.url === `file://${process.argv[1]}`) {
516
- const server = new StringRayPerformanceAnalysisServer();
516
+ const server = new XrayPerformanceAnalysisServer();
517
517
  server.run().catch((error) => frameworkLogger.log("mcps/performance-analysis", "run", "error", { error: String(error) }));
518
518
  }
519
- export { StringRayPerformanceAnalysisServer };
519
+ export { XrayPerformanceAnalysisServer };
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Advanced processor pipeline with codex validation, compliance monitoring, and framework enforcement
5
5
  */
6
- declare class StringRayProcessorPipelineServer {
6
+ declare class XrayProcessorPipelineServer {
7
7
  private server;
8
8
  private codexLoader;
9
9
  private codexRules;
@@ -28,4 +28,4 @@ declare class StringRayProcessorPipelineServer {
28
28
  private checkFrameworkCompliance;
29
29
  run(): Promise<void>;
30
30
  }
31
- export { StringRayProcessorPipelineServer };
31
+ export { XrayProcessorPipelineServer };
@@ -8,7 +8,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
8
8
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
9
9
  import { frameworkLogger } from "../core/framework-logger.js";
10
10
  import { CodexLoader } from "../enforcement/loaders/codex-loader.js";
11
- class StringRayProcessorPipelineServer {
11
+ class XrayProcessorPipelineServer {
12
12
  server;
13
13
  codexLoader;
14
14
  codexRules = [];
@@ -555,7 +555,7 @@ ${complianceResults.actions.map((a) => `• 🔧 ${a}`).join("\n") || "None requ
555
555
  }
556
556
  // Start the server if run directly
557
557
  if (import.meta.url === `file://${process.argv[1]}`) {
558
- const server = new StringRayProcessorPipelineServer();
558
+ const server = new XrayProcessorPipelineServer();
559
559
  server.run().catch((error) => frameworkLogger.log("mcps/processor-pipeline", "run", "error", { error: String(error) }));
560
560
  }
561
- export { StringRayProcessorPipelineServer };
561
+ export { XrayProcessorPipelineServer };
@@ -4,7 +4,7 @@
4
4
  * Knowledge skill for codebase documentation lookup, implementation examples,
5
5
  * and multi-repo analysis - serves as the universal documentation reference
6
6
  *
7
- * NOTE: Class is named StringRayLibrarianServer but the MCP server name is
7
+ * NOTE: Class is named XrayLibrarianServer but the MCP server name is
8
8
  * "researcher" for backwards compatibility with existing tool references.
9
9
  */
10
10
  import { type CallToolResult } from "@modelcontextprotocol/sdk/types.js";
@@ -14,7 +14,7 @@ interface AnalyzeProposalArgs {
14
14
  evidence?: string[];
15
15
  proposalType?: string;
16
16
  }
17
- declare class StringRayLibrarianServer {
17
+ declare class XrayLibrarianServer {
18
18
  private server;
19
19
  constructor();
20
20
  private setupToolHandlers;
@@ -28,4 +28,4 @@ declare class StringRayLibrarianServer {
28
28
  analyzeProposal(args: AnalyzeProposalArgs): Promise<CallToolResult>;
29
29
  run(): Promise<void>;
30
30
  }
31
- export { StringRayLibrarianServer };
31
+ export { XrayLibrarianServer };
@@ -4,7 +4,7 @@
4
4
  * Knowledge skill for codebase documentation lookup, implementation examples,
5
5
  * and multi-repo analysis - serves as the universal documentation reference
6
6
  *
7
- * NOTE: Class is named StringRayLibrarianServer but the MCP server name is
7
+ * NOTE: Class is named XrayLibrarianServer but the MCP server name is
8
8
  * "researcher" for backwards compatibility with existing tool references.
9
9
  */
10
10
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
@@ -13,7 +13,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
13
13
  import * as fs from "fs";
14
14
  import * as path from "path";
15
15
  import { frameworkLogger } from "../core/framework-logger.js";
16
- class StringRayLibrarianServer {
16
+ class XrayLibrarianServer {
17
17
  server;
18
18
  constructor() {
19
19
  this.server = new Server({
@@ -498,7 +498,7 @@ class StringRayLibrarianServer {
498
498
  }
499
499
  // Run the server if this file is executed directly
500
500
  if (import.meta.url === `file://${process.argv[1]}`) {
501
- const server = new StringRayLibrarianServer();
501
+ const server = new XrayLibrarianServer();
502
502
  server.run().catch((error) => frameworkLogger.log("mcps/researcher", "run", "error", { error: String(error) }));
503
503
  }
504
- export { StringRayLibrarianServer };
504
+ export { XrayLibrarianServer };
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Automated security vulnerability scanning with dependency and code analysis
5
5
  */
6
- declare class StringRaySecurityScanServer {
6
+ declare class XraySecurityScanServer {
7
7
  private server;
8
8
  constructor();
9
9
  private setupToolHandlers;
@@ -17,4 +17,4 @@ declare class StringRaySecurityScanServer {
17
17
  private generateSecuritySummary;
18
18
  run(): Promise<void>;
19
19
  }
20
- export { StringRaySecurityScanServer };
20
+ export { XraySecurityScanServer };
@@ -11,7 +11,7 @@ import fs from "fs";
11
11
  import path from "path";
12
12
  import { detectProjectLanguage, LANGUAGE_CONFIGS, } from "../utils/language-detector.js";
13
13
  import { frameworkLogger } from "../core/framework-logger.js";
14
- class StringRaySecurityScanServer {
14
+ class XraySecurityScanServer {
15
15
  server;
16
16
  constructor() {
17
17
  this.server = new Server({
@@ -525,7 +525,7 @@ ${results.recommendations.map((r) => `• ${r}`).join("\n") || "No recommendatio
525
525
  }
526
526
  // Start the server if run directly
527
527
  if (import.meta.url === `file://${process.argv[1]}`) {
528
- const server = new StringRaySecurityScanServer();
528
+ const server = new XraySecurityScanServer();
529
529
  server.run().catch((error) => frameworkLogger.log("mcps/security-scan", "run", "error", { error: String(error) }));
530
530
  }
531
- export { StringRaySecurityScanServer };
531
+ export { XraySecurityScanServer };
@@ -73,7 +73,7 @@ export const researcherSimulations = {
73
73
  * Framework Help server simulations
74
74
  */
75
75
  export const frameworkHelpSimulations = {
76
- strray_get_capabilities: () => ({
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
- strray_get_commands: () => ({
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
- strray_explain_capability: () => ({
134
+ xray_explain_capability: () => ({
135
135
  content: [
136
136
  {
137
137
  type: 'text',
@@ -1,4 +1,4 @@
1
- import { StringRayStateManager } from "../state/state-manager.js";
1
+ import { XrayStateManager } from "../state/state-manager.js";
2
2
  export interface AgentInvocation {
3
3
  id: string;
4
4
  agentName: string;
@@ -99,7 +99,7 @@ export declare class AgentMetricsSystem {
99
99
  private retentionConfig;
100
100
  private cleanupInterval;
101
101
  private initialized;
102
- constructor(stateManager: StringRayStateManager, retentionConfig?: Partial<MetricsRetentionConfig>);
102
+ constructor(stateManager: XrayStateManager, retentionConfig?: Partial<MetricsRetentionConfig>);
103
103
  initialize(): Promise<void>;
104
104
  private startAutoCleanup;
105
105
  private performCleanup;
@@ -164,6 +164,6 @@ export declare class AgentMetricsSystem {
164
164
  updateRetentionConfig(config: Partial<MetricsRetentionConfig>): void;
165
165
  destroy(): void;
166
166
  }
167
- export declare function getAgentMetricsSystem(stateManager?: StringRayStateManager): AgentMetricsSystem;
168
- export declare function initializeAgentMetrics(stateManager: StringRayStateManager): AgentMetricsSystem;
167
+ export declare function getAgentMetricsSystem(stateManager?: XrayStateManager): AgentMetricsSystem;
168
+ export declare function initializeAgentMetrics(stateManager: XrayStateManager): AgentMetricsSystem;
169
169
  export declare function resetAgentMetricsSystem(): void;
@@ -1,4 +1,4 @@
1
- // Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .strray fallbacks)
1
+ // Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .xray fallbacks)
2
2
  import { frameworkLogger } from "../core/framework-logger.js";
3
3
  const DEFAULT_RETENTION_CONFIG = {
4
4
  maxEntries: 10000,
@@ -2,7 +2,7 @@
2
2
  * Enhanced Multi-Agent Orchestration with Clickable Monitoring
3
3
  * Integrates subagent spawning visibility and lifecycle management
4
4
  */
5
- import { StringRayStateManager } from "../state/state-manager.js";
5
+ import { XrayStateManager } from "../state/state-manager.js";
6
6
  export interface AgentSpawnRequest {
7
7
  agentType: string;
8
8
  task: string;
@@ -73,7 +73,7 @@ export declare class EnhancedMultiAgentOrchestrator {
73
73
  private agentDelegator;
74
74
  private executionContext;
75
75
  private cleanupTimer;
76
- constructor(stateManager?: StringRayStateManager, isMainOrchestrator?: boolean);
76
+ constructor(stateManager?: XrayStateManager, isMainOrchestrator?: boolean);
77
77
  /**
78
78
  * 🚨 SECURITY: Check if currently executing as a subagent
79
79
  * Prevents subagents from spawning other subagents (infinite loops, resource exhaustion)
@@ -2,7 +2,7 @@
2
2
  * Enhanced Multi-Agent Orchestration with Clickable Monitoring
3
3
  * Integrates subagent spawning visibility and lifecycle management
4
4
  */
5
- import { StringRayStateManager } from "../state/state-manager.js";
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";
@@ -17,7 +17,7 @@ export class EnhancedMultiAgentOrchestrator {
17
17
  executionContext;
18
18
  cleanupTimer = null;
19
19
  constructor(stateManager, isMainOrchestrator = false) {
20
- this.stateManager = stateManager || new StringRayStateManager();
20
+ this.stateManager = stateManager || new XrayStateManager();
21
21
  this.complexityAnalyzer = new ComplexityAnalyzer();
22
22
  this.agentDelegator = createAgentDelegator(this.stateManager, strRayConfigLoader);
23
23
  this.state = {
@@ -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 .strray/features.json -> commit_cycle
5
+ * Configuration is read from .xray/features.json -> commit_cycle
6
6
  */
7
7
  export interface PendingChange {
8
8
  filePath: string;
@@ -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 .strray/features.json -> commit_cycle
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,8 @@ export class IntelligentCommitBatcher {
36
36
  loadFeaturesConfig() {
37
37
  try {
38
38
  const configPaths = [
39
- path.join(process.cwd(), ".strray", "features.json"),
40
- path.join(process.cwd(), ".opencode", "strray", "features.json"),
39
+ path.join(process.cwd(), ".xray", "features.json"),
40
+ path.join(process.cwd(), ".opencode", "xray", "features.json"),
41
41
  ];
42
42
  for (const configPath of configPaths) {
43
43
  if (fs.existsSync(configPath)) {
@@ -8,7 +8,7 @@
8
8
  * @since 2026-01-23
9
9
  */
10
10
  import { TaskDefinition } from "../agents/types.js";
11
- import { StringRayStateManager } from "../state/state-manager.js";
11
+ import { XrayStateManager } from "../state/state-manager.js";
12
12
  export interface OrchestrationWorkflow {
13
13
  id: string;
14
14
  name: string;
@@ -68,13 +68,13 @@ export interface CoordinationMetrics {
68
68
  coordinationEfficiency: number;
69
69
  }
70
70
  export declare class MultiAgentOrchestrationCoordinator {
71
- private strRayOrchestrator;
71
+ private xrayOrchestrator;
72
72
  private enhancedOrchestrator;
73
73
  private agentDelegator;
74
74
  private stateManager;
75
75
  private complexityAnalyzer;
76
76
  private coordinationMetrics;
77
- constructor(stateManager?: StringRayStateManager);
77
+ constructor(stateManager?: XrayStateManager);
78
78
  /**
79
79
  * Initialize the coordination system with all components
80
80
  */
@@ -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 { StringRayStateManager } from "../state/state-manager.js";
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 { strRayConfigLoader } from "../core/config-loader.js";
16
+ import { xrayConfigLoader } from "../core/config-loader.js";
17
17
  export class MultiAgentOrchestrationCoordinator {
18
- strRayOrchestrator;
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 StringRayStateManager();
26
- this.strRayOrchestrator = new KernelOrchestrator();
25
+ this.stateManager = stateManager || new XrayStateManager();
26
+ this.xrayOrchestrator = new KernelOrchestrator();
27
27
  this.enhancedOrchestrator = enhancedMultiAgentOrchestrator;
28
- this.agentDelegator = createAgentDelegator(this.stateManager, strRayConfigLoader);
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:strray_orchestrator", this.strRayOrchestrator);
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.strRayOrchestrator.executeComplexTask(task.description, [task]);
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.strRayOrchestrator.getStatus(); // Just get status, no actual shutdown method
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
  }
@@ -60,7 +60,7 @@ export interface ConsolidationResult {
60
60
  recommendations: string[];
61
61
  summary: string;
62
62
  }
63
- export declare class StringRayOrchestrator {
63
+ export declare class XrayOrchestrator {
64
64
  private config;
65
65
  private activeTasks;
66
66
  private taskToAgentMap;
@@ -139,4 +139,5 @@ export declare class StringRayOrchestrator {
139
139
  config: OrchestratorConfig;
140
140
  };
141
141
  }
142
- export declare const strRayOrchestrator: StringRayOrchestrator;
142
+ export declare const xrayOrchestrator: XrayOrchestrator;
143
+ export { xrayOrchestrator as strRayOrchestrator, XrayOrchestrator as StringRayOrchestrator };
@@ -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 { StringRayStateManager } from "../state/state-manager.js";
16
+ import { XrayStateManager } from "../state/state-manager.js";
17
17
  import fs from "fs";
18
- export class StringRayOrchestrator {
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 StringRayStateManager());
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
- ".strray/features.json",
40
- ".opencode/strray/features.json",
39
+ ".xray/features.json",
40
+ ".opencode/xray/features.json",
41
41
  ];
42
42
  for (const configPath of configPaths) {
43
43
  if (fs.existsSync(configPath)) {
@@ -654,4 +654,6 @@ export class StringRayOrchestrator {
654
654
  }
655
655
  }
656
656
  // Export singleton instance
657
- export const strRayOrchestrator = new StringRayOrchestrator();
657
+ export const xrayOrchestrator = new XrayOrchestrator();
658
+ // Backward compat alias
659
+ export { xrayOrchestrator as strRayOrchestrator, XrayOrchestrator as StringRayOrchestrator };