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
@@ -2,30 +2,29 @@
2
2
 
3
3
  /**
4
4
  * Pre-Publish Validation Script
5
- *
6
- * Enforces all requirements before publishing:
7
- * 1. Git status clean (committed & pushed)
8
- * 2. package.json version matches version manager
9
- * 3. Version been manager has run
10
- * 4. All tests pass
11
- * 5. Build succeeds
12
- *
13
- * Usage:
14
- * node scripts/node/pre-publish-guard.js
15
- * npm run pre-publish-guard
5
+ *
6
+ * Full mode: git + reconcile + build + test + consumer smoke
7
+ * --verify-only: git + reconcile + (optional smoke via release-gate)
8
+ * --skip-smoke: skip consumer install smoke
9
+ * --skip-build / --skip-tests: skip redundant steps when gate already ran
16
10
  */
17
11
 
18
12
  import { execSync } from 'child_process';
19
13
  import fs from 'fs';
20
14
  import path from 'path';
21
15
  import { fileURLToPath } from 'url';
22
- import { createRequire } from 'module';
23
16
 
24
- const require = createRequire(import.meta.url);
25
17
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
26
18
  const rootDir = path.resolve(__dirname, '../..');
27
19
 
28
- // Colors
20
+ const verifyOnly = process.argv.includes('--verify-only');
21
+ const skipSmoke =
22
+ process.argv.includes('--skip-smoke') ||
23
+ process.env.SKIP_CONSUMER_SMOKE === '1' ||
24
+ verifyOnly;
25
+ const skipBuild = process.argv.includes('--skip-build') || verifyOnly;
26
+ const skipTests = process.argv.includes('--skip-tests') || verifyOnly;
27
+
29
28
  const RED = '\x1b[31m';
30
29
  const GREEN = '\x1b[32m';
31
30
  const YELLOW = '\x1b[33m';
@@ -48,228 +47,168 @@ function log(msg, type = 'info') {
48
47
 
49
48
  function run(cmd, options = {}) {
50
49
  try {
51
- return execSync(cmd, {
52
- cwd: rootDir,
53
- stdio: 'pipe',
50
+ return execSync(cmd, {
51
+ cwd: rootDir,
52
+ stdio: 'pipe',
54
53
  encoding: 'utf-8',
55
- ...options
54
+ ...options,
56
55
  }).trim();
57
- } catch (e) {
56
+ } catch {
58
57
  return null;
59
58
  }
60
59
  }
61
60
 
61
+ /** Runtime/generated paths only — never ignore scripts/, src/, or CHANGELOG */
62
+ const ARTIFACT_PREFIXES = [
63
+ '.opencode/codex.codex',
64
+ '.opencode/enforcer-config.json',
65
+ '.opencode/package.json',
66
+ '.opencode/command/',
67
+ '.opencode/activity-report.json',
68
+ '.opencode/init.sh',
69
+ '.xray/inference/',
70
+ 'logs/',
71
+ 'backups/',
72
+ '.ci-reports/',
73
+ ];
74
+
62
75
  function checkGitStatus() {
63
76
  log('Checking git status...', 'step');
64
-
65
- // Check for uncommitted changes
77
+
66
78
  const status = run('git status --porcelain');
67
79
  if (status && status.length > 0) {
68
- // Allow untracked files but not uncommitted changes
69
- const lines = status.split('\n').filter(l => !l.startsWith('??'));
70
-
71
- // Filter out files modified by prepare-consumer and version:sync (build artifacts)
72
- // These are generated from source and don't need separate commits
73
- const artifactPrefixes = [
74
- '.opencode/codex.codex',
75
- '.opencode/enforcer-config.json',
76
- '.opencode/package.json',
77
- '.opencode/command/',
78
- '.opencode/activity-report.json',
79
- 'command/',
80
- 'enforcer-config.json',
81
- 'docs/',
82
- 'tests/',
83
- 'tweets/',
84
- 'scripts/',
85
- 'src/__tests__/',
86
- 'src/skills/registry.json',
87
- 'CHANGELOG.md',
88
- 'AGENTS.md',
89
- 'AGENTS-full.md',
90
- 'AGENTS-consumer.md',
91
- 'README.md',
92
- 'logs/',
93
- 'backups/',
94
- 'Users/',
95
- '.xray/inference/',
96
- ];
97
-
98
- const realChanges = lines.filter(l => {
99
- const filePath = l.slice(3); // skip status prefix (e.g., " M " or "M ")
100
- return !artifactPrefixes.some(prefix => filePath.startsWith(prefix));
80
+ const lines = status.split('\n').filter((l) => !l.startsWith('??'));
81
+
82
+ const realChanges = lines.filter((l) => {
83
+ const filePath = l.slice(2).trim();
84
+ return !ARTIFACT_PREFIXES.some((prefix) => filePath.startsWith(prefix));
101
85
  });
102
-
86
+
103
87
  if (realChanges.length > 0) {
104
- errors.push(`Git has uncommitted source changes:\n${realChanges.join('\n')}`);
105
- log('Git has uncommitted source changes', 'error');
88
+ errors.push(`Git has uncommitted changes:\n${realChanges.join('\n')}`);
89
+ log('Uncommitted changes block release', 'error');
106
90
  return false;
107
91
  }
108
-
92
+
109
93
  if (lines.length > 0) {
110
- log('Uncommitted build artifacts present (OK — generated by version sync)', 'info');
94
+ log('Generated artifacts present (OK)', 'info');
111
95
  }
112
- log('Untracked files present (OK)', 'warn');
113
96
  }
114
-
115
- // Check if current branch is up to date with remote
97
+
116
98
  const currentBranch = run('git rev-parse --abbrev-ref HEAD');
117
99
  const remoteCommit = run(`git rev-parse origin/${currentBranch} 2>/dev/null || echo ""`);
118
100
  const localCommit = run('git rev-parse HEAD');
119
-
101
+
120
102
  if (remoteCommit && remoteCommit !== localCommit) {
121
- errors.push(`Local commit ${localCommit.slice(0,7)} not pushed to origin/${currentBranch}`);
103
+ errors.push(`Local commit ${localCommit.slice(0, 7)} not pushed to origin/${currentBranch}`);
122
104
  log(`Not pushed to origin/${currentBranch}`, 'error');
123
105
  return false;
124
106
  }
125
-
126
- log(`Git status OK (committed & pushed)`, 'success');
107
+
108
+ log('Git status OK', 'success');
127
109
  return true;
128
110
  }
129
111
 
130
- function checkVersionSync() {
131
- log('Checking version synchronization...', 'step');
132
-
133
- const pkgPath = path.join(rootDir, 'package.json');
134
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
135
- const pkgVersion = pkg.version;
136
-
137
- const vmPath = path.join(rootDir, 'scripts/node/universal-version-manager.js');
138
- const vmContent = fs.readFileSync(vmPath, 'utf-8');
139
- const usesPackageSsot =
140
- vmContent.includes('readPackageVersion()') &&
141
- /version:\s*PACKAGE_VERSION/.test(vmContent);
142
-
143
- if (usesPackageSsot) {
144
- log(`Version SSOT: package.json (${pkgVersion})`, 'success');
112
+ function checkVersionReconcile() {
113
+ log('Checking version reconcile...', 'step');
114
+ try {
115
+ execSync('node scripts/node/reconcile-version.mjs --check', {
116
+ cwd: rootDir,
117
+ stdio: 'inherit',
118
+ });
119
+ log('Version reconcile OK', 'success');
145
120
  return true;
146
- }
147
-
148
- const versionMatch = vmContent.match(/framework:\s*\{[\s\S]*?version:\s*"([^"]+)"/);
149
- if (!versionMatch) {
150
- errors.push('Cannot find framework version in version manager');
121
+ } catch {
122
+ errors.push('Version reconcile failed — run: npm run version:reconcile');
151
123
  return false;
152
124
  }
153
-
154
- const vmVersion = versionMatch[1];
155
- if (pkgVersion !== vmVersion) {
156
- warnings.push(`Version mismatch: package.json (${pkgVersion}) != version manager (${vmVersion})`);
157
- log(`Version mismatch: package.json=${pkgVersion}, version-manager=${vmVersion}`, 'warn');
158
- } else {
159
- log(`Versions aligned: ${pkgVersion}`, 'success');
160
- }
161
- return true;
162
125
  }
163
126
 
164
- function checkVersionManagerRan() {
165
- log('Checking version manager was run...', 'step');
166
-
167
- // Check that version manager script has current date as lastUpdated
168
- const vmPath = path.join(rootDir, 'scripts/node/universal-version-manager.js');
169
- const vmContent = fs.readFileSync(vmPath, 'utf-8');
170
-
171
- // Check that files have been updated (look for recent timestamps or version)
172
- const { resolveConfigPath } = require('../helpers/resolve-config-path.cjs');
173
- let features;
127
+ function runBuild() {
128
+ if (skipBuild) {
129
+ log('Build skipped', 'info');
130
+ return true;
131
+ }
132
+ log('Running build...', 'step');
174
133
  try {
175
- const featuresPath = resolveConfigPath('features.json', rootDir);
176
- features = JSON.parse(fs.readFileSync(featuresPath, 'utf-8'));
177
- // Version manager should have updated version fields
178
- if (!features.version && !features.xray_version) {
179
- warnings.push('features.json may not have been synced by version manager');
180
- log('features.json may need version sync', 'warn');
181
- } else {
182
- log('Version manager appears to have run', 'success');
183
- }
134
+ execSync('npm run build', { cwd: rootDir, stdio: 'inherit' });
135
+ log('Build succeeded', 'success');
136
+ return true;
184
137
  } catch {
185
- log('features.json not found — skipping version sync check', 'warn');
138
+ errors.push('Build failed');
139
+ return false;
186
140
  }
187
-
188
- return true;
189
141
  }
190
142
 
191
143
  function runTests() {
144
+ if (skipTests) {
145
+ log('Tests skipped', 'info');
146
+ return true;
147
+ }
192
148
  log('Running tests...', 'step');
193
-
194
149
  try {
195
150
  execSync('npm test', { cwd: rootDir, stdio: 'inherit' });
196
151
  log('Tests passed', 'success');
197
152
  return true;
198
- } catch (e) {
153
+ } catch {
199
154
  errors.push('Tests failed');
200
- log('Tests failed', 'error');
201
155
  return false;
202
156
  }
203
157
  }
204
158
 
205
- function runBuild() {
206
- log('Running build...', 'step');
207
-
159
+ function runConsumerSmoke() {
160
+ if (skipSmoke) {
161
+ log('Consumer smoke skipped', 'warn');
162
+ return true;
163
+ }
164
+ log('Running consumer install smoke...', 'step');
208
165
  try {
209
- execSync('npm run build', { cwd: rootDir, stdio: 'inherit' });
210
- log('Build succeeded', 'success');
166
+ execSync('node scripts/node/consumer-install-smoke.mjs', { cwd: rootDir, stdio: 'inherit' });
167
+ log('Consumer smoke passed', 'success');
211
168
  return true;
212
- } catch (e) {
213
- errors.push('Build failed');
214
- log('Build failed', 'error');
169
+ } catch {
170
+ errors.push('Consumer install smoke failed');
215
171
  return false;
216
172
  }
217
173
  }
218
174
 
219
175
  function main() {
220
176
  console.log('\n' + '='.repeat(60));
221
- log('PRE-PUBLISH VALIDATION', 'step');
177
+ log(verifyOnly ? 'PRE-PUBLISH VERIFY' : 'PRE-PUBLISH VALIDATION', 'step');
222
178
  console.log('='.repeat(60) + '\n');
223
-
179
+
224
180
  const checks = [
225
- { name: 'Git Status', fn: checkGitStatus },
226
- { name: 'Version Sync', fn: checkVersionSync },
227
- { name: 'Version Manager', fn: checkVersionManagerRan },
228
- { name: 'Build', fn: runBuild },
229
- { name: 'Tests', fn: runTests },
181
+ checkGitStatus,
182
+ checkVersionReconcile,
183
+ runBuild,
184
+ runTests,
185
+ runConsumerSmoke,
230
186
  ];
231
-
187
+
232
188
  let allPassed = true;
233
- for (const check of checks) {
234
- if (!check.fn()) {
189
+ for (const fn of checks) {
190
+ if (!fn()) {
235
191
  allPassed = false;
236
192
  break;
237
193
  }
238
194
  }
239
-
195
+
240
196
  console.log('\n' + '='.repeat(60));
241
-
197
+
242
198
  if (allPassed) {
243
- log('ALL CHECKS PASSED - Ready to publish!', 'success');
199
+ log('ALL CHECKS PASSED', 'success');
244
200
  console.log('='.repeat(60) + '\n');
245
- console.log(`Run: ${GREEN}npm publish${RESET}\n`);
246
201
  process.exit(0);
247
- } else {
248
- log('VALIDATION FAILED', 'error');
249
- console.log('='.repeat(60) + '\n');
250
-
251
- if (errors.length > 0) {
252
- console.log(`${RED}Errors:${RESET}`);
253
- errors.forEach(e => console.log(` • ${e}`));
254
- console.log('');
255
- }
256
-
257
- if (warnings.length > 0) {
258
- console.log(`${YELLOW}Warnings:${RESET}`);
259
- warnings.forEach(w => console.log(` • ${w}`));
260
- console.log('');
261
- }
262
-
263
- console.log(`${YELLOW}To fix:${RESET}`);
264
- console.log(' 1. Commit & push all changes: git add -A && git commit -m "..." && git push');
265
- console.log(' 2. Bump version in package.json');
266
- console.log(' 3. Update version in scripts/node/universal-version-manager.js');
267
- console.log(' 4. Run: npm run version:sync');
268
- console.log(' 5. Commit & push version changes');
269
- console.log(' 6. Run: npm run pre-publish-guard\n');
270
-
271
- process.exit(1);
272
202
  }
203
+
204
+ log('VALIDATION FAILED', 'error');
205
+ console.log('='.repeat(60) + '\n');
206
+ if (errors.length) {
207
+ console.log(`${RED}Errors:${RESET}`);
208
+ errors.forEach((e) => console.log(` • ${e}`));
209
+ }
210
+ console.log(`\n${YELLOW}Fix:${RESET} npm run release:gate or npm run version:reconcile\n`);
211
+ process.exit(1);
273
212
  }
274
213
 
275
- main();
214
+ main();
@@ -0,0 +1,147 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * reconcile-version.mjs — Single version truth before bump/tag/publish.
4
+ *
5
+ * Sources: npm registry, package.json, latest git tag.
6
+ *
7
+ * Usage:
8
+ * node scripts/node/reconcile-version.mjs # report
9
+ * node scripts/node/reconcile-version.mjs --check # fail if not publish-ready
10
+ * node scripts/node/reconcile-version.mjs patch # print next patch target
11
+ * node scripts/node/reconcile-version.mjs patch --apply # write package.json
12
+ */
13
+
14
+ import { execSync } from "child_process";
15
+ import fs from "fs";
16
+ import path from "path";
17
+ import { fileURLToPath } from "url";
18
+
19
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
20
+ const rootDir = path.resolve(__dirname, "../..");
21
+ const pkgPath = path.join(rootDir, "package.json");
22
+
23
+ const args = process.argv.slice(2);
24
+ const checkMode = args.includes("--check");
25
+ const applyMode = args.includes("--apply");
26
+ const printTarget = args.includes("--print-target");
27
+ const bumpType = args.find((a) => ["major", "minor", "patch"].includes(a)) || null;
28
+
29
+ function run(cmd) {
30
+ try {
31
+ return execSync(cmd, { cwd: rootDir, encoding: "utf-8" }).trim();
32
+ } catch {
33
+ return null;
34
+ }
35
+ }
36
+
37
+ function readLocalVersion() {
38
+ return JSON.parse(fs.readFileSync(pkgPath, "utf-8")).version;
39
+ }
40
+
41
+ function readPublishedVersion() {
42
+ const v = run("npm view 0xray version");
43
+ return v || "0.0.0";
44
+ }
45
+
46
+ function readLatestTag() {
47
+ const tag = run('git describe --tags --abbrev=0 2>/dev/null');
48
+ if (!tag) return null;
49
+ return tag.replace(/^v/, "");
50
+ }
51
+
52
+ function parseVersion(version) {
53
+ const [major, minor, patch] = version.split(".").map((n) => parseInt(n, 10));
54
+ return { major, minor, patch };
55
+ }
56
+
57
+ function bumpVersion(version, type) {
58
+ const v = parseVersion(version);
59
+ switch (type) {
60
+ case "major":
61
+ return `${v.major + 1}.0.0`;
62
+ case "minor":
63
+ return `${v.major}.${v.minor + 1}.0`;
64
+ case "patch":
65
+ return `${v.major}.${v.minor}.${v.patch + 1}`;
66
+ default:
67
+ return version;
68
+ }
69
+ }
70
+
71
+ function compare(a, b) {
72
+ const va = parseVersion(a);
73
+ const vb = parseVersion(b);
74
+ if (va.major !== vb.major) return va.major - vb.major;
75
+ if (va.minor !== vb.minor) return va.minor - vb.minor;
76
+ return va.patch - vb.patch;
77
+ }
78
+
79
+ function maxVersion(...versions) {
80
+ return versions.reduce((best, cur) => (compare(cur, best) > 0 ? cur : best));
81
+ }
82
+
83
+ function fail(msg) {
84
+ console.error(`❌ ${msg}`);
85
+ process.exit(1);
86
+ }
87
+
88
+ function main() {
89
+ const local = readLocalVersion();
90
+ const npm = readPublishedVersion();
91
+ const tag = readLatestTag();
92
+
93
+ const baseline = maxVersion(npm, tag || "0.0.0");
94
+ const target = bumpType ? bumpVersion(baseline, bumpType) : local;
95
+
96
+ if (printTarget && bumpType) {
97
+ console.log(target);
98
+ return;
99
+ }
100
+
101
+ console.log("\n=== Version Reconcile ===\n");
102
+ console.log(` npm registry : ${npm}`);
103
+ console.log(` package.json : ${local}`);
104
+ console.log(` latest tag : ${tag ? `v${tag}` : "(none)"}`);
105
+ if (bumpType) {
106
+ console.log(` bump ${bumpType} : ${target} (from baseline ${baseline})`);
107
+ }
108
+
109
+ if (applyMode && bumpType) {
110
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
111
+ pkg.version = target;
112
+ fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
113
+ console.log(`\n✅ Updated package.json → ${target}`);
114
+ }
115
+
116
+ if (!checkMode) {
117
+ if (compare(local, npm) <= 0 && !bumpType) {
118
+ console.log("\n⚠️ Local version is not ahead of npm — bump before publishing.");
119
+ } else {
120
+ console.log("\n✅ Reconcile report complete.");
121
+ }
122
+ return;
123
+ }
124
+
125
+ // Strict checks for release gate / pre-tag
126
+ if (compare(local, npm) <= 0) {
127
+ fail(`package.json (${local}) must be > npm (${npm}). Run: node scripts/node/reconcile-version.mjs patch --apply`);
128
+ }
129
+
130
+ if (tag && compare(local, tag) < 0) {
131
+ fail(`package.json (${local}) is behind latest tag v${tag}`);
132
+ }
133
+
134
+ if (tag && compare(local, tag) === 0 && compare(npm, local) < 0) {
135
+ fail(`tag v${tag} exists but npm is only ${npm} — publish or retag`);
136
+ }
137
+
138
+ if (tag && compare(local, tag) > 0 && compare(npm, tag) === 0) {
139
+ console.log(`✅ Ready to tag v${local} (npm at ${npm})`);
140
+ } else if (compare(local, npm) > 0) {
141
+ console.log(`✅ Ready to publish ${local} (npm at ${npm})`);
142
+ } else {
143
+ console.log("✅ Version reconcile OK");
144
+ }
145
+ }
146
+
147
+ main();
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * release-gate.mjs — Single release checkpoint.
4
+ *
5
+ * Modes:
6
+ * (default) build + test + consumer smoke — run once before commit
7
+ * --verify-only git + reconcile + release docs + consumer smoke — after push, before tag
8
+ * --skip-smoke skip consumer install smoke
9
+ * --skip-docs skip release docs validation (not recommended for publish)
10
+ *
11
+ * Usage:
12
+ * node scripts/node/release-gate.mjs
13
+ * node scripts/node/release-gate.mjs --verify-only
14
+ */
15
+
16
+ import { execSync } from "child_process";
17
+ import path from "path";
18
+ import { fileURLToPath } from "url";
19
+
20
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
21
+ const rootDir = path.resolve(__dirname, "../..");
22
+ const verifyOnly = process.argv.includes("--verify-only");
23
+ const skipSmoke = process.argv.includes("--skip-smoke");
24
+ const skipDocs = process.argv.includes("--skip-docs");
25
+
26
+ function step(label, cmd) {
27
+ console.log(`\n${"─".repeat(60)}\n🔄 ${label}\n${"─".repeat(60)}\n`);
28
+ execSync(cmd, { cwd: rootDir, stdio: "inherit" });
29
+ }
30
+
31
+ function main() {
32
+ const mode = verifyOnly ? "verify" : "full";
33
+ console.log("\n╔════════════════════════════════════════════════════════╗");
34
+ console.log(`║ 🛡️ 0xRay Release Gate (${mode})`.padEnd(57) + "║");
35
+ console.log("╚════════════════════════════════════════════════════════╝");
36
+
37
+ try {
38
+ if (verifyOnly) {
39
+ step("1/4 Git + reconcile", "node scripts/node/pre-publish-guard.js --verify-only");
40
+ if (!skipDocs) {
41
+ step("2/4 Release docs", "node scripts/node/validate-release-docs.mjs");
42
+ }
43
+ if (!skipSmoke) {
44
+ step("3/4 Consumer install smoke", "node scripts/node/consumer-install-smoke.mjs");
45
+ }
46
+ } else {
47
+ step("1/4 Build", "npm run build");
48
+ step("2/4 Tests", "npm test");
49
+ if (!skipSmoke) {
50
+ step("3/4 Consumer install smoke", "node scripts/node/consumer-install-smoke.mjs");
51
+ }
52
+ if (!skipDocs && process.argv.includes("--with-docs")) {
53
+ step("4/4 Release docs", "node scripts/node/validate-release-docs.mjs");
54
+ }
55
+ }
56
+
57
+ console.log("\n╔════════════════════════════════════════════════════════╗");
58
+ console.log("║ ✅ RELEASE GATE PASSED ║");
59
+ console.log("╚════════════════════════════════════════════════════════╝\n");
60
+ } catch {
61
+ console.error("\n❌ RELEASE GATE FAILED — do not tag or publish\n");
62
+ process.exit(1);
63
+ }
64
+ }
65
+
66
+ main();