0xray 3.4.1 → 3.4.3

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 (436) hide show
  1. package/.xray/codex.json +598 -0
  2. package/.xray/config.json +25 -0
  3. package/.xray/features.json +152 -0
  4. package/.xray/features.schema.json +33 -0
  5. package/AGENTS-consumer.md +127 -10
  6. package/AGENTS.md +172 -56
  7. package/README.md +159 -82
  8. package/SKILLS.md +79 -53
  9. package/dist/AGENTS.md +172 -56
  10. package/dist/CHANGELOG.md +95 -52
  11. package/dist/README.md +159 -82
  12. package/dist/SKILLS.md +79 -53
  13. package/dist/agents/architect.d.ts +2 -0
  14. package/dist/agents/backend-engineer.d.ts +8 -0
  15. package/dist/agents/bug-triage-specialist.d.ts +2 -0
  16. package/dist/agents/code-analyzer.d.ts +7 -0
  17. package/dist/agents/code-reviewer.d.ts +2 -0
  18. package/dist/agents/content-creator.d.ts +9 -0
  19. package/dist/agents/database-engineer.d.ts +8 -0
  20. package/dist/agents/devops-engineer.d.ts +8 -0
  21. package/dist/agents/frontend-engineer.d.ts +8 -0
  22. package/dist/agents/frontend-ui-ux-engineer.d.ts +8 -0
  23. package/dist/agents/growth-strategist.d.ts +8 -0
  24. package/dist/agents/index.d.ts +25 -0
  25. package/dist/agents/known-names.d.ts +26 -0
  26. package/dist/agents/librarian-agents-updater.d.ts +30 -0
  27. package/dist/agents/log-monitor.d.ts +2 -0
  28. package/dist/agents/mobile-developer.d.ts +9 -0
  29. package/dist/agents/multimodal-looker.d.ts +9 -0
  30. package/dist/agents/performance-engineer.d.ts +8 -0
  31. package/dist/agents/refactorer.d.ts +2 -0
  32. package/dist/agents/registry.d.ts +37 -0
  33. package/dist/agents/researcher.d.ts +2 -0
  34. package/dist/agents/security-auditor.d.ts +2 -0
  35. package/dist/agents/seo-consultant.d.ts +8 -0
  36. package/dist/agents/strategist.d.ts +7 -0
  37. package/dist/agents/tech-writer.d.ts +8 -0
  38. package/dist/agents/testing-lead.d.ts +2 -0
  39. package/dist/agents/types.d.ts +45 -0
  40. package/dist/analytics/consent-manager.d.ts +92 -0
  41. package/dist/analytics/emerging-pattern-detector.d.ts +66 -0
  42. package/dist/analytics/pattern-learning-engine.d.ts +79 -0
  43. package/dist/analytics/pattern-performance-tracker.d.ts +96 -0
  44. package/dist/analytics/predictive-analytics.d.ts +40 -0
  45. package/dist/analytics/prompt-pattern-analyzer.d.ts +98 -0
  46. package/dist/analytics/routing-performance-analyzer.d.ts +100 -0
  47. package/dist/analytics/routing-refiner.d.ts +102 -0
  48. package/dist/analytics/simple-pattern-analyzer.d.ts +79 -0
  49. package/dist/architect/architect-tools.d.ts +70 -0
  50. package/dist/architect/architectural-integrity.d.ts +20 -0
  51. package/dist/benchmark/performance-benchmark.d.ts +103 -0
  52. package/dist/cli/commands/analytics-disable.d.ts +9 -0
  53. package/dist/cli/commands/analytics-enable-action.d.ts +8 -0
  54. package/dist/cli/commands/analytics-preview.d.ts +9 -0
  55. package/dist/cli/commands/analytics-status.d.ts +9 -0
  56. package/dist/cli/commands/antigravity-status.d.ts +9 -0
  57. package/dist/cli/commands/archive-logs.d.ts +23 -0
  58. package/dist/cli/commands/credible-init.d.ts +11 -0
  59. package/dist/cli/commands/enforce.d.ts +12 -0
  60. package/dist/cli/commands/govern.d.ts +29 -0
  61. package/dist/cli/commands/grok-install.d.ts +7 -0
  62. package/dist/cli/commands/hermes-install.d.ts +2 -0
  63. package/dist/cli/commands/mcp-install.d.ts +4 -0
  64. package/dist/cli/commands/openclaw-install.d.ts +2 -0
  65. package/dist/cli/commands/opencode-install.d.ts +2 -0
  66. package/dist/cli/commands/plugin-commands.d.ts +18 -0
  67. package/dist/cli/commands/publish-agent.d.ts +15 -0
  68. package/dist/cli/commands/security-audit.d.ts +23 -0
  69. package/dist/cli/commands/skill-install.d.ts +6 -0
  70. package/dist/cli/commands/status.d.ts +41 -0
  71. package/dist/cli/commands/storyteller.d.ts +19 -0
  72. package/dist/cli/index.d.ts +7 -0
  73. package/dist/cli/server.d.ts +1 -0
  74. package/dist/config/default-agents.d.ts +12 -0
  75. package/dist/config/routing-mappings.d.ts +26 -0
  76. package/dist/core/activity-logger.d.ts +71 -0
  77. package/dist/core/adaptive-kernel.d.ts +108 -0
  78. package/dist/core/agent-spawn-gate.d.ts +56 -0
  79. package/dist/core/boot-orchestrator.d.ts +99 -0
  80. package/dist/core/codex-formatter.d.ts +95 -0
  81. package/dist/core/codex-injector.d.ts +73 -0
  82. package/dist/core/config-loader.d.ts +59 -0
  83. package/dist/core/config-paths.d.ts +66 -0
  84. package/dist/core/context-loader.d.ts +120 -0
  85. package/dist/core/context-validator.d.ts +52 -0
  86. package/dist/core/features-config.d.ts +485 -0
  87. package/dist/core/features-config.js +5 -0
  88. package/dist/core/framework-logger.d.ts +76 -0
  89. package/dist/core/index.d.ts +5 -0
  90. package/dist/core/kernel-patterns.d.ts +129 -0
  91. package/dist/core/logging-config.d.ts +10 -0
  92. package/dist/core/model-router.d.ts +56 -0
  93. package/dist/core/orchestrator.d.ts +71 -0
  94. package/dist/core/system-prompt-generator.d.ts +34 -0
  95. package/dist/core/trace-context.d.ts +12 -0
  96. package/dist/core/xray-activation.d.ts +14 -0
  97. package/dist/delegation/agent-delegator.d.ts +185 -0
  98. package/dist/delegation/agent-expertise.d.ts +15 -0
  99. package/dist/delegation/analytics/index.d.ts +11 -0
  100. package/dist/delegation/analytics/learning-engine.d.ts +84 -0
  101. package/dist/delegation/analytics/outcome-tracker.d.ts +117 -0
  102. package/dist/delegation/analytics/routing-analytics.d.ts +60 -0
  103. package/dist/delegation/ast-code-parser.d.ts +173 -0
  104. package/dist/delegation/codebase-context-analyzer.d.ts +164 -0
  105. package/dist/delegation/complexity-analyzer.d.ts +110 -0
  106. package/dist/delegation/complexity-core.d.ts +119 -0
  107. package/dist/delegation/config/types.d.ts +247 -0
  108. package/dist/delegation/dependency-graph-builder.d.ts +94 -0
  109. package/dist/delegation/index.d.ts +25 -0
  110. package/dist/delegation/metrics-aggregator.d.ts +91 -0
  111. package/dist/delegation/session-coordinator.d.ts +132 -0
  112. package/dist/delegation/strategy-selector.d.ts +27 -0
  113. package/dist/delegation/voting-coordinator.d.ts +48 -0
  114. package/dist/delegation/voting-types.d.ts +154 -0
  115. package/dist/delegation/weighted-voting-aggregator.d.ts +36 -0
  116. package/dist/enforcement/core/index.d.ts +14 -0
  117. package/dist/enforcement/core/rule-executor.d.ts +157 -0
  118. package/dist/enforcement/core/rule-hierarchy.d.ts +145 -0
  119. package/dist/enforcement/core/rule-registry.d.ts +196 -0
  120. package/dist/enforcement/core/violation-fixer.d.ts +105 -0
  121. package/dist/enforcement/enforcer-tools.d.ts +78 -0
  122. package/dist/enforcement/index.d.ts +22 -0
  123. package/dist/enforcement/loaders/agent-triage-loader.d.ts +98 -0
  124. package/dist/enforcement/loaders/agents-md-validation-loader.d.ts +75 -0
  125. package/dist/enforcement/loaders/base-loader.d.ts +82 -0
  126. package/dist/enforcement/loaders/codex-loader.d.ts +76 -0
  127. package/dist/enforcement/loaders/index.d.ts +36 -0
  128. package/dist/enforcement/loaders/loader-orchestrator.d.ts +96 -0
  129. package/dist/enforcement/loaders/processor-loader.d.ts +59 -0
  130. package/dist/enforcement/rule-enforcer.d.ts +142 -0
  131. package/dist/enforcement/test-auto-healing.d.ts +83 -0
  132. package/dist/enforcement/types.d.ts +500 -0
  133. package/dist/enforcement/validators/architecture-validators.d.ts +154 -0
  134. package/dist/enforcement/validators/base-validator.d.ts +87 -0
  135. package/dist/enforcement/validators/code-quality-validators.d.ts +88 -0
  136. package/dist/enforcement/validators/index.d.ts +14 -0
  137. package/dist/enforcement/validators/security-validators.d.ts +52 -0
  138. package/dist/enforcement/validators/testing-validators.d.ts +80 -0
  139. package/dist/enforcement/validators/validator-registry.d.ts +91 -0
  140. package/dist/execution/opencode-cli-invoker.d.ts +8 -0
  141. package/dist/execution/proposal-applier.d.ts +24 -0
  142. package/dist/governance/codex-policy.service.d.ts +56 -0
  143. package/dist/governance/governance-core.d.ts +53 -0
  144. package/dist/governance/governance-service.d.ts +38 -0
  145. package/dist/governance/governance-types.d.ts +90 -0
  146. package/dist/governance/llm-governance-provider.d.ts +13 -0
  147. package/dist/index.d.ts +28 -0
  148. package/dist/inference/deploy-verifier.d.ts +26 -0
  149. package/dist/inference/index.d.ts +10 -0
  150. package/dist/inference/inference-accumulator.d.ts +29 -0
  151. package/dist/inference/inference-agent-invoker.d.ts +3 -0
  152. package/dist/inference/inference-applier.d.ts +4 -0
  153. package/dist/inference/inference-cycle.d.ts +70 -0
  154. package/dist/inference/inference-proposal-generator.d.ts +3 -0
  155. package/dist/inference/semantic-patterns.d.ts +7 -0
  156. package/dist/inference/session-capture.d.ts +32 -0
  157. package/dist/infrastructure/iac-validator.d.ts +150 -0
  158. package/dist/infrastructure/schemas/cloud-schemas.d.ts +482 -0
  159. package/dist/integrations/base/ExampleIntegration.d.ts +46 -0
  160. package/dist/integrations/base/Integration.d.ts +266 -0
  161. package/dist/integrations/base/index.d.ts +11 -0
  162. package/dist/integrations/base/registry.d.ts +272 -0
  163. package/dist/integrations/base/types.d.ts +167 -0
  164. package/dist/integrations/enforcement-gate.d.ts +44 -0
  165. package/dist/integrations/governance/governance-client.d.ts +75 -0
  166. package/dist/integrations/governance/index.d.ts +98 -0
  167. package/dist/integrations/governance/types.d.ts +238 -0
  168. package/dist/integrations/grok/grok-cli.d.ts +25 -0
  169. package/dist/integrations/grok/hooks/grok-hook-activity.js +53 -0
  170. package/dist/integrations/grok/hooks/grok-hook-utils.js +261 -0
  171. package/dist/integrations/grok/hooks/pre-tool-use.js +85 -115
  172. package/dist/integrations/grok/hooks/session-start.js +52 -0
  173. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +20 -3
  174. package/dist/integrations/openclaw/api-server.d.ts +86 -0
  175. package/dist/integrations/openclaw/client.d.ts +121 -0
  176. package/dist/integrations/openclaw/config.d.ts +95 -0
  177. package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +123 -0
  178. package/dist/integrations/openclaw/index.d.ts +100 -0
  179. package/dist/integrations/openclaw/types.d.ts +425 -0
  180. package/dist/integrations/plugins/index.d.ts +9 -0
  181. package/dist/integrations/plugins/plugin-integration.d.ts +288 -0
  182. package/dist/integrations/plugins/plugin-registry.d.ts +223 -0
  183. package/dist/mcps/agent-resolver.d.ts +45 -0
  184. package/dist/mcps/architect-tools.server.d.ts +16 -0
  185. package/dist/mcps/auto-format.server.d.ts +18 -0
  186. package/dist/mcps/boot-orchestrator.server.d.ts +48 -0
  187. package/dist/mcps/config/config-loader.d.ts +56 -0
  188. package/dist/mcps/config/config-validator.d.ts +40 -0
  189. package/dist/mcps/config/index.d.ts +31 -0
  190. package/dist/mcps/config/plugin-server-registry.d.ts +126 -0
  191. package/dist/mcps/config/server-config-registry.d.ts +51 -0
  192. package/dist/mcps/config/server-config-registry.js +4 -3
  193. package/dist/mcps/connection/connection-manager.d.ts +39 -0
  194. package/dist/mcps/connection/connection-pool.d.ts +64 -0
  195. package/dist/mcps/connection/mcp-connection.d.ts +66 -0
  196. package/dist/mcps/connection/process-spawner.d.ts +24 -0
  197. package/dist/mcps/enforcer-tools.server.d.ts +26 -0
  198. package/dist/mcps/estimation.server.d.ts +19 -0
  199. package/dist/mcps/framework-compliance-audit.server.d.ts +20 -0
  200. package/dist/mcps/framework-help.server.d.ts +13 -0
  201. package/dist/mcps/governance.server.d.ts +35 -0
  202. package/dist/mcps/governance.server.js +14 -2
  203. package/dist/mcps/in-process-skill-registry.d.ts +20 -0
  204. package/dist/mcps/index.d.ts +17 -0
  205. package/dist/mcps/knowledge-skills/api-design.server.d.ts +13 -0
  206. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +13 -0
  207. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +31 -0
  208. package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +29 -0
  209. package/dist/mcps/knowledge-skills/code-review.server.d.ts +44 -0
  210. package/dist/mcps/knowledge-skills/content-creator.server.d.ts +11 -0
  211. package/dist/mcps/knowledge-skills/database-design.server.d.ts +41 -0
  212. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +41 -0
  213. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +13 -0
  214. package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +11 -0
  215. package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +22 -0
  216. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +17 -0
  217. package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +53 -0
  218. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +69 -0
  219. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +35 -0
  220. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +31 -0
  221. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +46 -0
  222. package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +24 -0
  223. package/dist/mcps/knowledge-skills/session-management.server.d.ts +22 -0
  224. package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +32 -0
  225. package/dist/mcps/knowledge-skills/storyteller.server.d.ts +11 -0
  226. package/dist/mcps/knowledge-skills/strategist.server.d.ts +15 -0
  227. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +45 -0
  228. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +34 -0
  229. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +45 -0
  230. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +67 -0
  231. package/dist/mcps/lint.server.d.ts +15 -0
  232. package/dist/mcps/mcp-client.d.ts +157 -0
  233. package/dist/mcps/model-health-check.server.d.ts +14 -0
  234. package/dist/mcps/orchestrator/aside-context.d.ts +21 -0
  235. package/dist/mcps/orchestrator/config/agent-capabilities.d.ts +39 -0
  236. package/dist/mcps/orchestrator/config/memory-routing-bridge.d.ts +12 -0
  237. package/dist/mcps/orchestrator/execution/execution-planner.d.ts +62 -0
  238. package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +32 -0
  239. package/dist/mcps/orchestrator/handlers/complexity-handler.js +33 -3
  240. package/dist/mcps/orchestrator/handlers/status-handler.d.ts +71 -0
  241. package/dist/mcps/orchestrator/handlers/task-handler.d.ts +53 -0
  242. package/dist/mcps/orchestrator/index.d.ts +6 -0
  243. package/dist/mcps/orchestrator/server.d.ts +38 -0
  244. package/dist/mcps/orchestrator/server.js +1 -1
  245. package/dist/mcps/orchestrator/types.d.ts +128 -0
  246. package/dist/mcps/orchestrator.server.d.ts +10 -0
  247. package/dist/mcps/performance-analysis.server.d.ts +25 -0
  248. package/dist/mcps/processor-pipeline.server.d.ts +29 -0
  249. package/dist/mcps/protocol/protocol-constants.d.ts +46 -0
  250. package/dist/mcps/researcher-confidence.d.ts +21 -0
  251. package/dist/mcps/researcher.server.d.ts +29 -0
  252. package/dist/mcps/researcher.server.js +3 -0
  253. package/dist/mcps/security-scan.server.d.ts +19 -0
  254. package/dist/mcps/shared/knowledge-skill-base.d.ts +17 -0
  255. package/dist/mcps/shared/prompt-security-validator.d.ts +44 -0
  256. package/dist/mcps/shared/security-scanner.d.ts +119 -0
  257. package/dist/mcps/simulation/index.d.ts +12 -0
  258. package/dist/mcps/simulation/server-simulations.d.ts +39 -0
  259. package/dist/mcps/simulation/simulation-engine.d.ts +51 -0
  260. package/dist/mcps/state-manager.server.d.ts +27 -0
  261. package/dist/mcps/tools/index.d.ts +14 -0
  262. package/dist/mcps/tools/tool-cache.d.ts +53 -0
  263. package/dist/mcps/tools/tool-discovery.d.ts +27 -0
  264. package/dist/mcps/tools/tool-executor.d.ts +41 -0
  265. package/dist/mcps/tools/tool-registry.d.ts +42 -0
  266. package/dist/mcps/types/index.d.ts +13 -0
  267. package/dist/mcps/types/json-rpc.types.d.ts +35 -0
  268. package/dist/mcps/types/mcp.types.d.ts +105 -0
  269. package/dist/memory-routing/index.d.ts +6 -0
  270. package/dist/memory-routing/null-provider.d.ts +14 -0
  271. package/dist/memory-routing/provider-loader.d.ts +2 -0
  272. package/dist/memory-routing/provider-registry.d.ts +8 -0
  273. package/dist/memory-routing/types.d.ts +104 -0
  274. package/dist/memory-routing/validate-config.d.ts +7 -0
  275. package/dist/metrics/agent-metrics.d.ts +169 -0
  276. package/dist/metrics/index.d.ts +6 -0
  277. package/dist/monitoring/advanced-profiler.d.ts +51 -0
  278. package/dist/monitoring/memory-monitor.d.ts +113 -0
  279. package/dist/monitoring/nudge-watchdog.d.ts +87 -0
  280. package/dist/monitoring/test-auto-generation-monitor.d.ts +64 -0
  281. package/dist/nucleus/autonomy-kernel.d.ts +48 -0
  282. package/dist/nucleus/autonomy-kernel.js +176 -0
  283. package/dist/nucleus/default-plugins.d.ts +17 -0
  284. package/dist/nucleus/govern-http.d.ts +59 -0
  285. package/dist/nucleus/index.d.ts +17 -0
  286. package/dist/nucleus/index.js +1 -0
  287. package/dist/nucleus/kernel.d.ts +51 -0
  288. package/dist/nucleus/plugin-registry.d.ts +132 -0
  289. package/dist/nucleus/thin-dispatch.d.ts +33 -0
  290. package/dist/orchestrator/agent-spawn-governor.d.ts +126 -0
  291. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +156 -0
  292. package/dist/orchestrator/intelligent-commit-batcher.d.ts +114 -0
  293. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +126 -0
  294. package/dist/orchestrator/orchestrator.d.ts +141 -0
  295. package/dist/orchestrator/self-direction-activation.d.ts +108 -0
  296. package/dist/orchestrator/universal-librarian-consultation.d.ts +98 -0
  297. package/dist/orchestrator/universal-registry-bridge.d.ts +84 -0
  298. package/dist/performance/performance-budget-enforcer.d.ts +157 -0
  299. package/dist/performance/performance-regression-tester.d.ts +107 -0
  300. package/dist/plugin/plugin-codex-context.d.ts +18 -0
  301. package/dist/plugin/plugin-helpers.d.ts +23 -0
  302. package/dist/plugin/plugin-logger.d.ts +8 -0
  303. package/dist/plugin/plugin-modules.d.ts +11 -0
  304. package/dist/plugin/plugin-quality-gate.d.ts +11 -0
  305. package/dist/plugin/plugin-types.d.ts +93 -0
  306. package/dist/plugin/xray-codex-injection.d.ts +39 -0
  307. package/dist/postprocessor/PostProcessor.d.ts +107 -0
  308. package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +11 -0
  309. package/dist/postprocessor/analysis/FailureAnalysisEngine.d.ts +39 -0
  310. package/dist/postprocessor/autofix/AutoFixEngine.d.ts +48 -0
  311. package/dist/postprocessor/autofix/FixValidator.d.ts +23 -0
  312. package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +44 -0
  313. package/dist/postprocessor/config.d.ts +6 -0
  314. package/dist/postprocessor/escalation/EscalationEngine.d.ts +154 -0
  315. package/dist/postprocessor/integration.d.ts +156 -0
  316. package/dist/postprocessor/metamorphosis/SelfProposalEngine.d.ts +87 -0
  317. package/dist/postprocessor/metamorphosis/index.d.ts +2 -0
  318. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +40 -0
  319. package/dist/postprocessor/redeploy/RedeployCoordinator.d.ts +91 -0
  320. package/dist/postprocessor/redeploy/RetryHandler.d.ts +49 -0
  321. package/dist/postprocessor/services/RegressionAnalysisService.d.ts +39 -0
  322. package/dist/postprocessor/success/SuccessHandler.d.ts +57 -0
  323. package/dist/postprocessor/triggers/APITrigger.d.ts +34 -0
  324. package/dist/postprocessor/triggers/GitHookTrigger.d.ts +38 -0
  325. package/dist/postprocessor/triggers/WebhookTrigger.d.ts +46 -0
  326. package/dist/postprocessor/types.d.ts +227 -0
  327. package/dist/processors/doc-write-guard.d.ts +6 -0
  328. package/dist/processors/implementations/agents-md-validation-processor.d.ts +62 -0
  329. package/dist/processors/implementations/async-pattern-processor.d.ts +47 -0
  330. package/dist/processors/implementations/codex-compliance-processor.d.ts +7 -0
  331. package/dist/processors/implementations/commit-batcher-processor.d.ts +13 -0
  332. package/dist/processors/implementations/console-log-guard-processor.d.ts +32 -0
  333. package/dist/processors/implementations/coverage-analysis-processor.d.ts +19 -0
  334. package/dist/processors/implementations/error-boundary-processor.d.ts +7 -0
  335. package/dist/processors/implementations/inference-improvement-processor.d.ts +36 -0
  336. package/dist/processors/implementations/log-protection-processor.d.ts +29 -0
  337. package/dist/processors/implementations/nudge-processor.d.ts +21 -0
  338. package/dist/processors/implementations/performance-budget-processor.d.ts +49 -0
  339. package/dist/processors/implementations/postprocessor-chain-validator.d.ts +45 -0
  340. package/dist/processors/implementations/pre-validate-processor.d.ts +7 -0
  341. package/dist/processors/implementations/publish-preflight-processor.d.ts +37 -0
  342. package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +7 -0
  343. package/dist/processors/implementations/refactoring-logging-processor.d.ts +31 -0
  344. package/dist/processors/implementations/regression-testing-processor.d.ts +20 -0
  345. package/dist/processors/implementations/session-capture-processor.d.ts +14 -0
  346. package/dist/processors/implementations/session-summary-processor.d.ts +26 -0
  347. package/dist/processors/implementations/spawn-governance-processor.d.ts +57 -0
  348. package/dist/processors/implementations/state-validation-processor.d.ts +11 -0
  349. package/dist/processors/implementations/storytelling-trigger-processor.d.ts +40 -0
  350. package/dist/processors/implementations/test-auto-creation-processor.d.ts +16 -0
  351. package/dist/processors/implementations/test-execution-processor.d.ts +11 -0
  352. package/dist/processors/implementations/typescript-compilation-processor.d.ts +37 -0
  353. package/dist/processors/implementations/version-compliance-processor.d.ts +111 -0
  354. package/dist/processors/processor-interfaces.d.ts +126 -0
  355. package/dist/processors/processor-manager.d.ts +80 -0
  356. package/dist/processors/processor-types.d.ts +189 -0
  357. package/dist/public/XrayService.d.ts +17 -0
  358. package/dist/public/index.d.ts +4 -0
  359. package/dist/reporting/framework-reporting-system.d.ts +19 -0
  360. package/dist/reporting/log-parser.d.ts +10 -0
  361. package/dist/reporting/metrics.d.ts +15 -0
  362. package/dist/reporting/report-formatter.d.ts +5 -0
  363. package/dist/reporting/types.d.ts +102 -0
  364. package/dist/scripts/activate-kernel-pipeline.d.ts +7 -0
  365. package/dist/scripts/integration.d.ts +36 -0
  366. package/dist/security/comprehensive-security-audit.d.ts +157 -0
  367. package/dist/security/index.d.ts +13 -0
  368. package/dist/security/prompt-security-validator.d.ts +44 -0
  369. package/dist/security/security-agent-coordinator.d.ts +71 -0
  370. package/dist/security/security-auditor.d.ts +55 -0
  371. package/dist/security/security-hardener.d.ts +61 -0
  372. package/dist/security/security-hardening-system.d.ts +238 -0
  373. package/dist/security/security-headers.d.ts +63 -0
  374. package/dist/security/security-orchestration-layer.d.ts +118 -0
  375. package/dist/security/security-scanner.d.ts +119 -0
  376. package/dist/services/inference-tuner.d.ts +76 -0
  377. package/dist/session/index.d.ts +3 -0
  378. package/dist/session/session-cleanup-manager.d.ts +117 -0
  379. package/dist/session/session-monitor.d.ts +132 -0
  380. package/dist/session/session-state-manager.d.ts +144 -0
  381. package/dist/skills/boot-orchestrator/SKILL.md +1 -5
  382. package/dist/skills/orchestrator/SKILL.md +35 -12
  383. package/dist/skills/researcher/SKILL.md +17 -4
  384. package/dist/skills/strategist/SKILL.md +12 -0
  385. package/dist/skills/testing-strategy/SKILL.md +13 -2
  386. package/dist/skills/xray-orchestrator/index.d.ts +12 -0
  387. package/dist/state/context-providers.d.ts +4 -0
  388. package/dist/state/index.d.ts +4 -0
  389. package/dist/state/state-manager.d.ts +41 -0
  390. package/dist/state/state-types.d.ts +5 -0
  391. package/dist/testing/memory-regression-suite.d.ts +105 -0
  392. package/dist/tools/assess-complexity-tool.d.ts +28 -0
  393. package/dist/tools/query-routing-tool.d.ts +17 -0
  394. package/dist/types/metamorphosis.d.ts +21 -0
  395. package/dist/utils/batch-operations.d.ts +25 -0
  396. package/dist/utils/codex-parser.d.ts +60 -0
  397. package/dist/utils/command-runner.d.ts +32 -0
  398. package/dist/utils/import-resolver.d.ts +54 -0
  399. package/dist/utils/language-detector.d.ts +43 -0
  400. package/dist/utils/path-resolver.d.ts +48 -0
  401. package/dist/utils/shutdown-handler.d.ts +26 -0
  402. package/dist/utils/task-graph.d.ts +29 -0
  403. package/dist/utils/test-template-generator.d.ts +25 -0
  404. package/dist/utils/token-manager.d.ts +48 -0
  405. package/dist/validation/agent-config-validator.d.ts +110 -0
  406. package/dist/validation/estimation-validator.d.ts +61 -0
  407. package/dist/validation/orchestration-flow-validator.d.ts +87 -0
  408. package/dist/validation/report-content-validator.d.ts +42 -0
  409. package/package.json +23 -8
  410. package/scripts/node/consumer-install-smoke.mjs +174 -0
  411. package/scripts/node/install-bridges.cjs +20 -6
  412. package/scripts/node/pre-publish-guard.js +107 -168
  413. package/scripts/node/reconcile-version.mjs +147 -0
  414. package/scripts/node/release-gate.mjs +66 -0
  415. package/scripts/node/release.js +5 -147
  416. package/scripts/node/release.mjs +106 -181
  417. package/scripts/node/setup.cjs +12 -22
  418. package/scripts/node/sync-versions.mjs +12 -134
  419. package/scripts/node/universal-version-manager.js +4 -0
  420. package/scripts/node/validate-release-docs.mjs +299 -0
  421. package/scripts/node/version-manager.mjs +225 -49
  422. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +20 -3
  423. package/src/mcps/config/__tests__/server-config-registry.test.ts +9 -0
  424. package/src/mcps/config/server-config-registry.ts +5 -3
  425. package/src/mcps/governance.server.ts +15 -2
  426. package/src/mcps/orchestrator/handlers/complexity-handler.ts +54 -3
  427. package/src/mcps/orchestrator/server.ts +1 -1
  428. package/src/mcps/researcher.server.ts +4 -0
  429. package/src/skills/boot-orchestrator/SKILL.md +1 -5
  430. package/src/skills/orchestrator/SKILL.md +35 -12
  431. package/src/skills/researcher/SKILL.md +17 -4
  432. package/src/skills/strategist/SKILL.md +12 -0
  433. package/src/skills/testing-strategy/SKILL.md +13 -2
  434. package/xray/config.json +25 -0
  435. package/xray/features.json +152 -0
  436. package/xray/features.schema.json +33 -0
@@ -0,0 +1,261 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Shared utilities for Grok CLI hooks — codex load, features, surface checks.
4
+ * Pure JS (no TS build) so hooks run from dist/ without compilation surprises.
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+
10
+ export const LEAD_DEV_RULES = [
11
+ 'Phased plan + todos; assign best subagent; monitor output',
12
+ 'Lead dev loops test→fix until green; no permission pings',
13
+ 'Per-suite test triage; full suite last',
14
+ 'Lead stays main; subagents execute; update todos',
15
+ 'Read all output; triage fix rerun',
16
+ 'No buck-passing — resolve every error',
17
+ 'Zero open errors at phase completion',
18
+ ];
19
+
20
+ /** Blocking codex patterns detectable in proposed edits (term → regex + message) */
21
+ export const CODEX_BLOCK_PATTERNS = [
22
+ { terms: [11], pattern: /:\s*any\b|as\s+any\b/g, message: 'Codex 11 Type Safety: no `any` types' },
23
+ { terms: [11], pattern: /@ts-ignore|@ts-expect-error/g, message: 'Codex 11 Type Safety: no @ts-ignore / @ts-expect-error' },
24
+ { terms: [29], pattern: /\beval\s*\(/g, message: 'Codex 29 Security: eval() prohibited' },
25
+ { terms: [2], pattern: /\bTODO\b|\bFIXME\b|\bSTUB\b/g, message: 'Codex 2: no TODO/FIXME/STUB in production code' },
26
+ { terms: [7], pattern: /console\.log\s*\(/g, message: 'Codex 7: no console.log debugging' },
27
+ ];
28
+
29
+ /** New-surface paths blocked when no_new_surface is on (codex 69) */
30
+ export const SURFACE_DENY_PATTERNS = [
31
+ { pattern: /(?:^|\/)src\/mcps\/[^/]+\.server\.(ts|js)$/i, message: 'Codex 69: new MCP server — rewire existing mcps/' },
32
+ { pattern: /(?:^|\/)src\/skills\/[^/]+\/SKILL\.md$/i, message: 'Codex 69: new skill — extend orchestrator skill or existing mcps' },
33
+ { pattern: /(?:^|\/)src\/mcps\/orchestrator\/handlers\/[^/]+-handler\.(ts|js)$/i, message: 'Codex 69: new orchestrator handler — merge into complexity-handler' },
34
+ { pattern: /(?:^|\/)src\/nucleus\/autonomy-kernel\.(ts|js)$/i, message: 'Codex 69: parallel autonomy kernel — use existing nucleus' },
35
+ { pattern: /(?:^|\/)src\/mcps\/[^/]+\/handlers\/autonomy-handler\.(ts|js)$/i, message: 'Codex 69: autonomy-handler removed — use complexity-handler' },
36
+ ];
37
+
38
+ const SUBAGENT_TOOLS = new Set([
39
+ 'spawn_subagent',
40
+ 'task',
41
+ 'Task',
42
+ ]);
43
+
44
+ const WRITE_TOOLS = new Set([
45
+ 'search_replace',
46
+ 'write',
47
+ 'Write',
48
+ 'Edit',
49
+ 'MultiEdit',
50
+ 'edit_notebook',
51
+ 'EditNotebook',
52
+ ]);
53
+
54
+ export function workspaceRoot() {
55
+ return (
56
+ process.env.GROK_WORKSPACE_ROOT ||
57
+ process.env.CLAUDE_PROJECT_DIR ||
58
+ process.env.XRAY_ROOT ||
59
+ process.cwd()
60
+ );
61
+ }
62
+
63
+ export function resolveFeaturesPath(root = workspaceRoot()) {
64
+ for (const p of [
65
+ path.join(root, '.xray', 'features.json'),
66
+ path.join(process.cwd(), '.xray', 'features.json'),
67
+ ]) {
68
+ if (fs.existsSync(p)) return p;
69
+ }
70
+ return null;
71
+ }
72
+
73
+ export function resolveCodexPath(root = workspaceRoot()) {
74
+ for (const p of [
75
+ path.join(root, '.xray', 'codex.json'),
76
+ path.join(process.cwd(), '.xray', 'codex.json'),
77
+ ]) {
78
+ if (fs.existsSync(p)) return p;
79
+ }
80
+ return null;
81
+ }
82
+
83
+ export function loadFeatures() {
84
+ const featuresPath = resolveFeaturesPath();
85
+ if (!featuresPath) return { lead_dev_mode: true, no_new_surface: true, per_suite_triage: true };
86
+ try {
87
+ const data = JSON.parse(fs.readFileSync(featuresPath, 'utf8'));
88
+ const orch = data.multi_agent_orchestration ?? {};
89
+ return {
90
+ lead_dev_mode: orch.enabled !== false && orch.lead_dev_mode !== false,
91
+ no_new_surface: orch.no_new_surface !== false,
92
+ per_suite_test_triage: orch.per_suite_test_triage !== false,
93
+ };
94
+ } catch {
95
+ return { lead_dev_mode: true, no_new_surface: true, per_suite_triage: true };
96
+ }
97
+ }
98
+
99
+ export function loadBlockingCodexTerms() {
100
+ const codexPath = resolveCodexPath();
101
+ if (!codexPath) return [];
102
+ try {
103
+ const data = JSON.parse(fs.readFileSync(codexPath, 'utf8'));
104
+ const terms = data.terms ?? {};
105
+ return Object.values(terms).filter(
106
+ (t) => t.enforcementLevel === 'blocking' || t.zeroTolerance === true,
107
+ );
108
+ } catch {
109
+ return [];
110
+ }
111
+ }
112
+
113
+ export function leadDevPlanPath(root = workspaceRoot()) {
114
+ return path.join(root, '.xray', 'state', 'lead-dev-plan.json');
115
+ }
116
+
117
+ export function hasFreshLeadDevPlan(maxAgeMs = 4 * 60 * 60 * 1000) {
118
+ const planPath = leadDevPlanPath();
119
+ if (!fs.existsSync(planPath)) return false;
120
+ try {
121
+ const stat = fs.statSync(planPath);
122
+ if (Date.now() - stat.mtimeMs > maxAgeMs) return false;
123
+ const plan = JSON.parse(fs.readFileSync(planPath, 'utf8'));
124
+ return plan.active === true;
125
+ } catch {
126
+ return false;
127
+ }
128
+ }
129
+
130
+ export function extractToolContext(event) {
131
+ const toolName = event.toolName || process.env.TOOL_NAME || 'unknown';
132
+ const toolInput = event.toolInput ?? {};
133
+ const paths = [];
134
+ let content = '';
135
+
136
+ if (toolInput.path) paths.push(String(toolInput.path));
137
+ if (toolInput.file_path) paths.push(String(toolInput.file_path));
138
+ if (toolInput.target_notebook) paths.push(String(toolInput.target_notebook));
139
+ if (Array.isArray(toolInput.paths)) paths.push(...toolInput.paths.map(String));
140
+
141
+ if (toolInput.new_string) content += String(toolInput.new_string);
142
+ if (toolInput.contents) content += String(toolInput.contents);
143
+ if (toolInput.command) content += String(toolInput.command);
144
+ if (toolInput.prompt) content += String(toolInput.prompt);
145
+
146
+ return { toolName, toolInput, paths, content, cmd: String(toolInput.command || '') };
147
+ }
148
+
149
+ export function checkCodexPatterns(content) {
150
+ if (!content) return null;
151
+ for (const { message, pattern } of CODEX_BLOCK_PATTERNS) {
152
+ if (pattern.test(content)) return message;
153
+ pattern.lastIndex = 0;
154
+ }
155
+ return null;
156
+ }
157
+
158
+ export function checkSurfaceArea(paths, root = workspaceRoot()) {
159
+ for (const rel of paths) {
160
+ const normalized = rel.replace(/\\/g, '/');
161
+ const abs = path.isAbsolute(rel) ? rel : path.join(root, rel);
162
+ if (fs.existsSync(abs)) continue;
163
+ for (const { pattern, message } of SURFACE_DENY_PATTERNS) {
164
+ if (pattern.test(normalized)) return `${message} (blocked: ${normalized})`;
165
+ }
166
+ }
167
+ return null;
168
+ }
169
+
170
+ export function checkSubagentGate(toolName, features) {
171
+ if (!features.lead_dev_mode) return null;
172
+ if (!SUBAGENT_TOOLS.has(toolName)) return null;
173
+ if (hasFreshLeadDevPlan()) return null;
174
+ return (
175
+ 'Codex 59/67: call xray-orchestrator analyze-complexity first — ' +
176
+ 'writes .xray/state/lead-dev-plan.json required before spawn_subagent'
177
+ );
178
+ }
179
+
180
+ export function checkFullTestSuite(cmd, features) {
181
+ if (!features.per_suite_test_triage) return null;
182
+ const cmdText = cmd.toLowerCase();
183
+ const isFullTestSuite =
184
+ /\b(npm\s+(run\s+)?test|vitest\s+run|pnpm\s+test|yarn\s+test)\b/.test(cmdText) &&
185
+ !/--\s+\S+\.test/.test(cmdText) &&
186
+ !/vitest\s+run\s+\S+\.test/.test(cmdText);
187
+ if (!isFullTestSuite) return null;
188
+ return (
189
+ 'Lead-dev test protocol: run individual test files first; ' +
190
+ 'full suite only after per-suite passes (override with focused test path)'
191
+ );
192
+ }
193
+
194
+ export function isWriteTool(toolName) {
195
+ return WRITE_TOOLS.has(toolName) || /write|edit|replace/i.test(toolName);
196
+ }
197
+
198
+ export function isShellTool(toolName) {
199
+ return /terminal|bash|shell|run_terminal/i.test(toolName);
200
+ }
201
+
202
+ export async function readStdinJson() {
203
+ const chunks = [];
204
+ for await (const chunk of process.stdin) chunks.push(chunk);
205
+ const raw = Buffer.concat(chunks).toString('utf8').trim();
206
+ if (!raw) return {};
207
+ try {
208
+ return JSON.parse(raw);
209
+ } catch {
210
+ return {};
211
+ }
212
+ }
213
+
214
+ export function sessionBootPath(root = workspaceRoot()) {
215
+ return path.join(root, '.xray', 'state', 'session-boot.json');
216
+ }
217
+
218
+ export function buildSessionBootPayload(root, source = '0xray/grok-session-start', extra = {}) {
219
+ const features = loadFeatures();
220
+ const blockingTerms = loadBlockingCodexTerms();
221
+ return {
222
+ hook: source,
223
+ lead_dev_mode: features.lead_dev_mode,
224
+ no_new_surface: features.no_new_surface,
225
+ codexBlockingTermCount: blockingTerms.length,
226
+ codexTerms: [59, 67, 68, 69],
227
+ rules: features.lead_dev_mode ? LEAD_DEV_RULES : [],
228
+ mcpIntake: 'xray-orchestrator → analyze-complexity (required before spawn_subagent)',
229
+ enforcement: 'PreToolUse hook — codex patterns + surface area + spawn gate',
230
+ workspaceRoot: root,
231
+ sessionId: process.env.GROK_SESSION_ID || null,
232
+ timestamp: new Date().toISOString(),
233
+ source,
234
+ ...extra,
235
+ };
236
+ }
237
+
238
+ export function writeSessionBoot(root, payload) {
239
+ try {
240
+ const stateDir = path.join(root, '.xray', 'state');
241
+ fs.mkdirSync(stateDir, { recursive: true });
242
+ fs.writeFileSync(sessionBootPath(root), JSON.stringify(payload, null, 2));
243
+ return sessionBootPath(root);
244
+ } catch {
245
+ return null;
246
+ }
247
+ }
248
+
249
+ /** Boot on SessionStart, UserPromptSubmit, or first PreToolUse if missing. */
250
+ export function ensureSessionBoot(root = workspaceRoot(), source = '0xray/grok-boot') {
251
+ const bootPath = sessionBootPath(root);
252
+ if (fs.existsSync(bootPath)) {
253
+ try {
254
+ const existing = JSON.parse(fs.readFileSync(bootPath, 'utf8'));
255
+ if (existing.lead_dev_mode !== undefined) return bootPath;
256
+ } catch {
257
+ /* rewrite corrupt boot */
258
+ }
259
+ }
260
+ return writeSessionBoot(root, buildSessionBootPayload(root, source));
261
+ }
@@ -1,134 +1,104 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Grok CLI PreToolUse Hook Handler for 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.
3
+ * Grok CLI PreToolUse — ironclad OS gate
4
+ * Contract: stdin JSON → stdout {"decision":"allow"} | {"decision":"deny","reason":"..."}
8
5
  */
9
6
 
10
- import fs from 'fs';
11
- import path from 'path';
7
+ import {
8
+ checkCodexPatterns,
9
+ checkFullTestSuite,
10
+ checkSubagentGate,
11
+ checkSurfaceArea,
12
+ ensureSessionBoot,
13
+ isShellTool,
14
+ isWriteTool,
15
+ loadFeatures,
16
+ readStdinJson,
17
+ workspaceRoot,
18
+ } from './grok-hook-utils.js';
19
+ import { appendHookActivity } from './grok-hook-activity.js';
12
20
 
13
- const log = (msg) => { try { console.error(`[0xRay:GrokHook] ${msg}`); } catch { /* noop */ } };
21
+ function finish(root, decision, reason, hint, toolName) {
22
+ const out = { decision };
23
+ if (reason) out.reason = reason;
24
+ if (hint) out.hint = hint;
25
+ console.log(JSON.stringify(out));
26
+ appendHookActivity(root, 'grok-pre-tool-use', decision, decision === 'deny' ? 'error' : 'info', {
27
+ tool: toolName,
28
+ reason: reason || hint || null,
29
+ livePath: true,
30
+ });
31
+ process.exit(0);
32
+ }
14
33
 
15
- function findGovernanceCore() {
16
- const here = path.dirname(new URL(import.meta.url).pathname);
34
+ async function main() {
35
+ const root = workspaceRoot();
36
+ let toolName = 'unknown';
17
37
 
18
- // Priority: explicit dev root
19
- const devRoot = process.env.XRAY_ROOT;
20
- if (devRoot) {
21
- const devCandidate = path.resolve(devRoot, 'dist/governance/governance-core.js');
22
- if (fs.existsSync(devCandidate)) return devCandidate;
23
- }
38
+ try {
39
+ const event = await readStdinJson();
40
+ const eventRoot = event.workspaceRoot || event.cwd || root;
41
+ ensureSessionBoot(eventRoot, '0xray/grok-pre-tool-use-boot');
24
42
 
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
+ const features = loadFeatures();
44
+ const ctx = extractFromEvent(event);
45
+ toolName = ctx.toolName;
46
+ const { paths, content, cmd } = ctx;
43
47
 
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 === '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 {}
48
+ const subagentBlock = checkSubagentGate(toolName, features);
49
+ if (subagentBlock) finish(eventRoot, 'deny', subagentBlock, null, toolName);
50
+
51
+ if (features.no_new_surface && isWriteTool(toolName) && paths.length) {
52
+ const surfaceBlock = checkSurfaceArea(paths, eventRoot);
53
+ if (surfaceBlock) finish(eventRoot, 'deny', surfaceBlock, null, toolName);
57
54
  }
58
- const parent = path.dirname(current);
59
- if (parent === current) break;
60
- current = parent;
61
- }
62
- return results;
63
- }
64
55
 
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
- }
56
+ if (isWriteTool(toolName) && content) {
57
+ const codexBlock = checkCodexPatterns(content);
58
+ if (codexBlock) finish(eventRoot, 'deny', codexBlock, null, toolName);
59
+ }
80
60
 
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');
61
+ if (isShellTool(toolName) && cmd) {
62
+ const destructive =
63
+ /\brm\s+-rf\s+\/\b|\bmkfs\b|\bdd\s+if=|:()\s*\{\s*:\|&\s*\}\s*;:/i.test(cmd);
64
+ if (destructive) finish(eventRoot, 'deny', 'Blocked destructive shell command', null, toolName);
65
+
66
+ const testHint = checkFullTestSuite(cmd, features);
67
+ if (testHint) finish(eventRoot, 'allow', null, testHint, toolName);
114
68
  }
115
69
 
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
70
+ finish(eventRoot, 'allow', null, null, toolName);
128
71
  } catch (err) {
129
- log(`Hook failure (non-fatal): ${err.message}`);
130
- process.exit(0);
72
+ appendHookActivity(root, 'grok-pre-tool-use', 'hook-error', 'error', {
73
+ tool: toolName,
74
+ error: err.message,
75
+ });
76
+ finish(root, 'allow', null, null, toolName);
131
77
  }
132
78
  }
133
79
 
80
+ function extractFromEvent(event) {
81
+ const toolName = event.toolName || process.env.TOOL_NAME || 'unknown';
82
+ const toolInput = event.toolInput ?? {};
83
+ const paths = [];
84
+ let content = '';
85
+
86
+ if (toolInput.path) paths.push(String(toolInput.path));
87
+ if (toolInput.file_path) paths.push(String(toolInput.file_path));
88
+ if (toolInput.target_notebook) paths.push(String(toolInput.target_notebook));
89
+ if (Array.isArray(toolInput.paths)) paths.push(...toolInput.paths.map(String));
90
+
91
+ if (toolInput.new_string) content += String(toolInput.new_string);
92
+ if (toolInput.contents) content += String(toolInput.contents);
93
+ if (toolInput.command) content += String(toolInput.command);
94
+ if (toolInput.prompt) content += String(toolInput.prompt);
95
+
96
+ return {
97
+ toolName,
98
+ paths,
99
+ content,
100
+ cmd: String(toolInput.command || ''),
101
+ };
102
+ }
103
+
134
104
  main();
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Grok SessionStart / UserPromptSubmit — writes session-boot.json + activity.log.
4
+ * Stdout is ignored by Grok for these events; side effects are the suit contract.
5
+ */
6
+
7
+ import {
8
+ buildSessionBootPayload,
9
+ ensureSessionBoot,
10
+ readStdinJson,
11
+ workspaceRoot,
12
+ writeSessionBoot,
13
+ } from './grok-hook-utils.js';
14
+ import { appendHookActivity } from './grok-hook-activity.js';
15
+
16
+ const HOOK_EVENT = process.env.GROK_HOOK_EVENT || 'session_start';
17
+
18
+ async function main() {
19
+ const root = workspaceRoot();
20
+ try {
21
+ const event = await readStdinJson();
22
+ const eventRoot = event.workspaceRoot || event.cwd || root;
23
+ const source =
24
+ HOOK_EVENT === 'user_prompt_submit'
25
+ ? '0xray/grok-user-prompt-submit'
26
+ : '0xray/grok-session-start';
27
+
28
+ const payload = buildSessionBootPayload(eventRoot, source, {
29
+ hookEvent: HOOK_EVENT,
30
+ sessionId: event.sessionId || process.env.GROK_SESSION_ID || null,
31
+ });
32
+
33
+ const bootPath = writeSessionBoot(eventRoot, payload) || ensureSessionBoot(eventRoot, source);
34
+
35
+ appendHookActivity(eventRoot, 'grok-session-start', 'session-boot-written', 'success', {
36
+ bootPath,
37
+ hookEvent: HOOK_EVENT,
38
+ lead_dev_mode: payload.lead_dev_mode,
39
+ });
40
+
41
+ console.log(JSON.stringify(payload));
42
+ process.exit(0);
43
+ } catch (err) {
44
+ appendHookActivity(root, 'grok-session-start', 'session-boot-error', 'error', {
45
+ error: err.message,
46
+ hookEvent: HOOK_EVENT,
47
+ });
48
+ process.exit(0);
49
+ }
50
+ }
51
+
52
+ main();
@@ -20,11 +20,28 @@
20
20
  "hooks": [
21
21
  {
22
22
  "type": "command",
23
- "command": "echo",
24
- "args": ["[0xRay] Grok session started with 0xRay governance enabled"]
23
+ "command": "node",
24
+ "args": [
25
+ "${XRAY_AI_PATH:-node_modules/0xray}/dist/integrations/grok/hooks/session-start.js"
26
+ ],
27
+ "timeout": 15000
28
+ }
29
+ ]
30
+ }
31
+ ],
32
+ "UserPromptSubmit": [
33
+ {
34
+ "hooks": [
35
+ {
36
+ "type": "command",
37
+ "command": "node",
38
+ "args": [
39
+ "${XRAY_AI_PATH:-node_modules/0xray}/dist/integrations/grok/hooks/session-start.js"
40
+ ],
41
+ "timeout": 15000
25
42
  }
26
43
  ]
27
44
  }
28
45
  ]
29
46
  }
30
- }
47
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * 0xRay API Server
3
+ *
4
+ * HTTP API server that OpenClaw skills call to invoke 0xRay capabilities.
5
+ * This is the bridge between OpenClaw skills and 0xRay.
6
+ *
7
+ * @since 2026-03-14
8
+ */
9
+ import { XrayAPIServerConfig, AgentInvokeRequest, AgentInvokeResponse, APIServerStatistics } from './types.js';
10
+ /**
11
+ * Agent invoker interface - implemented by 0xRay
12
+ */
13
+ export interface AgentInvoker {
14
+ invoke(request: AgentInvokeRequest): Promise<AgentInvokeResponse>;
15
+ getStatus?(): Promise<{
16
+ healthy: boolean;
17
+ version: string;
18
+ }>;
19
+ }
20
+ /**
21
+ * 0xRay API Server
22
+ */
23
+ export declare class XrayAPIServer {
24
+ private server;
25
+ private config;
26
+ private agentInvoker;
27
+ private apiKey;
28
+ private stats;
29
+ private responseTimes;
30
+ private logger;
31
+ constructor(config: XrayAPIServerConfig);
32
+ /**
33
+ * Set the agent invoker
34
+ */
35
+ setAgentInvoker(invoker: AgentInvoker): void;
36
+ /**
37
+ * Start the API server
38
+ */
39
+ start(): Promise<void>;
40
+ /**
41
+ * Stop the API server
42
+ */
43
+ stop(): Promise<void>;
44
+ /**
45
+ * Check if server is running
46
+ */
47
+ isRunning(): boolean;
48
+ /**
49
+ * Get server statistics
50
+ */
51
+ getStats(): APIServerStatistics;
52
+ /**
53
+ * Handle incoming HTTP request
54
+ */
55
+ private handleRequest;
56
+ /**
57
+ * Handle health check request
58
+ */
59
+ private handleHealth;
60
+ /**
61
+ * Handle agent invoke request
62
+ */
63
+ private handleAgentInvoke;
64
+ /**
65
+ * Handle agent status request
66
+ */
67
+ private handleAgentStatus;
68
+ private handleGovern;
69
+ private handleApply;
70
+ /**
71
+ * Validate API key using constant-time comparison to prevent timing attacks
72
+ */
73
+ private validateApiKey;
74
+ /**
75
+ * Read request body
76
+ */
77
+ private readBody;
78
+ /**
79
+ * Send JSON response
80
+ */
81
+ private sendResponse;
82
+ }
83
+ /**
84
+ * Factory function to create API server
85
+ */
86
+ export declare function createXrayAPIServer(config: XrayAPIServerConfig): XrayAPIServer;