0xray 2.0.1 → 2.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.
Files changed (286) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/.opencode/commands/dependency-audit.md +3 -3
  3. package/.opencode/enforcer-config.json +2 -2
  4. package/.opencode/hooks/post-commit +1 -1
  5. package/.opencode/init.sh +2 -2
  6. package/AGENTS.md +1 -1
  7. package/README.md +2 -2
  8. package/dist/AGENTS.md +1 -1
  9. package/dist/CHANGELOG.md +10 -0
  10. package/dist/README.md +2 -2
  11. package/dist/analytics/routing-refiner.js +1 -1
  12. package/dist/benchmark/performance-benchmark.d.ts +2 -2
  13. package/dist/benchmark/performance-benchmark.js +3 -3
  14. package/dist/cli/commands/hermes-install.js +4 -4
  15. package/dist/cli/commands/mcp-install.js +1 -1
  16. package/dist/cli/commands/openclaw-install.js +1 -1
  17. package/dist/cli/commands/plugin-commands.js +2 -2
  18. package/dist/cli/commands/publish-agent.js +5 -5
  19. package/dist/cli/commands/skill-install.js +1 -1
  20. package/dist/cli/commands/status.js +3 -3
  21. package/dist/cli/commands/storyteller.js +2 -2
  22. package/dist/cli/index.js +8 -8
  23. package/dist/cli/server.js +1 -1
  24. package/dist/core/agent-spawn-gate.d.ts +1 -1
  25. package/dist/core/agent-spawn-gate.js +1 -1
  26. package/dist/core/boot-orchestrator.d.ts +4 -4
  27. package/dist/core/boot-orchestrator.js +27 -27
  28. package/dist/core/bridge.mjs +22 -22
  29. package/dist/core/codex-formatter.js +2 -2
  30. package/dist/core/codex-injector.d.ts +4 -3
  31. package/dist/core/codex-injector.js +11 -10
  32. package/dist/core/config-loader.d.ts +5 -4
  33. package/dist/core/config-loader.js +4 -2
  34. package/dist/core/config-paths.d.ts +9 -8
  35. package/dist/core/config-paths.js +24 -23
  36. package/dist/core/context-loader.d.ts +4 -3
  37. package/dist/core/context-loader.js +7 -5
  38. package/dist/core/features-config.js +1 -1
  39. package/dist/core/index.d.ts +1 -1
  40. package/dist/core/index.js +1 -1
  41. package/dist/core/orchestrator.d.ts +1 -0
  42. package/dist/core/orchestrator.js +3 -2
  43. package/dist/core/system-prompt-generator.js +2 -2
  44. package/dist/core/xray-activation.d.ts +4 -4
  45. package/dist/core/xray-activation.js +29 -24
  46. package/dist/delegation/agent-delegator.d.ts +3 -3
  47. package/dist/delegation/agent-delegator.js +3 -3
  48. package/dist/delegation/metrics-aggregator.d.ts +11 -11
  49. package/dist/delegation/session-coordinator.d.ts +3 -3
  50. package/dist/delegation/voting-coordinator.d.ts +3 -3
  51. package/dist/enforcement/enforcer-tools.js +2 -2
  52. package/dist/enforcement/loaders/codex-loader.d.ts +1 -1
  53. package/dist/enforcement/loaders/codex-loader.js +2 -2
  54. package/dist/index.d.ts +5 -5
  55. package/dist/index.js +6 -6
  56. package/dist/inference/deploy-verifier.js +1 -1
  57. package/dist/inference/inference-cycle.js +7 -7
  58. package/dist/integrations/base/README.md +2 -2
  59. package/dist/integrations/governance/index.js +1 -1
  60. package/dist/integrations/grok/grok-cli.d.ts +1 -1
  61. package/dist/integrations/grok/grok-cli.js +6 -6
  62. package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
  63. package/dist/integrations/grok/plugin/0xray/.mcp.json +3 -3
  64. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  65. package/dist/integrations/hermes-agent/__init__.py +77 -71
  66. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  67. package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
  68. package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
  69. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
  70. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
  71. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  72. package/dist/integrations/hermes-agent/after-install.md +14 -14
  73. package/dist/integrations/hermes-agent/bridge.mjs +14 -14
  74. package/dist/integrations/hermes-agent/logs/framework/routing-outcomes.json +1 -0
  75. package/dist/integrations/hermes-agent/plugin.yaml +5 -5
  76. package/dist/integrations/hermes-agent/schemas.py +12 -12
  77. package/dist/integrations/hermes-agent/test_plugin.py +128 -125
  78. package/dist/integrations/hermes-agent/tools.py +85 -23
  79. package/dist/integrations/openclaw/README.md +16 -16
  80. package/dist/integrations/openclaw/api-server.d.ts +4 -4
  81. package/dist/integrations/openclaw/api-server.js +9 -9
  82. package/dist/integrations/openclaw/config.js +1 -1
  83. package/dist/integrations/openclaw/hooks/{strray-hooks.d.ts → xray-hooks.d.ts} +4 -4
  84. package/dist/integrations/openclaw/index.d.ts +4 -4
  85. package/dist/integrations/openclaw/index.js +4 -4
  86. package/dist/integrations/openclaw/types.d.ts +1 -1
  87. package/dist/integrations/plugins/plugin-registry.js +2 -2
  88. package/dist/mcps/architect-tools.server.d.ts +2 -2
  89. package/dist/mcps/architect-tools.server.js +4 -4
  90. package/dist/mcps/auto-format.server.d.ts +2 -2
  91. package/dist/mcps/auto-format.server.js +4 -4
  92. package/dist/mcps/boot-orchestrator.server.d.ts +2 -2
  93. package/dist/mcps/boot-orchestrator.server.js +4 -4
  94. package/dist/mcps/config/server-config-registry.d.ts +1 -1
  95. package/dist/mcps/config/server-config-registry.js +7 -7
  96. package/dist/mcps/connection/mcp-connection.js +1 -1
  97. package/dist/mcps/enforcer-tools.server.d.ts +2 -2
  98. package/dist/mcps/enforcer-tools.server.js +4 -4
  99. package/dist/mcps/estimation.server.js +1 -1
  100. package/dist/mcps/framework-compliance-audit.server.d.ts +2 -2
  101. package/dist/mcps/framework-compliance-audit.server.js +4 -4
  102. package/dist/mcps/framework-help.server.js +7 -7
  103. package/dist/mcps/governance.server.js +1 -1
  104. package/dist/mcps/in-process-skill-registry.js +6 -6
  105. package/dist/mcps/knowledge-skills/api-design.server.d.ts +2 -2
  106. package/dist/mcps/knowledge-skills/api-design.server.js +4 -4
  107. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +2 -2
  108. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +4 -4
  109. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +1 -1
  110. package/dist/mcps/knowledge-skills/code-analyzer.server.js +1 -1
  111. package/dist/mcps/knowledge-skills/code-review.server.d.ts +2 -2
  112. package/dist/mcps/knowledge-skills/code-review.server.js +4 -4
  113. package/dist/mcps/knowledge-skills/content-creator.server.js +1 -1
  114. package/dist/mcps/knowledge-skills/database-design.server.d.ts +2 -2
  115. package/dist/mcps/knowledge-skills/database-design.server.js +4 -4
  116. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +2 -2
  117. package/dist/mcps/knowledge-skills/devops-deployment.server.js +4 -4
  118. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +2 -2
  119. package/dist/mcps/knowledge-skills/git-workflow.server.js +4 -4
  120. package/dist/mcps/knowledge-skills/growth-strategist.server.js +1 -1
  121. package/dist/mcps/knowledge-skills/log-monitor.server.js +1 -1
  122. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +2 -2
  123. package/dist/mcps/knowledge-skills/mobile-development.server.js +4 -4
  124. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1 -1
  125. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +2 -2
  126. package/dist/mcps/knowledge-skills/performance-optimization.server.js +4 -4
  127. package/dist/mcps/knowledge-skills/project-analysis.server.js +1 -1
  128. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +2 -2
  129. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +4 -4
  130. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +2 -2
  131. package/dist/mcps/knowledge-skills/security-audit.server.js +4 -4
  132. package/dist/mcps/knowledge-skills/seo-consultant.server.js +1 -1
  133. package/dist/mcps/knowledge-skills/session-management.server.js +1 -1
  134. package/dist/mcps/knowledge-skills/skill-invocation.server.js +1 -1
  135. package/dist/mcps/knowledge-skills/strategist.server.js +1 -1
  136. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +2 -2
  137. package/dist/mcps/knowledge-skills/tech-writer.server.js +5 -5
  138. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +2 -2
  139. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +4 -4
  140. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +2 -2
  141. package/dist/mcps/knowledge-skills/testing-strategy.server.js +4 -4
  142. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +2 -2
  143. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +6 -6
  144. package/dist/mcps/lint.server.d.ts +2 -2
  145. package/dist/mcps/lint.server.js +6 -6
  146. package/dist/mcps/mcp-client.js +3 -3
  147. package/dist/mcps/model-health-check.server.d.ts +2 -2
  148. package/dist/mcps/model-health-check.server.js +4 -4
  149. package/dist/mcps/orchestrator/server.js +2 -2
  150. package/dist/mcps/performance-analysis.server.d.ts +2 -2
  151. package/dist/mcps/performance-analysis.server.js +4 -4
  152. package/dist/mcps/processor-pipeline.server.d.ts +2 -2
  153. package/dist/mcps/processor-pipeline.server.js +4 -4
  154. package/dist/mcps/registry.json +1 -1
  155. package/dist/mcps/researcher.server.d.ts +3 -3
  156. package/dist/mcps/researcher.server.js +5 -5
  157. package/dist/mcps/security-scan.server.d.ts +2 -2
  158. package/dist/mcps/security-scan.server.js +4 -4
  159. package/dist/mcps/simulation/server-simulations.js +3 -3
  160. package/dist/mcps/state-manager.server.js +1 -1
  161. package/dist/metrics/agent-metrics.d.ts +4 -4
  162. package/dist/metrics/agent-metrics.js +1 -1
  163. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +2 -2
  164. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
  165. package/dist/orchestrator/intelligent-commit-batcher.d.ts +1 -1
  166. package/dist/orchestrator/intelligent-commit-batcher.js +3 -3
  167. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +3 -3
  168. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +9 -9
  169. package/dist/orchestrator/orchestrator.d.ts +3 -2
  170. package/dist/orchestrator/orchestrator.js +8 -6
  171. package/dist/orchestrator/universal-registry-bridge.js +1 -1
  172. package/dist/plugin/xray-codex-injection.d.ts +1 -1
  173. package/dist/plugin/xray-codex-injection.js +8 -7
  174. package/dist/postprocessor/PostProcessor.d.ts +2 -2
  175. package/dist/postprocessor/PostProcessor.js +1 -1
  176. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +2 -2
  177. package/dist/postprocessor/services/RegressionAnalysisService.js +2 -2
  178. package/dist/postprocessor/triggers/GitHookTrigger.js +14 -14
  179. package/dist/processors/implementations/agents-md-validation-processor.js +2 -2
  180. package/dist/processors/implementations/inference-improvement-processor.js +2 -2
  181. package/dist/processors/implementations/log-protection-processor.d.ts +1 -1
  182. package/dist/processors/implementations/log-protection-processor.js +2 -2
  183. package/dist/processors/implementations/publish-preflight-processor.d.ts +1 -1
  184. package/dist/processors/implementations/publish-preflight-processor.js +3 -3
  185. package/dist/processors/implementations/regression-testing-processor.js +2 -2
  186. package/dist/processors/implementations/session-summary-processor.js +2 -2
  187. package/dist/processors/implementations/storytelling-trigger-processor.js +2 -2
  188. package/dist/processors/processor-manager.d.ts +2 -2
  189. package/dist/public/about.html +6 -6
  190. package/dist/public/enterprise.html +1 -1
  191. package/dist/public/features.html +2 -2
  192. package/dist/public/index.html +4 -4
  193. package/dist/reporting/report-formatter.js +1 -1
  194. package/dist/scripts/activate-kernel-pipeline.js +2 -2
  195. package/dist/scripts/pre-command +1 -1
  196. package/dist/services/inference-tuner.js +2 -2
  197. package/dist/session/session-cleanup-manager.d.ts +3 -3
  198. package/dist/session/session-monitor.d.ts +3 -3
  199. package/dist/session/session-state-manager.d.ts +3 -3
  200. package/dist/skills/hermes-agent/SKILL.md +12 -12
  201. package/dist/skills/registry.json +1 -1
  202. package/dist/skills/storyteller/SKILL.md +1 -1
  203. package/dist/skills/xray-orchestrator/SKILL.md +141 -0
  204. package/dist/skills/xray-orchestrator/index.d.ts +13 -0
  205. package/dist/skills/xray-orchestrator/index.js +224 -0
  206. package/dist/state/index.d.ts +2 -1
  207. package/dist/state/index.js +2 -1
  208. package/dist/state/state-manager.d.ts +2 -2
  209. package/dist/state/state-manager.js +5 -4
  210. package/dist/utils/import-resolver.js +1 -1
  211. package/dist/utils/path-resolver.js +2 -2
  212. package/dist/utils/token-manager.js +1 -1
  213. package/dist/validation/estimation-validator.js +1 -1
  214. package/package.json +2 -2
  215. package/scripts/hooks/pre-command +1 -1
  216. package/scripts/hooks/run-hook.js +2 -2
  217. package/scripts/node/auto-reflection-generator.mjs +2 -2
  218. package/scripts/node/postinstall.cjs +1 -1
  219. package/scripts/node/pre-publish-guard.js +16 -10
  220. package/scripts/node/release.js +6 -6
  221. package/scripts/node/release.mjs +11 -11
  222. package/scripts/node/universal-version-manager.js +2 -2
  223. package/scripts/node/version-manager.mjs +1 -1
  224. package/src/integrations/grok/plugin/0xray/.mcp.json +3 -3
  225. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  226. package/src/mcps/architect-tools.server.ts +4 -4
  227. package/src/mcps/auto-format.server.ts +4 -4
  228. package/src/mcps/boot-orchestrator.server.ts +4 -4
  229. package/src/mcps/config/server-config-registry.ts +7 -7
  230. package/src/mcps/connection/mcp-connection.ts +1 -1
  231. package/src/mcps/enforcer-tools.server.ts +4 -4
  232. package/src/mcps/estimation.server.ts +1 -1
  233. package/src/mcps/framework-compliance-audit.server.ts +4 -4
  234. package/src/mcps/framework-help.server.ts +7 -7
  235. package/src/mcps/governance.server.ts +1 -1
  236. package/src/mcps/in-process-skill-registry.ts +6 -6
  237. package/src/mcps/knowledge-skills/api-design.server.test.ts +8 -8
  238. package/src/mcps/knowledge-skills/api-design.server.ts +4 -4
  239. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +4 -4
  240. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +1 -1
  241. package/src/mcps/knowledge-skills/code-analyzer.server.ts +1 -1
  242. package/src/mcps/knowledge-skills/code-review.server.ts +4 -4
  243. package/src/mcps/knowledge-skills/content-creator.server.ts +1 -1
  244. package/src/mcps/knowledge-skills/database-design.server.ts +4 -4
  245. package/src/mcps/knowledge-skills/devops-deployment.server.ts +4 -4
  246. package/src/mcps/knowledge-skills/git-workflow.server.ts +4 -4
  247. package/src/mcps/knowledge-skills/growth-strategist.server.ts +1 -1
  248. package/src/mcps/knowledge-skills/log-monitor.server.ts +1 -1
  249. package/src/mcps/knowledge-skills/mobile-development.server.ts +4 -4
  250. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +1 -1
  251. package/src/mcps/knowledge-skills/performance-optimization.server.ts +4 -4
  252. package/src/mcps/knowledge-skills/project-analysis.server.ts +1 -1
  253. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +4 -4
  254. package/src/mcps/knowledge-skills/security-audit.server.test.ts +23 -23
  255. package/src/mcps/knowledge-skills/security-audit.server.ts +4 -4
  256. package/src/mcps/knowledge-skills/seo-consultant.server.ts +1 -1
  257. package/src/mcps/knowledge-skills/session-management.server.ts +1 -1
  258. package/src/mcps/knowledge-skills/skill-invocation.server.ts +1 -1
  259. package/src/mcps/knowledge-skills/strategist.server.ts +1 -1
  260. package/src/mcps/knowledge-skills/tech-writer.server.ts +5 -5
  261. package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +28 -28
  262. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +4 -4
  263. package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +19 -19
  264. package/src/mcps/knowledge-skills/testing-strategy.server.ts +4 -4
  265. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +6 -6
  266. package/src/mcps/lint.server.ts +6 -6
  267. package/src/mcps/mcp-client.ts +3 -3
  268. package/src/mcps/model-health-check.server.ts +4 -4
  269. package/src/mcps/orchestrator/server.ts +2 -2
  270. package/src/mcps/performance-analysis.server.ts +4 -4
  271. package/src/mcps/processor-pipeline.server.ts +4 -4
  272. package/src/mcps/registry.json +1 -1
  273. package/src/mcps/researcher.server.ts +5 -5
  274. package/src/mcps/security-scan.server.ts +4 -4
  275. package/src/mcps/simulation/server-simulations.ts +3 -3
  276. package/src/mcps/state-manager.server.ts +1 -1
  277. package/src/opencode/codex.codex +1 -1
  278. package/src/opencode/commands/dependency-audit.md +3 -3
  279. package/src/opencode/enforcer-config.json +2 -2
  280. package/src/skills/hermes-agent/SKILL.md +12 -12
  281. package/src/skills/registry.json +1 -1
  282. package/src/skills/storyteller/SKILL.md +1 -1
  283. package/src/skills/xray-orchestrator/SKILL.md +141 -0
  284. package/src/skills/xray-orchestrator/index.ts +268 -0
  285. package/scripts/validate-stringray-comprehensive.js +0 -636
  286. /package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -0
@@ -2,7 +2,50 @@
2
2
 
3
3
  v2.0: Now uses the Node.js bridge for real framework integration.
4
4
  Falls back to CLI (npx 0xray) when bridge is unavailable.
5
+ """
6
+
7
+ import json
8
+ import os
9
+ import shutil
10
+ import subprocess
11
+ from pathlib import Path
12
+
13
+
14
+ # ── Paths ─────────────────────────────────────────────────────
15
+
16
+ PLUGIN_DIR = Path(__file__).resolve().parent
17
+ BRIDGE_PATH = PLUGIN_DIR / "bridge.mjs"
18
+
19
+
20
+ def _get_project_root():
21
+ """Find the project root by walking up from cwd."""
22
+ cwd = os.getcwd()
23
+ home = Path.home()
24
+ d = Path(cwd).resolve()
25
+ while True:
26
+ if (d / "node_modules" / "0xray" / "package.json").exists():
27
+ return str(d)
28
+ if (d / ".opencode" / "xray" / "features.json").exists():
29
+ return str(d)
30
+ if d != home and (d / "package.json").exists():
31
+ return str(d)
32
+ d = d.parent
33
+ if d == d.parent:
34
+ break
35
+ return cwd
36
+
37
+
38
+ def _run_xray(args, timeout=30):
39
+ """Run 0xray CLI command, return JSON string result."""
40
+ try:
41
+ result = subprocess.run(
5
42
  ["npx", "0xray"] + args,
43
+ capture_output=True, text=True, timeout=timeout,
44
+ )
45
+ if result.returncode == 0:
46
+ return json.dumps({"status": "ok", "output": result.stdout})
47
+ return json.dumps({"status": "error", "error": result.stderr[:500]})
48
+ except FileNotFoundError:
6
49
  return json.dumps({"error": "0xray not found. Run: npm install -g 0xray"})
7
50
  except subprocess.TimeoutExpired:
8
51
  return json.dumps({"error": f"Command timed out after {timeout}s"})
@@ -10,9 +53,28 @@ Falls back to CLI (npx 0xray) when bridge is unavailable.
10
53
  return json.dumps({"error": str(e)})
11
54
 
12
55
 
13
- # ── Tool: strray_validate ─────────────────────────────────────
56
+ def _bridge_call(command, timeout=30):
57
+ """Call bridge.mjs with a JSON command, return parsed dict."""
58
+ try:
59
+ result = subprocess.run(
60
+ ["node", str(BRIDGE_PATH), "--cwd", _get_project_root()],
61
+ input=json.dumps(command),
62
+ capture_output=True, text=True, timeout=timeout,
63
+ )
64
+ if result.returncode != 0:
65
+ return {"error": result.stderr[:300] if result.stderr else "bridge failed"}
66
+ return json.loads(result.stdout)
67
+ except FileNotFoundError:
68
+ return {"error": "node not found"}
69
+ except subprocess.TimeoutExpired:
70
+ return {"error": f"bridge timed out after {timeout}s"}
71
+ except (json.JSONDecodeError, OSError) as e:
72
+ return {"error": str(e)}
73
+
74
+
75
+ # ── Tool: xray_validate ─────────────────────────────────────
14
76
 
15
- def strray_validate(args: dict, **kwargs) -> str:
77
+ def xray_validate(args: dict, **kwargs) -> str:
16
78
  """Run pre-commit validation on files using the framework.
17
79
 
18
80
  Uses bridge for real quality gate + processor pipeline.
@@ -41,7 +103,7 @@ def strray_validate(args: dict, **kwargs) -> str:
41
103
  })
42
104
 
43
105
  # Fallback to CLI
44
- result = json.loads(_run_strray(["validate"], timeout=30))
106
+ result = json.loads(_run_xray(["validate"], timeout=30))
45
107
  if "error" in result:
46
108
  return json.dumps(result)
47
109
 
@@ -54,10 +116,10 @@ def strray_validate(args: dict, **kwargs) -> str:
54
116
  })
55
117
 
56
118
 
57
- # ── Tool: strray_codex_check ──────────────────────────────────
119
+ # ── Tool: xray_codex_check ──────────────────────────────────
58
120
 
59
- def strray_codex_check(args: dict, **kwargs) -> str:
60
- """Check code against StringRay codex rules.
121
+ def xray_codex_check(args: dict, **kwargs) -> str:
122
+ """Check code against Xray codex rules.
61
123
 
62
124
  Uses bridge for real quality gate codex checks.
63
125
  Falls back to CLI if bridge unavailable.
@@ -93,7 +155,7 @@ def strray_codex_check(args: dict, **kwargs) -> str:
93
155
  "focus_areas": focus_areas or "all",
94
156
  "code_length": len(code),
95
157
  "note": "Bridge unavailable — basic analysis only. "
96
- "Full codex validation available via MCP: mcp_strray_enforcer_codex_enforcement",
158
+ "Full codex validation available via MCP: mcp_xray_enforcer_codex_enforcement",
97
159
  "via": "static",
98
160
  })
99
161
 
@@ -109,7 +171,7 @@ def strray_codex_check(args: dict, **kwargs) -> str:
109
171
  "via": "bridge",
110
172
  })
111
173
 
112
- result = json.loads(_run_strray(["health"], timeout=15))
174
+ result = json.loads(_run_xray(["health"], timeout=15))
113
175
  if "error" in result:
114
176
  return json.dumps(result)
115
177
 
@@ -121,10 +183,10 @@ def strray_codex_check(args: dict, **kwargs) -> str:
121
183
  })
122
184
 
123
185
 
124
- # ── Tool: strray_health ───────────────────────────────────────
186
+ # ── Tool: xray_health ───────────────────────────────────────
125
187
 
126
- def strray_health(args: dict, **kwargs) -> str:
127
- """Check StringRay framework health via bridge.
188
+ def xray_health(args: dict, **kwargs) -> str:
189
+ """Check Xray framework health via bridge.
128
190
 
129
191
  Returns framework status, loaded components, version.
130
192
  """
@@ -141,13 +203,13 @@ def strray_health(args: dict, **kwargs) -> str:
141
203
  })
142
204
 
143
205
  # Fallback to CLI
144
- return _run_strray(["health"], timeout=15)
206
+ return _run_xray(["health"], timeout=15)
145
207
 
146
208
 
147
- # ── Tool: strray_hooks ───────────────────────────────────────
209
+ # ── Tool: xray_hooks ───────────────────────────────────────
148
210
 
149
- def strray_hooks(args: dict, **kwargs) -> str:
150
- """Manage StringRay git hooks.
211
+ def xray_hooks(args: dict, **kwargs) -> str:
212
+ """Manage Xray git hooks.
151
213
 
152
214
  Actions: install, uninstall, list, status
153
215
  Uses bridge for hook management when available.
@@ -174,7 +236,7 @@ def strray_hooks(args: dict, **kwargs) -> str:
174
236
 
175
237
  # Fallback: direct file-based hook management
176
238
  git_hooks_dir = Path(_get_project_root()) / ".git" / "hooks"
177
- strray_hooks_dir = Path(_get_project_root()) / "hooks"
239
+ xray_hooks_dir = Path(_get_project_root()) / "hooks"
178
240
 
179
241
  if not git_hooks_dir.exists():
180
242
  return json.dumps({"error": "Not a git repository", "via": "fallback"})
@@ -183,19 +245,19 @@ def strray_hooks(args: dict, **kwargs) -> str:
183
245
  result = {"managed": [], "missing": [], "external": [], "stale": []}
184
246
  for hook_name in hooks:
185
247
  git_hook = git_hooks_dir / hook_name
186
- strray_hook = strray_hooks_dir / hook_name
248
+ xray_hook = xray_hooks_dir / hook_name
187
249
  if not git_hook.exists():
188
250
  result["missing"].append(hook_name)
189
251
  else:
190
252
  try:
191
253
  content = git_hook.read_text()[:500]
192
- if "StringRay" in content or "strray" in content or "run-hook.js" in content:
254
+ if "Xray" in content or "StringRay" in content or "xray" in content or "strray" in content or "run-hook.js" in content:
193
255
  result["managed"].append(hook_name)
194
256
  else:
195
257
  result["external"].append(hook_name)
196
258
  except OSError:
197
259
  result["external"].append(hook_name)
198
- if not strray_hook.exists():
260
+ if not xray_hook.exists():
199
261
  result["stale"].append(hook_name)
200
262
  return json.dumps({"status": "ok", "action": action, **result, "via": "fallback"})
201
263
 
@@ -203,7 +265,7 @@ def strray_hooks(args: dict, **kwargs) -> str:
203
265
  installed = []
204
266
  skipped = []
205
267
  for hook_name in hooks:
206
- src = strray_hooks_dir / hook_name
268
+ src = xray_hooks_dir / hook_name
207
269
  dst = git_hooks_dir / hook_name
208
270
  if not src.exists():
209
271
  skipped.append(hook_name)
@@ -212,7 +274,7 @@ def strray_hooks(args: dict, **kwargs) -> str:
212
274
  if dst.exists():
213
275
  try:
214
276
  content = dst.read_text()[:500]
215
- if "StringRay" not in content and "strray" not in content:
277
+ if "Xray" not in content and "StringRay" not in content and "xray" not in content and "strray" not in content:
216
278
  dst.rename(dst.with_suffix(".strray-backup"))
217
279
  else:
218
280
  dst.unlink()
@@ -238,8 +300,8 @@ def strray_hooks(args: dict, **kwargs) -> str:
238
300
  continue
239
301
  try:
240
302
  content = dst.read_text()[:500]
241
- is_strray = "StringRay" in content or "strray" in content or "run-hook.js" in content
242
- if is_strray or dst.is_symlink():
303
+ is_xray = "Xray" in content or "StringRay" in content or "xray" in content or "strray" in content or "run-hook.js" in content
304
+ if is_xray or dst.is_symlink():
243
305
  dst.unlink()
244
306
  if backup.exists():
245
307
  shutil.move(str(backup), str(dst))
@@ -1,12 +1,12 @@
1
1
  # OpenClaw Integration
2
2
 
3
- StringRay integration for OpenClaw - a self-hosted AI gateway that connects messaging platforms to AI coding agents.
3
+ Xray integration for OpenClaw - a self-hosted AI gateway that connects messaging platforms to AI coding agents.
4
4
 
5
5
  ## Overview
6
6
 
7
- This integration allows StringRay to:
7
+ This integration allows Xray to:
8
8
  - Connect to OpenClaw Gateway via WebSocket
9
- - Expose StringRay capabilities through OpenClaw skills
9
+ - Expose Xray capabilities through OpenClaw skills
10
10
  - Send tool execution events to OpenClaw for real-time tracking
11
11
  - Receive commands from OpenClaw channels (WhatsApp, Telegram, Discord, etc.)
12
12
 
@@ -14,7 +14,7 @@ This integration allows StringRay to:
14
14
 
15
15
  ```
16
16
  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
17
- │ User │────▶│ OpenClaw │────▶│ StringRay
17
+ │ User │────▶│ OpenClaw │────▶│ Xray
18
18
  │ (WhatsApp, │ │ Gateway │ │ Skills │
19
19
  │ Discord, │ │ │ │ │
20
20
  │ Telegram) │◀────│ │◀────│ │
@@ -37,7 +37,7 @@ npm install ws
37
37
 
38
38
  ### 2. Configure OpenClaw
39
39
 
40
- Create `.strray/config/openclaw.json`:
40
+ Create `.xray/config/openclaw.json`:
41
41
 
42
42
  ```json
43
43
  {
@@ -82,11 +82,11 @@ const integration = await initializeOpenClawIntegration('/path/to/config.json',
82
82
 
83
83
  After installation, use these commands in any OpenClaw channel:
84
84
 
85
- - `/strray` - Show status
86
- - `/strray-analyze <file>` - Analyze code
87
- - `/strray-code <file>` - Code review
88
- - `/strray-file <file>` - Read file
89
- - `/strray-exec <command>` - Execute command
85
+ - `/xray` - Show status
86
+ - `/xray-analyze <file>` - Analyze code
87
+ - `/xray-code <file>` - Code review
88
+ - `/xray-file <file>` - Read file
89
+ - `/xray-exec <command>` - Execute command
90
90
 
91
91
  ## Configuration
92
92
 
@@ -115,14 +115,14 @@ The integration exposes a local HTTP API on port 18431:
115
115
 
116
116
  ### stringray-orchestrator
117
117
 
118
- Main skill providing StringRay commands:
118
+ Main skill providing Xray commands:
119
119
 
120
120
  ```markdown
121
- /strray - Show status
122
- /strray-analyze <file> - Analyze code
123
- /strray-code <file> - Code review
124
- /strray-file <file> - Read file
125
- /strray-exec <command> - Execute command
121
+ /xray - Show status
122
+ /xray-analyze <file> - Analyze code
123
+ /xray-code <file> - Code review
124
+ /xray-file <file> - Read file
125
+ /xray-exec <command> - Execute command
126
126
  ```
127
127
 
128
128
  ## Documentation
@@ -7,7 +7,7 @@
7
7
  * @version 1.0.0
8
8
  * @since 2026-03-14
9
9
  */
10
- import { StringRayAPIServerConfig, AgentInvokeRequest, AgentInvokeResponse, APIServerStatistics } from './types.js';
10
+ import { XrayAPIServerConfig, AgentInvokeRequest, AgentInvokeResponse, APIServerStatistics } from './types.js';
11
11
  /**
12
12
  * Agent invoker interface - implemented by 0xRay
13
13
  */
@@ -21,7 +21,7 @@ export interface AgentInvoker {
21
21
  /**
22
22
  * 0xRay API Server
23
23
  */
24
- export declare class StringRayAPIServer {
24
+ export declare class XrayAPIServer {
25
25
  private server;
26
26
  private config;
27
27
  private agentInvoker;
@@ -29,7 +29,7 @@ export declare class StringRayAPIServer {
29
29
  private stats;
30
30
  private responseTimes;
31
31
  private logger;
32
- constructor(config: StringRayAPIServerConfig);
32
+ constructor(config: XrayAPIServerConfig);
33
33
  /**
34
34
  * Set the agent invoker
35
35
  */
@@ -84,4 +84,4 @@ export declare class StringRayAPIServer {
84
84
  /**
85
85
  * Factory function to create API server
86
86
  */
87
- export declare function createStringRayAPIServer(config: StringRayAPIServerConfig): StringRayAPIServer;
87
+ export declare function createXrayAPIServer(config: XrayAPIServerConfig): XrayAPIServer;
@@ -12,7 +12,7 @@ import * as http from 'http';
12
12
  /**
13
13
  * 0xRay API Server
14
14
  */
15
- export class StringRayAPIServer {
15
+ export class XrayAPIServer {
16
16
  server = null;
17
17
  config;
18
18
  agentInvoker = null;
@@ -51,7 +51,7 @@ export class StringRayAPIServer {
51
51
  */
52
52
  async start() {
53
53
  if (this.server) {
54
- this.logger.warn('[StringRayAPIServer] Server already running');
54
+ this.logger.warn('[XrayAPIServer] Server already running');
55
55
  return;
56
56
  }
57
57
  return new Promise((resolve, reject) => {
@@ -59,13 +59,13 @@ export class StringRayAPIServer {
59
59
  this.handleRequest(req, res);
60
60
  });
61
61
  this.server.on('error', (error) => {
62
- this.logger.error('[StringRayAPIServer] Server error:', error);
62
+ this.logger.error('[XrayAPIServer] Server error:', error);
63
63
  this.stats.errors++;
64
64
  reject(error);
65
65
  });
66
66
  this.server.listen(this.config.port, this.config.host, () => {
67
67
  this.stats.startedAt = Date.now();
68
- this.logger.info(`[StringRayAPIServer] Listening on http://${this.config.host}:${this.config.port}`);
68
+ this.logger.info(`[XrayAPIServer] Listening on http://${this.config.host}:${this.config.port}`);
69
69
  resolve();
70
70
  });
71
71
  });
@@ -77,7 +77,7 @@ export class StringRayAPIServer {
77
77
  return new Promise((resolve) => {
78
78
  if (this.server) {
79
79
  this.server.close(() => {
80
- this.logger.info('[StringRayAPIServer] Server stopped');
80
+ this.logger.info('[XrayAPIServer] Server stopped');
81
81
  this.server = null;
82
82
  resolve();
83
83
  });
@@ -123,7 +123,7 @@ export class StringRayAPIServer {
123
123
  // to prevent cross-origin attacks where a malicious site could make
124
124
  // authenticated requests using the API key from a victim's browser.
125
125
  if (this.config.apiKey) {
126
- this.logger.warn('[StringRayAPIServer] Security: API key is set with CORS enabled. ' +
126
+ this.logger.warn('[XrayAPIServer] Security: API key is set with CORS enabled. ' +
127
127
  'Restricting Access-Control-Allow-Origin to localhost only. ' +
128
128
  'Configure explicit allowed origins if cross-origin access is needed.');
129
129
  const origin = req.headers.origin;
@@ -203,7 +203,7 @@ export class StringRayAPIServer {
203
203
  }
204
204
  }
205
205
  catch (error) {
206
- this.logger.error(`[StringRayAPIServer] Error handling request:`, error);
206
+ this.logger.error(`[XrayAPIServer] Error handling request:`, error);
207
207
  this.stats.errors++;
208
208
  const errorMessage = error instanceof Error ? error.message : 'Internal server error';
209
209
  this.sendResponse(res, 500, { error: errorMessage });
@@ -384,6 +384,6 @@ export class StringRayAPIServer {
384
384
  /**
385
385
  * Factory function to create API server
386
386
  */
387
- export function createStringRayAPIServer(config) {
388
- return new StringRayAPIServer(config);
387
+ export function createXrayAPIServer(config) {
388
+ return new XrayAPIServer(config);
389
389
  }
@@ -54,7 +54,7 @@ export class OpenClawConfigLoader {
54
54
  loadedAt = 0;
55
55
  constructor(configPath) {
56
56
  this.configPath = configPath ||
57
- path.join(process.cwd(), '.strray', 'config', 'openclaw.json');
57
+ path.join(process.cwd(), '.xray', 'config', 'openclaw.json');
58
58
  }
59
59
  /**
60
60
  * Load configuration from file with environment variable overrides
@@ -22,7 +22,7 @@ export interface OpenClawHooksConfig {
22
22
  /**
23
23
  * 0xRay tool event
24
24
  */
25
- export interface StringRayToolEvent {
25
+ export interface XrayToolEvent {
26
26
  toolName: string;
27
27
  toolId: string;
28
28
  args: Record<string, unknown>;
@@ -36,7 +36,7 @@ export interface StringRayToolEvent {
36
36
  /**
37
37
  * Hook event callback type
38
38
  */
39
- export type ToolEventCallback = (event: StringRayToolEvent) => void | Promise<void>;
39
+ export type ToolEventCallback = (event: XrayToolEvent) => void | Promise<void>;
40
40
  /**
41
41
  * OpenClaw Hooks Manager
42
42
  */
@@ -80,11 +80,11 @@ export declare class OpenClawHooksManager {
80
80
  /**
81
81
  * Handle tool.before event from 0xRay
82
82
  */
83
- onToolBefore(event: StringRayToolEvent): Promise<void>;
83
+ onToolBefore(event: XrayToolEvent): Promise<void>;
84
84
  /**
85
85
  * Handle tool.after event from 0xRay
86
86
  */
87
- onToolAfter(event: StringRayToolEvent): Promise<void>;
87
+ onToolAfter(event: XrayToolEvent): Promise<void>;
88
88
  /**
89
89
  * Queue an event for later delivery when connection is restored
90
90
  */
@@ -9,8 +9,8 @@
9
9
  import { BaseIntegration } from '../base/index.js';
10
10
  import type { OpenClawIntegrationConfig, IntegrationStatistics } from './types.js';
11
11
  import { OpenClawClient } from './client.js';
12
- import { StringRayAPIServer } from './api-server.js';
13
- import { OpenClawHooksManager } from './hooks/strray-hooks.js';
12
+ import { XrayAPIServer } from './api-server.js';
13
+ import { OpenClawHooksManager } from './hooks/xray-hooks.js';
14
14
  import type { AgentInvoker } from './api-server.js';
15
15
  /**
16
16
  * Main OpenClaw Integration class
@@ -58,7 +58,7 @@ export declare class OpenClawIntegration extends BaseIntegration {
58
58
  /**
59
59
  * Get the API server instance
60
60
  */
61
- getAPIServer(): StringRayAPIServer | null;
61
+ getAPIServer(): XrayAPIServer | null;
62
62
  /**
63
63
  * Get the client instance
64
64
  */
@@ -98,4 +98,4 @@ export * from './types.js';
98
98
  export * from './config.js';
99
99
  export * from './client.js';
100
100
  export * from './api-server.js';
101
- export { OpenClawHooksManager } from './hooks/strray-hooks.js';
101
+ export { OpenClawHooksManager } from './hooks/xray-hooks.js';
@@ -9,10 +9,10 @@
9
9
  import { BaseIntegration } from '../base/index.js';
10
10
  import { OpenClawConfigLoader } from './config.js';
11
11
  import { OpenClawClient } from './client.js';
12
- import { StringRayAPIServer } from './api-server.js';
12
+ import { XrayAPIServer } from './api-server.js';
13
13
  import { initializeGovernanceIntegration } from '../governance/index.js';
14
14
  import { featuresConfigLoader } from '../../core/features-config.js';
15
- import { OpenClawHooksManager } from './hooks/strray-hooks.js';
15
+ import { OpenClawHooksManager } from './hooks/xray-hooks.js';
16
16
  import { mcpClientManager } from '../../mcps/mcp-client.js';
17
17
  /**
18
18
  * Main OpenClaw Integration class
@@ -56,7 +56,7 @@ export class OpenClawIntegration extends BaseIntegration {
56
56
  // Initialize API server if enabled
57
57
  if (config.apiServer?.enabled) {
58
58
  await this.log('info', 'Starting API server...');
59
- this.apiServer = new StringRayAPIServer(config.apiServer);
59
+ this.apiServer = new XrayAPIServer(config.apiServer);
60
60
  if (this.agentInvoker) {
61
61
  this.apiServer.setAgentInvoker(this.agentInvoker);
62
62
  }
@@ -348,4 +348,4 @@ export * from './types.js';
348
348
  export * from './config.js';
349
349
  export * from './client.js';
350
350
  export * from './api-server.js';
351
- export { OpenClawHooksManager } from './hooks/strray-hooks.js';
351
+ export { OpenClawHooksManager } from './hooks/xray-hooks.js';
@@ -106,7 +106,7 @@ export interface OpenClawClientConfig {
106
106
  /**
107
107
  * 0xRay API server configuration
108
108
  */
109
- export interface StringRayAPIServerConfig {
109
+ export interface XrayAPIServerConfig {
110
110
  port: number;
111
111
  host?: string;
112
112
  apiKey?: string;
@@ -46,8 +46,8 @@ export class PluginRegistry extends EventEmitter {
46
46
  reloadDebounce = new Map();
47
47
  constructor(config = {}) {
48
48
  super();
49
- this.pluginsDir = config.pluginsDir || ".strray/plugins";
50
- this.configPath = config.configPath || ".strray/config/plugin-config.json";
49
+ this.pluginsDir = config.pluginsDir || ".xray/plugins";
50
+ this.configPath = config.configPath || ".xray/config/plugin-config.json";
51
51
  this.autoStart = config.autoStart ?? true;
52
52
  this.enableMetrics = config.enableMetrics ?? true;
53
53
  this.enableHotReload = config.enableHotReload ?? false;
@@ -4,7 +4,7 @@
4
4
  * Converts architect-tools.ts functions into MCP server tools
5
5
  * Provides contextual analysis capabilities via MCP protocol
6
6
  */
7
- declare class StringRayArchitectToolsServer {
7
+ declare class XrayArchitectToolsServer {
8
8
  private server;
9
9
  constructor();
10
10
  private setupToolHandlers;
@@ -14,4 +14,4 @@ declare class StringRayArchitectToolsServer {
14
14
  private architectureAssessment;
15
15
  run(): Promise<void>;
16
16
  }
17
- export default StringRayArchitectToolsServer;
17
+ export default XrayArchitectToolsServer;
@@ -9,11 +9,11 @@ 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
11
  import { contextAnalysis as architectContextAnalysis, codebaseStructure as architectCodebaseStructure, dependencyAnalysis as architectDependencyAnalysis, architectureAssessment as architectArchitectureAssessment, } from "../architect/architect-tools.js";
12
- class StringRayArchitectToolsServer {
12
+ class XrayArchitectToolsServer {
13
13
  server;
14
14
  constructor() {
15
15
  this.server = new Server({
16
- name: "architect-tools", version: "2.0.0",
16
+ name: "architect-tools", version: "2.0.1",
17
17
  }, {
18
18
  capabilities: {
19
19
  tools: {},
@@ -271,7 +271,7 @@ class StringRayArchitectToolsServer {
271
271
  }
272
272
  }
273
273
  if (import.meta.url === `file://${process.argv[1]}`) {
274
- const server = new StringRayArchitectToolsServer();
274
+ const server = new XrayArchitectToolsServer();
275
275
  server.run().catch((error) => frameworkLogger.log("mcps/architect-tools", "run", "error", { error: String(error) }));
276
276
  }
277
- export default StringRayArchitectToolsServer;
277
+ export default XrayArchitectToolsServer;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Automated code formatting hook with Prettier and framework-specific formatters
5
5
  */
6
- declare class StringRayAutoFormatServer {
6
+ declare class XrayAutoFormatServer {
7
7
  private server;
8
8
  constructor();
9
9
  private setupToolHandlers;
@@ -16,4 +16,4 @@ declare class StringRayAutoFormatServer {
16
16
  private generateFormatSummary;
17
17
  run(): Promise<void>;
18
18
  }
19
- export { StringRayAutoFormatServer };
19
+ export { XrayAutoFormatServer };
@@ -9,11 +9,11 @@ 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 StringRayAutoFormatServer {
12
+ class XrayAutoFormatServer {
13
13
  server;
14
14
  constructor() {
15
15
  this.server = new Server({
16
- name: "auto-format", version: "2.0.0",
16
+ name: "auto-format", version: "2.0.1",
17
17
  }, {
18
18
  capabilities: {
19
19
  tools: {},
@@ -407,7 +407,7 @@ ${checkResults.details.map((d) => `• ${d}`).join("\n")}
407
407
  }
408
408
  // Start the server if run directly
409
409
  if (import.meta.url === `file://${process.argv[1]}`) {
410
- const server = new StringRayAutoFormatServer();
410
+ const server = new XrayAutoFormatServer();
411
411
  server.run().catch((error) => frameworkLogger.log("mcps/auto-format", "run", "error", { error: String(error) }));
412
412
  }
413
- export { StringRayAutoFormatServer };
413
+ export { XrayAutoFormatServer };
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Advanced initialization orchestration with dependency management and health monitoring
5
5
  */
6
- declare class StringRayBootOrchestratorServer {
6
+ declare class XrayBootOrchestratorServer {
7
7
  private server;
8
8
  private bootStatus;
9
9
  private bootSequence;
@@ -46,4 +46,4 @@ declare class StringRayBootOrchestratorServer {
46
46
  private formatOverallStatus;
47
47
  run(): Promise<void>;
48
48
  }
49
- export { StringRayBootOrchestratorServer };
49
+ export { XrayBootOrchestratorServer };
@@ -11,7 +11,7 @@ import fs from "fs";
11
11
  import path from "path";
12
12
  import { frameworkLogger } from "../core/framework-logger.js";
13
13
  import { resolveLogDir, resolveStateDir } from "../core/config-paths.js";
14
- class StringRayBootOrchestratorServer {
14
+ class XrayBootOrchestratorServer {
15
15
  server;
16
16
  bootStatus;
17
17
  // Boot sequence in dependency order
@@ -30,7 +30,7 @@ class StringRayBootOrchestratorServer {
30
30
  ];
31
31
  constructor() {
32
32
  this.server = new Server({
33
- name: "boot-orchestrator", version: "2.0.0",
33
+ name: "boot-orchestrator", version: "2.0.1",
34
34
  }, {
35
35
  capabilities: {
36
36
  tools: {},
@@ -847,7 +847,7 @@ ${results.warnings.length > 0 ? `**Warnings:**\n${results.warnings.map((w) => `
847
847
  }
848
848
  // Start the server if run directly
849
849
  if (import.meta.url === `file://${process.argv[1]}`) {
850
- const server = new StringRayBootOrchestratorServer();
850
+ const server = new XrayBootOrchestratorServer();
851
851
  server.run().catch((error) => frameworkLogger.log("mcps/boot-orchestrator", "run", "error", { error: String(error) }));
852
852
  }
853
- export { StringRayBootOrchestratorServer };
853
+ export { XrayBootOrchestratorServer };
@@ -41,7 +41,7 @@ export declare class ServerConfigRegistry {
41
41
  /**
42
42
  * Create a dynamic configuration for an unknown server
43
43
  * Uses the knowledge-skills directory as default location.
44
- * Now respects the "strray" field declared in package.json.
44
+ * Now respects the "xray" field declared in package.json.
45
45
  */
46
46
  createDynamicConfig(serverName: string): IServerConfig;
47
47
  }