0xray 2.0.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 (739) hide show
  1. package/.opencode/agents/api-design.yml +31 -0
  2. package/.opencode/agents/architect.yml +15 -0
  3. package/.opencode/agents/architecture-patterns.yml +14 -0
  4. package/.opencode/agents/auto-format.yml +14 -0
  5. package/.opencode/agents/backend-engineer.yml +12 -0
  6. package/.opencode/agents/boot-orchestrator.yml +14 -0
  7. package/.opencode/agents/bug-triage-specialist.yml +15 -0
  8. package/.opencode/agents/code-analyzer.yml +12 -0
  9. package/.opencode/agents/code-reviewer.yml +14 -0
  10. package/.opencode/agents/content-creator.yml +12 -0
  11. package/.opencode/agents/database-engineer.yml +12 -0
  12. package/.opencode/agents/devops-engineer.yml +12 -0
  13. package/.opencode/agents/framework-compliance-audit.yml +14 -0
  14. package/.opencode/agents/frontend-engineer.yml +12 -0
  15. package/.opencode/agents/frontend-ui-ux-engineer.yml +12 -0
  16. package/.opencode/agents/git-workflow.yml +15 -0
  17. package/.opencode/agents/growth-strategist.yml +12 -0
  18. package/.opencode/agents/hermes-agent.yml +12 -0
  19. package/.opencode/agents/inference-improve.yml +12 -0
  20. package/.opencode/agents/lint.yml +14 -0
  21. package/.opencode/agents/log-monitor.yml +12 -0
  22. package/.opencode/agents/mobile-developer.yml +12 -0
  23. package/.opencode/agents/model-health-check.yml +12 -0
  24. package/.opencode/agents/multimodal-looker.yml +12 -0
  25. package/.opencode/agents/performance-analysis.yml +12 -0
  26. package/.opencode/agents/performance-engineer.yml +12 -0
  27. package/.opencode/agents/performance-optimization.yml +12 -0
  28. package/.opencode/agents/processor-pipeline.yml +14 -0
  29. package/.opencode/agents/project-analysis.yml +12 -0
  30. package/.opencode/agents/refactorer.yml +12 -0
  31. package/.opencode/agents/researcher.yml +12 -0
  32. package/.opencode/agents/security-auditor.yml +12 -0
  33. package/.opencode/agents/security-scan.yml +12 -0
  34. package/.opencode/agents/seo-consultant.yml +12 -0
  35. package/.opencode/agents/session-management.yml +12 -0
  36. package/.opencode/agents/state-manager.yml +12 -0
  37. package/.opencode/agents/storyteller.yml +12 -0
  38. package/.opencode/agents/strategist.yml +12 -0
  39. package/.opencode/agents/tech-writer.yml +12 -0
  40. package/.opencode/agents/testing-best-practices.yml +12 -0
  41. package/.opencode/agents/testing-lead.yml +12 -0
  42. package/.opencode/agents/ui-ux-design.yml +12 -0
  43. package/.opencode/codex.codex +8 -0
  44. package/.opencode/commands/auto-format.md +99 -0
  45. package/.opencode/commands/auto-summary-capture.md +90 -0
  46. package/.opencode/commands/dependency-audit.md +184 -0
  47. package/.opencode/commands/enforcer-daily-scan.md +137 -0
  48. package/.opencode/commands/framework-compliance-audit.md +205 -0
  49. package/.opencode/commands/interactive-validator.md +75 -0
  50. package/.opencode/commands/job-summary-logger.md +68 -0
  51. package/.opencode/commands/lint.md +11 -0
  52. package/.opencode/commands/mode-switch.md +95 -0
  53. package/.opencode/commands/model-health-check.md +186 -0
  54. package/.opencode/commands/performance-analysis.md +144 -0
  55. package/.opencode/commands/pre-commit-introspection.md +185 -0
  56. package/.opencode/commands/pre-commit-introspection.sh +133 -0
  57. package/.opencode/commands/security-scan.md +157 -0
  58. package/.opencode/commands/sisyphus-validation.md +128 -0
  59. package/.opencode/commands/summary-logger.md +83 -0
  60. package/.opencode/enforcer-config.json +285 -0
  61. package/.opencode/hooks/hook-metrics.json +380 -0
  62. package/.opencode/hooks/post-commit +114 -0
  63. package/.opencode/hooks/post-push +34 -0
  64. package/.opencode/init.sh +151 -0
  65. package/.opencode/skills/api-design/SKILL.md +37 -0
  66. package/.opencode/skills/architect-tools/SKILL.md +37 -0
  67. package/.opencode/skills/architecture-patterns/SKILL.md +37 -0
  68. package/.opencode/skills/auto-format/SKILL.md +37 -0
  69. package/.opencode/skills/backend-engineer/SKILL.md +49 -0
  70. package/.opencode/skills/boot-orchestrator/SKILL.md +37 -0
  71. package/.opencode/skills/bug-triage/SKILL.md +43 -0
  72. package/.opencode/skills/code-analyzer/SKILL.md +45 -0
  73. package/.opencode/skills/code-review/SKILL.md +52 -0
  74. package/.opencode/skills/content-creator/SKILL.md +38 -0
  75. package/.opencode/skills/database-engineer/SKILL.md +46 -0
  76. package/.opencode/skills/devops-engineer/SKILL.md +49 -0
  77. package/.opencode/skills/enforcer/SKILL.md +37 -0
  78. package/.opencode/skills/framework-compliance-audit/SKILL.md +37 -0
  79. package/.opencode/skills/frontend-engineer/SKILL.md +49 -0
  80. package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  81. package/.opencode/skills/git-workflow/SKILL.md +37 -0
  82. package/.opencode/skills/growth-strategist/SKILL.md +48 -0
  83. package/.opencode/skills/hermes-agent/SKILL.md +212 -0
  84. package/.opencode/skills/inference-improve/SKILL.md +97 -0
  85. package/.opencode/skills/lint/SKILL.md +37 -0
  86. package/.opencode/skills/log-monitor/SKILL.md +44 -0
  87. package/.opencode/skills/mobile-developer/SKILL.md +42 -0
  88. package/.opencode/skills/model-health-check/SKILL.md +37 -0
  89. package/.opencode/skills/multimodal-looker/SKILL.md +45 -0
  90. package/.opencode/skills/orchestrator/SKILL.md +37 -0
  91. package/.opencode/skills/performance-analysis/SKILL.md +37 -0
  92. package/.opencode/skills/performance-engineer/SKILL.md +41 -0
  93. package/.opencode/skills/performance-optimization/SKILL.md +37 -0
  94. package/.opencode/skills/processor-pipeline/SKILL.md +37 -0
  95. package/.opencode/skills/project-analysis/SKILL.md +42 -0
  96. package/.opencode/skills/refactoring-strategies/SKILL.md +37 -0
  97. package/.opencode/skills/registry.json +66 -0
  98. package/.opencode/skills/researcher/SKILL.md +37 -0
  99. package/.opencode/skills/security-audit/SKILL.md +47 -0
  100. package/.opencode/skills/security-scan/SKILL.md +37 -0
  101. package/.opencode/skills/seo-consultant/SKILL.md +43 -0
  102. package/.opencode/skills/session-management/SKILL.md +36 -0
  103. package/.opencode/skills/state-manager/SKILL.md +37 -0
  104. package/.opencode/skills/storyteller/SKILL.md +130 -0
  105. package/.opencode/skills/strategist/SKILL.md +32 -0
  106. package/.opencode/skills/tech-writer/SKILL.md +37 -0
  107. package/.opencode/skills/testing-best-practices/SKILL.md +37 -0
  108. package/.opencode/skills/testing-strategy/SKILL.md +43 -0
  109. package/.opencode/skills/ui-ux-design/SKILL.md +603 -0
  110. package/.opencode/workflows/post-deployment-audit.yml +123 -0
  111. package/AGENTS.md +110 -0
  112. package/LICENSE +21 -0
  113. package/README.md +131 -0
  114. package/dist/AGENTS.md +110 -0
  115. package/dist/CHANGELOG.md +2182 -0
  116. package/dist/LICENSE +21 -0
  117. package/dist/README.md +131 -0
  118. package/dist/agents/architect.js +56 -0
  119. package/dist/agents/backend-engineer.js +81 -0
  120. package/dist/agents/bug-triage-specialist.js +74 -0
  121. package/dist/agents/code-analyzer.js +150 -0
  122. package/dist/agents/code-reviewer.js +69 -0
  123. package/dist/agents/content-creator.js +72 -0
  124. package/dist/agents/database-engineer.js +76 -0
  125. package/dist/agents/devops-engineer.js +84 -0
  126. package/dist/agents/frontend-engineer.js +78 -0
  127. package/dist/agents/frontend-ui-ux-engineer.js +64 -0
  128. package/dist/agents/growth-strategist.js +111 -0
  129. package/dist/agents/index.js +45 -0
  130. package/dist/agents/librarian-agents-updater.js +333 -0
  131. package/dist/agents/log-monitor.js +109 -0
  132. package/dist/agents/mobile-developer.js +102 -0
  133. package/dist/agents/multimodal-looker.js +93 -0
  134. package/dist/agents/performance-engineer.js +86 -0
  135. package/dist/agents/refactorer.js +80 -0
  136. package/dist/agents/registry.js +340 -0
  137. package/dist/agents/researcher.js +83 -0
  138. package/dist/agents/security-auditor.js +158 -0
  139. package/dist/agents/seo-consultant.js +53 -0
  140. package/dist/agents/strategist.js +47 -0
  141. package/dist/agents/tech-writer.js +84 -0
  142. package/dist/agents/testing-lead.js +95 -0
  143. package/dist/agents/types.js +1 -0
  144. package/dist/analytics/consent-manager.js +258 -0
  145. package/dist/analytics/emerging-pattern-detector.js +260 -0
  146. package/dist/analytics/pattern-learning-engine.js +278 -0
  147. package/dist/analytics/pattern-performance-tracker.js +336 -0
  148. package/dist/analytics/predictive-analytics.js +248 -0
  149. package/dist/analytics/prompt-pattern-analyzer.js +371 -0
  150. package/dist/analytics/routing-performance-analyzer.js +356 -0
  151. package/dist/analytics/routing-refiner.js +380 -0
  152. package/dist/analytics/simple-pattern-analyzer.js +297 -0
  153. package/dist/architect/architect-tools.js +437 -0
  154. package/dist/architect/architectural-integrity.js +78 -0
  155. package/dist/benchmark/performance-benchmark.js +372 -0
  156. package/dist/cli/commands/analytics-disable.js +72 -0
  157. package/dist/cli/commands/analytics-enable-action.js +82 -0
  158. package/dist/cli/commands/analytics-preview.js +106 -0
  159. package/dist/cli/commands/analytics-status.js +68 -0
  160. package/dist/cli/commands/antigravity-status.js +106 -0
  161. package/dist/cli/commands/archive-logs.js +161 -0
  162. package/dist/cli/commands/credible-init.js +82 -0
  163. package/dist/cli/commands/grok-install.js +16 -0
  164. package/dist/cli/commands/hermes-install.js +66 -0
  165. package/dist/cli/commands/mcp-install.js +253 -0
  166. package/dist/cli/commands/openclaw-install.js +44 -0
  167. package/dist/cli/commands/opencode-install.js +99 -0
  168. package/dist/cli/commands/plugin-commands.js +246 -0
  169. package/dist/cli/commands/publish-agent.js +184 -0
  170. package/dist/cli/commands/security-audit.js +219 -0
  171. package/dist/cli/commands/skill-install.js +481 -0
  172. package/dist/cli/commands/status.js +196 -0
  173. package/dist/cli/commands/storyteller.js +230 -0
  174. package/dist/cli/index.js +986 -0
  175. package/dist/cli/server.js +147 -0
  176. package/dist/config/default-agents.js +16 -0
  177. package/dist/core/activity-logger.js +260 -0
  178. package/dist/core/adaptive-kernel.js +192 -0
  179. package/dist/core/agent-spawn-gate.js +120 -0
  180. package/dist/core/boot-orchestrator.js +812 -0
  181. package/dist/core/bridge.mjs +945 -0
  182. package/dist/core/codex-formatter.js +220 -0
  183. package/dist/core/codex-injector.js +424 -0
  184. package/dist/core/config-loader.js +148 -0
  185. package/dist/core/config-paths.js +162 -0
  186. package/dist/core/context-loader.js +269 -0
  187. package/dist/core/context-validator.js +212 -0
  188. package/dist/core/features-config.js +457 -0
  189. package/dist/core/framework-logger.js +275 -0
  190. package/dist/core/index.js +6 -0
  191. package/dist/core/kernel-patterns.js +302 -0
  192. package/dist/core/logging-config.js +43 -0
  193. package/dist/core/model-router.js +175 -0
  194. package/dist/core/orchestrator.js +408 -0
  195. package/dist/core/system-prompt-generator.js +265 -0
  196. package/dist/core/trace-context.js +33 -0
  197. package/dist/core/xray-activation.js +134 -0
  198. package/dist/delegation/agent-delegator.js +769 -0
  199. package/dist/delegation/agent-expertise.js +156 -0
  200. package/dist/delegation/analytics/index.js +12 -0
  201. package/dist/delegation/analytics/learning-engine.js +277 -0
  202. package/dist/delegation/analytics/outcome-tracker.js +279 -0
  203. package/dist/delegation/analytics/routing-analytics.js +193 -0
  204. package/dist/delegation/ast-code-parser.js +878 -0
  205. package/dist/delegation/codebase-context-analyzer.js +1040 -0
  206. package/dist/delegation/complexity-analyzer.js +282 -0
  207. package/dist/delegation/complexity-core.js +219 -0
  208. package/dist/delegation/config/types.js +6 -0
  209. package/dist/delegation/dependency-graph-builder.js +409 -0
  210. package/dist/delegation/index.js +20 -0
  211. package/dist/delegation/metrics-aggregator.js +335 -0
  212. package/dist/delegation/session-coordinator.js +352 -0
  213. package/dist/delegation/strategy-selector.js +108 -0
  214. package/dist/delegation/voting-coordinator.js +375 -0
  215. package/dist/delegation/voting-types.js +10 -0
  216. package/dist/delegation/weighted-voting-aggregator.js +194 -0
  217. package/dist/enforcement/core/index.js +19 -0
  218. package/dist/enforcement/core/rule-executor.js +365 -0
  219. package/dist/enforcement/core/rule-hierarchy.js +259 -0
  220. package/dist/enforcement/core/rule-registry.js +240 -0
  221. package/dist/enforcement/core/violation-fixer.js +651 -0
  222. package/dist/enforcement/enforcer-tools.js +909 -0
  223. package/dist/enforcement/index.js +41 -0
  224. package/dist/enforcement/loaders/agent-triage-loader.js +222 -0
  225. package/dist/enforcement/loaders/agents-md-validation-loader.js +252 -0
  226. package/dist/enforcement/loaders/base-loader.js +86 -0
  227. package/dist/enforcement/loaders/codex-loader.js +396 -0
  228. package/dist/enforcement/loaders/index.js +40 -0
  229. package/dist/enforcement/loaders/loader-orchestrator.js +168 -0
  230. package/dist/enforcement/loaders/processor-loader.js +113 -0
  231. package/dist/enforcement/rule-enforcer.js +298 -0
  232. package/dist/enforcement/test-auto-healing.js +325 -0
  233. package/dist/enforcement/types.js +30 -0
  234. package/dist/enforcement/validators/architecture-validators.js +600 -0
  235. package/dist/enforcement/validators/base-validator.js +108 -0
  236. package/dist/enforcement/validators/code-quality-validators.js +336 -0
  237. package/dist/enforcement/validators/index.js +21 -0
  238. package/dist/enforcement/validators/security-validators.js +220 -0
  239. package/dist/enforcement/validators/testing-validators.js +253 -0
  240. package/dist/enforcement/validators/validator-registry.js +150 -0
  241. package/dist/execution/opencode-cli-invoker.js +173 -0
  242. package/dist/execution/proposal-applier.js +254 -0
  243. package/dist/governance/codex-policy.service.js +167 -0
  244. package/dist/governance/governance-core.js +152 -0
  245. package/dist/governance/governance-service.js +274 -0
  246. package/dist/governance/governance-types.js +6 -0
  247. package/dist/index.js +24 -0
  248. package/dist/inference/deploy-verifier.js +161 -0
  249. package/dist/inference/index.js +5 -0
  250. package/dist/inference/inference-accumulator.js +126 -0
  251. package/dist/inference/inference-cycle.js +1168 -0
  252. package/dist/inference/semantic-patterns.js +310 -0
  253. package/dist/inference/session-capture.js +308 -0
  254. package/dist/integrations/base/ExampleIntegration.js +181 -0
  255. package/dist/integrations/base/Integration.js +395 -0
  256. package/dist/integrations/base/README.md +446 -0
  257. package/dist/integrations/base/index.js +16 -0
  258. package/dist/integrations/base/registry.js +606 -0
  259. package/dist/integrations/base/types.js +118 -0
  260. package/dist/integrations/governance/governance-client.js +316 -0
  261. package/dist/integrations/governance/index.js +373 -0
  262. package/dist/integrations/governance/types.js +97 -0
  263. package/dist/integrations/grok/grok-cli.js +83 -0
  264. package/dist/integrations/grok/hooks/pre-tool-use.js +134 -0
  265. package/dist/integrations/grok/plugin/0xray/.mcp.json +15 -0
  266. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
  267. package/dist/integrations/hermes-agent/__init__.py +718 -0
  268. package/dist/integrations/hermes-agent/after-install.md +71 -0
  269. package/dist/integrations/hermes-agent/bridge.mjs +861 -0
  270. package/dist/integrations/hermes-agent/conftest.py +14 -0
  271. package/dist/integrations/hermes-agent/plugin.yaml +12 -0
  272. package/dist/integrations/hermes-agent/schemas.py +100 -0
  273. package/dist/integrations/hermes-agent/test_plugin.py +1100 -0
  274. package/dist/integrations/hermes-agent/tools.py +253 -0
  275. package/dist/integrations/openclaw/README.md +134 -0
  276. package/dist/integrations/openclaw/api-server.js +389 -0
  277. package/dist/integrations/openclaw/client.js +492 -0
  278. package/dist/integrations/openclaw/config.js +374 -0
  279. package/dist/integrations/openclaw/hooks/strray-hooks.js +280 -0
  280. package/dist/integrations/openclaw/index.js +351 -0
  281. package/dist/integrations/openclaw/types.js +153 -0
  282. package/dist/integrations/plugins/index.js +10 -0
  283. package/dist/integrations/plugins/plugin-integration.js +606 -0
  284. package/dist/integrations/plugins/plugin-registry.js +580 -0
  285. package/dist/mcps/agent-resolver.js +106 -0
  286. package/dist/mcps/architect-tools.server.js +277 -0
  287. package/dist/mcps/auto-format.server.js +413 -0
  288. package/dist/mcps/boot-orchestrator.server.js +853 -0
  289. package/dist/mcps/config/config-loader.js +103 -0
  290. package/dist/mcps/config/config-validator.js +101 -0
  291. package/dist/mcps/config/index.js +30 -0
  292. package/dist/mcps/config/plugin-server-registry.js +223 -0
  293. package/dist/mcps/config/server-config-registry.js +348 -0
  294. package/dist/mcps/connection/connection-manager.js +79 -0
  295. package/dist/mcps/connection/connection-pool.js +164 -0
  296. package/dist/mcps/connection/mcp-connection.js +233 -0
  297. package/dist/mcps/connection/process-spawner.js +34 -0
  298. package/dist/mcps/enforcer-tools.server.js +778 -0
  299. package/dist/mcps/estimation.server.js +192 -0
  300. package/dist/mcps/framework-compliance-audit.server.js +500 -0
  301. package/dist/mcps/framework-help.server.js +400 -0
  302. package/dist/mcps/governance.server.js +464 -0
  303. package/dist/mcps/in-process-skill-registry.js +48 -0
  304. package/dist/mcps/knowledge-skills/api-design.server.js +123 -0
  305. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +113 -0
  306. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +474 -0
  307. package/dist/mcps/knowledge-skills/code-analyzer.server.js +605 -0
  308. package/dist/mcps/knowledge-skills/code-review.server.js +847 -0
  309. package/dist/mcps/knowledge-skills/content-creator.server.js +256 -0
  310. package/dist/mcps/knowledge-skills/database-design.server.js +822 -0
  311. package/dist/mcps/knowledge-skills/devops-deployment.server.js +1180 -0
  312. package/dist/mcps/knowledge-skills/git-workflow.server.js +115 -0
  313. package/dist/mcps/knowledge-skills/growth-strategist.server.js +361 -0
  314. package/dist/mcps/knowledge-skills/log-monitor.server.js +451 -0
  315. package/dist/mcps/knowledge-skills/mobile-development.server.js +525 -0
  316. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1063 -0
  317. package/dist/mcps/knowledge-skills/performance-optimization.server.js +1587 -0
  318. package/dist/mcps/knowledge-skills/project-analysis.server.js +811 -0
  319. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +796 -0
  320. package/dist/mcps/knowledge-skills/security-audit.server.js +846 -0
  321. package/dist/mcps/knowledge-skills/seo-consultant.server.js +937 -0
  322. package/dist/mcps/knowledge-skills/session-management.server.js +470 -0
  323. package/dist/mcps/knowledge-skills/skill-invocation.server.js +729 -0
  324. package/dist/mcps/knowledge-skills/strategist.server.js +217 -0
  325. package/dist/mcps/knowledge-skills/tech-writer.server.js +1191 -0
  326. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +866 -0
  327. package/dist/mcps/knowledge-skills/testing-strategy.server.js +827 -0
  328. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1538 -0
  329. package/dist/mcps/lint.server.js +381 -0
  330. package/dist/mcps/mcp-client.js +574 -0
  331. package/dist/mcps/model-health-check.server.js +228 -0
  332. package/dist/mcps/orchestrator/config/agent-capabilities.js +87 -0
  333. package/dist/mcps/orchestrator/execution/execution-planner.js +279 -0
  334. package/dist/mcps/orchestrator/handlers/complexity-handler.js +94 -0
  335. package/dist/mcps/orchestrator/handlers/status-handler.js +232 -0
  336. package/dist/mcps/orchestrator/handlers/task-handler.js +197 -0
  337. package/dist/mcps/orchestrator/server.js +305 -0
  338. package/dist/mcps/orchestrator/types.js +6 -0
  339. package/dist/mcps/orchestrator.server.js +19 -0
  340. package/dist/mcps/performance-analysis.server.js +519 -0
  341. package/dist/mcps/processor-pipeline.server.js +561 -0
  342. package/dist/mcps/protocol/protocol-constants.js +46 -0
  343. package/dist/mcps/registry.json +110 -0
  344. package/dist/mcps/researcher.server.js +504 -0
  345. package/dist/mcps/security-scan.server.js +531 -0
  346. package/dist/mcps/simulation/index.js +12 -0
  347. package/dist/mcps/simulation/server-simulations.js +219 -0
  348. package/dist/mcps/simulation/simulation-engine.js +96 -0
  349. package/dist/mcps/state-manager.server.js +637 -0
  350. package/dist/mcps/tools/index.js +14 -0
  351. package/dist/mcps/tools/tool-cache.js +112 -0
  352. package/dist/mcps/tools/tool-discovery.js +65 -0
  353. package/dist/mcps/tools/tool-executor.js +75 -0
  354. package/dist/mcps/tools/tool-registry.js +67 -0
  355. package/dist/mcps/types/index.js +15 -0
  356. package/dist/mcps/types/json-rpc.types.js +7 -0
  357. package/dist/mcps/types/mcp.types.js +7 -0
  358. package/dist/metrics/agent-metrics.js +574 -0
  359. package/dist/metrics/index.js +6 -0
  360. package/dist/monitoring/advanced-profiler.js +232 -0
  361. package/dist/monitoring/memory-monitor.js +315 -0
  362. package/dist/monitoring/nudge-watchdog.js +356 -0
  363. package/dist/monitoring/test-auto-generation-monitor.js +157 -0
  364. package/dist/orchestrator/agent-spawn-governor.js +559 -0
  365. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +399 -0
  366. package/dist/orchestrator/intelligent-commit-batcher.js +353 -0
  367. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +456 -0
  368. package/dist/orchestrator/orchestrator.js +657 -0
  369. package/dist/orchestrator/self-direction-activation.js +245 -0
  370. package/dist/orchestrator/universal-librarian-consultation.js +216 -0
  371. package/dist/orchestrator/universal-registry-bridge.js +247 -0
  372. package/dist/performance/performance-budget-enforcer.js +434 -0
  373. package/dist/performance/performance-regression-tester.js +342 -0
  374. package/dist/plugin/xray-codex-injection.js +857 -0
  375. package/dist/postprocessor/PostProcessor.js +1048 -0
  376. package/dist/postprocessor/analysis/FailureAnalysisEngine.js +245 -0
  377. package/dist/postprocessor/autofix/AutoFixEngine.js +254 -0
  378. package/dist/postprocessor/autofix/FixValidator.js +56 -0
  379. package/dist/postprocessor/config.js +65 -0
  380. package/dist/postprocessor/escalation/EscalationEngine.js +492 -0
  381. package/dist/postprocessor/monitoring/MonitoringEngine.js +125 -0
  382. package/dist/postprocessor/redeploy/RedeployCoordinator.js +342 -0
  383. package/dist/postprocessor/services/RegressionAnalysisService.js +131 -0
  384. package/dist/postprocessor/success/SuccessHandler.js +134 -0
  385. package/dist/postprocessor/triggers/APITrigger.js +115 -0
  386. package/dist/postprocessor/triggers/GitHookTrigger.js +551 -0
  387. package/dist/postprocessor/triggers/WebhookTrigger.js +211 -0
  388. package/dist/postprocessor/types.js +4 -0
  389. package/dist/processors/doc-write-guard.js +46 -0
  390. package/dist/processors/implementations/agents-md-validation-processor.js +286 -0
  391. package/dist/processors/implementations/async-pattern-processor.js +158 -0
  392. package/dist/processors/implementations/codex-compliance-processor.js +57 -0
  393. package/dist/processors/implementations/commit-batcher-processor.js +71 -0
  394. package/dist/processors/implementations/console-log-guard-processor.js +163 -0
  395. package/dist/processors/implementations/coverage-analysis-processor.js +138 -0
  396. package/dist/processors/implementations/error-boundary-processor.js +44 -0
  397. package/dist/processors/implementations/inference-improvement-processor.js +270 -0
  398. package/dist/processors/implementations/log-protection-processor.js +118 -0
  399. package/dist/processors/implementations/nudge-processor.js +130 -0
  400. package/dist/processors/implementations/performance-budget-processor.js +217 -0
  401. package/dist/processors/implementations/postprocessor-chain-validator.js +149 -0
  402. package/dist/processors/implementations/pre-validate-processor.js +18 -0
  403. package/dist/processors/implementations/publish-preflight-processor.js +249 -0
  404. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +33 -0
  405. package/dist/processors/implementations/refactoring-logging-processor.js +96 -0
  406. package/dist/processors/implementations/regression-testing-processor.js +59 -0
  407. package/dist/processors/implementations/session-capture-processor.js +37 -0
  408. package/dist/processors/implementations/session-summary-processor.js +130 -0
  409. package/dist/processors/implementations/spawn-governance-processor.js +219 -0
  410. package/dist/processors/implementations/state-validation-processor.js +15 -0
  411. package/dist/processors/implementations/storytelling-trigger-processor.js +589 -0
  412. package/dist/processors/implementations/test-auto-creation-processor.js +484 -0
  413. package/dist/processors/implementations/test-execution-processor.js +132 -0
  414. package/dist/processors/implementations/typescript-compilation-processor.js +87 -0
  415. package/dist/processors/implementations/version-compliance-processor.js +350 -0
  416. package/dist/processors/processor-interfaces.js +126 -0
  417. package/dist/processors/processor-manager.js +826 -0
  418. package/dist/processors/processor-types.js +12 -0
  419. package/dist/public/about.html +228 -0
  420. package/dist/public/enterprise.html +27 -0
  421. package/dist/public/features.html +102 -0
  422. package/dist/public/index.html +145 -0
  423. package/dist/reporting/framework-reporting-system.js +187 -0
  424. package/dist/reporting/log-parser.js +281 -0
  425. package/dist/reporting/metrics.js +202 -0
  426. package/dist/reporting/report-formatter.js +146 -0
  427. package/dist/reporting/types.js +1 -0
  428. package/dist/scripts/activate-kernel-pipeline.js +101 -0
  429. package/dist/scripts/integration.js +234 -0
  430. package/dist/scripts/pre-command +26 -0
  431. package/dist/scripts/pre-command.mjs +358 -0
  432. package/dist/security/comprehensive-security-audit.js +1005 -0
  433. package/dist/security/index.js +13 -0
  434. package/dist/security/prompt-security-validator.js +148 -0
  435. package/dist/security/security-agent-coordinator.js +204 -0
  436. package/dist/security/security-auditor.js +584 -0
  437. package/dist/security/security-hardener.js +170 -0
  438. package/dist/security/security-hardening-system.js +727 -0
  439. package/dist/security/security-headers.js +118 -0
  440. package/dist/security/security-orchestration-layer.js +496 -0
  441. package/dist/security/security-scanner.js +429 -0
  442. package/dist/services/inference-tuner.js +301 -0
  443. package/dist/session/index.js +3 -0
  444. package/dist/session/session-cleanup-manager.js +366 -0
  445. package/dist/session/session-monitor.js +503 -0
  446. package/dist/session/session-state-manager.js +522 -0
  447. package/dist/skills/api-design/SKILL.md +37 -0
  448. package/dist/skills/architect-tools/SKILL.md +37 -0
  449. package/dist/skills/architecture-patterns/SKILL.md +37 -0
  450. package/dist/skills/auto-format/SKILL.md +37 -0
  451. package/dist/skills/backend-engineer/SKILL.md +49 -0
  452. package/dist/skills/boot-orchestrator/SKILL.md +37 -0
  453. package/dist/skills/bug-triage/SKILL.md +43 -0
  454. package/dist/skills/code-analyzer/SKILL.md +45 -0
  455. package/dist/skills/code-review/SKILL.md +52 -0
  456. package/dist/skills/content-creator/SKILL.md +38 -0
  457. package/dist/skills/database-engineer/SKILL.md +46 -0
  458. package/dist/skills/devops-engineer/SKILL.md +49 -0
  459. package/dist/skills/enforcer/SKILL.md +37 -0
  460. package/dist/skills/framework-compliance-audit/SKILL.md +37 -0
  461. package/dist/skills/frontend-engineer/SKILL.md +49 -0
  462. package/dist/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  463. package/dist/skills/git-workflow/SKILL.md +37 -0
  464. package/dist/skills/growth-strategist/SKILL.md +48 -0
  465. package/dist/skills/hermes-agent/SKILL.md +212 -0
  466. package/dist/skills/inference-improve/SKILL.md +97 -0
  467. package/dist/skills/lint/SKILL.md +37 -0
  468. package/dist/skills/log-monitor/SKILL.md +44 -0
  469. package/dist/skills/mobile-developer/SKILL.md +42 -0
  470. package/dist/skills/model-health-check/SKILL.md +37 -0
  471. package/dist/skills/multimodal-looker/SKILL.md +45 -0
  472. package/dist/skills/orchestrator/SKILL.md +37 -0
  473. package/dist/skills/performance-analysis/SKILL.md +37 -0
  474. package/dist/skills/performance-engineer/SKILL.md +41 -0
  475. package/dist/skills/performance-optimization/SKILL.md +37 -0
  476. package/dist/skills/processor-pipeline/SKILL.md +37 -0
  477. package/dist/skills/project-analysis/SKILL.md +42 -0
  478. package/dist/skills/refactoring-strategies/SKILL.md +37 -0
  479. package/dist/skills/registry.json +66 -0
  480. package/dist/skills/researcher/SKILL.md +37 -0
  481. package/dist/skills/security-audit/SKILL.md +48 -0
  482. package/dist/skills/security-scan/SKILL.md +37 -0
  483. package/dist/skills/seo-consultant/SKILL.md +43 -0
  484. package/dist/skills/session-management/SKILL.md +36 -0
  485. package/dist/skills/state-manager/SKILL.md +37 -0
  486. package/dist/skills/storyteller/SKILL.md +130 -0
  487. package/dist/skills/strategist/SKILL.md +32 -0
  488. package/dist/skills/tech-writer/SKILL.md +37 -0
  489. package/dist/skills/testing-best-practices/SKILL.md +37 -0
  490. package/dist/skills/testing-strategy/SKILL.md +43 -0
  491. package/dist/skills/ui-ux-design/SKILL.md +603 -0
  492. package/dist/state/context-providers.js +1 -0
  493. package/dist/state/index.js +7 -0
  494. package/dist/state/state-manager.js +208 -0
  495. package/dist/state/state-types.js +1 -0
  496. package/dist/testing/memory-regression-suite.js +258 -0
  497. package/dist/utils/batch-operations.js +292 -0
  498. package/dist/utils/codex-parser.js +445 -0
  499. package/dist/utils/command-runner.js +96 -0
  500. package/dist/utils/import-resolver.js +189 -0
  501. package/dist/utils/language-detector.js +383 -0
  502. package/dist/utils/path-resolver.js +112 -0
  503. package/dist/utils/shutdown-handler.js +75 -0
  504. package/dist/utils/test-template-generator.js +178 -0
  505. package/dist/utils/token-manager.js +163 -0
  506. package/dist/validation/estimation-validator.js +241 -0
  507. package/dist/validation/report-content-validator.js +218 -0
  508. package/opencode.json +153 -0
  509. package/package.json +170 -0
  510. package/scripts/helpers/resolve-config-path.cjs +57 -0
  511. package/scripts/helpers/resolve-config-path.mjs +73 -0
  512. package/scripts/hooks/pre-command +26 -0
  513. package/scripts/hooks/pre-command.mjs +358 -0
  514. package/scripts/hooks/run-hook.js +570 -0
  515. package/scripts/mjs/test-consumer-readiness.mjs +273 -0
  516. package/scripts/mjs/test-mcp-functionality.mjs +507 -0
  517. package/scripts/mjs/validate-mcp-connectivity.cjs +75 -0
  518. package/scripts/mjs/validate-postinstall-config.mjs +308 -0
  519. package/scripts/node/auto-reflection-generator.mjs +496 -0
  520. package/scripts/node/basic-security-audit.cjs +338 -0
  521. package/scripts/node/ci-cd-auto-fix.cjs +263 -0
  522. package/scripts/node/ci-report-generator.mjs +227 -0
  523. package/scripts/node/enforce-agents-md.mjs +420 -0
  524. package/scripts/node/enforce-version-compliance.sh +22 -0
  525. package/scripts/node/enforce-version-compliance.ts +126 -0
  526. package/scripts/node/github-actions-monitor.cjs +23 -0
  527. package/scripts/node/govern-reflection.mjs +160 -0
  528. package/scripts/node/postinstall.cjs +78 -0
  529. package/scripts/node/pre-publish-guard.js +267 -0
  530. package/scripts/node/prepare-consumer.cjs +143 -0
  531. package/scripts/node/reflection-processor.cjs +213 -0
  532. package/scripts/node/reflection-validate.sh +194 -0
  533. package/scripts/node/release-tweet.mjs +39 -0
  534. package/scripts/node/release.js +159 -0
  535. package/scripts/node/release.mjs +213 -0
  536. package/scripts/node/setup-dev.cjs +83 -0
  537. package/scripts/node/setup.cjs +214 -0
  538. package/scripts/node/sync-versions.mjs +140 -0
  539. package/scripts/node/universal-version-manager.js +1025 -0
  540. package/scripts/node/validate-external-processes.js +265 -0
  541. package/scripts/node/validate-mcp-connectivity.js +258 -0
  542. package/scripts/node/version-manager.mjs +524 -0
  543. package/scripts/validate-stringray-comprehensive.js +636 -0
  544. package/src/integrations/grok/plugin/0xray/.mcp.json +15 -0
  545. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
  546. package/src/mcps/agent-resolver.ts +168 -0
  547. package/src/mcps/architect-tools.server.ts +343 -0
  548. package/src/mcps/auto-format.server.ts +529 -0
  549. package/src/mcps/boot-orchestrator.server.ts +1082 -0
  550. package/src/mcps/config/__tests__/config-loader.test.ts +338 -0
  551. package/src/mcps/config/__tests__/config-validator.test.ts +646 -0
  552. package/src/mcps/config/__tests__/server-config-registry.test.ts +257 -0
  553. package/src/mcps/config/config-loader.ts +127 -0
  554. package/src/mcps/config/config-validator.ts +127 -0
  555. package/src/mcps/config/index.ts +32 -0
  556. package/src/mcps/config/plugin-server-registry.ts +335 -0
  557. package/src/mcps/config/server-config-registry.ts +395 -0
  558. package/src/mcps/connection/connection-manager.ts +91 -0
  559. package/src/mcps/connection/connection-pool.ts +216 -0
  560. package/src/mcps/connection/mcp-connection.ts +327 -0
  561. package/src/mcps/connection/process-spawner.ts +47 -0
  562. package/src/mcps/enforcer-tools.server.ts +1106 -0
  563. package/src/mcps/estimation.server.ts +229 -0
  564. package/src/mcps/framework-compliance-audit.server.ts +635 -0
  565. package/src/mcps/framework-help.server.ts +467 -0
  566. package/src/mcps/governance.server.ts +551 -0
  567. package/src/mcps/in-process-skill-registry.ts +79 -0
  568. package/src/mcps/knowledge-skills/api-design.server.test.ts +41 -0
  569. package/src/mcps/knowledge-skills/api-design.server.ts +160 -0
  570. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +152 -0
  571. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +624 -0
  572. package/src/mcps/knowledge-skills/code-analyzer.server.test.ts +129 -0
  573. package/src/mcps/knowledge-skills/code-analyzer.server.ts +591 -0
  574. package/src/mcps/knowledge-skills/code-review.server.ts +1132 -0
  575. package/src/mcps/knowledge-skills/content-creator.server.ts +300 -0
  576. package/src/mcps/knowledge-skills/database-design.server.ts +1200 -0
  577. package/src/mcps/knowledge-skills/devops-deployment.server.ts +1622 -0
  578. package/src/mcps/knowledge-skills/git-workflow.server.ts +152 -0
  579. package/src/mcps/knowledge-skills/growth-strategist.server.ts +413 -0
  580. package/src/mcps/knowledge-skills/log-monitor.server.ts +619 -0
  581. package/src/mcps/knowledge-skills/mobile-development.server.ts +672 -0
  582. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +1500 -0
  583. package/src/mcps/knowledge-skills/performance-optimization.server.ts +2065 -0
  584. package/src/mcps/knowledge-skills/project-analysis.server.ts +1111 -0
  585. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +1092 -0
  586. package/src/mcps/knowledge-skills/security-audit.server.test.ts +112 -0
  587. package/src/mcps/knowledge-skills/security-audit.server.ts +1193 -0
  588. package/src/mcps/knowledge-skills/seo-consultant.server.ts +1160 -0
  589. package/src/mcps/knowledge-skills/session-management.server.ts +576 -0
  590. package/src/mcps/knowledge-skills/skill-invocation.server.ts +941 -0
  591. package/src/mcps/knowledge-skills/strategist.server.ts +267 -0
  592. package/src/mcps/knowledge-skills/tech-writer.server.ts +1638 -0
  593. package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +136 -0
  594. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +1232 -0
  595. package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +100 -0
  596. package/src/mcps/knowledge-skills/testing-strategy.server.ts +1172 -0
  597. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +2076 -0
  598. package/src/mcps/lint.server.ts +483 -0
  599. package/src/mcps/mcp-client.ts +706 -0
  600. package/src/mcps/model-health-check.server.ts +292 -0
  601. package/src/mcps/orchestrator/config/agent-capabilities.ts +108 -0
  602. package/src/mcps/orchestrator/execution/execution-planner.ts +353 -0
  603. package/src/mcps/orchestrator/handlers/complexity-handler.ts +125 -0
  604. package/src/mcps/orchestrator/handlers/status-handler.ts +295 -0
  605. package/src/mcps/orchestrator/handlers/task-handler.ts +268 -0
  606. package/src/mcps/orchestrator/server.ts +388 -0
  607. package/src/mcps/orchestrator/types.ts +81 -0
  608. package/src/mcps/orchestrator.server.ts +34 -0
  609. package/src/mcps/performance-analysis.server.ts +715 -0
  610. package/src/mcps/processor-pipeline.server.ts +778 -0
  611. package/src/mcps/protocol/protocol-constants.ts +51 -0
  612. package/src/mcps/registry.json +110 -0
  613. package/src/mcps/researcher.server.ts +595 -0
  614. package/src/mcps/security-scan.server.ts +651 -0
  615. package/src/mcps/simulation/__tests__/simulation-engine.test.ts +275 -0
  616. package/src/mcps/simulation/index.ts +23 -0
  617. package/src/mcps/simulation/server-simulations.ts +241 -0
  618. package/src/mcps/simulation/simulation-engine.ts +126 -0
  619. package/src/mcps/state-manager.server.ts +777 -0
  620. package/src/mcps/tools/__tests__/tool-cache.test.ts +205 -0
  621. package/src/mcps/tools/__tests__/tool-discovery.test.ts +189 -0
  622. package/src/mcps/tools/__tests__/tool-executor.test.ts +215 -0
  623. package/src/mcps/tools/__tests__/tool-registry.test.ts +230 -0
  624. package/src/mcps/tools/index.ts +15 -0
  625. package/src/mcps/tools/tool-cache.ts +145 -0
  626. package/src/mcps/tools/tool-discovery.ts +83 -0
  627. package/src/mcps/tools/tool-executor.ts +106 -0
  628. package/src/mcps/tools/tool-registry.ts +78 -0
  629. package/src/mcps/types/__tests__/types.test.ts +341 -0
  630. package/src/mcps/types/index.ts +17 -0
  631. package/src/mcps/types/json-rpc.types.ts +38 -0
  632. package/src/mcps/types/mcp.types.ts +115 -0
  633. package/src/opencode/agents/api-design.yml +31 -0
  634. package/src/opencode/agents/architect.yml +15 -0
  635. package/src/opencode/agents/architecture-patterns.yml +14 -0
  636. package/src/opencode/agents/auto-format.yml +14 -0
  637. package/src/opencode/agents/backend-engineer.yml +12 -0
  638. package/src/opencode/agents/boot-orchestrator.yml +14 -0
  639. package/src/opencode/agents/bug-triage-specialist.yml +15 -0
  640. package/src/opencode/agents/code-analyzer.yml +12 -0
  641. package/src/opencode/agents/code-reviewer.yml +14 -0
  642. package/src/opencode/agents/content-creator.yml +12 -0
  643. package/src/opencode/agents/database-engineer.yml +12 -0
  644. package/src/opencode/agents/devops-engineer.yml +12 -0
  645. package/src/opencode/agents/framework-compliance-audit.yml +14 -0
  646. package/src/opencode/agents/frontend-engineer.yml +12 -0
  647. package/src/opencode/agents/frontend-ui-ux-engineer.yml +12 -0
  648. package/src/opencode/agents/git-workflow.yml +15 -0
  649. package/src/opencode/agents/growth-strategist.yml +12 -0
  650. package/src/opencode/agents/hermes-agent.yml +12 -0
  651. package/src/opencode/agents/inference-improve.yml +12 -0
  652. package/src/opencode/agents/lint.yml +14 -0
  653. package/src/opencode/agents/log-monitor.yml +12 -0
  654. package/src/opencode/agents/mobile-developer.yml +12 -0
  655. package/src/opencode/agents/model-health-check.yml +12 -0
  656. package/src/opencode/agents/multimodal-looker.yml +12 -0
  657. package/src/opencode/agents/performance-analysis.yml +12 -0
  658. package/src/opencode/agents/performance-engineer.yml +12 -0
  659. package/src/opencode/agents/performance-optimization.yml +12 -0
  660. package/src/opencode/agents/processor-pipeline.yml +14 -0
  661. package/src/opencode/agents/project-analysis.yml +12 -0
  662. package/src/opencode/agents/refactorer.yml +12 -0
  663. package/src/opencode/agents/researcher.yml +12 -0
  664. package/src/opencode/agents/security-auditor.yml +12 -0
  665. package/src/opencode/agents/security-scan.yml +12 -0
  666. package/src/opencode/agents/seo-consultant.yml +12 -0
  667. package/src/opencode/agents/session-management.yml +12 -0
  668. package/src/opencode/agents/state-manager.yml +12 -0
  669. package/src/opencode/agents/storyteller.yml +12 -0
  670. package/src/opencode/agents/strategist.yml +12 -0
  671. package/src/opencode/agents/tech-writer.yml +12 -0
  672. package/src/opencode/agents/testing-best-practices.yml +12 -0
  673. package/src/opencode/agents/testing-lead.yml +12 -0
  674. package/src/opencode/agents/ui-ux-design.yml +12 -0
  675. package/src/opencode/codex.codex +8 -0
  676. package/src/opencode/commands/auto-format.md +99 -0
  677. package/src/opencode/commands/auto-summary-capture.md +90 -0
  678. package/src/opencode/commands/dependency-audit.md +184 -0
  679. package/src/opencode/commands/enforcer-daily-scan.md +137 -0
  680. package/src/opencode/commands/framework-compliance-audit.md +205 -0
  681. package/src/opencode/commands/interactive-validator.md +75 -0
  682. package/src/opencode/commands/job-summary-logger.md +68 -0
  683. package/src/opencode/commands/lint.md +11 -0
  684. package/src/opencode/commands/mode-switch.md +95 -0
  685. package/src/opencode/commands/model-health-check.md +186 -0
  686. package/src/opencode/commands/performance-analysis.md +144 -0
  687. package/src/opencode/commands/pre-commit-introspection.md +185 -0
  688. package/src/opencode/commands/pre-commit-introspection.sh +133 -0
  689. package/src/opencode/commands/security-scan.md +157 -0
  690. package/src/opencode/commands/sisyphus-validation.md +128 -0
  691. package/src/opencode/commands/summary-logger.md +83 -0
  692. package/src/opencode/enforcer-config.json +285 -0
  693. package/src/opencode/openclaw/config.json +25 -0
  694. package/src/opencode/workflows/post-deployment-audit.yml +123 -0
  695. package/src/skills/api-design/SKILL.md +37 -0
  696. package/src/skills/architect-tools/SKILL.md +37 -0
  697. package/src/skills/architecture-patterns/SKILL.md +37 -0
  698. package/src/skills/auto-format/SKILL.md +37 -0
  699. package/src/skills/backend-engineer/SKILL.md +49 -0
  700. package/src/skills/boot-orchestrator/SKILL.md +37 -0
  701. package/src/skills/bug-triage/SKILL.md +43 -0
  702. package/src/skills/code-analyzer/SKILL.md +45 -0
  703. package/src/skills/code-review/SKILL.md +52 -0
  704. package/src/skills/content-creator/SKILL.md +38 -0
  705. package/src/skills/database-engineer/SKILL.md +46 -0
  706. package/src/skills/devops-engineer/SKILL.md +49 -0
  707. package/src/skills/enforcer/SKILL.md +37 -0
  708. package/src/skills/framework-compliance-audit/SKILL.md +37 -0
  709. package/src/skills/frontend-engineer/SKILL.md +49 -0
  710. package/src/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  711. package/src/skills/git-workflow/SKILL.md +37 -0
  712. package/src/skills/growth-strategist/SKILL.md +48 -0
  713. package/src/skills/hermes-agent/SKILL.md +212 -0
  714. package/src/skills/inference-improve/SKILL.md +97 -0
  715. package/src/skills/lint/SKILL.md +37 -0
  716. package/src/skills/log-monitor/SKILL.md +44 -0
  717. package/src/skills/mobile-developer/SKILL.md +42 -0
  718. package/src/skills/model-health-check/SKILL.md +37 -0
  719. package/src/skills/multimodal-looker/SKILL.md +45 -0
  720. package/src/skills/orchestrator/SKILL.md +37 -0
  721. package/src/skills/performance-analysis/SKILL.md +37 -0
  722. package/src/skills/performance-engineer/SKILL.md +41 -0
  723. package/src/skills/performance-optimization/SKILL.md +37 -0
  724. package/src/skills/processor-pipeline/SKILL.md +37 -0
  725. package/src/skills/project-analysis/SKILL.md +42 -0
  726. package/src/skills/refactoring-strategies/SKILL.md +37 -0
  727. package/src/skills/registry.json +66 -0
  728. package/src/skills/researcher/SKILL.md +37 -0
  729. package/src/skills/security-audit/SKILL.md +48 -0
  730. package/src/skills/security-scan/SKILL.md +37 -0
  731. package/src/skills/seo-consultant/SKILL.md +43 -0
  732. package/src/skills/session-management/SKILL.md +36 -0
  733. package/src/skills/state-manager/SKILL.md +37 -0
  734. package/src/skills/storyteller/SKILL.md +130 -0
  735. package/src/skills/strategist/SKILL.md +32 -0
  736. package/src/skills/tech-writer/SKILL.md +37 -0
  737. package/src/skills/testing-best-practices/SKILL.md +37 -0
  738. package/src/skills/testing-strategy/SKILL.md +43 -0
  739. package/src/skills/ui-ux-design/SKILL.md +603 -0
@@ -0,0 +1,986 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * xray CLI - Command Line Interface
4
+ *
5
+ * Provides commands for installing and managing xray framework
6
+ */
7
+ import { Command } from "commander";
8
+ import { execSync, spawn } from "child_process";
9
+ import { join, resolve } from "path";
10
+ import { readFileSync, existsSync } from "fs";
11
+ import { getConfigDir } from "../core/config-paths.js";
12
+ import { frameworkLogger } from "../core/framework-logger.js";
13
+ // Get package root relative to this script location
14
+ const packageRoot = resolve(join(new URL(".", import.meta.url).pathname, "..", ".."));
15
+ // Read version dynamically from package.json
16
+ const packageJsonPath = join(packageRoot, "package.json");
17
+ const { version } = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
18
+ /**
19
+ * SECURITY: Validate script path to prevent command injection
20
+ * Ensures the script is within the package root directory
21
+ */
22
+ function validateScriptPath(scriptPath, scriptName) {
23
+ // Resolve to absolute path
24
+ const resolvedPath = resolve(scriptPath);
25
+ // Check if file exists
26
+ if (!existsSync(resolvedPath)) {
27
+ throw new Error(`${scriptName} not found: ${resolvedPath}`);
28
+ }
29
+ // Check if path is within package root (prevent directory traversal)
30
+ const relativePath = resolve(packageRoot);
31
+ if (!resolvedPath.startsWith(relativePath)) {
32
+ throw new Error(`Security violation: ${scriptName} outside package root: ${resolvedPath}`);
33
+ }
34
+ // Check file extension (allow only .js, .cjs, .sh)
35
+ const allowedExtensions = ['.js', '.cjs', '.sh'];
36
+ const extension = resolve(resolvedPath).slice(-4);
37
+ if (!allowedExtensions.some(ext => resolvedPath.endsWith(ext))) {
38
+ throw new Error(`Security violation: ${scriptName} has disallowed extension: ${resolvedPath}`);
39
+ }
40
+ }
41
+ const program = new Command();
42
+ program
43
+ .name("0xray")
44
+ .description("xray: Bulletproof AI orchestration with systematic error prevention")
45
+ .version(version);
46
+ function runSetup() {
47
+ const setupScript = join(packageRoot, "scripts", "node", "setup.cjs");
48
+ validateScriptPath(setupScript, "setup script");
49
+ execSync(`node "${setupScript}"`, { stdio: "inherit", cwd: process.cwd() });
50
+ }
51
+ program
52
+ .command("install")
53
+ .description("Install xray framework in the current project")
54
+ .action(async () => {
55
+ frameworkLogger.log('cli', 'install-start', 'info', { message: 'Installing xray framework...' });
56
+ try {
57
+ const postinstallScript = join(packageRoot, "scripts", "node", "postinstall.cjs");
58
+ validateScriptPath(postinstallScript, "postinstall script");
59
+ execSync(`node "${postinstallScript}"`, { stdio: "inherit", cwd: process.cwd() });
60
+ frameworkLogger.log('cli', 'install-success', 'info', { message: 'xray framework installed' });
61
+ // UX banner kept for user visibility post-install (non-removable per exception)
62
+ console.log("✅ xray framework installed!");
63
+ console.log("💡 Run 'npx xray setup' for full configuration (hooks, Hermes, symlinks)");
64
+ }
65
+ catch (error) {
66
+ frameworkLogger.log('cli', 'install-error', 'error', { error: error instanceof Error ? error.message : String(error) });
67
+ console.error("❌ Installation failed:", error instanceof Error ? error.message : String(error));
68
+ process.exit(1);
69
+ }
70
+ });
71
+ program
72
+ .command("setup")
73
+ .description("Full framework setup: hooks, Hermes integration, symlinks, MCP paths")
74
+ .action(runSetup);
75
+ program
76
+ .command("init")
77
+ .description("Initialize xray configuration in the current project")
78
+ .action(async () => {
79
+ console.log("🚀 xray CLI: Initializing configuration...");
80
+ try {
81
+ const postinstallScript = join(packageRoot, "scripts", "node", "postinstall.cjs");
82
+ validateScriptPath(postinstallScript, "postinstall script");
83
+ execSync(`node "${postinstallScript}"`, { stdio: "inherit", cwd: process.cwd() });
84
+ runSetup();
85
+ console.log("✅ xray configuration initialized!");
86
+ }
87
+ catch (error) {
88
+ console.error("❌ Initialization failed:", error instanceof Error ? error.message : String(error));
89
+ process.exit(1);
90
+ }
91
+ });
92
+ program
93
+ .command("status")
94
+ .description("Show comprehensive xray framework status")
95
+ .action(async () => {
96
+ const { statusCommand } = await import("./commands/status.js");
97
+ await statusCommand();
98
+ });
99
+ program
100
+ .command("validate")
101
+ .description("Validate xray framework installation")
102
+ .action(async () => {
103
+ console.log("🔬 xray CLI: Validating installation...");
104
+ try {
105
+ // Run the init.sh script to validate
106
+ const initScript = join(packageRoot, ".opencode", "init.sh");
107
+ const fs = await import("fs");
108
+ if (!fs.existsSync(initScript)) {
109
+ console.error("❌ Validation failed: init script not found:", initScript);
110
+ process.exit(1);
111
+ }
112
+ // SECURITY: Validate script path before execution
113
+ validateScriptPath(initScript, "init script");
114
+ execSync(`bash "${initScript}"`, {
115
+ stdio: "inherit",
116
+ cwd: process.cwd(),
117
+ });
118
+ }
119
+ catch (error) {
120
+ console.error("❌ Validation failed:", error instanceof Error ? error.message : String(error));
121
+ process.exit(1);
122
+ }
123
+ });
124
+ program
125
+ .command("debug")
126
+ .description("Debug command")
127
+ .action(async () => {
128
+ console.log("📍 xray CLI Debug Info");
129
+ console.log(" packageRoot:", packageRoot);
130
+ console.log(" cwd:", process.cwd());
131
+ });
132
+ program
133
+ .command("capabilities")
134
+ .alias("caps")
135
+ .description("Show all available xray framework capabilities")
136
+ .action(async () => {
137
+ console.log("🚀 xray Framework Capabilities");
138
+ console.log("=====================================");
139
+ console.log("");
140
+ console.log("🤖 Available Agent Commands:");
141
+ console.log(" @security-auditor - Codex compliance & error prevention");
142
+ console.log(" @architect - System design & delegation decisions");
143
+ console.log(" @bug-triage-specialist - Error investigation & surgical fixes");
144
+ console.log(" @code-reviewer - Quality assessment & standards validation");
145
+ console.log(" @security-auditor - Vulnerability detection & compliance");
146
+ console.log(" @refactorer - Technical debt elimination & code consolidation");
147
+ console.log(" @testing-lead - Testing strategy & coverage optimization");
148
+ console.log(" @researcher - Codebase exploration & documentation");
149
+ console.log("");
150
+ console.log("🛠️ Framework Tools:");
151
+ console.log(" framework-reporting-system - Generate comprehensive activity reports");
152
+ console.log(" complexity-analyzer - Analyze code complexity & delegation decisions");
153
+ console.log(" codex-injector - Apply development standards automatically");
154
+ console.log("");
155
+ console.log("🎯 Skills System (23 lazy-loaded capabilities):");
156
+ console.log(" project-analysis - Codebase metrics and analysis");
157
+ console.log(" testing-strategy - Test planning and execution");
158
+ console.log(" code-review - Quality assessment");
159
+ console.log(" security-audit - Vulnerability scanning");
160
+ console.log(" performance-optimization - Performance tuning");
161
+ console.log(" refactoring-strategies - Code improvement techniques");
162
+ console.log(" ui-ux-design - User interface design");
163
+ console.log(" documentation-generation - Technical documentation");
164
+ console.log(" ... and 15 more specialized skills");
165
+ console.log("");
166
+ console.log("📚 Help & Discovery:");
167
+ console.log(" Use the framework-help MCP server for detailed information:");
168
+ console.log(" - xray_get_capabilities: Complete capabilities overview");
169
+ console.log(" - xray_get_commands: Command usage examples");
170
+ console.log(" - xray_explain_capability: Detailed feature explanations");
171
+ console.log("");
172
+ console.log("📊 Core Features:");
173
+ console.log(" • 99.6% error prevention through codex compliance");
174
+ console.log(" • 90% resource reduction (0 baseline processes)");
175
+ console.log(" • Multi-agent orchestration with intelligent delegation");
176
+ console.log(" • Systematic code quality enforcement");
177
+ console.log(" • Real-time activity monitoring and reporting");
178
+ console.log("");
179
+ console.log("🎯 Getting Started:");
180
+ console.log(" 1. Use @security-auditor for code quality validation");
181
+ console.log(" 2. Use @architect for complex development tasks");
182
+ console.log(" 3. Access skills for specialized capabilities");
183
+ console.log(" 4. Check framework-reporting-system for activity reports");
184
+ console.log(' 5. Run "npx xray capabilities" anytime for this overview');
185
+ });
186
+ program
187
+ .command("health")
188
+ .alias("check")
189
+ .description("Check framework health and system status")
190
+ .action(async () => {
191
+ console.log("🏥 xray Framework Health Check");
192
+ console.log("====================================");
193
+ console.log("");
194
+ try {
195
+ const fs = await import("fs");
196
+ const path = await import("path");
197
+ // Check core components
198
+ const checks = [
199
+ {
200
+ name: "Package Installation",
201
+ check: () => fs.existsSync(path.join(packageRoot, "package.json")),
202
+ success: "✅ Framework package found",
203
+ error: "❌ Framework package missing",
204
+ },
205
+ {
206
+ name: "Configuration Files",
207
+ check: () => fs.existsSync(path.join(process.cwd(), "opencode.json")) ||
208
+ fs.existsSync(path.join(process.cwd(), ".opencode", "enforcer-config.json")),
209
+ success: "✅ opencode configuration found",
210
+ error: "⚠️ opencode config optional for consumers",
211
+ },
212
+ {
213
+ name: "Agent System",
214
+ check: () => fs.existsSync(path.join(packageRoot, "dist", "agents")),
215
+ success: "✅ Agent system available",
216
+ error: "❌ Agent system not built",
217
+ },
218
+ {
219
+ name: "MCP Servers",
220
+ check: () => fs.existsSync(path.join(packageRoot, "dist", "mcps")),
221
+ success: "✅ MCP servers available",
222
+ error: "❌ MCP servers not built",
223
+ },
224
+ ];
225
+ let allHealthy = true;
226
+ for (const check of checks) {
227
+ try {
228
+ if (check.check()) {
229
+ console.log(check.success);
230
+ }
231
+ else {
232
+ console.log(check.error);
233
+ allHealthy = false;
234
+ }
235
+ }
236
+ catch (error) {
237
+ console.log(`${check.name}: ❌ Error during check`);
238
+ allHealthy = false;
239
+ }
240
+ }
241
+ console.log("");
242
+ if (allHealthy) {
243
+ console.log("🎉 Framework is healthy and ready to use!");
244
+ console.log("");
245
+ console.log("💡 Quick commands:");
246
+ console.log(" • @security-auditor scan this project");
247
+ console.log(" • @architect analyze this project");
248
+ console.log(" • framework-reporting-system");
249
+ }
250
+ else {
251
+ console.log('⚠️ Some components need attention. Run "npx xray install" to fix.');
252
+ }
253
+ }
254
+ catch (error) {
255
+ console.error("❌ Health check failed:", error instanceof Error ? error.message : String(error));
256
+ process.exit(1);
257
+ }
258
+ });
259
+ program
260
+ .command("report")
261
+ .description("Generate framework activity and health reports")
262
+ .option("-t, --type <type>", "Report type (full-analysis, agent-usage, performance, orchestration, context-awareness)", "full-analysis")
263
+ .option("-o, --output <file>", "Output file path")
264
+ .option("--daily", "Daily report (full-analysis for last 24 hours)")
265
+ .option("--performance", "Performance report")
266
+ .option("--compliance", "Compliance report (codex violations)")
267
+ .option("--session", "Current session report")
268
+ .option("--ci", "CI-friendly JSON output for pipelines")
269
+ .action(async (options) => {
270
+ // Resolve convenience flags to report type
271
+ const typeMap = {
272
+ daily: "full-analysis",
273
+ performance: "performance",
274
+ compliance: "full-analysis",
275
+ session: "full-analysis",
276
+ ci: "full-analysis",
277
+ };
278
+ let reportType = options.type;
279
+ let outputFormat = "json";
280
+ // Convenience flags override --type
281
+ for (const [flag, mappedType] of Object.entries(typeMap)) {
282
+ if (options[flag]) {
283
+ reportType = mappedType;
284
+ break;
285
+ }
286
+ }
287
+ // CI mode always outputs JSON
288
+ if (options.ci) {
289
+ outputFormat = "json";
290
+ }
291
+ const label = options.ci
292
+ ? "ci"
293
+ : options.daily
294
+ ? "daily"
295
+ : options.performance
296
+ ? "performance"
297
+ : options.compliance
298
+ ? "compliance"
299
+ : options.session
300
+ ? "session"
301
+ : reportType;
302
+ console.log(`📊 xray Framework Report: ${label}`);
303
+ console.log("==========================================");
304
+ console.log("");
305
+ try {
306
+ // Import and run the reporting system directly
307
+ const { FrameworkReportingSystem } = await import("../reporting/framework-reporting-system.js");
308
+ const reportingSystem = new FrameworkReportingSystem();
309
+ const report = await reportingSystem.generateReport({
310
+ type: reportType,
311
+ outputFormat,
312
+ });
313
+ if (options.output) {
314
+ const fs = await import("fs");
315
+ fs.writeFileSync(options.output, report);
316
+ console.log(`✅ Report saved to: ${options.output}`);
317
+ }
318
+ else {
319
+ console.log(report);
320
+ }
321
+ }
322
+ catch (error) {
323
+ console.error("❌ Report generation failed:", error instanceof Error ? error.message : String(error));
324
+ console.log("");
325
+ console.log("💡 Troubleshooting:");
326
+ console.log(" • Make sure OpenCode is running");
327
+ console.log(" • Check framework installation: npx xray status");
328
+ console.log(" • Try manual report: framework-reporting-system generate-report");
329
+ process.exit(1);
330
+ }
331
+ });
332
+ program
333
+ .command("fix")
334
+ .description("Automatically fix common framework issues by running the postinstall setup")
335
+ .action(async () => {
336
+ console.log("🔧 xray Framework Fix");
337
+ console.log("===========================");
338
+ console.log("");
339
+ try {
340
+ console.log("Running postinstall setup to restore configuration...");
341
+ // Run the postinstaller script (same as install command)
342
+ const postinstallScript = join(packageRoot, "scripts", "node", "postinstall.cjs");
343
+ // SECURITY: Validate script path before execution
344
+ validateScriptPath(postinstallScript, "postinstall script");
345
+ execSync(`node "${postinstallScript}"`, {
346
+ stdio: "inherit",
347
+ cwd: process.cwd(),
348
+ });
349
+ console.log("");
350
+ console.log("🎉 Framework configuration restored successfully!");
351
+ console.log("");
352
+ console.log("💡 Next steps:");
353
+ console.log(" • Restart OpenCode to load the restored configuration");
354
+ console.log(" • Run: npx xray health (to verify everything works)");
355
+ console.log(" • Try: @security-auditor scan this project");
356
+ }
357
+ catch (error) {
358
+ console.error("❌ Fix command failed:", error instanceof Error ? error.message : String(error));
359
+ console.log("");
360
+ console.log("💡 Manual fix options:");
361
+ console.log(" • Delete .opencode/ and .xray/ directories");
362
+ console.log(" • Run: npx xray install");
363
+ console.log(" • Or manually restore missing configuration files");
364
+ process.exit(1);
365
+ }
366
+ });
367
+ // Analytics command - pattern analysis, insights, and consent management
368
+ program
369
+ .command("analytics")
370
+ .description("xray Central Analytics - Pattern analysis, insights, and consent management\n" +
371
+ " In v1.7.2+: Includes consent management with granular control\n" +
372
+ " Use 'npx xray analytics enable' to opt-in to data sharing\n" +
373
+ " Core classes: ConsentManager, AnonymizationEngine available programmatically")
374
+ .option("-l, --limit <number>", "Limit analysis to last N task completions")
375
+ .option("-o, --output <file>", "Save report to file")
376
+ .action(async (opts) => {
377
+ console.log("📊 xray Pattern Analytics");
378
+ console.log("==============================");
379
+ console.log("");
380
+ try {
381
+ // Dynamic import to avoid loading analytics module unless needed
382
+ const { SimplePatternAnalyzer } = await import("../analytics/simple-pattern-analyzer.js");
383
+ // Get default limit from features.json
384
+ const fs = await import("fs");
385
+ const path = await import("path");
386
+ let defaultLimit = 500;
387
+ try {
388
+ const featuresPath = path.join(process.cwd(), ".opencode", "plugins", "features.json"); // plain xray primary (min compat .strray/ handled in getConfigDir per Scope Rule)
389
+ if (fs.existsSync(featuresPath)) {
390
+ const features = JSON.parse(fs.readFileSync(featuresPath, "utf-8"));
391
+ defaultLimit = features.analytics?.default_limit || 500;
392
+ }
393
+ }
394
+ catch { /* use default */ }
395
+ const analyzer = new SimplePatternAnalyzer();
396
+ const limit = parseInt(opts.limit) || defaultLimit;
397
+ console.log(`Analyzing last ${limit} task completions...`);
398
+ console.log("");
399
+ const insights = await analyzer.analyze(limit);
400
+ const insightsLines = analyzer.generateInsights(insights);
401
+ // Print insights
402
+ insightsLines.forEach((line) => {
403
+ console.log(line);
404
+ });
405
+ // Save to file if requested
406
+ if (opts.output) {
407
+ const fs = await import("fs");
408
+ const report = await analyzer.generateReport();
409
+ fs.writeFileSync(opts.output, report);
410
+ console.log("");
411
+ console.log(`✅ Report saved to: ${opts.output}`);
412
+ }
413
+ console.log("");
414
+ console.log("💡 Run regularly to track agent performance and complexity accuracy");
415
+ }
416
+ catch (error) {
417
+ console.error("❌ Analytics failed:", error instanceof Error ? error.message : String(error));
418
+ process.exit(1);
419
+ }
420
+ });
421
+ program
422
+ .command("doctor")
423
+ .description("Diagnose framework issues (does not fix them)")
424
+ .action(async () => {
425
+ console.log("🩺 xray Framework Doctor");
426
+ console.log("===============================");
427
+ console.log("");
428
+ try {
429
+ const fs = await import("fs");
430
+ const path = await import("path");
431
+ const issues = [];
432
+ const fixes = [];
433
+ // Check Node.js version
434
+ const nodeVersion = process.version;
435
+ const versionParts = nodeVersion.slice(1).split(".");
436
+ const majorVersion = parseInt(versionParts[0] || "0");
437
+ if (majorVersion < 18) {
438
+ issues.push("Node.js version too old");
439
+ fixes.push("Upgrade to Node.js 18+");
440
+ }
441
+ else {
442
+ console.log("✅ Node.js version:", nodeVersion);
443
+ }
444
+ // Check package installation
445
+ const packageExists = fs.existsSync(path.join(process.cwd(), "node_modules", "0xray"));
446
+ if (!packageExists) {
447
+ issues.push("xray package not installed");
448
+ fixes.push("Run: npm install xray");
449
+ }
450
+ else {
451
+ console.log("✅ xray package installed");
452
+ }
453
+ // Check configuration - check for opencode.json or .strray/ (min compat .strray/ fallback for prior StringRay consumer runtime per Scope Rule; plain xray primary)
454
+ const cwd = process.cwd();
455
+ const opencodeConfigPath = path.join(cwd, "opencode.json");
456
+ const strrayDir = getConfigDir(cwd);
457
+ const opencodeExists = fs.existsSync(opencodeConfigPath);
458
+ const strrayDirExists = fs.existsSync(strrayDir);
459
+ if (opencodeExists) {
460
+ console.log("✅ opencode configuration found");
461
+ }
462
+ else if (strrayDirExists) {
463
+ console.log(`✅ Configuration directory found: ${strrayDir}`);
464
+ }
465
+ else {
466
+ console.log("ℹ️ No opencode.json or config directory found (run: npx xray fix to create)");
467
+ }
468
+ // Check for common issues
469
+ const mcpConfigExists = fs.existsSync(path.join(process.cwd(), ".mcp.json"));
470
+ if (mcpConfigExists) {
471
+ console.log("ℹ️ Found .mcp.json - may conflict with framework");
472
+ fixes.push("Consider removing .mcp.json or excluding framework servers");
473
+ }
474
+ console.log("");
475
+ if (issues.length === 0) {
476
+ console.log("🎉 No issues found! Framework is healthy.");
477
+ console.log("");
478
+ console.log("💡 Pro tips:");
479
+ console.log(" • Use @security-auditor for code quality checks");
480
+ console.log(" • Run reports regularly: npx xray report");
481
+ console.log(" • Check health anytime: npx xray health");
482
+ }
483
+ else {
484
+ console.log("⚠️ Issues found:");
485
+ issues.forEach((issue, i) => {
486
+ console.log(` ${i + 1}. ${issue}`);
487
+ });
488
+ console.log("");
489
+ console.log('🔧 Run "npx xray fix" to automatically fix these issues');
490
+ }
491
+ }
492
+ catch (error) {
493
+ console.error("❌ Doctor check failed:", error instanceof Error ? error.message : String(error));
494
+ process.exit(1);
495
+ }
496
+ });
497
+ // Archive logs command - standalone, no framework boot required
498
+ program
499
+ .command("archive-logs")
500
+ .description("Archive log files without framework boot (for git hooks)")
501
+ .option("--dry-run", "Show what would be archived without making changes")
502
+ .option("-v, --verbose", "Verbose output")
503
+ .action(async (opts) => {
504
+ console.log("📦 xray Log Archive");
505
+ console.log("========================");
506
+ if (opts.dryRun) {
507
+ console.log("(Dry run mode - no changes will be made)");
508
+ }
509
+ try {
510
+ // Import and run standalone archiver
511
+ const archiveModule = await import("./commands/archive-logs.js");
512
+ const result = await archiveModule.archiveLogFiles({
513
+ maxFileSizeMB: 10,
514
+ rotationIntervalHours: 24,
515
+ compressionEnabled: true,
516
+ maxArchives: 10,
517
+ }, `cli-${Date.now()}`);
518
+ console.log(`\n📊 Results:`);
519
+ console.log(` Archived: ${result.archived} files`);
520
+ if (result.errors.length > 0) {
521
+ console.log(` Errors: ${result.errors.length}`);
522
+ result.errors.forEach((e) => console.log(` - ${e}`));
523
+ process.exit(1);
524
+ }
525
+ }
526
+ catch (error) {
527
+ console.error("Archive failed:", error);
528
+ process.exit(1);
529
+ }
530
+ });
531
+ // Inference improvement command
532
+ program
533
+ .command('inference:improve')
534
+ .description('Run autonomous inference improvement cycle')
535
+ .option('--dry-run', 'Show what would change without applying')
536
+ .option('-v, --verbose', 'Verbose output')
537
+ .action(async (options) => {
538
+ console.log('🚀 xray Inference Improvement');
539
+ console.log('=================================');
540
+ console.log('');
541
+ try {
542
+ const { LearningEngine } = await import('../delegation/analytics/learning-engine.js');
543
+ const { routingOutcomeTracker } = await import('../delegation/analytics/outcome-tracker.js');
544
+ const { patternPerformanceTracker } = await import('../analytics/pattern-performance-tracker.js');
545
+ const { getAdaptiveKernel } = await import('../core/adaptive-kernel.js');
546
+ // Reload fresh data
547
+ routingOutcomeTracker.reloadFromDisk();
548
+ patternPerformanceTracker.loadFromDisk();
549
+ const outcomes = routingOutcomeTracker.getOutcomes();
550
+ console.log(`📊 Loaded ${outcomes.length} routing outcomes`);
551
+ // Generate performance report
552
+ const perfMetrics = patternPerformanceTracker.getAllPatternMetrics();
553
+ console.log(` Patterns tracked: ${perfMetrics.length}`);
554
+ const successOutcomes = outcomes.filter(o => o.success);
555
+ const successRate = outcomes.length > 0 ? (successOutcomes.length / outcomes.length * 100).toFixed(1) : '100.0';
556
+ console.log(` Overall success rate: ${successRate}%`);
557
+ console.log('');
558
+ // Trigger learning
559
+ const engine = new LearningEngine(true);
560
+ const learningResult = await engine.triggerLearning();
561
+ console.log(`🧠 Learning Results:`);
562
+ console.log(` Patterns analyzed: ${learningResult.patternsAnalyzed}`);
563
+ console.log(` Adaptations: ${learningResult.adaptations}`);
564
+ // Get drift analysis
565
+ const driftAnalysis = engine.getPatternDriftAnalysis();
566
+ console.log(`\n📈 Pattern Drift:`);
567
+ console.log(` Drift detected: ${driftAnalysis.driftDetected}`);
568
+ console.log(` Severity: ${driftAnalysis.severity}`);
569
+ if (driftAnalysis.affectedPatterns.length > 0) {
570
+ console.log(` Affected: ${driftAnalysis.affectedPatterns.slice(0, 5).join(', ')}`);
571
+ }
572
+ // Get adaptive kernel stats
573
+ const kernel = getAdaptiveKernel();
574
+ const kernelStats = kernel.getLearningStats();
575
+ console.log(`\n⚙️ Kernel Stats:`);
576
+ console.log(` Patterns tracked: ${kernelStats.patternsTracked}`);
577
+ console.log(` Thresholds calibrated: ${kernelStats.thresholdsCalibrated}`);
578
+ // Get suggestions
579
+ if (!options.dryRun) {
580
+ const suggestions = engine.suggestImprovements();
581
+ if (suggestions.length > 0) {
582
+ console.log(`\n💡 Suggestions:`);
583
+ suggestions.slice(0, 5).forEach((s, i) => {
584
+ console.log(` ${i + 1}. [${s.type}] ${s.description} (${s.impact} impact)`);
585
+ });
586
+ }
587
+ console.log(`\n✅ Inference improvement cycle complete`);
588
+ }
589
+ else {
590
+ console.log(`\n💡 Dry run - no changes applied`);
591
+ }
592
+ console.log('');
593
+ }
594
+ catch (error) {
595
+ console.error('❌ Inference improvement failed:', error instanceof Error ? error.message : String(error));
596
+ process.exit(1);
597
+ }
598
+ });
599
+ // Inference tuner command
600
+ program
601
+ .command('inference:tuner')
602
+ .description('Start/stop the autonomous inference tuner service')
603
+ .option('-s, --start', 'Start the tuner service')
604
+ .option('-t, --stop', 'Stop the tuner service')
605
+ .option('-r, --run-once', 'Run a single tuning cycle')
606
+ .option('-S, --status', 'Show tuner status')
607
+ .action(async (options) => {
608
+ const { inferenceTuner } = await import('../services/inference-tuner.js');
609
+ if (options.status) {
610
+ const status = inferenceTuner.getStatus();
611
+ console.log('🎛️ Inference Tuner Status');
612
+ console.log('=========================');
613
+ console.log(` Running: ${status.running ? '✅ Yes' : '❌ No'}`);
614
+ console.log(` Last tuning: ${status.lastTuningTime ? new Date(status.lastTuningTime).toISOString() : 'Never'}`);
615
+ console.log(` Auto-update mappings: ${status.config.autoUpdateMappings}`);
616
+ console.log(` Auto-update thresholds: ${status.config.autoUpdateThresholds}`);
617
+ console.log(` Learning interval: ${status.config.learningIntervalMs}ms`);
618
+ return;
619
+ }
620
+ if (options.start) {
621
+ inferenceTuner.start();
622
+ console.log('✅ Inference tuner started');
623
+ console.log(` Interval: ${inferenceTuner.getStatus().config.learningIntervalMs}ms`);
624
+ console.log(' Press Ctrl+C to stop');
625
+ return;
626
+ }
627
+ if (options.stop) {
628
+ inferenceTuner.stop();
629
+ console.log('✅ Inference tuner stopped');
630
+ return;
631
+ }
632
+ if (options.runOnce) {
633
+ console.log('🎛️ Running single tuning cycle...');
634
+ await inferenceTuner.runTuningCycle();
635
+ console.log('✅ Tuning cycle complete');
636
+ return;
637
+ }
638
+ console.log('Usage: npx xray inference:tuner [options]');
639
+ console.log(' --start Start the tuner service');
640
+ console.log(' --stop Stop the tuner service');
641
+ console.log(' --run-once Run a single tuning cycle');
642
+ console.log(' --status Show tuner status');
643
+ });
644
+ // Inference cycle run command
645
+ program
646
+ .command('inference:run')
647
+ .description('Run a self-improvement inference cycle: collect → propose → govern → verify')
648
+ .option('-f, --force', 'Force cycle even if threshold not met')
649
+ .option('--no-verify', 'Skip deploy verification step')
650
+ .option('--no-apply', 'Skip applying approved proposals (create PRs)')
651
+ .option('--no-researcher-review', 'Skip downstream researcher review of PRs')
652
+ .option('--json', 'Output raw JSON result')
653
+ .action(async (options) => {
654
+ const { InferenceCycle } = await import('../inference/inference-cycle.js');
655
+ const { shouldTriggerCycle } = await import('../inference/inference-accumulator.js');
656
+ const { accumulateCorpus } = await import('../inference/inference-accumulator.js');
657
+ const { featuresConfigLoader } = await import('../core/features-config.js');
658
+ const { initializeGovernanceIntegration, shutdownGovernanceIntegration } = await import('../integrations/governance/index.js');
659
+ // Guard: inference:run is internal to xray development only
660
+ const isxrayRepo = (() => {
661
+ try {
662
+ const pkg = JSON.parse(readFileSync(join(process.cwd(), 'package.json'), 'utf-8'));
663
+ return pkg.name === '0xray' && process.env.NODE_ENV !== 'consumer';
664
+ }
665
+ catch {
666
+ return false;
667
+ }
668
+ })();
669
+ if (!isxrayRepo) {
670
+ if (options.json) {
671
+ console.log(JSON.stringify({ triggered: false, reason: 'inference:run is for xray development only (internal tool)' }));
672
+ }
673
+ else {
674
+ console.log('The inference:run command is for xray framework development only.');
675
+ console.log('It is not intended for consumer projects.');
676
+ }
677
+ return;
678
+ }
679
+ const features = featuresConfigLoader.loadConfig();
680
+ const inferenceConfig = features?.inference;
681
+ if (!inferenceConfig?.enabled) {
682
+ if (options.json) {
683
+ console.log(JSON.stringify({ triggered: false, reason: 'Inference feature disabled in features.json' }));
684
+ }
685
+ else {
686
+ console.log('Inference feature is disabled in features.json.');
687
+ console.log('Enable it by setting inference.enabled = true in .opencode/plugins/features.json (min compat .strray/ fallback for prior StringRay consumer runtime per Scope Rule)');
688
+ }
689
+ return;
690
+ }
691
+ const projectRoot = process.cwd();
692
+ const inferenceDir = `${projectRoot}/docs/inference`;
693
+ const stateDir = `${projectRoot}/.strray/inference`;
694
+ const stateFile = `${stateDir}/inference-cycle-state.json`;
695
+ if (!options.json) {
696
+ console.log('xray Inference Cycle');
697
+ console.log('====================');
698
+ }
699
+ if (!options.force) {
700
+ const threshold = shouldTriggerCycle(inferenceDir, stateFile);
701
+ if (!threshold.trigger) {
702
+ if (options.json) {
703
+ console.log(JSON.stringify({ triggered: false, reason: threshold.reason }));
704
+ }
705
+ else {
706
+ console.log(`Not triggered: ${threshold.reason}`);
707
+ console.log('Use --force to override.');
708
+ }
709
+ return;
710
+ }
711
+ if (!options.json) {
712
+ console.log(`Triggered: ${threshold.reason}`);
713
+ }
714
+ }
715
+ else if (!options.json) {
716
+ console.log('Force mode — skipping threshold check');
717
+ }
718
+ if (!options.json) {
719
+ const corpus = accumulateCorpus(inferenceDir);
720
+ console.log(`\nCorpus: ${corpus.sessions.length} sessions, ${corpus.totalCommits} commits`);
721
+ console.log(` Recurring problems: ${corpus.recurringProblems.length}`);
722
+ console.log(` Recurring patterns: ${corpus.recurringPatterns.length}`);
723
+ }
724
+ // Initialize external governance integration for two-oscillator governance
725
+ const govConfig = features?.inference_governance;
726
+ if (govConfig?.enabled) {
727
+ await shutdownGovernanceIntegration();
728
+ await initializeGovernanceIntegration();
729
+ }
730
+ const cycle = InferenceCycle.getInstance(projectRoot, { skipDeployVerify: options.noVerify ?? true, skipApply: options.noApply ?? false, skipResearcherReview: options.noResearcherReview ?? false, force: options.force ?? false });
731
+ const result = await cycle.maybeRunCycle();
732
+ if (options.json) {
733
+ console.log(JSON.stringify(result, null, 2));
734
+ return;
735
+ }
736
+ console.log(`\nCycle: ${result.cycleId}`);
737
+ console.log(`Phase: ${result.phase}`);
738
+ console.log(`Duration: ${(result.duration / 1000).toFixed(1)}s`);
739
+ if (result.proposals.length > 0) {
740
+ console.log(`\nProposals (${result.proposals.length}):`);
741
+ for (const p of result.proposals) {
742
+ const icon = p.status === 'approved' || p.status === 'applied' ? 'APPROVED' : p.status === 'rejected' ? 'REJECTED' : p.status === 'failed' ? 'FAILED' : 'PENDING';
743
+ console.log(` [${icon}] ${p.type}: ${p.title} (${(p.confidence * 100).toFixed(0)}%)`);
744
+ }
745
+ }
746
+ else {
747
+ console.log('\nNo proposals generated.');
748
+ }
749
+ if (result.votes.length > 0) {
750
+ console.log(`\nGovernance votes (${result.votes.length}):`);
751
+ for (const v of result.votes) {
752
+ console.log(` ${v.proposalId}: ${v.decision} (${(v.confidence * 100).toFixed(0)}%)`);
753
+ for (const d of v.details) {
754
+ console.log(` ${d}`);
755
+ }
756
+ }
757
+ }
758
+ if (result.deployVerification) {
759
+ console.log(`\nDeploy verification: ${result.deployVerification.success ? 'PASSED' : 'FAILED'}`);
760
+ const failedChecks = result.deployVerification.checks.filter((c) => !c.passed);
761
+ if (failedChecks.length > 0) {
762
+ for (const c of failedChecks) {
763
+ console.log(` Failed: ${c.name} — ${c.output?.substring(0, 200)}`);
764
+ }
765
+ }
766
+ }
767
+ });
768
+ // Publish agent command
769
+ program
770
+ .command('publish-agent')
771
+ .description('Package and publish agents to AgentStore')
772
+ .option('-a, --agent <name>', 'Agent name to publish')
773
+ .option('-v, --version <version>', 'Version to publish (default: 1.0.0)')
774
+ .option('-d, --dry-run', 'Show what would be published without publishing')
775
+ .action(async () => {
776
+ const { publishAgentCommand } = await import('./commands/publish-agent.js');
777
+ await publishAgentCommand();
778
+ });
779
+ // Antigravity status command
780
+ program
781
+ .command('antigravity status')
782
+ .description('Show status of all installed skills')
783
+ .action(async () => {
784
+ const { antigravityStatusCommand } = await import('./commands/antigravity-status.js');
785
+ await antigravityStatusCommand();
786
+ });
787
+ // Credible init command
788
+ program
789
+ .command('credible init')
790
+ .description('Initialize Credible Pod infrastructure')
791
+ .option('-n, --name <name>', 'Pod name')
792
+ .option('-t, --template <template>', 'Pod template to use')
793
+ .action(async () => {
794
+ const { credibleInitCommand } = await import('./commands/credible-init.js');
795
+ await credibleInitCommand();
796
+ });
797
+ // Skill registry command
798
+ program
799
+ .command('skill:registry [action]')
800
+ .description('List, add, or remove skills registry sources')
801
+ .option('--name <name>', 'Source name')
802
+ .option('--url <url>', 'Repository URL')
803
+ .option('--desc <desc>', 'Description')
804
+ .option('--license <license>', 'License type')
805
+ .action(async (action, options) => {
806
+ const { skillRegistryCommand } = await import('./commands/skill-install.js');
807
+ await skillRegistryCommand(action, options);
808
+ });
809
+ // Skill install command
810
+ program
811
+ .command('skill:install [source]')
812
+ .description('Install skills from the registry or any git repo')
813
+ .option('--path <dir>', 'Subdirectory in repo containing skills')
814
+ .option('--force', 'Reinstall even if already installed')
815
+ .action(async (sourceArg, options) => {
816
+ const { skillInstallCommand } = await import('./commands/skill-install.js');
817
+ await skillInstallCommand(sourceArg, options);
818
+ });
819
+ // Storyteller command
820
+ program
821
+ .command('storyteller [type]')
822
+ .description('Write reflections, sagas, journeys, or narratives')
823
+ .option('-t, --title <title>', 'Title for the story')
824
+ .option('-f, --framework <framework>', 'Storytelling framework (three_act_structure, hero_journey, spiral)')
825
+ .option('-o, --output <file>', 'Output file path')
826
+ .option('--dry-run', 'Show prompt without creating file')
827
+ .action(async (type, options) => {
828
+ const { storytellerCommand } = await import('./commands/storyteller.js');
829
+ await storytellerCommand(type, options);
830
+ });
831
+ // MCP install commands - support both hyphen and colon formats
832
+ program
833
+ .command('mcp-list')
834
+ .alias('mcp:list')
835
+ .description('List available community MCP servers')
836
+ .action(async () => {
837
+ const { listMCPsCommand } = await import('./commands/mcp-install.js');
838
+ listMCPsCommand();
839
+ });
840
+ program
841
+ .command('mcp-status')
842
+ .alias('mcp:status')
843
+ .description('Show installed MCP servers')
844
+ .action(async () => {
845
+ const { showMCPStatusCommand } = await import('./commands/mcp-install.js');
846
+ showMCPStatusCommand();
847
+ });
848
+ program
849
+ .command('mcp-install <name>')
850
+ .alias('mcp:install')
851
+ .description('Install an MCP server from the registry')
852
+ .action(async (name) => {
853
+ const { installMCPCommand } = await import('./commands/mcp-install.js');
854
+ await installMCPCommand(name);
855
+ });
856
+ program
857
+ .command('mcp-remove <name>')
858
+ .alias('mcp:remove')
859
+ .description('Remove an installed MCP server')
860
+ .action(async (name) => {
861
+ const { removeMCPCommand } = await import('./commands/mcp-install.js');
862
+ removeMCPCommand(name);
863
+ });
864
+ // MCP server subprocess launchers (used by Grok plugin .mcp.json via npx)
865
+ program
866
+ .command('mcp')
867
+ .description('Run an MCP server subprocess (used by Grok/OpenCode .mcp.json)')
868
+ .argument('<server>', 'Server name: governance or skills')
869
+ .action(async (server) => {
870
+ const serverMap = {
871
+ governance: 'dist/mcps/governance.server.js',
872
+ skills: 'dist/mcps/knowledge-skills/skill-invocation.server.js',
873
+ };
874
+ const relPath = serverMap[server];
875
+ if (!relPath) {
876
+ console.error(`Unknown MCP server: ${server}. Use: governance, skills`);
877
+ process.exit(1);
878
+ }
879
+ const serverPath = resolve(join(packageRoot, relPath));
880
+ if (!existsSync(serverPath)) {
881
+ console.error(`MCP server not found at ${serverPath}. Is xray installed correctly?`);
882
+ process.exit(1);
883
+ }
884
+ const env = { ...process.env };
885
+ if (server === 'governance') {
886
+ env.STRRAY_FORCE_MCP_GOVERNANCE = 'true';
887
+ }
888
+ const child = spawn(process.execPath, [serverPath], { stdio: 'inherit', env });
889
+ child.on('exit', (code) => process.exit(code ?? 0));
890
+ });
891
+ // Grok CLI integration
892
+ const grokCmd = program.command('grok').description('Grok CLI integration commands');
893
+ const { registerGrokCommands } = await import('./commands/grok-install.js');
894
+ registerGrokCommands(grokCmd);
895
+ // Hermes Agent integration
896
+ const hermesCmd = program.command('hermes').description('Hermes Agent integration commands');
897
+ const { registerHermesCommands } = await import('./commands/hermes-install.js');
898
+ registerHermesCommands(hermesCmd);
899
+ // OpenClaw integration
900
+ const openclawCmd = program.command('openclaw').description('OpenClaw integration commands');
901
+ const { registerOpenClawCommands } = await import('./commands/openclaw-install.js');
902
+ registerOpenClawCommands(openclawCmd);
903
+ // OpenCode integration
904
+ const opencodeCmd = program.command('opencode').description('OpenCode integration commands');
905
+ const { registerOpencodeCommands } = await import('./commands/opencode-install.js');
906
+ registerOpencodeCommands(opencodeCmd);
907
+ // Analytics enable command
908
+ // Plugin subcommands
909
+ const pluginCmd = program.command('plugin').description('Manage plugins');
910
+ pluginCmd
911
+ .command('list')
912
+ .description('List installed plugins')
913
+ .action(async () => {
914
+ const { pluginListCommand } = await import('./commands/plugin-commands.js');
915
+ await pluginListCommand();
916
+ });
917
+ pluginCmd
918
+ .command('install <name>')
919
+ .description('Install a plugin')
920
+ .action(async (name) => {
921
+ const { pluginInstallCommand } = await import('./commands/plugin-commands.js');
922
+ await pluginInstallCommand(name);
923
+ });
924
+ pluginCmd
925
+ .command('enable <name>')
926
+ .description('Enable a plugin')
927
+ .action(async (name) => {
928
+ const { pluginEnableCommand } = await import('./commands/plugin-commands.js');
929
+ await pluginEnableCommand(name);
930
+ });
931
+ pluginCmd
932
+ .command('disable <name>')
933
+ .description('Disable a plugin')
934
+ .action(async (name) => {
935
+ const { pluginDisableCommand } = await import('./commands/plugin-commands.js');
936
+ await pluginDisableCommand(name);
937
+ });
938
+ pluginCmd
939
+ .command('status <name>')
940
+ .description('Show plugin details')
941
+ .action(async (name) => {
942
+ const { pluginStatusCommand } = await import('./commands/plugin-commands.js');
943
+ await pluginStatusCommand(name);
944
+ });
945
+ pluginCmd
946
+ .command('uninstall <name>')
947
+ .description('Uninstall a plugin')
948
+ .action(async (name) => {
949
+ const { pluginUninstallCommand } = await import('./commands/plugin-commands.js');
950
+ await pluginUninstallCommand(name);
951
+ });
952
+ // Add help text
953
+ program.addHelpText("after", `
954
+
955
+ Examples:
956
+ $ npx 0xray install # Install xray in current project
957
+ $ npx 0xray init # Initialize configuration
958
+ $ npx 0xray status # Check installation status
959
+ $ npx 0xray validate # Validate framework setup
960
+ $ npx 0xray capabilities # Show all available capabilities
961
+ $ npx 0xray health # Check framework health and status
962
+ $ npx 0xray report # Generate activity and health reports
963
+ $ npx 0xray fix # Automatically restore missing config files
964
+ $ npx 0xray doctor # Diagnose issues (does not fix them)
965
+ $ npx 0xray analytics # Pattern analytics and insights
966
+ $ npx 0xray inference:improve # Run autonomous inference improvement
967
+ $ npx 0xray skill:install agency-agents # Install 170+ agency agent skills
968
+ $ npx 0xray skill:install superpowers # Install 14 agentic workflow skills
969
+ $ npx 0xray skill:install <github-url> # Install from any repo
970
+ $ npx 0xray storyteller saga "v1.18.0 Journey" # Write a saga
971
+ $ npx 0xray storyteller reflection "API Fix" # Write a reflection
972
+
973
+ Quick Start:
974
+ 1. Install: npx 0xray install
975
+ 2. Check health: npx 0xray health
976
+ 3. Use agents: @security-auditor scan
977
+ 4. Generate reports: npx 0xray report
978
+ 5. Fix issues: npx 0xray fix
979
+ 6. View analytics: npx 0xray analytics
980
+ 7. Add skills: npx 0xray skill:install agency-agents
981
+
982
+ For more information, visit: https://github.com/0xRayAI/xray
983
+ `);
984
+ // Parse command line arguments
985
+ program.exitOverride();
986
+ program.parse();