0xray 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/.gitignore.default +59 -0
  2. package/.mcp.json +35 -0
  3. package/.opencode/codex.codex +1 -1
  4. package/.opencode/commands/auto-format.md +3 -3
  5. package/.opencode/commands/auto-summary-capture.md +2 -2
  6. package/.opencode/commands/dependency-audit.md +3 -3
  7. package/.opencode/commands/enforcer-daily-scan.md +3 -3
  8. package/.opencode/commands/framework-compliance-audit.md +4 -4
  9. package/.opencode/commands/interactive-validator.md +2 -2
  10. package/.opencode/commands/job-summary-logger.md +2 -2
  11. package/.opencode/commands/mode-switch.md +1 -1
  12. package/.opencode/commands/model-health-check.md +2 -2
  13. package/.opencode/commands/performance-analysis.md +2 -2
  14. package/.opencode/commands/pre-commit-introspection.md +3 -3
  15. package/.opencode/commands/security-scan.md +3 -3
  16. package/.opencode/commands/sisyphus-validation.md +3 -3
  17. package/.opencode/commands/summary-logger.md +6 -6
  18. package/.opencode/enforcer-config.json +2 -2
  19. package/.opencode/hooks/post-commit +1 -1
  20. package/.opencode/init.sh +6 -0
  21. package/.plugin/plugin.json +11 -0
  22. package/AGENTS-consumer.md +46 -0
  23. package/AGENTS.md +2 -12
  24. package/LICENSE +1 -1
  25. package/README.md +6 -6
  26. package/SKILLS.md +140 -0
  27. package/dist/.gitignore.default +59 -0
  28. package/dist/AGENTS.md +2 -12
  29. package/dist/CHANGELOG.md +54 -0
  30. package/dist/LICENSE +1 -1
  31. package/dist/README.md +6 -6
  32. package/dist/SKILLS.md +140 -0
  33. package/dist/agents/index.js +3 -1
  34. package/dist/agents/registry.js +13 -0
  35. package/dist/analytics/consent-manager.js +0 -1
  36. package/dist/analytics/emerging-pattern-detector.js +0 -1
  37. package/dist/analytics/pattern-learning-engine.js +0 -1
  38. package/dist/analytics/pattern-performance-tracker.js +0 -1
  39. package/dist/analytics/predictive-analytics.js +0 -1
  40. package/dist/analytics/prompt-pattern-analyzer.js +0 -1
  41. package/dist/analytics/routing-performance-analyzer.js +0 -1
  42. package/dist/analytics/routing-refiner.js +1 -2
  43. package/dist/analytics/simple-pattern-analyzer.js +0 -1
  44. package/dist/architect/architectural-integrity.js +3 -3
  45. package/dist/benchmark/performance-benchmark.js +1 -2
  46. package/dist/cli/commands/antigravity-status.js +23 -23
  47. package/dist/cli/commands/archive-logs.js +0 -1
  48. package/dist/cli/commands/credible-init.js +1 -1
  49. package/dist/cli/commands/hermes-install.js +8 -0
  50. package/dist/cli/commands/mcp-install.js +1 -1
  51. package/dist/cli/commands/openclaw-install.js +9 -0
  52. package/dist/cli/commands/opencode-install.js +35 -0
  53. package/dist/cli/commands/plugin-commands.js +0 -1
  54. package/dist/cli/commands/skill-install.js +39 -2
  55. package/dist/cli/commands/status.js +16 -13
  56. package/dist/cli/commands/storyteller.js +1 -1
  57. package/dist/cli/index.js +14 -13
  58. package/dist/core/activity-logger.js +4 -5
  59. package/dist/core/adaptive-kernel.js +0 -1
  60. package/dist/core/agent-spawn-gate.js +1 -1
  61. package/dist/core/boot-orchestrator.js +14 -25
  62. package/dist/core/bridge.mjs +4 -5
  63. package/dist/core/codex-formatter.js +1 -3
  64. package/dist/core/codex-injector.js +3 -4
  65. package/dist/core/config-loader.js +36 -29
  66. package/dist/core/config-paths.js +30 -23
  67. package/dist/core/context-loader.js +0 -4
  68. package/dist/core/context-validator.js +0 -1
  69. package/dist/core/features-config.js +38 -2
  70. package/dist/core/index.js +2 -2
  71. package/dist/core/kernel-patterns.js +0 -1
  72. package/dist/core/logging-config.js +7 -7
  73. package/dist/core/model-router.js +23 -64
  74. package/dist/core/orchestrator.js +1 -1
  75. package/dist/core/system-prompt-generator.js +0 -1
  76. package/dist/core/xray-activation.js +3 -4
  77. package/dist/delegation/agent-delegator.js +2 -3
  78. package/dist/delegation/agent-expertise.js +0 -1
  79. package/dist/delegation/analytics/index.js +0 -1
  80. package/dist/delegation/analytics/learning-engine.js +0 -1
  81. package/dist/delegation/analytics/outcome-tracker.js +0 -1
  82. package/dist/delegation/analytics/routing-analytics.js +0 -1
  83. package/dist/delegation/ast-code-parser.js +0 -1
  84. package/dist/delegation/complexity-analyzer.js +0 -1
  85. package/dist/delegation/dependency-graph-builder.js +0 -1
  86. package/dist/delegation/index.js +0 -1
  87. package/dist/delegation/metrics-aggregator.js +0 -1
  88. package/dist/delegation/session-coordinator.js +0 -1
  89. package/dist/delegation/strategy-selector.js +0 -1
  90. package/dist/delegation/voting-coordinator.js +0 -1
  91. package/dist/delegation/voting-types.js +0 -1
  92. package/dist/delegation/weighted-voting-aggregator.js +0 -1
  93. package/dist/enforcement/core/index.js +0 -1
  94. package/dist/enforcement/core/rule-executor.js +0 -1
  95. package/dist/enforcement/core/rule-hierarchy.js +0 -1
  96. package/dist/enforcement/core/rule-registry.js +0 -1
  97. package/dist/enforcement/core/violation-fixer.js +0 -1
  98. package/dist/enforcement/enforcer-tools.js +2 -2
  99. package/dist/enforcement/index.js +0 -1
  100. package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
  101. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
  102. package/dist/enforcement/loaders/base-loader.js +0 -1
  103. package/dist/enforcement/loaders/codex-loader.js +2 -3
  104. package/dist/enforcement/loaders/index.js +0 -1
  105. package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
  106. package/dist/enforcement/loaders/processor-loader.js +0 -1
  107. package/dist/enforcement/types.js +0 -1
  108. package/dist/enforcement/validators/architecture-validators.js +0 -1
  109. package/dist/enforcement/validators/base-validator.js +0 -1
  110. package/dist/enforcement/validators/code-quality-validators.js +0 -1
  111. package/dist/enforcement/validators/index.js +0 -1
  112. package/dist/enforcement/validators/security-validators.js +0 -1
  113. package/dist/enforcement/validators/testing-validators.js +0 -1
  114. package/dist/enforcement/validators/validator-registry.js +0 -1
  115. package/dist/execution/opencode-cli-invoker.js +1 -1
  116. package/dist/governance/codex-policy.service.js +0 -1
  117. package/dist/governance/governance-service.js +1 -1
  118. package/dist/governance/llm-governance-provider.js +14 -1
  119. package/dist/index.js +3 -5
  120. package/dist/inference/inference-agent-invoker.js +67 -0
  121. package/dist/inference/inference-applier.js +178 -0
  122. package/dist/inference/inference-cycle.js +52 -828
  123. package/dist/inference/inference-proposal-generator.js +149 -0
  124. package/dist/infrastructure/iac-validator.js +465 -0
  125. package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
  126. package/dist/integrations/base/ExampleIntegration.js +0 -1
  127. package/dist/integrations/base/Integration.js +0 -1
  128. package/dist/integrations/base/README.md +1 -1
  129. package/dist/integrations/base/index.js +0 -1
  130. package/dist/integrations/base/registry.js +0 -1
  131. package/dist/integrations/base/types.js +0 -1
  132. package/dist/integrations/enforcement-gate.js +5 -5
  133. package/dist/integrations/governance/governance-client.js +0 -1
  134. package/dist/integrations/governance/index.js +11 -19
  135. package/dist/integrations/governance/types.js +0 -1
  136. package/dist/integrations/grok/grok-cli.js +20 -6
  137. package/dist/integrations/grok/hooks/pre-tool-use.js +3 -3
  138. package/dist/integrations/grok/plugin/0xray/.mcp.json +16 -4
  139. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  140. package/dist/integrations/hermes-agent/__init__.py +29 -14
  141. package/dist/integrations/hermes-agent/bridge.mjs +76 -4
  142. package/dist/integrations/hermes-agent/schemas.py +49 -0
  143. package/dist/integrations/hermes-agent/test_plugin.py +7 -7
  144. package/dist/integrations/hermes-agent/tools.py +107 -3
  145. package/dist/integrations/openclaw/README.md +6 -6
  146. package/dist/integrations/openclaw/api-server.js +0 -1
  147. package/dist/integrations/openclaw/client.js +0 -1
  148. package/dist/integrations/openclaw/config.js +1 -2
  149. package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -1
  150. package/dist/integrations/openclaw/index.js +2 -3
  151. package/dist/integrations/openclaw/types.js +3 -4
  152. package/dist/integrations/plugins/index.js +0 -1
  153. package/dist/integrations/plugins/plugin-integration.js +1 -2
  154. package/dist/integrations/plugins/plugin-registry.js +1 -2
  155. package/dist/mcps/agent-resolver.js +0 -1
  156. package/dist/mcps/architect-tools.server.js +121 -186
  157. package/dist/mcps/auto-format.server.js +57 -75
  158. package/dist/mcps/boot-orchestrator.server.js +68 -86
  159. package/dist/mcps/config/config-loader.js +46 -9
  160. package/dist/mcps/config/plugin-server-registry.js +0 -1
  161. package/dist/mcps/enforcer-tools.server.js +208 -274
  162. package/dist/mcps/estimation.server.js +65 -108
  163. package/dist/mcps/framework-compliance-audit.server.js +53 -82
  164. package/dist/mcps/framework-help.server.js +73 -90
  165. package/dist/mcps/governance.server.js +104 -152
  166. package/dist/mcps/knowledge-skills/api-design.server.js +35 -66
  167. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -66
  168. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +125 -165
  169. package/dist/mcps/knowledge-skills/code-analyzer.server.js +211 -238
  170. package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
  171. package/dist/mcps/knowledge-skills/content-creator.server.js +205 -227
  172. package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
  173. package/dist/mcps/knowledge-skills/devops-deployment.server.js +125 -158
  174. package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
  175. package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -325
  176. package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -161
  177. package/dist/mcps/knowledge-skills/mobile-development.server.js +172 -202
  178. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +124 -160
  179. package/dist/mcps/knowledge-skills/performance-optimization.server.js +89 -139
  180. package/dist/mcps/knowledge-skills/project-analysis.server.js +132 -219
  181. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +117 -151
  182. package/dist/mcps/knowledge-skills/security-audit.server.js +17 -144
  183. package/dist/mcps/knowledge-skills/seo-consultant.server.js +22 -214
  184. package/dist/mcps/knowledge-skills/session-management.server.js +15 -91
  185. package/dist/mcps/knowledge-skills/skill-invocation.server.js +83 -359
  186. package/dist/mcps/knowledge-skills/strategist.server.js +12 -57
  187. package/dist/mcps/knowledge-skills/tech-writer.server.js +18 -193
  188. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +20 -192
  189. package/dist/mcps/knowledge-skills/testing-strategy.server.js +19 -157
  190. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +24 -297
  191. package/dist/mcps/lint.server.js +51 -92
  192. package/dist/mcps/model-health-check.server.js +34 -61
  193. package/dist/mcps/orchestrator/aside-context.js +207 -0
  194. package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
  195. package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
  196. package/dist/mcps/orchestrator/handlers/task-handler.js +5 -0
  197. package/dist/mcps/orchestrator/index.js +5 -0
  198. package/dist/mcps/orchestrator/server.js +65 -9
  199. package/dist/mcps/orchestrator.server.js +2 -1
  200. package/dist/mcps/performance-analysis.server.js +57 -88
  201. package/dist/mcps/processor-pipeline.server.js +70 -100
  202. package/dist/mcps/registry.json +1 -1
  203. package/dist/mcps/researcher.server.js +81 -154
  204. package/dist/mcps/security-scan.server.js +57 -71
  205. package/dist/mcps/shared/knowledge-skill-base.js +11 -4
  206. package/dist/mcps/state-manager.server.js +127 -155
  207. package/dist/metrics/agent-metrics.js +1 -1
  208. package/dist/monitoring/nudge-watchdog.js +0 -1
  209. package/dist/nucleus/default-plugins.js +13 -19
  210. package/dist/nucleus/index.js +0 -1
  211. package/dist/orchestrator/agent-spawn-governor.js +0 -1
  212. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
  213. package/dist/orchestrator/intelligent-commit-batcher.js +2 -11
  214. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
  215. package/dist/orchestrator/orchestrator.js +8 -19
  216. package/dist/orchestrator/self-direction-activation.js +0 -1
  217. package/dist/orchestrator/universal-registry-bridge.js +1 -2
  218. package/dist/performance/performance-budget-enforcer.js +0 -1
  219. package/dist/performance/performance-regression-tester.js +0 -1
  220. package/dist/plugin/plugin-codex-context.js +87 -0
  221. package/dist/plugin/plugin-helpers.js +155 -0
  222. package/dist/plugin/plugin-logger.js +46 -0
  223. package/dist/plugin/plugin-modules.js +144 -0
  224. package/dist/plugin/plugin-quality-gate.js +88 -0
  225. package/dist/plugin/plugin-types.js +1 -0
  226. package/dist/plugin/xray-codex-injection.js +39 -558
  227. package/dist/postprocessor/PostProcessor.js +7 -13
  228. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
  229. package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
  230. package/dist/postprocessor/integration.js +194 -0
  231. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
  232. package/dist/postprocessor/metamorphosis/index.js +1 -0
  233. package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
  234. package/dist/postprocessor/services/RegressionAnalysisService.js +2 -3
  235. package/dist/postprocessor/triggers/APITrigger.js +0 -1
  236. package/dist/postprocessor/triggers/GitHookTrigger.js +4 -4
  237. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
  238. package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
  239. package/dist/processors/implementations/async-pattern-processor.js +0 -1
  240. package/dist/processors/implementations/console-log-guard-processor.js +0 -1
  241. package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
  242. package/dist/processors/implementations/inference-improvement-processor.js +2 -10
  243. package/dist/processors/implementations/log-protection-processor.js +0 -1
  244. package/dist/processors/implementations/nudge-processor.js +0 -1
  245. package/dist/processors/implementations/performance-budget-processor.js +0 -1
  246. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
  247. package/dist/processors/implementations/publish-preflight-processor.js +4 -13
  248. package/dist/processors/implementations/session-summary-processor.js +8 -16
  249. package/dist/processors/implementations/spawn-governance-processor.js +0 -1
  250. package/dist/processors/implementations/storytelling-trigger-processor.js +3 -29
  251. package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
  252. package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
  253. package/dist/processors/implementations/version-compliance-processor.js +0 -1
  254. package/dist/processors/processor-interfaces.js +0 -1
  255. package/dist/processors/processor-types.js +0 -1
  256. package/dist/public/about.html +6 -6
  257. package/dist/public/enterprise.html +1 -1
  258. package/dist/public/features.html +2 -2
  259. package/dist/public/index.html +4 -4
  260. package/dist/reporting/report-formatter.js +1 -1
  261. package/dist/scripts/activate-kernel-pipeline.js +2 -2
  262. package/dist/scripts/integration.js +0 -1
  263. package/dist/scripts/pre-command +1 -1
  264. package/dist/security/comprehensive-security-audit.js +0 -1
  265. package/dist/security/security-agent-coordinator.js +0 -1
  266. package/dist/security/security-auditor.js +0 -1
  267. package/dist/security/security-hardener.js +0 -1
  268. package/dist/security/security-hardening-system.js +0 -1
  269. package/dist/security/security-headers.js +0 -1
  270. package/dist/security/security-orchestration-layer.js +0 -1
  271. package/dist/services/inference-tuner.js +1 -2
  272. package/dist/session/session-cleanup-manager.js +0 -1
  273. package/dist/session/session-monitor.js +0 -1
  274. package/dist/session/session-state-manager.js +0 -1
  275. package/dist/skills/api-design/SKILL.md +1 -1
  276. package/dist/skills/architect-tools/SKILL.md +1 -1
  277. package/dist/skills/architecture-patterns/SKILL.md +1 -1
  278. package/dist/skills/auto-format/SKILL.md +1 -1
  279. package/dist/skills/boot-orchestrator/SKILL.md +1 -1
  280. package/dist/skills/bug-triage/SKILL.md +1 -1
  281. package/dist/skills/code-analyzer/SKILL.md +1 -1
  282. package/dist/skills/code-review/SKILL.md +1 -1
  283. package/dist/skills/enforcer/SKILL.md +1 -1
  284. package/dist/skills/framework-compliance-audit/SKILL.md +1 -1
  285. package/dist/skills/git-workflow/SKILL.md +1 -1
  286. package/dist/skills/hermes-agent/SKILL.md +2 -2
  287. package/dist/skills/inference-improve/SKILL.md +1 -1
  288. package/dist/skills/lint/SKILL.md +1 -1
  289. package/dist/skills/log-monitor/SKILL.md +1 -1
  290. package/dist/skills/model-health-check/SKILL.md +1 -1
  291. package/dist/skills/multimodal-looker/SKILL.md +1 -1
  292. package/dist/skills/orchestrator/SKILL.md +1 -1
  293. package/dist/skills/performance-analysis/SKILL.md +1 -1
  294. package/dist/skills/performance-optimization/SKILL.md +1 -1
  295. package/dist/skills/processor-pipeline/SKILL.md +1 -1
  296. package/dist/skills/project-analysis/SKILL.md +1 -1
  297. package/dist/skills/refactoring-strategies/SKILL.md +1 -1
  298. package/dist/skills/registry.json +1 -1
  299. package/dist/skills/researcher/SKILL.md +1 -1
  300. package/dist/skills/security-audit/SKILL.md +1 -1
  301. package/dist/skills/security-scan/SKILL.md +1 -1
  302. package/dist/skills/session-management/SKILL.md +1 -1
  303. package/dist/skills/state-manager/SKILL.md +1 -1
  304. package/dist/skills/storyteller/SKILL.md +1 -1
  305. package/dist/skills/testing-best-practices/SKILL.md +1 -1
  306. package/dist/skills/testing-strategy/SKILL.md +1 -1
  307. package/dist/skills/ui-ux-design/SKILL.md +1 -1
  308. package/dist/skills/xray-orchestrator/index.js +0 -1
  309. package/dist/state/index.js +0 -1
  310. package/dist/state/state-manager.js +1 -2
  311. package/dist/utils/codex-parser.js +0 -1
  312. package/dist/utils/import-resolver.js +1 -1
  313. package/dist/utils/language-detector.js +0 -1
  314. package/dist/utils/path-resolver.js +2 -2
  315. package/dist/utils/shutdown-handler.js +0 -1
  316. package/dist/validation/agent-config-validator.js +280 -0
  317. package/dist/validation/orchestration-flow-validator.js +606 -0
  318. package/package.json +10 -3
  319. package/scripts/hooks/pre-command +1 -1
  320. package/scripts/hooks/run-hook.js +2 -2
  321. package/scripts/node/auto-reflection-generator.mjs +30 -36
  322. package/scripts/node/govern-reflection.mjs +1 -1
  323. package/scripts/node/postinstall.cjs +37 -2
  324. package/scripts/node/release.mjs +2 -2
  325. package/scripts/node/setup-xai-oauth.mjs +244 -0
  326. package/scripts/node/setup.cjs +28 -0
  327. package/scripts/node/universal-version-manager.js +8 -8
  328. package/scripts/node/version-manager.mjs +1 -1
  329. package/src/integrations/grok/plugin/0xray/.mcp.json +16 -4
  330. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  331. package/src/mcps/agent-resolver.ts +0 -1
  332. package/src/mcps/architect-tools.server.ts +130 -212
  333. package/src/mcps/auto-format.server.ts +75 -104
  334. package/src/mcps/boot-orchestrator.server.ts +72 -97
  335. package/src/mcps/config/__tests__/config-loader.test.ts +33 -37
  336. package/src/mcps/config/config-loader.ts +57 -11
  337. package/src/mcps/config/plugin-server-registry.ts +0 -1
  338. package/src/mcps/enforcer-tools.server.ts +218 -295
  339. package/src/mcps/estimation.server.ts +64 -123
  340. package/src/mcps/framework-compliance-audit.server.ts +54 -96
  341. package/src/mcps/framework-help.server.ts +76 -97
  342. package/src/mcps/governance.server.ts +104 -164
  343. package/src/mcps/knowledge-skills/api-design.server.ts +35 -73
  344. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +34 -73
  345. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +149 -194
  346. package/src/mcps/knowledge-skills/code-analyzer.server.ts +223 -255
  347. package/src/mcps/knowledge-skills/code-review.server.ts +116 -158
  348. package/src/mcps/knowledge-skills/content-creator.server.ts +221 -248
  349. package/src/mcps/knowledge-skills/database-design.server.ts +120 -161
  350. package/src/mcps/knowledge-skills/devops-deployment.server.ts +128 -168
  351. package/src/mcps/knowledge-skills/git-workflow.server.ts +34 -78
  352. package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -362
  353. package/src/mcps/knowledge-skills/log-monitor.server.ts +70 -97
  354. package/src/mcps/knowledge-skills/mobile-development.server.ts +18 -58
  355. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +15 -61
  356. package/src/mcps/knowledge-skills/performance-optimization.server.ts +14 -75
  357. package/src/mcps/knowledge-skills/project-analysis.server.ts +14 -121
  358. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +15 -61
  359. package/src/mcps/knowledge-skills/security-audit.server.ts +20 -158
  360. package/src/mcps/knowledge-skills/seo-consultant.server.ts +25 -228
  361. package/src/mcps/knowledge-skills/session-management.server.ts +19 -107
  362. package/src/mcps/knowledge-skills/skill-invocation.server.ts +89 -380
  363. package/src/mcps/knowledge-skills/strategist.server.ts +15 -65
  364. package/src/mcps/knowledge-skills/tech-writer.server.ts +21 -206
  365. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +23 -205
  366. package/src/mcps/knowledge-skills/testing-strategy.server.ts +22 -166
  367. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +27 -343
  368. package/src/mcps/lint.server.ts +53 -106
  369. package/src/mcps/model-health-check.server.ts +35 -71
  370. package/src/mcps/orchestrator/aside-context.ts +245 -0
  371. package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
  372. package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
  373. package/src/mcps/orchestrator/handlers/task-handler.ts +8 -1
  374. package/src/mcps/orchestrator/index.ts +29 -0
  375. package/src/mcps/orchestrator/server.ts +81 -25
  376. package/src/mcps/orchestrator/types.ts +37 -0
  377. package/src/mcps/orchestrator.server.ts +2 -1
  378. package/src/mcps/performance-analysis.server.ts +60 -103
  379. package/src/mcps/processor-pipeline.server.ts +72 -109
  380. package/src/mcps/registry.json +1 -1
  381. package/src/mcps/researcher.server.ts +88 -176
  382. package/src/mcps/security-scan.server.ts +58 -77
  383. package/src/mcps/shared/knowledge-skill-base.ts +12 -4
  384. package/src/mcps/state-manager.server.ts +132 -172
  385. package/src/opencode/codex.codex +1 -1
  386. package/src/opencode/commands/auto-format.md +3 -3
  387. package/src/opencode/commands/auto-summary-capture.md +2 -2
  388. package/src/opencode/commands/dependency-audit.md +3 -3
  389. package/src/opencode/commands/enforcer-daily-scan.md +3 -3
  390. package/src/opencode/commands/framework-compliance-audit.md +4 -4
  391. package/src/opencode/commands/interactive-validator.md +2 -2
  392. package/src/opencode/commands/job-summary-logger.md +2 -2
  393. package/src/opencode/commands/mode-switch.md +1 -1
  394. package/src/opencode/commands/model-health-check.md +2 -2
  395. package/src/opencode/commands/performance-analysis.md +2 -2
  396. package/src/opencode/commands/pre-commit-introspection.md +3 -3
  397. package/src/opencode/commands/security-scan.md +3 -3
  398. package/src/opencode/commands/sisyphus-validation.md +3 -3
  399. package/src/opencode/commands/summary-logger.md +6 -6
  400. package/src/opencode/enforcer-config.json +2 -2
  401. package/src/skills/api-design/SKILL.md +1 -1
  402. package/src/skills/architect-tools/SKILL.md +1 -1
  403. package/src/skills/architecture-patterns/SKILL.md +1 -1
  404. package/src/skills/auto-format/SKILL.md +1 -1
  405. package/src/skills/boot-orchestrator/SKILL.md +1 -1
  406. package/src/skills/bug-triage/SKILL.md +1 -1
  407. package/src/skills/code-analyzer/SKILL.md +1 -1
  408. package/src/skills/code-review/SKILL.md +1 -1
  409. package/src/skills/enforcer/SKILL.md +1 -1
  410. package/src/skills/framework-compliance-audit/SKILL.md +1 -1
  411. package/src/skills/git-workflow/SKILL.md +1 -1
  412. package/src/skills/hermes-agent/SKILL.md +2 -2
  413. package/src/skills/inference-improve/SKILL.md +1 -1
  414. package/src/skills/lint/SKILL.md +1 -1
  415. package/src/skills/log-monitor/SKILL.md +1 -1
  416. package/src/skills/model-health-check/SKILL.md +1 -1
  417. package/src/skills/multimodal-looker/SKILL.md +1 -1
  418. package/src/skills/orchestrator/SKILL.md +1 -1
  419. package/src/skills/performance-analysis/SKILL.md +1 -1
  420. package/src/skills/performance-optimization/SKILL.md +1 -1
  421. package/src/skills/processor-pipeline/SKILL.md +1 -1
  422. package/src/skills/project-analysis/SKILL.md +1 -1
  423. package/src/skills/refactoring-strategies/SKILL.md +1 -1
  424. package/src/skills/registry.json +1 -1
  425. package/src/skills/researcher/SKILL.md +1 -1
  426. package/src/skills/security-audit/SKILL.md +1 -1
  427. package/src/skills/security-scan/SKILL.md +1 -1
  428. package/src/skills/session-management/SKILL.md +1 -1
  429. package/src/skills/state-manager/SKILL.md +1 -1
  430. package/src/skills/storyteller/SKILL.md +1 -1
  431. package/src/skills/testing-best-practices/SKILL.md +1 -1
  432. package/src/skills/testing-strategy/SKILL.md +1 -1
  433. package/src/skills/ui-ux-design/SKILL.md +1 -1
  434. package/src/skills/xray-orchestrator/index.ts +0 -1
  435. package/xray/agents_template.md +46 -0
  436. package/xray/codex.json +598 -0
  437. package/dist/nucleus/orchestrator.js +0 -479
@@ -4,7 +4,6 @@
4
4
  * P9 learning system - analyzes patterns, detects drift, and improves routing.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import { patternPerformanceTracker } from '../../analytics/pattern-performance-tracker.js';
@@ -4,7 +4,6 @@
4
4
  * Tracks routing outcomes and provides statistics for performance analysis.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import fs from 'fs';
@@ -4,7 +4,6 @@
4
4
  * Provides analytics aggregation and insights generation for routing data.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import { frameworkLogger } from "../../core/framework-logger.js";
@@ -4,7 +4,6 @@
4
4
  * AST-based code parsing and structural analysis using ast-grep.
5
5
  * Provides advanced code understanding, pattern detection, and refactoring insights.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-11
9
8
  */
10
9
  import * as fs from "fs";
@@ -10,7 +10,6 @@
10
10
  * - complex: 50+ - multi-agent orchestration with voting
11
11
  * - enterprise: 75+ - maximum orchestration
12
12
  *
13
- * @version 1.2.0
14
13
  * @since 2026-01-07
15
14
  */
16
15
  import { DEFAULT_THRESHOLDS, OPERATION_WEIGHTS, RISK_MULTIPLIERS, getLevelFromScore, getStrategyForLevel, getAgentCountForLevel, generateReasoning, } from "./complexity-core.js";
@@ -4,7 +4,6 @@
4
4
  * Builds comprehensive dependency graphs for codebase analysis.
5
5
  * Tracks file relationships, import/export chains, and architectural dependencies.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-11
9
8
  */
10
9
  import * as path from "path";
@@ -4,7 +4,6 @@
4
4
  * Complete automatic multi-agent delegation system with complexity assessment
5
5
  * and session-based coordination.
6
6
  *
7
- * @version 1.1.0
8
7
  * @since 2026-01-07
9
8
  */
10
9
  export { ComplexityAnalyzer, complexityAnalyzer, } from "./complexity-analyzer.js";
@@ -4,7 +4,6 @@
4
4
  * Provides aggregation, reporting, and export functionality for delegation
5
5
  * and orchestration metrics stored in stateManager.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-04-16
9
8
  */
10
9
  const MAX_METRICS_ENTRIES = 100;
@@ -4,7 +4,6 @@
4
4
  * Manages cross-agent communication and coordination within sessions.
5
5
  * Tracks delegation state, agent interactions, and conflict resolution.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-07
9
8
  */
10
9
  import { frameworkLogger } from "../core/framework-logger.js";
@@ -8,7 +8,6 @@
8
8
  * - Architectural impact
9
9
  * - Participant count
10
10
  *
11
- * @version 1.0.0
12
11
  * @since 2026-04-16
13
12
  */
14
13
  const DEFAULT_STRATEGY_CONFIG = {
@@ -7,7 +7,6 @@
7
7
  * - Historical learning and pattern detection
8
8
  * - Integration with session coordinator
9
9
  *
10
- * @version 1.0.0
11
10
  * @since 2026-04-16
12
11
  */
13
12
  import * as crypto from "crypto";
@@ -4,7 +4,6 @@
4
4
  * Comprehensive type definitions for the multi-agent voting system
5
5
  * with weighted confidence scoring and adaptive conflict resolution.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-04-16
9
8
  */
10
9
  export {};
@@ -6,7 +6,6 @@
6
6
  * - History-weighted voting that considers past successful votes
7
7
  * - Multiple aggregation strategies for different decision scenarios
8
8
  *
9
- * @version 1.0.0
10
9
  * @since 2026-04-17
11
10
  */
12
11
  import { getAgentExpertiseLevel, getVotingWeight, } from "./agent-expertise.js";
@@ -7,7 +7,6 @@
7
7
  * Phase 5 refactoring: Extracted from RuleEnforcer.
8
8
  *
9
9
  * @module enforcement/core
10
- * @version 1.0.0
11
10
  */
12
11
  // Rule storage and management
13
12
  export { RuleRegistry } from './rule-registry.js';
@@ -8,7 +8,6 @@
8
8
  * Phase 5 refactoring: Extracted from RuleEnforcer.
9
9
  *
10
10
  * @module enforcement/core
11
- * @version 1.0.0
12
11
  *
13
12
  * @example
14
13
  * ```typescript
@@ -7,7 +7,6 @@
7
7
  * Phase 5 refactoring: Extracted from RuleEnforcer.
8
8
  *
9
9
  * @module enforcement/core
10
- * @version 1.0.0
11
10
  *
12
11
  * @example
13
12
  * ```typescript
@@ -6,7 +6,6 @@
6
6
  * managing rule definitions with lifecycle operations.
7
7
  *
8
8
  * @module enforcement/core
9
- * @version 1.0.0
10
9
  *
11
10
  * @example
12
11
  * ```typescript
@@ -8,7 +8,6 @@
8
8
  * Phase 5 refactoring: Extracted from RuleEnforcer.
9
9
  *
10
10
  * @module enforcement/core
11
- * @version 1.0.0
12
11
  *
13
12
  * @example
14
13
  * ```typescript
@@ -6,7 +6,7 @@ import { ruleEnforcer, } from "./rule-enforcer.js";
6
6
  import { frameworkLogger } from "../core/framework-logger.js";
7
7
  import { AgentDelegator } from "../delegation/agent-delegator.js";
8
8
  import { XrayStateManager } from "../state/state-manager.js";
9
- import { strRayConfigLoader } from "../core/config-loader.js";
9
+ import { xrayConfigLoader } from "../core/config-loader.js";
10
10
  import * as fs from "fs";
11
11
  import * as path from "path";
12
12
  // Minimum confidence to auto-delegate to another agent
@@ -327,7 +327,7 @@ async function delegateToAgent(agentName, operation, context, jobId) {
327
327
  // Create a minimal state manager and config loader for the delegator
328
328
  const stateManager = new XrayStateManager();
329
329
  // Create the delegator
330
- const delegator = new AgentDelegator(stateManager, strRayConfigLoader);
330
+ const delegator = new AgentDelegator(stateManager, xrayConfigLoader);
331
331
  // Build task description for the delegated agent
332
332
  const taskDescription = buildTaskDescription(operation, context);
333
333
  // Build the delegation request
@@ -5,7 +5,6 @@
5
5
  * It validates code against development rules and codex compliance requirements.
6
6
  *
7
7
  * @module enforcement
8
- * @version 1.0.0
9
8
  *
10
9
  * @example
11
10
  * ```typescript
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted from RuleEnforcer.loadAgentTriageRules()
8
8
  *
9
9
  * @module loaders/agent-triage-loader
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { BaseLoader } from "./base-loader.js";
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted from RuleEnforcer.loadAgentsMdValidationRule()
8
8
  *
9
9
  * @module loaders/agents-md-validation-loader
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { BaseLoader } from "./base-loader.js";
@@ -8,7 +8,6 @@
8
8
  * from rule execution.
9
9
  *
10
10
  * @module loaders/base-loader
11
- * @version 1.0.0
12
11
  */
13
12
  import * as fs from "fs";
14
13
  import * as path from "path";
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted from RuleEnforcer.loadCodexRules()
8
8
  *
9
9
  * @module loaders/codex-loader
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { resolveCodexPath } from "../../core/config-paths.js";
@@ -30,13 +29,13 @@ export class CodexLoader extends BaseLoader {
30
29
  name = "codex";
31
30
  /**
32
31
  * Path to the codex.json file.
33
- * Uses the standard config-paths resolver which checks .xray/, .opencode/xray/, etc.
32
+ * Uses the standard config-paths resolver which checks .xray/, etc.
34
33
  */
35
34
  get codexPath() {
36
35
  const candidates = resolveCodexPath();
37
36
  const found = candidates.find((p) => existsSync(p));
38
37
  // Fallback to primary path even if not found yet
39
- return found ?? candidates[0] ?? this.resolvePath(".opencode/xray/codex.json");
38
+ return found ?? candidates[0] ?? this.resolvePath(".xray/codex.json");
40
39
  }
41
40
  /**
42
41
  * Check if codex.json exists.
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted async rule loading from RuleEnforcer
8
8
  *
9
9
  * @module loaders
10
- * @version 1.0.0
11
10
  *
12
11
  * @example
13
12
  * ```typescript
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted loader orchestration from RuleEnforcer
8
8
  *
9
9
  * @module loaders/loader-orchestrator
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { CodexLoader } from "./codex-loader.js";
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted from RuleEnforcer.loadProcessorRules()
8
8
  *
9
9
  * @module loaders/processor-loader
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { BaseLoader } from "./base-loader.js";
@@ -5,7 +5,6 @@
5
5
  * Extracted from rule-enforcer.ts as part of Phase 1 refactoring.
6
6
  *
7
7
  * @module types
8
- * @version 1.0.0
9
8
  */
10
9
  /**
11
10
  * Type guard to check if an object is a valid RuleValidationResult.
@@ -5,7 +5,6 @@
5
5
  * Each validator encapsulates the validation logic for a specific architectural rule.
6
6
  *
7
7
  * @module validators/architecture-validators
8
- * @version 1.0.0
9
8
  */
10
9
  import { BaseValidator } from "./base-validator.js";
11
10
  /**
@@ -5,7 +5,6 @@
5
5
  * and enforces the IValidator interface contract.
6
6
  *
7
7
  * @module validators/base-validator
8
- * @version 1.0.0
9
8
  */
10
9
  /**
11
10
  * Abstract base class for all validators.
@@ -5,7 +5,6 @@
5
5
  * Each validator encapsulates the validation logic for a specific rule.
6
6
  *
7
7
  * @module validators/code-quality-validators
8
- * @version 1.0.0
9
8
  */
10
9
  import { BaseValidator } from "./base-validator.js";
11
10
  /**
@@ -5,7 +5,6 @@
5
5
  * Part of Phase 3 refactoring to extract validators from rule-enforcer.ts.
6
6
  *
7
7
  * @module validators
8
- * @version 1.0.0
9
8
  */
10
9
  // Base validator class
11
10
  export { BaseValidator } from "./base-validator.js";
@@ -5,7 +5,6 @@
5
5
  * These validators enforce security best practices and input validation requirements.
6
6
  *
7
7
  * @module validators/security-validators
8
- * @version 1.0.0
9
8
  */
10
9
  import { BaseValidator } from "./base-validator.js";
11
10
  /**
@@ -5,7 +5,6 @@
5
5
  * Each validator encapsulates the validation logic for a specific testing rule.
6
6
  *
7
7
  * @module validators/testing-validators
8
- * @version 1.0.0
9
8
  */
10
9
  import { BaseValidator } from "./base-validator.js";
11
10
  /**
@@ -5,7 +5,6 @@
5
5
  * and category filtering capabilities.
6
6
  *
7
7
  * @module validators/validator-registry
8
- * @version 1.0.0
9
8
  */
10
9
  import { NoDuplicateCodeValidator, ContextAnalysisIntegrationValidator, MemoryOptimizationValidator, DocumentationRequiredValidator, NoOverEngineeringValidator, CleanDebugLogsValidator, ConsoleLogUsageValidator, } from "./code-quality-validators.js";
11
10
  import { InputValidationValidator, SecurityByDesignValidator, } from "./security-validators.js";
@@ -17,7 +17,7 @@ import { getConfigDir } from "../core/config-paths.js";
17
17
  let opencodeAvailable = null;
18
18
  export async function invokeViaOpencode(agentName, prompt, projectRoot = process.cwd()) {
19
19
  // In pure MCP mode we must never reach here
20
- if (process.env.STRRAY_FORCE_MCP_GOVERNANCE === "true") {
20
+ if (process.env.XRAY_FORCE_MCP_GOVERNANCE === "true") {
21
21
  throw new Error(`[PURE MCP] invokeViaOpencode called for "${agentName}" — this path is forbidden.`);
22
22
  }
23
23
  // GATE: Centralized spawn gate — blocks all agent spawning by default
@@ -26,7 +26,6 @@
26
26
  * - Make CodexLoader delegate its raw data load here, then re-export from governance.
27
27
  *
28
28
  * @module governance/codex-policy.service
29
- * @version 2.0.0-s02-real
30
29
  */
31
30
  import { frameworkLogger } from '../core/framework-logger.js';
32
31
  import { resolveCodexPath } from '../core/config-paths.js';
@@ -128,7 +128,7 @@ export class GovernanceService {
128
128
  }
129
129
  async callSkillServer(serverName, proposals, context) {
130
130
  const votes = [];
131
- const useInProcess = process.env.VERCEL === '1';
131
+ const useInProcess = process.env.VERCEL === '1' || !!process.env.RAILWAY_ENVIRONMENT;
132
132
  for (const proposal of proposals) {
133
133
  try {
134
134
  let text = '';
@@ -59,8 +59,10 @@ function readHermesOAuthToken() {
59
59
  if (!entry?.access_token && Array.isArray(data)) {
60
60
  entry = data.find((e) => e.provider === "xai-oauth" || !!e.access_token);
61
61
  }
62
- if (!entry?.access_token)
62
+ if (!entry?.access_token) {
63
+ process.stderr.write("[llm] readHermesOAuthToken: no access_token in auth file\n");
63
64
  return null;
65
+ }
64
66
  if (entry.expires_at && Date.now() / 1000 > entry.expires_at) {
65
67
  frameworkLogger.log("llm-governance", "hermes-token-expired", "warning", { expiresAt: entry.expires_at });
66
68
  return null;
@@ -82,16 +84,25 @@ function getConfig() {
82
84
  const directModel = process.env.XRAY_LLM_MODEL ||
83
85
  process.env.XRAY_GOVERNANCE_LLM_MODEL ||
84
86
  "gpt-4o";
87
+ // First try: direct env-var config (highest priority)
85
88
  const directEnabled = process.env.XRAY_GOVERNANCE_LLM_ENABLED === "true" ||
86
89
  process.env.XRAY_LLM_ENABLED === "true";
87
90
  if (directEnabled && directEndpoint && directApiKey) {
88
91
  return { endpoint: directEndpoint, apiKey: directApiKey, model: directModel };
89
92
  }
93
+ // Second try: Hermes xAI OAuth token from ~/.hermes/auth.json
90
94
  const hermesToken = readHermesOAuthToken();
91
95
  if (hermesToken) {
92
96
  frameworkLogger.log("llm-governance", "using-hermes-oauth", "info", { provider: "xai-oauth", endpoint: XAI_ENDPOINT, model: XAI_MODEL });
93
97
  return { endpoint: XAI_ENDPOINT, apiKey: hermesToken, model: XAI_MODEL };
94
98
  }
99
+ // Third try: direct endpoint even without explicit enable flag (if endpoint+key set)
100
+ if (directEndpoint && directApiKey) {
101
+ return { endpoint: directEndpoint, apiKey: directApiKey, model: directModel };
102
+ }
103
+ if (process.env.DEBUG_LLM) {
104
+ process.stderr.write("[llm-debug] No config found. directEnabled=" + directEnabled + " endpoint=" + !!directEndpoint + " apiKey=" + !!directApiKey + " hermes=" + !!hermesToken + "\n");
105
+ }
95
106
  return null;
96
107
  }
97
108
  function parseVote(text) {
@@ -111,8 +122,10 @@ function parseVote(text) {
111
122
  export async function tryLLMGovernance(role, proposalTitle, proposalDescription, evidence, proposalType) {
112
123
  const config = getConfig();
113
124
  if (!config) {
125
+ process.stderr.write("[llm] no config for role=" + role + "\n");
114
126
  return null;
115
127
  }
128
+ process.stderr.write("[llm] using config endpoint=" + config.endpoint + " model=" + config.model + "\n");
116
129
  const systemPrompt = ROLE_PROMPTS[role];
117
130
  const userMessage = `## Proposal
118
131
 
package/dist/index.js CHANGED
@@ -4,13 +4,13 @@
4
4
  * This is the main entry point for the 0xRay framework.
5
5
  * It exports the core initialization function and key components.
6
6
  */
7
- export { XrayOrchestrator, StringRayOrchestrator } from "./orchestrator/orchestrator.js";
8
- export { XrayStateManager, StringRayStateManager } from "./state/index.js";
7
+ export { XrayOrchestrator } from "./orchestrator/orchestrator.js";
8
+ export { XrayStateManager } from "./state/index.js";
9
9
  export { AgentDelegator } from "./delegation/index.js";
10
10
  export { frameworkLogger } from "./core/framework-logger.js";
11
11
  export { BUILTIN_CODEX } from "./core/codex-formatter.js";
12
12
  import { defaultXrayConfig } from "./core/index.js";
13
- export { defaultXrayConfig, defaultXrayConfig as defaultStringRayConfig };
13
+ export { defaultXrayConfig };
14
14
  export { OpenClawIntegration, initializeOpenClawIntegration, getOpenClawIntegration, shutdownOpenClawIntegration } from "./integrations/openclaw/index.js";
15
15
  // Main initialization function
16
16
  export function initializeXray(config = {}) {
@@ -22,5 +22,3 @@ export function initializeXray(config = {}) {
22
22
  message: "0xRay framework initialized successfully",
23
23
  };
24
24
  }
25
- // Backward compat alias
26
- export { initializeXray as initializeStringRay };
@@ -0,0 +1,67 @@
1
+ import { frameworkLogger } from "../core/framework-logger.js";
2
+ import { invokeViaOpencode as invokeOpencodeFromEngine } from "../execution/opencode-cli-invoker.js";
3
+ const MCP_TIMEOUT_MS = 8000;
4
+ export async function invokeAgent(agentName, prompt, projectRoot, agentInvoker) {
5
+ frameworkLogger.log("inference-cycle", "invoke-agent-internal", "info", {
6
+ agentName,
7
+ promptLength: prompt.length,
8
+ });
9
+ try {
10
+ const { mcpClientManager } = await import("../mcps/mcp-client.js");
11
+ const result = await Promise.race([
12
+ mcpClientManager.callServerTool("orchestrator", "orchestrate-task", {
13
+ description: prompt,
14
+ tasks: [{
15
+ id: `task-${Date.now()}`,
16
+ description: prompt,
17
+ type: agentName,
18
+ priority: "high",
19
+ }],
20
+ executionMode: "sequential",
21
+ }),
22
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Orchestrator MCP timed out after ${MCP_TIMEOUT_MS}ms`)), MCP_TIMEOUT_MS)),
23
+ ]);
24
+ const content = result.content;
25
+ let responseText = "";
26
+ if (content && Array.isArray(content)) {
27
+ responseText = content.map((c) => c.text ?? "").join("");
28
+ }
29
+ else {
30
+ responseText = JSON.stringify(result);
31
+ }
32
+ const isPureMcp = process.env.XRAY_FORCE_MCP_GOVERNANCE === 'true';
33
+ const hasRealContent = /PROPOSAL:\s*\d+/i.test(responseText) ||
34
+ /DECISION:\s*(approve|reject|abstain)/i.test(responseText) ||
35
+ /Agent Outputs \(real MCP responses\):/i.test(responseText);
36
+ if (hasRealContent || isPureMcp) {
37
+ if (isPureMcp && !hasRealContent) {
38
+ frameworkLogger.log("inference-cycle", "pure-mcp-orchestrator-response", "info", {
39
+ agentName,
40
+ responsePreview: responseText.substring(0, 300),
41
+ });
42
+ }
43
+ return responseText;
44
+ }
45
+ frameworkLogger.log("inference-cycle", "mcp-no-useful-content", "info", {
46
+ agentName,
47
+ responsePreview: responseText.substring(0, 200),
48
+ });
49
+ }
50
+ catch (mcpError) {
51
+ frameworkLogger.log("inference-cycle", "mcp-invocation-failed", "info", {
52
+ agentName,
53
+ error: String(mcpError),
54
+ });
55
+ }
56
+ if (agentInvoker) {
57
+ frameworkLogger.log("inference-cycle", "invoke-via-callback", "info", { agentName });
58
+ return agentInvoker(agentName, prompt);
59
+ }
60
+ if (process.env.XRAY_FORCE_MCP_GOVERNANCE === 'true') {
61
+ throw new Error(`[PURE MCP] Orchestrator returned no usable response for agent "${agentName}" and OpenCode fallback is disabled`);
62
+ }
63
+ return invokeViaOpencode(agentName, prompt, projectRoot);
64
+ }
65
+ export async function invokeViaOpencode(agentName, prompt, projectRoot) {
66
+ return invokeOpencodeFromEngine(agentName, prompt, projectRoot);
67
+ }