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
@@ -0,0 +1,606 @@
1
+ /**
2
+ * COMPREHENSIVE ORCHESTRATION FLOW VALIDATION SUITE
3
+ * Validates the complete end-to-end orchestration pipeline
4
+ */
5
+ import { XrayOrchestrator } from "../orchestrator/orchestrator.js";
6
+ import { enhancedMultiAgentOrchestrator } from "../orchestrator/enhanced-multi-agent-orchestrator.js";
7
+ import { XrayStateManager } from "../state/state-manager.js";
8
+ import { frameworkLogger } from "../core/framework-logger.js";
9
+ import { xrayConfigLoader } from "../core/config-loader.js";
10
+ import { createAgentDelegator } from "../delegation/agent-delegator.js";
11
+ class OrchestrationFlowValidator {
12
+ orchestrator;
13
+ stateManager;
14
+ agentDelegator;
15
+ testResults = new Map();
16
+ constructor() {
17
+ this.stateManager = new XrayStateManager();
18
+ this.agentDelegator = createAgentDelegator(this.stateManager, xrayConfigLoader);
19
+ this.orchestrator = new XrayOrchestrator({
20
+ maxConcurrentTasks: 5,
21
+ conflictResolutionStrategy: "expert_priority",
22
+ });
23
+ }
24
+ /**
25
+ * SIMULATION 1: Basic Orchestration Flow
26
+ * Tests the fundamental orchestration pipeline
27
+ */
28
+ async testBasicOrchestrationFlow() {
29
+ const startTime = Date.now();
30
+ const testName = "Basic Orchestration Flow";
31
+ const validationSteps = [];
32
+ try {
33
+ // Step 1: Initialize orchestrator
34
+ validationSteps.push({
35
+ step: "Orchestrator Initialization",
36
+ success: true,
37
+ timestamp: Date.now(),
38
+ details: "XrayOrchestrator created successfully",
39
+ });
40
+ // Step 2: Define simple task
41
+ const tasks = [
42
+ {
43
+ id: "testing-lead",
44
+ description: "Design a simple API endpoint",
45
+ subagentType: "architect",
46
+ priority: "medium",
47
+ },
48
+ ];
49
+ validationSteps.push({
50
+ step: "Task Definition",
51
+ success: true,
52
+ timestamp: Date.now(),
53
+ details: `Defined ${tasks.length} task(s)`,
54
+ });
55
+ // Step 3: Execute orchestration
56
+ const results = await this.orchestrator.executeComplexTask("Test basic orchestration", tasks);
57
+ validationSteps.push({
58
+ step: "Task Execution",
59
+ success: results.length === 1,
60
+ timestamp: Date.now(),
61
+ details: `Executed ${results.length} task(s)`,
62
+ });
63
+ // Step 4: Validate results
64
+ const success = results.every((r) => r.success);
65
+ validationSteps.push({
66
+ step: "Result Validation",
67
+ success,
68
+ timestamp: Date.now(),
69
+ details: `${results.filter((r) => r.success).length}/${results.length} tasks succeeded`,
70
+ });
71
+ // Step 5: Check monitoring
72
+ const monitoringData = enhancedMultiAgentOrchestrator.getMonitoringInterface();
73
+ const hasMonitoring = Object.keys(monitoringData).length > 0;
74
+ validationSteps.push({
75
+ step: "Monitoring Validation",
76
+ success: hasMonitoring,
77
+ timestamp: Date.now(),
78
+ details: `${Object.keys(monitoringData).length} agents monitored`,
79
+ });
80
+ const duration = Date.now() - startTime;
81
+ const stats = enhancedMultiAgentOrchestrator.getStatistics();
82
+ return {
83
+ testName,
84
+ success: success && hasMonitoring,
85
+ duration,
86
+ metrics: {
87
+ agentsSpawned: stats.totalSpawned,
88
+ agentsCompleted: stats.completedAgents,
89
+ agentsFailed: stats.failedAgents,
90
+ dependenciesResolved: 0,
91
+ monitoringUpdates: Object.keys(monitoringData).length,
92
+ },
93
+ validationSteps,
94
+ };
95
+ }
96
+ catch (error) {
97
+ return {
98
+ testName,
99
+ success: false,
100
+ duration: Date.now() - startTime,
101
+ error: error instanceof Error ? error.message : String(error),
102
+ metrics: {
103
+ agentsSpawned: 0,
104
+ agentsCompleted: 0,
105
+ agentsFailed: 0,
106
+ dependenciesResolved: 0,
107
+ monitoringUpdates: 0,
108
+ },
109
+ validationSteps,
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * SIMULATION 2: Dependency Management Flow
115
+ * Tests complex task dependencies and sequencing
116
+ */
117
+ async testDependencyManagementFlow() {
118
+ const startTime = Date.now();
119
+ const testName = "Dependency Management Flow";
120
+ const validationSteps = [];
121
+ try {
122
+ // Define tasks with dependencies
123
+ const tasks = [
124
+ {
125
+ id: "design-phase",
126
+ description: "Design system architecture",
127
+ subagentType: "architect",
128
+ priority: "high",
129
+ },
130
+ {
131
+ id: "validate-design",
132
+ description: "Validate design against requirements",
133
+ subagentType: "enforcer",
134
+ priority: "high",
135
+ dependencies: ["design-phase"],
136
+ },
137
+ {
138
+ id: "implement-design",
139
+ description: "Implement the validated design",
140
+ subagentType: "testing-lead",
141
+ priority: "medium",
142
+ dependencies: ["design-phase", "validate-design"],
143
+ },
144
+ ];
145
+ validationSteps.push({
146
+ step: "Dependency Task Setup",
147
+ success: true,
148
+ timestamp: Date.now(),
149
+ details: `Created ${tasks.length} tasks with ${tasks.filter((t) => t.dependencies).length} dependencies`,
150
+ });
151
+ // Execute complex orchestration
152
+ const results = await this.orchestrator.executeComplexTask("Test dependency management", tasks);
153
+ validationSteps.push({
154
+ step: "Complex Execution",
155
+ success: results.length === 3,
156
+ timestamp: Date.now(),
157
+ details: `Completed ${results.length} interdependent tasks`,
158
+ });
159
+ // Validate dependency order was respected
160
+ const executionOrder = results.map((r) => r.result?.id).filter(Boolean);
161
+ const correctOrder = [
162
+ "design-phase",
163
+ "validate-design",
164
+ "implement-design",
165
+ ];
166
+ const orderCorrect = JSON.stringify(executionOrder) === JSON.stringify(correctOrder);
167
+ validationSteps.push({
168
+ step: "Dependency Order Validation",
169
+ success: orderCorrect,
170
+ timestamp: Date.now(),
171
+ details: `Execution order: ${executionOrder.join(" → ")}`,
172
+ });
173
+ // Check for parallel execution where possible
174
+ const monitoringData = enhancedMultiAgentOrchestrator.getMonitoringInterface();
175
+ const parallelExecution = Object.keys(monitoringData).length >= 2; // At least 25 agents ran
176
+ validationSteps.push({
177
+ step: "Parallel Execution Validation",
178
+ success: parallelExecution,
179
+ timestamp: Date.now(),
180
+ details: `${Object.keys(monitoringData).length} agents executed`,
181
+ });
182
+ const duration = Date.now() - startTime;
183
+ const stats = enhancedMultiAgentOrchestrator.getStatistics();
184
+ return {
185
+ testName,
186
+ success: results.every((r) => r.success) && orderCorrect,
187
+ duration,
188
+ metrics: {
189
+ agentsSpawned: stats.totalSpawned,
190
+ agentsCompleted: stats.completedAgents,
191
+ agentsFailed: stats.failedAgents,
192
+ dependenciesResolved: tasks.filter((t) => t.dependencies).length,
193
+ monitoringUpdates: Object.keys(monitoringData).length,
194
+ },
195
+ validationSteps,
196
+ };
197
+ }
198
+ catch (error) {
199
+ return {
200
+ testName,
201
+ success: false,
202
+ duration: Date.now() - startTime,
203
+ error: error instanceof Error ? error.message : String(error),
204
+ metrics: {
205
+ agentsSpawned: 0,
206
+ agentsCompleted: 0,
207
+ agentsFailed: 0,
208
+ dependenciesResolved: 0,
209
+ monitoringUpdates: 0,
210
+ },
211
+ validationSteps,
212
+ };
213
+ }
214
+ }
215
+ /**
216
+ * SIMULATION 3: Error Handling & Recovery Flow
217
+ * Tests system resilience and fallback mechanisms
218
+ */
219
+ async testErrorHandlingFlow() {
220
+ const startTime = Date.now();
221
+ const testName = "Error Handling & Recovery Flow";
222
+ const validationSteps = [];
223
+ try {
224
+ // Create tasks that will trigger fallback scenarios
225
+ const tasks = [
226
+ {
227
+ id: "reliable-task",
228
+ description: "Execute reliable task",
229
+ subagentType: "architect",
230
+ priority: "medium",
231
+ },
232
+ {
233
+ id: "unreliable-task",
234
+ description: "Execute task that may fail",
235
+ subagentType: "invalid-agent-type", // This should trigger fallback
236
+ priority: "low",
237
+ },
238
+ ];
239
+ validationSteps.push({
240
+ step: "Error Scenario Setup",
241
+ success: true,
242
+ timestamp: Date.now(),
243
+ details: "Created tasks with intentional failure scenarios",
244
+ });
245
+ // Execute with error handling
246
+ const results = await this.orchestrator.executeComplexTask("Test error handling and recovery", tasks);
247
+ validationSteps.push({
248
+ step: "Error Execution",
249
+ success: results.length === 2,
250
+ timestamp: Date.now(),
251
+ details: `Processed ${results.length} tasks with error handling`,
252
+ });
253
+ // Validate that system continued despite errors
254
+ const successfulTasks = results.filter((r) => r.success).length;
255
+ const failedTasks = results.filter((r) => !r.success).length;
256
+ const gracefulFailure = failedTasks > 0 && successfulTasks > 0;
257
+ validationSteps.push({
258
+ step: "Graceful Failure Validation",
259
+ success: gracefulFailure,
260
+ timestamp: Date.now(),
261
+ details: `${successfulTasks} succeeded, ${failedTasks} failed gracefully`,
262
+ });
263
+ // Check monitoring shows both success and failure states
264
+ const monitoringData = enhancedMultiAgentOrchestrator.getMonitoringInterface();
265
+ const hasCompletedAgents = Object.values(monitoringData).some((agent) => agent.status === "completed");
266
+ const hasFailedAgents = Object.values(monitoringData).some((agent) => agent.status === "failed");
267
+ validationSteps.push({
268
+ step: "Monitoring State Validation",
269
+ success: hasCompletedAgents && hasFailedAgents,
270
+ timestamp: Date.now(),
271
+ details: `Monitoring shows ${hasCompletedAgents ? "completed" : "no completed"} and ${hasFailedAgents ? "failed" : "no failed"} agents`,
272
+ });
273
+ const duration = Date.now() - startTime;
274
+ const stats = enhancedMultiAgentOrchestrator.getStatistics();
275
+ return {
276
+ testName,
277
+ success: gracefulFailure && hasCompletedAgents,
278
+ duration,
279
+ metrics: {
280
+ agentsSpawned: stats.totalSpawned,
281
+ agentsCompleted: stats.completedAgents,
282
+ agentsFailed: stats.failedAgents,
283
+ dependenciesResolved: 0,
284
+ monitoringUpdates: Object.keys(monitoringData).length,
285
+ },
286
+ validationSteps,
287
+ };
288
+ }
289
+ catch (error) {
290
+ return {
291
+ testName,
292
+ success: false,
293
+ duration: Date.now() - startTime,
294
+ error: error instanceof Error ? error.message : String(error),
295
+ metrics: {
296
+ agentsSpawned: 0,
297
+ agentsCompleted: 0,
298
+ agentsFailed: 0,
299
+ dependenciesResolved: 0,
300
+ monitoringUpdates: 0,
301
+ },
302
+ validationSteps,
303
+ };
304
+ }
305
+ }
306
+ /**
307
+ * SIMULATION 4: Performance & Scalability Flow
308
+ * Tests system performance under load
309
+ */
310
+ async testPerformanceFlow() {
311
+ const startTime = Date.now();
312
+ const testName = "Performance & Scalability Flow";
313
+ const validationSteps = [];
314
+ try {
315
+ // Create multiple concurrent tasks
316
+ const taskCount = 5;
317
+ const tasks = Array.from({ length: taskCount }, (_, i) => ({
318
+ id: `perf-task-${i}`,
319
+ description: `Performance test task ${i}`,
320
+ subagentType: [
321
+ "architect",
322
+ "researcher",
323
+ "enforcer",
324
+ "testing-lead",
325
+ "security-auditor",
326
+ ][i % 5],
327
+ priority: "medium",
328
+ }));
329
+ validationSteps.push({
330
+ step: "Performance Task Setup",
331
+ success: true,
332
+ timestamp: Date.now(),
333
+ details: `Created ${taskCount} concurrent tasks`,
334
+ });
335
+ // Execute concurrent tasks
336
+ const results = await this.orchestrator.executeComplexTask("Test performance and scalability", tasks);
337
+ validationSteps.push({
338
+ step: "Concurrent Execution",
339
+ success: results.length === taskCount,
340
+ timestamp: Date.now(),
341
+ details: `Executed ${results.length} concurrent tasks`,
342
+ });
343
+ // Validate performance metrics
344
+ const totalDuration = Date.now() - startTime;
345
+ const avgTaskDuration = totalDuration / taskCount;
346
+ const reasonablePerformance = avgTaskDuration < 10000; // Less than 10 seconds per task
347
+ validationSteps.push({
348
+ step: "Performance Validation",
349
+ success: reasonablePerformance,
350
+ timestamp: Date.now(),
351
+ details: `Average task duration: ${avgTaskDuration.toFixed(2)}ms`,
352
+ });
353
+ // Check resource management
354
+ const stats = enhancedMultiAgentOrchestrator.getStatistics();
355
+ const resourceEfficiency = stats.completedAgents >= taskCount * 0.8; // At least 80% success rate
356
+ validationSteps.push({
357
+ step: "Resource Management Validation",
358
+ success: resourceEfficiency,
359
+ timestamp: Date.now(),
360
+ details: `${stats.completedAgents}/${taskCount} tasks completed successfully`,
361
+ });
362
+ const duration = Date.now() - startTime;
363
+ return {
364
+ testName,
365
+ success: reasonablePerformance && resourceEfficiency,
366
+ duration,
367
+ metrics: {
368
+ agentsSpawned: stats.totalSpawned,
369
+ agentsCompleted: stats.completedAgents,
370
+ agentsFailed: stats.failedAgents,
371
+ dependenciesResolved: 0,
372
+ monitoringUpdates: taskCount,
373
+ },
374
+ validationSteps,
375
+ };
376
+ }
377
+ catch (error) {
378
+ return {
379
+ testName,
380
+ success: false,
381
+ duration: Date.now() - startTime,
382
+ error: error instanceof Error ? error.message : String(error),
383
+ metrics: {
384
+ agentsSpawned: 0,
385
+ agentsCompleted: 0,
386
+ agentsFailed: 0,
387
+ dependenciesResolved: 0,
388
+ monitoringUpdates: 0,
389
+ },
390
+ validationSteps,
391
+ };
392
+ }
393
+ }
394
+ /**
395
+ * SIMULATION 5: Monitoring & Cleanup Flow
396
+ * Tests the complete monitoring and cleanup lifecycle
397
+ */
398
+ async testMonitoringCleanupFlow() {
399
+ const startTime = Date.now();
400
+ const testName = "Monitoring & Cleanup Flow";
401
+ const validationSteps = [];
402
+ try {
403
+ // Execute tasks to generate monitoring data
404
+ const tasks = [
405
+ {
406
+ id: "monitor-test-1",
407
+ description: "Test monitoring capabilities",
408
+ subagentType: "architect",
409
+ priority: "medium",
410
+ },
411
+ {
412
+ id: "monitor-test-2",
413
+ description: "Test cleanup mechanisms",
414
+ subagentType: "researcher",
415
+ priority: "medium",
416
+ },
417
+ ];
418
+ const results = await this.orchestrator.executeComplexTask("Test monitoring and cleanup", tasks);
419
+ validationSteps.push({
420
+ step: "Monitoring Data Generation",
421
+ success: results.length === 2,
422
+ timestamp: Date.now(),
423
+ details: "Generated monitoring data through task execution",
424
+ });
425
+ // Validate monitoring interface
426
+ const monitoringData = enhancedMultiAgentOrchestrator.getMonitoringInterface();
427
+ const hasClickableAgents = Object.values(monitoringData).every((agent) => agent.clickable);
428
+ const hasProgressTracking = Object.values(monitoringData).every((agent) => typeof agent.progress === "number");
429
+ validationSteps.push({
430
+ step: "Monitoring Interface Validation",
431
+ success: hasClickableAgents && hasProgressTracking,
432
+ timestamp: Date.now(),
433
+ details: `Clickable: ${hasClickableAgents}, Progress: ${hasProgressTracking}`,
434
+ });
435
+ // Test agent cancellation
436
+ const agentIds = Object.keys(monitoringData);
437
+ if (agentIds.length > 0) {
438
+ const agentIdToCancel = agentIds[0];
439
+ if (agentIdToCancel) {
440
+ const cancelResult = await enhancedMultiAgentOrchestrator.cancelAgent(agentIdToCancel);
441
+ validationSteps.push({
442
+ step: "Agent Cancellation Test",
443
+ success: cancelResult,
444
+ timestamp: Date.now(),
445
+ details: `Cancelled agent ${agentIdToCancel}: ${cancelResult}`,
446
+ });
447
+ }
448
+ }
449
+ // Wait for cleanup to occur
450
+ await new Promise((resolve) => setTimeout(resolve, 1000));
451
+ // Validate cleanup occurred
452
+ const postCleanupStats = enhancedMultiAgentOrchestrator.getStatistics();
453
+ const cleanupOccurred = postCleanupStats.activeAgents < 2; // Should have cleaned up cancelled agent
454
+ validationSteps.push({
455
+ step: "Cleanup Validation",
456
+ success: cleanupOccurred,
457
+ timestamp: Date.now(),
458
+ details: `Active agents after cleanup: ${postCleanupStats.activeAgents}`,
459
+ });
460
+ const duration = Date.now() - startTime;
461
+ const stats = enhancedMultiAgentOrchestrator.getStatistics();
462
+ return {
463
+ testName,
464
+ success: hasClickableAgents && hasProgressTracking && cleanupOccurred,
465
+ duration,
466
+ metrics: {
467
+ agentsSpawned: stats.totalSpawned,
468
+ agentsCompleted: stats.completedAgents,
469
+ agentsFailed: stats.failedAgents,
470
+ dependenciesResolved: 0,
471
+ monitoringUpdates: Object.keys(monitoringData).length,
472
+ },
473
+ validationSteps,
474
+ };
475
+ }
476
+ catch (error) {
477
+ return {
478
+ testName,
479
+ success: false,
480
+ duration: Date.now() - startTime,
481
+ error: error instanceof Error ? error.message : String(error),
482
+ metrics: {
483
+ agentsSpawned: 0,
484
+ agentsCompleted: 0,
485
+ agentsFailed: 0,
486
+ dependenciesResolved: 0,
487
+ monitoringUpdates: 0,
488
+ },
489
+ validationSteps,
490
+ };
491
+ }
492
+ }
493
+ /**
494
+ * Run all orchestration flow validations
495
+ */
496
+ async runCompleteValidationSuite() {
497
+ await frameworkLogger.log("orchestration-flow-validator", "-starting-comprehensive-orchestration-flow-validat", "info", {
498
+ message: "🚀 STARTING COMPREHENSIVE ORCHESTRATION FLOW VALIDATION SUITE\n",
499
+ });
500
+ await frameworkLogger.log("orchestration-flow-validator", "-repeat-70-", "info", { message: "=".repeat(70) });
501
+ const tests = [
502
+ this.testBasicOrchestrationFlow(),
503
+ this.testDependencyManagementFlow(),
504
+ this.testErrorHandlingFlow(),
505
+ this.testPerformanceFlow(),
506
+ this.testMonitoringCleanupFlow(),
507
+ ];
508
+ const results = await Promise.all(tests);
509
+ // Store results
510
+ results.forEach((result) => {
511
+ this.testResults.set(result.testName, result);
512
+ });
513
+ // Generate comprehensive report
514
+ return this.generateValidationReport(results);
515
+ }
516
+ /**
517
+ * Generate comprehensive validation report
518
+ */
519
+ generateValidationReport(results) {
520
+ const totalTests = results.length;
521
+ const passedTests = results.filter((r) => r.success).length;
522
+ const failedTests = totalTests - passedTests;
523
+ const successRate = (passedTests / totalTests) * 100;
524
+ const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
525
+ const avgDuration = totalDuration / totalTests;
526
+ const totalAgentsSpawned = results.reduce((sum, r) => sum + r.metrics.agentsSpawned, 0);
527
+ const totalAgentsCompleted = results.reduce((sum, r) => sum + r.metrics.agentsCompleted, 0);
528
+ const totalDependenciesResolved = results.reduce((sum, r) => sum + r.metrics.dependenciesResolved, 0);
529
+ // Validation report output - kept as console.log for user-readable reports
530
+ results.forEach((result, index) => {
531
+ const status = result.success ? "✅ PASS" : "❌ FAIL";
532
+ const duration = result.duration;
533
+ const agents = result.metrics.agentsSpawned;
534
+ // Test result details - kept as console.log for readability
535
+ void frameworkLogger.log("orchestration-flow-validator", "-index-1-result-testname-status-duration-ms-agents", "info", {
536
+ message: `${index + 1}. ${result.testName} - ${status} (${duration}ms, ${agents} agents)`,
537
+ });
538
+ // Show key metrics
539
+ void frameworkLogger.log("orchestration-flow-validator", "-metrics-result-metrics-agentscompleted-result-met", "info", {
540
+ message: ` Metrics: ${result.metrics.agentsCompleted}/${result.metrics.agentsSpawned} completed, ${result.metrics.dependenciesResolved} deps resolved`,
541
+ });
542
+ // Show validation steps
543
+ result.validationSteps.forEach((step) => {
544
+ const stepStatus = step.success ? "✓" : "✗";
545
+ void frameworkLogger.log("orchestration-flow-validator", "-stepstatus-step-step-", "info", { message: ` ${stepStatus} ${step.step}` });
546
+ });
547
+ void frameworkLogger.log("orchestration-flow-validator", "-", "info", {
548
+ message: "",
549
+ });
550
+ });
551
+ // Cleanup
552
+ enhancedMultiAgentOrchestrator.shutdown();
553
+ return {
554
+ summary: {
555
+ totalTests,
556
+ passedTests,
557
+ failedTests,
558
+ successRate,
559
+ totalDuration,
560
+ avgDuration,
561
+ },
562
+ metrics: {
563
+ totalAgentsSpawned,
564
+ totalAgentsCompleted,
565
+ totalDependenciesResolved,
566
+ totalMonitoringUpdates: results.reduce((sum, r) => sum + r.metrics.monitoringUpdates, 0),
567
+ },
568
+ testResults: results,
569
+ recommendations: this.generateRecommendations(results),
570
+ };
571
+ }
572
+ /**
573
+ * Generate recommendations based on test results
574
+ */
575
+ generateRecommendations(results) {
576
+ const recommendations = [];
577
+ const failedTests = results.filter((r) => !r.success);
578
+ if (failedTests.length > 0) {
579
+ recommendations.push(`Address ${failedTests.length} failing test(s): ${failedTests.map((t) => t.testName).join(", ")}`);
580
+ }
581
+ const slowTests = results.filter((r) => r.duration > 10000);
582
+ if (slowTests.length > 0) {
583
+ recommendations.push(`Optimize performance for ${slowTests.length} slow test(s) averaging >10s execution time`);
584
+ }
585
+ const lowCompletionRate = results.some((r) => r.metrics.agentsCompleted / r.metrics.agentsSpawned < 0.8);
586
+ if (lowCompletionRate) {
587
+ recommendations.push("Improve agent completion rates - some tests show <80% success rate");
588
+ }
589
+ if (recommendations.length === 0) {
590
+ recommendations.push("All tests passed successfully - orchestration pipeline is fully validated");
591
+ }
592
+ return recommendations;
593
+ }
594
+ }
595
+ // Export for external use
596
+ export { OrchestrationFlowValidator };
597
+ // Run validation suite if executed directly
598
+ if (import.meta.url === `file://${process.argv[1]}`) {
599
+ const validator = new OrchestrationFlowValidator();
600
+ validator
601
+ .runCompleteValidationSuite()
602
+ .then((results) => {
603
+ // Validation completion - kept as console.log for user feedback
604
+ })
605
+ .catch(() => { });
606
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xray",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Multi-agent orchestration and Codex governance for OpenCode, Hermes, Grok Build, and OpenClaw",
5
5
  "readme": "README.md",
6
6
  "license": "MIT",
@@ -60,7 +60,7 @@
60
60
  "version:bump": "node scripts/node/version-manager.mjs",
61
61
  "version": "node scripts/node/version-manager.mjs",
62
62
  "prebuild": "rm -rf dist tsconfig.tsbuildinfo tsconfig.*.tsbuildinfo",
63
- "build": "tsc && mkdir -p dist/public dist/scripts && cp -r public/* dist/public/ && cp scripts/hooks/pre-command dist/scripts/ && cp scripts/hooks/pre-command.mjs dist/scripts/ && cp README.md AGENTS.md CHANGELOG.md LICENSE dist/ && find src -name '*.mjs' ! -path '*/__tests__/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done && for dir in skills integrations mcps; do find src/$dir -type f ! -name '*.ts' ! -path '*/.pytest_cache/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done; done && mkdir -p dist/plugin && (find dist/plugin -name '*codex-injection*.js' -exec cp {} dist/plugin/xray-codex-injection.js \\; 2>/dev/null || true) && cp -r src/opencode/ .opencode/ && rm -rf .opencode/xray 2>/dev/null; mkdir -p .opencode/xray && cp xray/codex.json .opencode/xray/codex.json 2>/dev/null || true",
63
+ "build": "tsc && mkdir -p dist/public dist/scripts && cp -r public/* dist/public/ && cp scripts/hooks/pre-command dist/scripts/ && cp scripts/hooks/pre-command.mjs dist/scripts/ && cp README.md AGENTS.md SKILLS.md CHANGELOG.md LICENSE .gitignore.default dist/ && find src -name '*.mjs' ! -path '*/__tests__/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done && for dir in skills integrations mcps; do find src/$dir -type f ! -name '*.ts' ! -path '*/.pytest_cache/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done; done && mkdir -p dist/plugin && (find dist/plugin -name '*codex-injection*.js' -exec cp {} dist/plugin/xray-codex-injection.js \\; 2>/dev/null || true) && cp -r src/opencode/ .opencode/ && mkdir -p .xray && cp xray/codex.json .xray/codex.json 2>/dev/null || true",
64
64
  "build:all": "npm run build",
65
65
  "ci-install": "npm ci",
66
66
  "clean": "rm -rf dist tsconfig.tsbuildinfo tsconfig.*.tsbuildinfo",
@@ -96,7 +96,7 @@
96
96
  "test:e2e": "node scripts/node/validate-mcp-connectivity.js && node scripts/node/validate-external-processes.js",
97
97
  "validate": "echo \"[xray] Use 'npm test' or 'npm run test:comprehensive'.\"",
98
98
  "validate:quick": "npm run validate",
99
- "debug:inference:force": "STRRAY_FORCE_MCP_GOVERNANCE=true XRAY_DEV_PATH=dist node dist/cli/index.js inference:run --force",
99
+ "debug:inference:force": "XRAY_FORCE_MCP_GOVERNANCE=true XRAY_DEV_PATH=dist node dist/cli/index.js inference:run --force",
100
100
  "validate:full": "npm run validate",
101
101
  "test:unified": "node scripts/test/test-unified-framework.mjs",
102
102
  "test:consumer": "node scripts/test/test-consumer-readiness.cjs",
@@ -138,6 +138,7 @@
138
138
  "src/integrations/grok/plugin/0xray/",
139
139
  "src/skills/",
140
140
  "src/mcps/",
141
+ ".plugin/",
141
142
  ".opencode/agents/",
142
143
  ".opencode/commands/",
143
144
  ".opencode/hooks/",
@@ -148,7 +149,13 @@
148
149
  ".opencode/enforcer-config.json",
149
150
  "opencode.json",
150
151
  "README.md",
152
+ ".mcp.json",
151
153
  "AGENTS.md",
154
+ "AGENTS-consumer.md",
155
+ "SKILLS.md",
156
+ "xray/agents_template.md",
157
+ "xray/codex.json",
158
+ ".gitignore.default",
152
159
  "LICENSE"
153
160
  ],
154
161
  "dependencies": {
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # Pre-Command Hook for StringRay
2
+ # Pre-Command Hook for 0xRay
3
3
  #
4
4
  # Checks context window usage before each command.
5
5
  # If context is at 95%+ (configurable), auto-generates a reflection.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * StringRay Git Hook Runner
4
+ * 0xRay Git Hook Runner
5
5
  *
6
6
  * Called by git hooks (pre-commit, post-commit, pre-push, post-push)
7
7
  * to perform validation, logging, and monitoring.
@@ -565,6 +565,6 @@ handler()
565
565
  })
566
566
  .catch((err) => {
567
567
  logError(`Hook crashed: ${err.message}`);
568
- console.error(`StringRay hook error: ${err.message}`);
568
+ console.error(`0xRay hook error: ${err.message}`);
569
569
  process.exit(1);
570
570
  });