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,373 @@
1
+ /**
2
+ * Inference Governance Integration
3
+ *
4
+ * Integrates chrono-warp-drive Dynamo governance endpoint for external
5
+ * inference checking in governance decision-making.
6
+ *
7
+ * @version 1.0.0
8
+ * @since 2026-05-11
9
+ */
10
+ import { BaseIntegration } from '../base/index.js';
11
+ import { DEFAULT_GOVERNANCE_CONFIG } from './types.js';
12
+ import { GovernanceClient } from './governance-client.js';
13
+ import { frameworkLogger } from '../../core/framework-logger.js';
14
+ import * as fs from 'fs';
15
+ import * as path from 'path';
16
+ /**
17
+ * Main Governance Integration class
18
+ *
19
+ * Provides external governance checking for inference proposals via the
20
+ * chrono-warp-drive Dynamo /governance endpoint.
21
+ */
22
+ export class InferenceGovernanceIntegration extends BaseIntegration {
23
+ client = null;
24
+ configData = DEFAULT_GOVERNANCE_CONFIG;
25
+ constructor() {
26
+ super('inference-governance', '1.0.0', {
27
+ enabled: false,
28
+ debug: false,
29
+ logLevel: 'info'
30
+ });
31
+ }
32
+ /**
33
+ * Perform integration-specific initialization
34
+ */
35
+ async performInitialization() {
36
+ await this.loadConfig();
37
+ if (!this.configData.enabled) {
38
+ await this.log('info', 'Governance integration disabled in configuration');
39
+ return;
40
+ }
41
+ await this.log('info', 'Initializing governance client...');
42
+ this.client = new GovernanceClient({
43
+ baseUrl: this.configData.endpointUrl.replace(/\/governance$/, ''),
44
+ timeoutMs: this.configData.requestTimeoutMs,
45
+ });
46
+ await this.log('success', 'Governance client initialized', {
47
+ endpoint: this.configData.endpointUrl,
48
+ timeout: this.configData.requestTimeoutMs,
49
+ });
50
+ }
51
+ /**
52
+ * Perform integration-specific shutdown
53
+ */
54
+ async performShutdown() {
55
+ await this.log('info', 'Shutting down governance integration');
56
+ this.client = null;
57
+ }
58
+ /**
59
+ * Perform health check
60
+ */
61
+ async performHealthCheck() {
62
+ if (!this.client) {
63
+ return {
64
+ healthy: false,
65
+ message: 'Governance client not initialized',
66
+ };
67
+ }
68
+ const stats = this.client.getStats();
69
+ // Healthy if we have no recent errors
70
+ const isHealthy = stats.errors === 0 || stats.requestsSucceeded > stats.errors;
71
+ return {
72
+ healthy: isHealthy,
73
+ message: isHealthy
74
+ ? 'Governance client healthy'
75
+ : 'Governance client has errors',
76
+ details: {
77
+ requestsTotal: stats.requestsTotal,
78
+ requestsSucceeded: stats.requestsSucceeded,
79
+ requestsFailed: stats.requestsFailed,
80
+ errors: stats.errors,
81
+ averageResponseTimeMs: stats.averageResponseTimeMs,
82
+ },
83
+ };
84
+ }
85
+ /**
86
+ * Check if governance is enabled and available
87
+ */
88
+ isAvailable() {
89
+ return this.configData.enabled && this.client !== null && this.status === 'initialized';
90
+ }
91
+ /**
92
+ * Check a single inference proposal via the appropriate governance tool
93
+ *
94
+ * Routes to govern_with_solar (strategic proposals) or evaluate_governance
95
+ * (technical proposals) based on proposal type.
96
+ */
97
+ async checkProposal(proposal, agentReviews = [], historicalIds = []) {
98
+ if (!this.isAvailable()) {
99
+ throw new Error('Governance integration not available');
100
+ }
101
+ const isTechnical = proposal.type === 'fix' || proposal.type === 'guard';
102
+ if (isTechnical) {
103
+ return this.evaluateProposal(proposal, agentReviews, historicalIds);
104
+ }
105
+ return this.governWithSolarProposal(proposal);
106
+ }
107
+ /**
108
+ * Route: evaluate_governance — for purely technical proposals (fix, guard)
109
+ */
110
+ async evaluateProposal(proposal, agentReviews, historicalIds) {
111
+ const response = await this.client.evaluateGovernance({
112
+ proposalId: proposal.id,
113
+ proposalText: `${proposal.title}\n\n${proposal.description}`,
114
+ agentReviews,
115
+ historicalSignalIds: historicalIds,
116
+ });
117
+ return this.applyDecisionLogic(response);
118
+ }
119
+ /**
120
+ * Route: govern_with_solar — for strategic proposals (refactor, codify, automate)
121
+ *
122
+ * Brings real-time NOAA GOES solar context into the decision, adjusting
123
+ * vote weight and adding warnings based on current solar activity.
124
+ */
125
+ async governWithSolarProposal(proposal) {
126
+ frameworkLogger.log('inference-governance', 'solar-check-start', 'info', {
127
+ proposalId: proposal.id,
128
+ proposalTitle: proposal.title,
129
+ });
130
+ const solarResponse = await this.client.governWithSolar({
131
+ proposal: `${proposal.title}\n\n${proposal.description}`,
132
+ baseVoteWeight: this.configData.decisionLogic.voteWeightMultiplier,
133
+ });
134
+ const adjustment = solarResponse.confidenceAdjustment;
135
+ const recommendation = adjustment <= -0.10 ? 'NEEDS_REVISION' : 'PASS';
136
+ const reasons = [
137
+ solarResponse.solarContext.recommendation,
138
+ `Solar activity: ${solarResponse.solarContext.solarActivityLevel} (adjustment: ${(adjustment * 100).toFixed(0)}%, resonance: ${(solarResponse.solarContext.solarIsotopicResonance ?? solarResponse.solarContext.solarResonance ?? 0).toFixed(4)})`,
139
+ ];
140
+ if (solarResponse.finalRecommendation && solarResponse.finalRecommendation !== solarResponse.originalRecommendation) {
141
+ reasons.push(solarResponse.finalRecommendation);
142
+ }
143
+ // Trinitarium Moral Overlay — add moral tension to reasoning
144
+ if (solarResponse.moralTension) {
145
+ reasons.push(`Moral tension: ${solarResponse.moralTension}${solarResponse.trinitariumMoralScore != null ? ` (${(solarResponse.trinitariumMoralScore * 100).toFixed(0)}%)` : ''}`);
146
+ if (solarResponse.detectedConcerns && solarResponse.detectedConcerns.length > 0) {
147
+ reasons.push(`Moral concerns: ${solarResponse.detectedConcerns.join(', ')}`);
148
+ }
149
+ }
150
+ const mappedResponse = {
151
+ success: true,
152
+ proposalId: proposal.id,
153
+ governanceIsotopeId: `solar-${solarResponse.solarContext.solarActivityLevel}`,
154
+ resonanceScore: solarResponse.solarContext.solarIsotopicResonance ?? solarResponse.solarContext.solarResonance ?? 0,
155
+ isotopicRatio: 0,
156
+ vortexVolume: 0,
157
+ historicalCoherence: 0,
158
+ recommendation,
159
+ confidence: Math.max(0, Math.min(1, proposal.confidence + adjustment)),
160
+ voteWeight: solarResponse.adjustedVoteWeight,
161
+ reasons,
162
+ };
163
+ const baseResult = this.applyDecisionLogic(mappedResponse);
164
+ const solarResult = {
165
+ ...baseResult,
166
+ solarContext: solarResponse.solarContext,
167
+ solarConfidenceAdjustment: solarResponse.confidenceAdjustment,
168
+ moralTension: solarResponse.moralTension,
169
+ moralScore: solarResponse.trinitariumMoralScore,
170
+ moralFusion: solarResponse.trinitariumGematriaFusion,
171
+ detectedVirtues: solarResponse.detectedVirtues,
172
+ detectedConcerns: solarResponse.detectedConcerns,
173
+ };
174
+ frameworkLogger.log('inference-governance', 'solar-check-complete', 'info', {
175
+ proposalId: proposal.id,
176
+ solarActivityLevel: solarResponse.solarContext.solarActivityLevel,
177
+ adjustedVoteWeight: solarResponse.adjustedVoteWeight,
178
+ confidenceAdjustment: solarResponse.confidenceAdjustment,
179
+ passed: solarResult.passed,
180
+ });
181
+ return solarResult;
182
+ }
183
+ /**
184
+ * Check multiple proposals with external governance
185
+ */
186
+ async checkProposals(proposals, agentReviews = [], historicalIds = []) {
187
+ if (!this.isAvailable()) {
188
+ throw new Error('Governance integration not available');
189
+ }
190
+ const batchId = `governance-batch-${Date.now()}`;
191
+ const timestamp = Date.now();
192
+ frameworkLogger.log('inference-governance', 'batch-check-start', 'info', { batchId, proposalCount: proposals.length });
193
+ const results = [];
194
+ for (const proposal of proposals) {
195
+ try {
196
+ const result = await this.checkProposal(proposal, agentReviews, historicalIds);
197
+ results.push(result);
198
+ }
199
+ catch (error) {
200
+ frameworkLogger.log('inference-governance', 'check-proposal-error', 'warning', {
201
+ proposalId: proposal.id,
202
+ error: error instanceof Error ? error.message : String(error),
203
+ });
204
+ // Fallback to local decision
205
+ results.push(this.createFallbackVote(proposal));
206
+ }
207
+ }
208
+ frameworkLogger.log('inference-governance', 'batch-check-complete', 'info', {
209
+ batchId,
210
+ proposalCount: proposals.length,
211
+ passedCount: results.filter(r => r.passed).length,
212
+ });
213
+ return {
214
+ proposals,
215
+ results,
216
+ batchId,
217
+ timestamp,
218
+ };
219
+ }
220
+ /**
221
+ * Apply decision logic based on governance response
222
+ */
223
+ applyDecisionLogic(response) {
224
+ const { decisionLogic } = this.configData;
225
+ let vote;
226
+ let passed;
227
+ switch (response.recommendation) {
228
+ case 'PASS':
229
+ vote = 'YES';
230
+ passed = true;
231
+ break;
232
+ case 'REJECT':
233
+ vote = 'NO';
234
+ passed = false;
235
+ break;
236
+ case 'NEEDS_REVISION':
237
+ default:
238
+ vote = 'ABSTAIN';
239
+ passed = false;
240
+ break;
241
+ }
242
+ // Calculate weighted vote
243
+ const weight = response.voteWeight * decisionLogic.voteWeightMultiplier;
244
+ // Build reason string
245
+ const reason = [
246
+ `Governance ${response.recommendation} (confidence: ${(response.confidence * 100).toFixed(1)}%)`,
247
+ ...response.reasons.slice(0, 2), // Include up to 2 reasons
248
+ ].join('; ');
249
+ return {
250
+ vote,
251
+ weight,
252
+ reason,
253
+ governanceResponse: response,
254
+ passed,
255
+ };
256
+ }
257
+ /**
258
+ * Create fallback vote when governance is unavailable
259
+ */
260
+ createFallbackVote(proposal) {
261
+ return {
262
+ vote: proposal.confidence >= 0.7 ? 'YES' : 'ABSTAIN',
263
+ weight: 1.0,
264
+ reason: 'Fallback: governance endpoint unavailable',
265
+ governanceResponse: {
266
+ success: false,
267
+ proposalId: proposal.id,
268
+ governanceIsotopeId: 'fallback',
269
+ resonanceScore: 0,
270
+ isotopicRatio: 0,
271
+ vortexVolume: 0,
272
+ historicalCoherence: 0,
273
+ recommendation: 'NEEDS_REVISION',
274
+ confidence: proposal.confidence,
275
+ voteWeight: 1.0,
276
+ reasons: ['Governance endpoint unavailable, using local confidence'],
277
+ },
278
+ passed: proposal.confidence >= 0.7,
279
+ };
280
+ }
281
+ /**
282
+ * Load configuration from features.json
283
+ */
284
+ async loadConfig() {
285
+ try {
286
+ const configPath = path.join(process.cwd(), '.opencode', 'strray', 'features.json');
287
+ if (!fs.existsSync(configPath)) {
288
+ await this.log('warning', 'features.json not found, using defaults');
289
+ return;
290
+ }
291
+ const content = fs.readFileSync(configPath, 'utf-8');
292
+ const features = JSON.parse(content);
293
+ if (features.inference_governance) {
294
+ this.configData = {
295
+ ...DEFAULT_GOVERNANCE_CONFIG,
296
+ enabled: features.inference_governance.enabled ?? false,
297
+ endpointUrl: features.inference_governance.endpoint_url ?? DEFAULT_GOVERNANCE_CONFIG.endpointUrl,
298
+ requestTimeoutMs: features.inference_governance.request_timeout_ms ?? DEFAULT_GOVERNANCE_CONFIG.requestTimeoutMs,
299
+ minConfidenceThreshold: features.inference_governance.min_confidence_threshold ?? DEFAULT_GOVERNANCE_CONFIG.minConfidenceThreshold,
300
+ decisionLogic: {
301
+ passConfidenceMin: features.inference_governance.decision_logic?.pass_confidence_min ?? DEFAULT_GOVERNANCE_CONFIG.decisionLogic.passConfidenceMin,
302
+ revisionConfidenceMax: features.inference_governance.decision_logic?.revision_confidence_max ?? DEFAULT_GOVERNANCE_CONFIG.decisionLogic.revisionConfidenceMax,
303
+ voteWeightMultiplier: features.inference_governance.decision_logic?.vote_weight_multiplier ?? DEFAULT_GOVERNANCE_CONFIG.decisionLogic.voteWeightMultiplier,
304
+ },
305
+ };
306
+ }
307
+ await this.log('info', 'Configuration loaded', {
308
+ enabled: this.configData.enabled,
309
+ endpoint: this.configData.endpointUrl,
310
+ });
311
+ }
312
+ catch (error) {
313
+ await this.log('error', 'Failed to load configuration', {
314
+ error: error instanceof Error ? error.message : String(error),
315
+ });
316
+ // Use defaults on error
317
+ this.configData = DEFAULT_GOVERNANCE_CONFIG;
318
+ }
319
+ }
320
+ /**
321
+ * Get governance-specific configuration
322
+ */
323
+ getGovernanceConfig() {
324
+ return { ...this.configData };
325
+ }
326
+ /**
327
+ * Get client statistics
328
+ */
329
+ getClientStats() {
330
+ return this.client?.getStats() ?? {
331
+ requestsTotal: 0,
332
+ requestsSucceeded: 0,
333
+ requestsFailed: 0,
334
+ averageResponseTimeMs: 0,
335
+ errors: 0,
336
+ };
337
+ }
338
+ }
339
+ // ============================================================================
340
+ // Global Integration Instance
341
+ // ============================================================================
342
+ let globalIntegration = null;
343
+ /**
344
+ * Initialize the global governance integration
345
+ */
346
+ export async function initializeGovernanceIntegration() {
347
+ if (globalIntegration) {
348
+ return globalIntegration;
349
+ }
350
+ globalIntegration = new InferenceGovernanceIntegration();
351
+ await globalIntegration.initialize();
352
+ return globalIntegration;
353
+ }
354
+ /**
355
+ * Get the global governance integration
356
+ */
357
+ export function getGovernanceIntegration() {
358
+ return globalIntegration;
359
+ }
360
+ /**
361
+ * Shutdown the global governance integration
362
+ */
363
+ export async function shutdownGovernanceIntegration() {
364
+ if (globalIntegration) {
365
+ await globalIntegration.shutdown();
366
+ globalIntegration = null;
367
+ }
368
+ }
369
+ // ============================================================================
370
+ // Exports
371
+ // ============================================================================
372
+ export * from './types.js';
373
+ export * from './governance-client.js';
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Inference Governance Integration Types
3
+ *
4
+ * Type definitions for the chrono-warp-drive Dynamo governance endpoint integration.
5
+ * Provides external governance checking for inference-driven proposals.
6
+ *
7
+ * @version 1.0.0
8
+ * @since 2026-05-11
9
+ */
10
+ /**
11
+ * Default governance configuration
12
+ */
13
+ export const DEFAULT_GOVERNANCE_CONFIG = {
14
+ enabled: false,
15
+ endpointUrl: process.env.GOVERNANCE_ENDPOINT || '',
16
+ requestTimeoutMs: 10000,
17
+ minConfidenceThreshold: 0.5,
18
+ decisionLogic: {
19
+ passConfidenceMin: 0.9,
20
+ revisionConfidenceMax: 0.89,
21
+ voteWeightMultiplier: 1.0,
22
+ },
23
+ };
24
+ // ============================================================================
25
+ // Error Types
26
+ // ============================================================================
27
+ /**
28
+ * Governance error codes
29
+ */
30
+ export var GovernanceErrorCode;
31
+ (function (GovernanceErrorCode) {
32
+ GovernanceErrorCode["REQUEST_FAILED"] = "REQUEST_FAILED";
33
+ GovernanceErrorCode["TIMEOUT"] = "TIMEOUT";
34
+ GovernanceErrorCode["INVALID_RESPONSE"] = "INVALID_RESPONSE";
35
+ GovernanceErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
36
+ GovernanceErrorCode["CONFIG_INVALID"] = "CONFIG_INVALID";
37
+ GovernanceErrorCode["NOT_INITIALIZED"] = "NOT_INITIALIZED";
38
+ })(GovernanceErrorCode || (GovernanceErrorCode = {}));
39
+ /**
40
+ * Base governance error
41
+ */
42
+ export class GovernanceError extends Error {
43
+ code;
44
+ recoverable;
45
+ context;
46
+ constructor(message, code, recoverable, context) {
47
+ super(message);
48
+ this.code = code;
49
+ this.recoverable = recoverable;
50
+ this.context = context;
51
+ this.name = 'GovernanceError';
52
+ Error.captureStackTrace(this, this.constructor);
53
+ }
54
+ }
55
+ /**
56
+ * Request timeout error
57
+ */
58
+ export class GovernanceTimeoutError extends GovernanceError {
59
+ constructor(timeoutMs) {
60
+ super(`Governance request timed out after ${timeoutMs}ms`, GovernanceErrorCode.TIMEOUT, true, { timeoutMs });
61
+ this.name = 'GovernanceTimeoutError';
62
+ }
63
+ }
64
+ /**
65
+ * Network error
66
+ */
67
+ export class GovernanceNetworkError extends GovernanceError {
68
+ constructor(url, originalError) {
69
+ super(`Network error calling governance endpoint: ${originalError.message}`, GovernanceErrorCode.NETWORK_ERROR, true, { url, originalError: originalError.message });
70
+ this.name = 'GovernanceNetworkError';
71
+ }
72
+ }
73
+ // ============================================================================
74
+ // Utility Types
75
+ // ============================================================================
76
+ /**
77
+ * Type guard for valid governance response
78
+ */
79
+ export function isValidGovernanceResponse(response) {
80
+ if (typeof response !== 'object' || response === null)
81
+ return false;
82
+ const r = response;
83
+ return (typeof r.success === 'boolean' &&
84
+ typeof r.proposalId === 'string' &&
85
+ typeof r.governanceIsotopeId === 'string' &&
86
+ typeof r.recommendation === 'string' &&
87
+ ['PASS', 'NEEDS_REVISION', 'REJECT'].includes(r.recommendation) &&
88
+ typeof r.confidence === 'number' &&
89
+ typeof r.voteWeight === 'number');
90
+ }
91
+ /**
92
+ * Type guard for governance error
93
+ */
94
+ export function isGovernanceError(error) {
95
+ return (error instanceof GovernanceError ||
96
+ (error instanceof Error && error.name === 'GovernanceError'));
97
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Grok CLI Integration for StringRay / 0xRay
3
+ *
4
+ * This module provides the integration points for using 0xRay with the official Grok CLI.
5
+ *
6
+ * Primary mechanism: MCP (Model Context Protocol)
7
+ * Grok CLI can consume MCP servers. By registering the 0xRay MCP servers,
8
+ * users get access to Governance, skills, and other capabilities directly inside Grok conversations.
9
+ *
10
+ * Recommended registration (via npx or Grok's tooling):
11
+ * npx 0xray grok install
12
+ *
13
+ * This will help configure the user's Grok CLI to include the following MCP servers:
14
+ * - governance (Dynamo Solar SSOT + real skill deliberation)
15
+ * - All knowledge-skill MCP servers (code-review, security-audit, researcher, etc.)
16
+ */
17
+ import { frameworkLogger } from '../../core/framework-logger.js';
18
+ import fs from 'fs';
19
+ import path from 'path';
20
+ import { execSync } from 'child_process';
21
+ // ESM-compatible __dirname (this file is compiled to ESM)
22
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
23
+ export async function installForGrokCLI(options = {}) {
24
+ frameworkLogger.log('grok-integration', 'install-start', 'info', { options });
25
+ const home = process.env.HOME || process.env.USERPROFILE || '';
26
+ const targetPluginDir = path.join(home, '.grok/plugins/0xray');
27
+ // Try to find the plugin source from the installed package
28
+ const possibleSources = [
29
+ path.join(__dirname, '..', '..', '..', 'src/integrations/grok/plugin/0xray'), // dev
30
+ path.join(__dirname, '..', '..', '..', '.grok/plugins/0xray'), // after build
31
+ ];
32
+ let sourceDir = possibleSources.find(p => fs.existsSync(p));
33
+ if (!sourceDir) {
34
+ console.error('[Grok] Could not locate the 0xray Grok plugin inside the package.');
35
+ return;
36
+ }
37
+ if (options.dryRun) {
38
+ console.log(`[Grok] Dry run: Would copy plugin from ${sourceDir} → ${targetPluginDir}`);
39
+ return;
40
+ }
41
+ try {
42
+ if (fs.existsSync(targetPluginDir) && !options.force) {
43
+ console.log('[Grok] 0xray Grok plugin is already installed.');
44
+ console.log('Use --force to reinstall.');
45
+ return;
46
+ }
47
+ fs.cpSync(sourceDir, targetPluginDir, { recursive: true, force: true });
48
+ frameworkLogger.log('grok-integration', 'plugin-copied', 'info', { destination: targetPluginDir });
49
+ console.log(`\x1b[32māœ“ Copied Grok plugin to ${targetPluginDir}\x1b[0m`);
50
+ // Attempt auto-trust (best effort)
51
+ try {
52
+ execSync(`grok plugins trust "${targetPluginDir}"`, { stdio: 'ignore' });
53
+ console.log('\x1b[32māœ“ Auto-trusted the 0xray plugin with Grok CLI\x1b[0m');
54
+ }
55
+ catch {
56
+ console.log('\nPlease run this command to fully trust the plugin:');
57
+ console.log(` grok plugins trust "${targetPluginDir}"`);
58
+ }
59
+ // Register MCP servers via grok mcp add (most reliable mechanism)
60
+ const govMcpPath = path.resolve(__dirname, '..', '..', '..', 'dist/mcps/governance.server.js');
61
+ const skillsMcpPath = path.resolve(__dirname, '..', '..', '..', 'dist/mcps/knowledge-skills/skill-invocation.server.js');
62
+ try {
63
+ execSync(`grok mcp add strray-governance --command node --args "${govMcpPath}" --env "STRRAY_FORCE_MCP_GOVERNANCE=true" --env "STRRAY_ROOT=${process.cwd()}"`, { stdio: 'pipe' });
64
+ execSync(`grok mcp add strray-skills --command node --args "${skillsMcpPath}" --env "STRRAY_ROOT=${process.cwd()}"`, { stdio: 'pipe' });
65
+ console.log('\x1b[32māœ“ Registered strray MCP servers with Grok CLI\x1b[0m');
66
+ }
67
+ catch {
68
+ console.log('\nCould not auto-register MCP servers. Run manually:');
69
+ console.log(` grok mcp add strray-governance --command node --args "${govMcpPath}"`);
70
+ console.log(` grok mcp add strray-skills --command node --args "${skillsMcpPath}"`);
71
+ }
72
+ console.log('\nāœ… 0xRay is now installed as a first-class Grok CLI plugin!');
73
+ console.log('Restart Grok or run `grok` to load the new hooks and MCP servers.');
74
+ }
75
+ catch (err) {
76
+ frameworkLogger.log('grok-integration', 'install-error', 'error', { error: err.message });
77
+ console.error('Failed to install Grok plugin:', err.message);
78
+ }
79
+ frameworkLogger.log('grok-integration', 'install-complete', 'info', {});
80
+ }
81
+ export default {
82
+ installForGrokCLI,
83
+ };
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Grok CLI PreToolUse Hook Handler for StringRay (0xRay) — First Class Citizen
4
+ *
5
+ * Real governance enforcement hook.
6
+ * When Grok is about to execute a tool (write_file, edit, terminal cmd, etc.),
7
+ * this script is spawned and runs the Dynamo Solar SSOT decision matrix.
8
+ */
9
+
10
+ import fs from 'fs';
11
+ import path from 'path';
12
+
13
+ const log = (msg) => { try { console.error(`[0xRay:GrokHook] ${msg}`); } catch { /* noop */ } };
14
+
15
+ function findGovernanceCore() {
16
+ const here = path.dirname(new URL(import.meta.url).pathname);
17
+
18
+ // Priority: explicit dev root
19
+ const devRoot = process.env.STRRAY_ROOT;
20
+ if (devRoot) {
21
+ const devCandidate = path.resolve(devRoot, 'dist/governance/governance-core.js');
22
+ if (fs.existsSync(devCandidate)) return devCandidate;
23
+ }
24
+
25
+ const candidates = [
26
+ // Published package layout
27
+ path.resolve(here, '../../../governance/governance-core.js'),
28
+ path.resolve(here, '../../../../governance/governance-core.js'),
29
+ // node_modules installed layout
30
+ path.resolve(process.cwd(), 'node_modules/0xray/dist/governance/governance-core.js'),
31
+ // Dev layout fallbacks (no extra dist/)
32
+ path.resolve(here, '../../../../../governance/governance-core.js'),
33
+ path.resolve(process.cwd(), 'dist/governance/governance-core.js'),
34
+ // Strong dev fallback: walk up looking for package.json
35
+ ...walkUpForCore(here),
36
+ ];
37
+
38
+ for (const c of candidates) {
39
+ if (fs.existsSync(c)) return c;
40
+ }
41
+ return null;
42
+ }
43
+
44
+ function walkUpForCore(startDir, maxLevels = 8) {
45
+ const results = [];
46
+ let current = startDir;
47
+ for (let i = 0; i < maxLevels; i++) {
48
+ const pkgPath = path.resolve(current, 'package.json');
49
+ if (fs.existsSync(pkgPath)) {
50
+ try {
51
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
52
+ if (pkg.name === 'strray-ai' || pkg.name === 'stringray' || pkg.name === '0xray') {
53
+ results.push(path.resolve(current, 'dist/governance/governance-core.js'));
54
+ results.push(path.resolve(current, 'governance/governance-core.js'));
55
+ }
56
+ } catch {}
57
+ }
58
+ const parent = path.dirname(current);
59
+ if (parent === current) break;
60
+ current = parent;
61
+ }
62
+ return results;
63
+ }
64
+
65
+ function deriveResonance(toolName, extra = '') {
66
+ const text = (toolName + ' ' + extra).toLowerCase();
67
+ let score = 0.85; // baseline good
68
+ const penalties = [
69
+ ['any', -0.25],
70
+ ['eval(', -0.35],
71
+ ['console.log', -0.15],
72
+ ['// @ts-ignore', -0.2],
73
+ ['require(', -0.1],
74
+ ];
75
+ for (const [pat, pen] of penalties) {
76
+ if (text.includes(pat)) score += pen;
77
+ }
78
+ return Math.max(0.1, Math.min(0.99, score));
79
+ }
80
+
81
+ async function main() {
82
+ try {
83
+ const toolName = process.env.TOOL_NAME || process.env.HOOK_TOOL || 'unknown_tool';
84
+ const cwd = process.env.PWD || process.cwd();
85
+ const extraContext = process.env.HOOK_ARGS || process.env.TOOL_ARGS || '';
86
+
87
+ log(`PreToolUse: ${toolName}`);
88
+
89
+ const corePath = findGovernanceCore();
90
+ let recommendation = 'ALLOW';
91
+ let resonance = deriveResonance(toolName, extraContext);
92
+ let govDetails = null;
93
+
94
+ if (corePath) {
95
+ try {
96
+ const core = await import(`file://${corePath}`);
97
+ if (typeof core.applyDecisionMatrix === 'function') {
98
+ const result = core.applyDecisionMatrix({
99
+ resonance,
100
+ isotopicRatio: resonance > 0.8 ? 0.96 : 0.7,
101
+ vortexVolume: 1_000_000,
102
+ historicalCoherence: 0.82,
103
+ solarActivity: 'active',
104
+ });
105
+ govDetails = result;
106
+ recommendation = result.recommendation || 'NEEDS_REVISION';
107
+ log(`Solar decision: ${recommendation} (resonance=${resonance.toFixed(2)})`);
108
+ }
109
+ } catch (e) {
110
+ log(`Governance core error: ${e.message}`);
111
+ }
112
+ } else {
113
+ log('Governance core not located — using safe default');
114
+ }
115
+
116
+ const decision = {
117
+ tool: toolName,
118
+ decision: recommendation === 'PASS' ? 'allow' : 'allow_with_governance_note',
119
+ resonance: Number(resonance.toFixed(3)),
120
+ solar_recommendation: recommendation,
121
+ gov: govDetails,
122
+ timestamp: new Date().toISOString(),
123
+ source: '0xray/grok-pre-tool-use',
124
+ };
125
+
126
+ console.log(JSON.stringify(decision));
127
+ process.exit(0); // non-blocking rollout; future versions can exit(1) on strong reject
128
+ } catch (err) {
129
+ log(`Hook failure (non-fatal): ${err.message}`);
130
+ process.exit(0);
131
+ }
132
+ }
133
+
134
+ main();