0xray 3.0.12 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1162) hide show
  1. package/.opencode/agents/testing-best-practices.yml +12 -0
  2. package/.opencode/codex.codex +2 -2
  3. package/.opencode/commands/dependency-audit.md +3 -3
  4. package/.opencode/enforcer-config.json +3 -3
  5. package/.opencode/init.sh +18 -18
  6. package/.opencode/skills/api-design/SKILL.md +37 -0
  7. package/.opencode/skills/architect-tools/SKILL.md +37 -0
  8. package/.opencode/skills/architecture-patterns/SKILL.md +37 -0
  9. package/.opencode/skills/auto-format/SKILL.md +37 -0
  10. package/.opencode/skills/backend-engineer/SKILL.md +49 -0
  11. package/.opencode/skills/boot-orchestrator/SKILL.md +37 -0
  12. package/.opencode/skills/bug-triage/SKILL.md +43 -0
  13. package/.opencode/skills/code-analyzer/SKILL.md +45 -0
  14. package/.opencode/skills/code-review/SKILL.md +52 -0
  15. package/.opencode/skills/content-creator/SKILL.md +38 -0
  16. package/.opencode/skills/database-engineer/SKILL.md +46 -0
  17. package/.opencode/skills/devops-engineer/SKILL.md +49 -0
  18. package/.opencode/skills/enforcer/SKILL.md +37 -0
  19. package/.opencode/skills/framework-compliance-audit/SKILL.md +37 -0
  20. package/.opencode/skills/frontend-engineer/SKILL.md +49 -0
  21. package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  22. package/.opencode/skills/git-workflow/SKILL.md +37 -0
  23. package/.opencode/skills/growth-strategist/SKILL.md +48 -0
  24. package/.opencode/skills/hermes-agent/SKILL.md +212 -0
  25. package/.opencode/skills/inference-improve/SKILL.md +97 -0
  26. package/.opencode/skills/lint/SKILL.md +37 -0
  27. package/.opencode/skills/log-monitor/SKILL.md +44 -0
  28. package/.opencode/skills/mobile-developer/SKILL.md +42 -0
  29. package/.opencode/skills/model-health-check/SKILL.md +37 -0
  30. package/.opencode/skills/multimodal-looker/SKILL.md +45 -0
  31. package/.opencode/skills/orchestrator/SKILL.md +37 -0
  32. package/.opencode/skills/performance-analysis/SKILL.md +37 -0
  33. package/.opencode/skills/performance-engineer/SKILL.md +41 -0
  34. package/.opencode/skills/performance-optimization/SKILL.md +37 -0
  35. package/.opencode/skills/processor-pipeline/SKILL.md +37 -0
  36. package/.opencode/skills/project-analysis/SKILL.md +42 -0
  37. package/.opencode/skills/refactoring-strategies/SKILL.md +37 -0
  38. package/.opencode/skills/researcher/SKILL.md +37 -0
  39. package/.opencode/skills/security-audit/SKILL.md +48 -0
  40. package/.opencode/skills/security-scan/SKILL.md +37 -0
  41. package/.opencode/skills/seo-consultant/SKILL.md +43 -0
  42. package/.opencode/skills/session-management/SKILL.md +36 -0
  43. package/.opencode/skills/state-manager/SKILL.md +37 -0
  44. package/.opencode/skills/storyteller/SKILL.md +130 -0
  45. package/.opencode/skills/strategist/SKILL.md +32 -0
  46. package/.opencode/skills/tech-writer/SKILL.md +37 -0
  47. package/.opencode/skills/testing-strategy/SKILL.md +43 -0
  48. package/.opencode/skills/ui-ux-design/SKILL.md +603 -0
  49. package/.opencode/skills/xray-orchestrator/SKILL.md +141 -0
  50. package/AGENTS.md +19 -33
  51. package/README.md +78 -316
  52. package/dist/AGENTS.md +19 -33
  53. package/dist/CHANGELOG.md +41 -473
  54. package/dist/README.md +78 -316
  55. package/dist/agents/architect.js +0 -1
  56. package/dist/agents/backend-engineer.js +0 -1
  57. package/dist/agents/bug-triage-specialist.js +0 -1
  58. package/dist/agents/code-analyzer.js +0 -1
  59. package/dist/agents/code-reviewer.js +1 -2
  60. package/dist/agents/content-creator.js +0 -1
  61. package/dist/agents/database-engineer.js +0 -1
  62. package/dist/agents/devops-engineer.js +0 -1
  63. package/dist/agents/frontend-engineer.js +0 -1
  64. package/dist/agents/frontend-ui-ux-engineer.js +0 -1
  65. package/dist/agents/growth-strategist.js +0 -1
  66. package/dist/agents/index.js +0 -1
  67. package/dist/agents/known-names.js +72 -0
  68. package/dist/agents/librarian-agents-updater.js +0 -1
  69. package/dist/agents/log-monitor.js +0 -1
  70. package/dist/agents/mobile-developer.js +0 -1
  71. package/dist/agents/multimodal-looker.js +93 -0
  72. package/dist/agents/performance-engineer.js +0 -1
  73. package/dist/agents/refactorer.js +0 -1
  74. package/dist/agents/registry.js +1 -1
  75. package/dist/agents/researcher.js +0 -1
  76. package/dist/agents/security-auditor.js +0 -1
  77. package/dist/agents/seo-consultant.js +0 -1
  78. package/dist/agents/strategist.js +0 -1
  79. package/dist/agents/tech-writer.js +0 -1
  80. package/dist/agents/testing-lead.js +0 -1
  81. package/dist/agents/types.js +0 -1
  82. package/dist/analytics/consent-manager.js +258 -0
  83. package/dist/analytics/emerging-pattern-detector.js +0 -1
  84. package/dist/analytics/pattern-learning-engine.js +0 -1
  85. package/dist/analytics/pattern-performance-tracker.js +0 -1
  86. package/dist/analytics/predictive-analytics.js +0 -1
  87. package/dist/analytics/prompt-pattern-analyzer.js +0 -1
  88. package/dist/analytics/routing-performance-analyzer.js +0 -1
  89. package/dist/analytics/routing-refiner.js +1 -2
  90. package/dist/analytics/simple-pattern-analyzer.js +297 -0
  91. package/dist/architect/architect-tools.js +0 -1
  92. package/dist/architect/architectural-integrity.js +0 -1
  93. package/dist/benchmark/performance-benchmark.js +374 -0
  94. package/dist/cli/commands/analytics-disable.js +72 -0
  95. package/dist/cli/commands/analytics-enable-action.js +82 -0
  96. package/dist/cli/commands/analytics-preview.js +106 -0
  97. package/dist/cli/commands/analytics-status.js +68 -0
  98. package/dist/cli/commands/antigravity-status.js +0 -1
  99. package/dist/cli/commands/archive-logs.js +0 -1
  100. package/dist/cli/commands/credible-init.js +0 -1
  101. package/dist/cli/commands/enforce.js +78 -0
  102. package/dist/cli/commands/govern.js +0 -1
  103. package/dist/cli/commands/grok-install.js +0 -1
  104. package/dist/cli/commands/hermes-install.js +1 -2
  105. package/dist/cli/commands/mcp-install.js +0 -1
  106. package/dist/cli/commands/openclaw-install.js +0 -1
  107. package/dist/cli/commands/opencode-install.js +0 -33
  108. package/dist/cli/commands/plugin-commands.js +0 -1
  109. package/dist/cli/commands/publish-agent.js +1 -2
  110. package/dist/cli/commands/security-audit.js +0 -1
  111. package/dist/cli/commands/skill-install.js +0 -1
  112. package/dist/cli/commands/status.js +2 -17
  113. package/dist/cli/commands/storyteller.js +1 -2
  114. package/dist/cli/index.js +236 -66
  115. package/dist/cli/server.js +147 -0
  116. package/dist/config/default-agents.js +0 -1
  117. package/dist/config/routing-mappings.js +19 -1
  118. package/dist/core/activity-logger.js +4 -5
  119. package/dist/core/adaptive-kernel.js +0 -1
  120. package/dist/core/agent-spawn-gate.js +1 -2
  121. package/dist/core/boot-orchestrator.js +31 -17
  122. package/dist/core/bridge.mjs +10 -10
  123. package/dist/core/codex-formatter.js +2 -3
  124. package/dist/core/codex-injector.js +10 -11
  125. package/dist/core/config-loader.js +1 -2
  126. package/dist/core/config-paths.js +21 -31
  127. package/dist/core/context-loader.js +2 -2
  128. package/dist/core/context-validator.js +0 -1
  129. package/dist/core/features-config.js +1 -2
  130. package/dist/core/framework-logger.js +11 -75
  131. package/dist/core/index.js +2 -5
  132. package/dist/core/kernel-patterns.js +0 -1
  133. package/dist/core/logging-config.js +43 -0
  134. package/dist/core/model-router.js +0 -1
  135. package/dist/core/orchestrator.js +172 -29
  136. package/dist/core/system-prompt-generator.js +0 -1
  137. package/dist/core/trace-context.js +33 -0
  138. package/dist/core/xray-activation.js +26 -30
  139. package/dist/delegation/agent-delegator.js +1 -2
  140. package/dist/delegation/agent-expertise.js +0 -1
  141. package/dist/delegation/analytics/index.js +0 -1
  142. package/dist/delegation/analytics/learning-engine.js +0 -1
  143. package/dist/delegation/analytics/outcome-tracker.js +0 -1
  144. package/dist/delegation/analytics/routing-analytics.js +0 -1
  145. package/dist/delegation/ast-code-parser.js +0 -1
  146. package/dist/delegation/codebase-context-analyzer.js +0 -1
  147. package/dist/delegation/complexity-analyzer.js +0 -1
  148. package/dist/delegation/complexity-core.js +0 -1
  149. package/dist/delegation/config/types.js +0 -1
  150. package/dist/delegation/dependency-graph-builder.js +0 -1
  151. package/dist/delegation/index.js +3 -5
  152. package/dist/delegation/metrics-aggregator.js +0 -1
  153. package/dist/delegation/session-coordinator.js +0 -1
  154. package/dist/delegation/strategy-selector.js +0 -1
  155. package/dist/delegation/voting-coordinator.js +375 -0
  156. package/dist/delegation/voting-types.js +0 -1
  157. package/dist/delegation/weighted-voting-aggregator.js +0 -1
  158. package/dist/enforcement/core/index.js +0 -1
  159. package/dist/enforcement/core/rule-executor.js +0 -1
  160. package/dist/enforcement/core/rule-hierarchy.js +0 -1
  161. package/dist/enforcement/core/rule-registry.js +0 -1
  162. package/dist/enforcement/core/violation-fixer.js +0 -1
  163. package/dist/enforcement/enforcer-tools.js +123 -2
  164. package/dist/enforcement/index.js +0 -1
  165. package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
  166. package/dist/enforcement/loaders/agents-md-validation-loader.js +2 -3
  167. package/dist/enforcement/loaders/base-loader.js +0 -1
  168. package/dist/enforcement/loaders/codex-loader.js +2 -3
  169. package/dist/enforcement/loaders/index.js +0 -1
  170. package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
  171. package/dist/enforcement/loaders/processor-loader.js +0 -1
  172. package/dist/enforcement/rule-enforcer.js +0 -1
  173. package/dist/enforcement/test-auto-healing.js +325 -0
  174. package/dist/enforcement/types.js +0 -1
  175. package/dist/enforcement/validators/architecture-validators.js +0 -81
  176. package/dist/enforcement/validators/base-validator.js +0 -1
  177. package/dist/enforcement/validators/code-quality-validators.js +14 -46
  178. package/dist/enforcement/validators/index.js +0 -1
  179. package/dist/enforcement/validators/security-validators.js +0 -1
  180. package/dist/enforcement/validators/testing-validators.js +0 -1
  181. package/dist/enforcement/validators/validator-registry.js +1 -3
  182. package/dist/execution/opencode-cli-invoker.js +27 -10
  183. package/dist/execution/proposal-applier.js +173 -19
  184. package/dist/governance/codex-policy.service.js +26 -9
  185. package/dist/governance/governance-core.js +117 -32
  186. package/dist/governance/governance-service.js +45 -99
  187. package/dist/governance/governance-types.js +3 -19
  188. package/dist/governance/llm-governance-provider.js +210 -0
  189. package/dist/index.js +18 -7
  190. package/dist/inference/deploy-verifier.js +0 -1
  191. package/dist/inference/index.js +0 -1
  192. package/dist/inference/inference-accumulator.js +1 -2
  193. package/dist/inference/inference-cycle.js +566 -150
  194. package/dist/inference/semantic-patterns.js +0 -1
  195. package/dist/inference/session-capture.js +0 -1
  196. package/dist/integrations/base/ExampleIntegration.js +181 -0
  197. package/dist/integrations/base/Integration.js +1 -2
  198. package/dist/integrations/base/README.md +2 -2
  199. package/dist/integrations/base/index.js +2 -1
  200. package/dist/integrations/base/registry.js +19 -20
  201. package/dist/integrations/base/types.js +0 -1
  202. package/dist/integrations/enforcement-gate.js +3 -16
  203. package/dist/integrations/governance/governance-client.js +1 -8
  204. package/dist/integrations/governance/index.js +6 -27
  205. package/dist/integrations/governance/types.js +5 -11
  206. package/dist/integrations/grok/grok-cli.js +20 -32
  207. package/dist/integrations/grok/hooks/pre-tool-use.js +19 -35
  208. package/dist/integrations/grok/plugin/0xray/.mcp.json +11 -8
  209. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  210. package/dist/integrations/hermes-agent/.mcp.json +32 -0
  211. package/dist/integrations/hermes-agent/__init__.py +7 -13
  212. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  213. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  214. package/dist/integrations/hermes-agent/bridge.mjs +49 -47
  215. package/dist/integrations/hermes-agent/conftest.py +14 -0
  216. package/dist/integrations/hermes-agent/plugin.yaml +1 -1
  217. package/dist/integrations/hermes-agent/test_plugin.py +1100 -0
  218. package/dist/integrations/hermes-agent/tools.py +5 -67
  219. package/dist/integrations/openclaw/README.md +12 -12
  220. package/dist/integrations/openclaw/api-server.js +10 -8
  221. package/dist/integrations/openclaw/client.js +24 -23
  222. package/dist/integrations/openclaw/config.js +1 -2
  223. package/dist/integrations/openclaw/hooks/{xray-hooks.js → strray-hooks.js} +18 -18
  224. package/dist/integrations/openclaw/index.js +2 -26
  225. package/dist/integrations/openclaw/types.js +0 -1
  226. package/dist/integrations/plugins/index.js +0 -1
  227. package/dist/integrations/plugins/plugin-integration.js +0 -1
  228. package/dist/integrations/plugins/plugin-registry.js +5 -6
  229. package/dist/mcps/agent-resolver.js +0 -1
  230. package/dist/mcps/architect-tools.server.js +195 -113
  231. package/dist/mcps/auto-format.server.js +95 -50
  232. package/dist/mcps/boot-orchestrator.server.js +636 -99
  233. package/dist/mcps/config/config-loader.js +9 -17
  234. package/dist/mcps/config/config-validator.js +0 -1
  235. package/dist/mcps/config/index.js +0 -1
  236. package/dist/mcps/config/plugin-server-registry.js +0 -1
  237. package/dist/mcps/config/server-config-registry.js +3 -4
  238. package/dist/mcps/connection/connection-manager.js +79 -0
  239. package/dist/mcps/connection/connection-pool.js +0 -1
  240. package/dist/mcps/connection/mcp-connection.js +0 -1
  241. package/dist/mcps/connection/process-spawner.js +0 -1
  242. package/dist/mcps/enforcer-tools.server.js +286 -205
  243. package/dist/mcps/estimation.server.js +107 -64
  244. package/dist/mcps/framework-compliance-audit.server.js +82 -54
  245. package/dist/mcps/framework-help.server.js +101 -64
  246. package/dist/mcps/governance.server.js +29 -86
  247. package/dist/mcps/in-process-skill-registry.js +0 -17
  248. package/dist/mcps/index.js +0 -1
  249. package/dist/mcps/knowledge-skills/api-design.server.js +66 -45
  250. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +73 -45
  251. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +161 -153
  252. package/dist/mcps/knowledge-skills/code-analyzer.server.js +44 -30
  253. package/dist/mcps/knowledge-skills/code-review.server.js +154 -156
  254. package/dist/mcps/knowledge-skills/content-creator.server.js +225 -215
  255. package/dist/mcps/knowledge-skills/database-design.server.js +150 -127
  256. package/dist/mcps/knowledge-skills/devops-deployment.server.js +159 -81
  257. package/dist/mcps/knowledge-skills/git-workflow.server.js +67 -46
  258. package/dist/mcps/knowledge-skills/growth-strategist.server.js +323 -313
  259. package/dist/mcps/knowledge-skills/log-monitor.server.js +159 -151
  260. package/dist/mcps/knowledge-skills/mobile-development.server.js +208 -102
  261. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +158 -133
  262. package/dist/mcps/knowledge-skills/performance-optimization.server.js +295 -165
  263. package/dist/mcps/knowledge-skills/project-analysis.server.js +225 -85
  264. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +155 -73
  265. package/dist/mcps/knowledge-skills/security-audit.server.js +147 -154
  266. package/dist/mcps/knowledge-skills/seo-consultant.server.js +202 -90
  267. package/dist/mcps/knowledge-skills/session-management.server.js +203 -51
  268. package/dist/mcps/knowledge-skills/skill-invocation.server.js +367 -220
  269. package/dist/mcps/knowledge-skills/strategist.server.js +121 -82
  270. package/dist/mcps/knowledge-skills/tech-writer.server.js +299 -97
  271. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +866 -0
  272. package/dist/mcps/knowledge-skills/testing-strategy.server.js +152 -88
  273. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +398 -100
  274. package/dist/mcps/lint.server.js +92 -52
  275. package/dist/mcps/mcp-client.js +2 -3
  276. package/dist/mcps/model-health-check.server.js +60 -33
  277. package/dist/mcps/orchestrator/config/agent-capabilities.js +0 -1
  278. package/dist/mcps/orchestrator/execution/execution-planner.js +0 -1
  279. package/dist/mcps/orchestrator/handlers/complexity-handler.js +0 -1
  280. package/dist/mcps/orchestrator/handlers/status-handler.js +0 -1
  281. package/dist/mcps/orchestrator/handlers/task-handler.js +0 -1
  282. package/dist/mcps/orchestrator/server.js +2 -5
  283. package/dist/mcps/orchestrator/types.js +0 -1
  284. package/dist/mcps/orchestrator.server.js +19 -0
  285. package/dist/mcps/performance-analysis.server.js +88 -58
  286. package/dist/mcps/processor-pipeline.server.js +100 -70
  287. package/dist/mcps/protocol/protocol-constants.js +0 -1
  288. package/dist/mcps/registry.json +1 -1
  289. package/dist/mcps/researcher.server.js +166 -119
  290. package/dist/mcps/security-scan.server.js +96 -55
  291. package/dist/mcps/shared/knowledge-skill-base.js +0 -1
  292. package/dist/mcps/shared/prompt-security-validator.js +0 -1
  293. package/dist/mcps/shared/security-scanner.js +0 -1
  294. package/dist/mcps/simulation/index.js +0 -1
  295. package/dist/mcps/simulation/server-simulations.js +1 -2
  296. package/dist/mcps/simulation/simulation-engine.js +0 -1
  297. package/dist/mcps/state-manager.server.js +160 -116
  298. package/dist/mcps/tools/index.js +0 -1
  299. package/dist/mcps/tools/tool-cache.js +0 -1
  300. package/dist/mcps/tools/tool-discovery.js +0 -1
  301. package/dist/mcps/tools/tool-executor.js +0 -1
  302. package/dist/mcps/tools/tool-registry.js +0 -1
  303. package/dist/mcps/types/index.js +0 -1
  304. package/dist/mcps/types/json-rpc.types.js +0 -1
  305. package/dist/mcps/types/mcp.types.js +0 -1
  306. package/dist/metrics/agent-metrics.js +1 -2
  307. package/dist/metrics/index.js +0 -1
  308. package/dist/monitoring/advanced-profiler.js +0 -1
  309. package/dist/monitoring/memory-monitor.js +0 -1
  310. package/dist/monitoring/nudge-watchdog.js +0 -1
  311. package/dist/monitoring/test-auto-generation-monitor.js +0 -1
  312. package/dist/nucleus/default-plugins.js +51 -18
  313. package/dist/nucleus/govern-http.js +0 -1
  314. package/dist/nucleus/index.js +0 -1
  315. package/dist/nucleus/kernel.js +0 -1
  316. package/dist/nucleus/orchestrator.js +3 -4
  317. package/dist/nucleus/plugin-registry.js +0 -1
  318. package/dist/nucleus/thin-dispatch.js +0 -1
  319. package/dist/orchestrator/agent-spawn-governor.js +0 -1
  320. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +0 -1
  321. package/dist/orchestrator/intelligent-commit-batcher.js +0 -1
  322. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
  323. package/dist/orchestrator/orchestrator.js +25 -5
  324. package/dist/orchestrator/self-direction-activation.js +245 -0
  325. package/dist/orchestrator/universal-librarian-consultation.js +216 -0
  326. package/dist/orchestrator/universal-registry-bridge.js +247 -0
  327. package/dist/performance/performance-budget-enforcer.js +434 -0
  328. package/dist/performance/performance-regression-tester.js +342 -0
  329. package/dist/plugin/xray-codex-injection.js +262 -29
  330. package/dist/postprocessor/PostProcessor.js +542 -146
  331. package/dist/postprocessor/analysis/FailureAnalysisEngine.js +0 -1
  332. package/dist/postprocessor/autofix/AutoFixEngine.js +54 -1
  333. package/dist/postprocessor/autofix/FixValidator.js +0 -1
  334. package/dist/postprocessor/config.js +0 -1
  335. package/dist/postprocessor/escalation/EscalationEngine.js +0 -1
  336. package/dist/postprocessor/monitoring/MonitoringEngine.js +0 -1
  337. package/dist/postprocessor/redeploy/RedeployCoordinator.js +0 -1
  338. package/dist/postprocessor/services/RegressionAnalysisService.js +0 -1
  339. package/dist/postprocessor/success/SuccessHandler.js +0 -1
  340. package/dist/postprocessor/triggers/APITrigger.js +0 -1
  341. package/dist/postprocessor/triggers/GitHookTrigger.js +11 -12
  342. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
  343. package/dist/postprocessor/types.js +0 -1
  344. package/dist/processors/doc-write-guard.js +0 -1
  345. package/dist/processors/implementations/agents-md-validation-processor.js +3 -4
  346. package/dist/processors/implementations/async-pattern-processor.js +0 -1
  347. package/dist/processors/implementations/codex-compliance-processor.js +0 -1
  348. package/dist/processors/implementations/commit-batcher-processor.js +0 -1
  349. package/dist/processors/implementations/console-log-guard-processor.js +0 -1
  350. package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
  351. package/dist/processors/implementations/error-boundary-processor.js +0 -1
  352. package/dist/processors/implementations/inference-improvement-processor.js +1 -2
  353. package/dist/processors/implementations/log-protection-processor.js +0 -1
  354. package/dist/processors/implementations/nudge-processor.js +0 -1
  355. package/dist/processors/implementations/performance-budget-processor.js +0 -1
  356. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
  357. package/dist/processors/implementations/pre-validate-processor.js +0 -1
  358. package/dist/processors/implementations/publish-preflight-processor.js +0 -1
  359. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +1 -96
  360. package/dist/processors/implementations/refactoring-logging-processor.js +96 -0
  361. package/dist/processors/implementations/regression-testing-processor.js +0 -1
  362. package/dist/processors/implementations/session-capture-processor.js +37 -0
  363. package/dist/processors/implementations/session-summary-processor.js +1 -2
  364. package/dist/processors/implementations/spawn-governance-processor.js +0 -1
  365. package/dist/processors/implementations/state-validation-processor.js +0 -1
  366. package/dist/processors/implementations/storytelling-trigger-processor.js +1 -2
  367. package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
  368. package/dist/processors/implementations/test-execution-processor.js +0 -1
  369. package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
  370. package/dist/processors/implementations/version-compliance-processor.js +0 -1
  371. package/dist/processors/processor-interfaces.js +0 -1
  372. package/dist/processors/processor-manager.js +314 -347
  373. package/dist/processors/processor-types.js +0 -1
  374. package/dist/public/XrayService.js +0 -1
  375. package/dist/public/about.html +6 -6
  376. package/dist/public/enterprise.html +1 -1
  377. package/dist/public/features.html +2 -2
  378. package/dist/public/index.html +4 -4
  379. package/dist/public/index.js +0 -1
  380. package/dist/reporting/framework-reporting-system.js +0 -1
  381. package/dist/reporting/log-parser.js +0 -1
  382. package/dist/reporting/metrics.js +0 -1
  383. package/dist/reporting/report-formatter.js +1 -2
  384. package/dist/reporting/types.js +0 -1
  385. package/dist/scripts/activate-kernel-pipeline.js +101 -0
  386. package/dist/scripts/integration.js +0 -1
  387. package/dist/scripts/pre-command +1 -1
  388. package/dist/security/comprehensive-security-audit.js +0 -1
  389. package/dist/security/index.js +13 -0
  390. package/dist/security/prompt-security-validator.js +148 -0
  391. package/dist/security/security-agent-coordinator.js +204 -0
  392. package/dist/security/security-auditor.js +584 -0
  393. package/dist/security/security-hardener.js +1 -130
  394. package/dist/security/security-hardening-system.js +727 -0
  395. package/dist/security/security-headers.js +0 -1
  396. package/dist/security/security-orchestration-layer.js +496 -0
  397. package/dist/security/security-scanner.js +429 -0
  398. package/dist/services/inference-tuner.js +0 -1
  399. package/dist/session/index.js +0 -1
  400. package/dist/session/session-cleanup-manager.js +0 -1
  401. package/dist/session/session-monitor.js +0 -1
  402. package/dist/session/session-state-manager.js +0 -1
  403. package/dist/skills/hermes-agent/SKILL.md +36 -36
  404. package/dist/skills/orchestrator/SKILL.md +1 -1
  405. package/dist/skills/registry.json +1 -1
  406. package/dist/skills/testing-best-practices/SKILL.md +37 -0
  407. package/dist/skills/xray-orchestrator/index.js +0 -1
  408. package/dist/state/context-providers.js +1 -0
  409. package/dist/state/index.js +7 -2
  410. package/dist/state/state-manager.js +2 -3
  411. package/dist/state/state-types.js +1 -0
  412. package/dist/testing/memory-regression-suite.js +258 -0
  413. package/dist/tools/assess-complexity-tool.js +0 -1
  414. package/dist/tools/query-routing-tool.js +0 -1
  415. package/dist/types/metamorphosis.js +0 -1
  416. package/dist/utils/batch-operations.js +292 -0
  417. package/dist/utils/codex-parser.js +0 -1
  418. package/dist/utils/command-runner.js +0 -1
  419. package/dist/utils/import-resolver.js +1 -2
  420. package/dist/utils/language-detector.js +0 -1
  421. package/dist/utils/path-resolver.js +2 -3
  422. package/dist/utils/shutdown-handler.js +0 -1
  423. package/dist/utils/task-graph.js +0 -1
  424. package/dist/utils/test-template-generator.js +178 -0
  425. package/dist/utils/token-manager.js +163 -0
  426. package/dist/validation/estimation-validator.js +0 -1
  427. package/dist/validation/report-content-validator.js +0 -1
  428. package/package.json +17 -42
  429. package/scripts/hooks/pre-command +1 -1
  430. package/scripts/hooks/run-hook.js +73 -186
  431. package/scripts/node/auto-reflection-generator.mjs +2 -2
  432. package/scripts/node/enforce-agents-md.mjs +2 -2
  433. package/scripts/node/postinstall.cjs +13 -32
  434. package/scripts/node/pre-publish-guard.js +11 -13
  435. package/scripts/node/prepare-consumer.cjs +6 -7
  436. package/scripts/node/release.js +159 -0
  437. package/scripts/node/release.mjs +160 -166
  438. package/scripts/node/setup.cjs +6 -65
  439. package/scripts/node/universal-version-manager.js +68 -66
  440. package/scripts/node/validate-mcp-connectivity.js +1 -1
  441. package/scripts/node/version-manager.mjs +4 -50
  442. package/src/integrations/grok/plugin/0xray/.mcp.json +11 -8
  443. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
  444. package/src/mcps/architect-tools.server.ts +215 -112
  445. package/src/mcps/auto-format.server.ts +110 -50
  446. package/src/mcps/boot-orchestrator.server.ts +803 -105
  447. package/src/mcps/config/__tests__/config-loader.test.ts +4 -8
  448. package/src/mcps/config/__tests__/server-config-registry.test.ts +12 -12
  449. package/src/mcps/config/config-loader.ts +9 -18
  450. package/src/mcps/config/server-config-registry.ts +3 -3
  451. package/src/mcps/connection/connection-manager.ts +91 -0
  452. package/src/mcps/enforcer-tools.server.ts +311 -214
  453. package/src/mcps/estimation.server.ts +122 -62
  454. package/src/mcps/framework-compliance-audit.server.ts +97 -52
  455. package/src/mcps/framework-help.server.ts +114 -64
  456. package/src/mcps/governance.server.ts +31 -94
  457. package/src/mcps/in-process-skill-registry.ts +0 -16
  458. package/src/mcps/knowledge-skills/api-design.server.ts +76 -40
  459. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +86 -39
  460. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +192 -173
  461. package/src/mcps/knowledge-skills/code-analyzer.server.ts +54 -28
  462. package/src/mcps/knowledge-skills/code-review.server.ts +179 -156
  463. package/src/mcps/knowledge-skills/content-creator.server.ts +254 -226
  464. package/src/mcps/knowledge-skills/database-design.server.ts +164 -126
  465. package/src/mcps/knowledge-skills/devops-deployment.server.ts +171 -75
  466. package/src/mcps/knowledge-skills/git-workflow.server.ts +76 -40
  467. package/src/mcps/knowledge-skills/growth-strategist.server.ts +360 -332
  468. package/src/mcps/knowledge-skills/log-monitor.server.ts +186 -168
  469. package/src/mcps/knowledge-skills/mobile-development.server.ts +222 -97
  470. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +174 -136
  471. package/src/mcps/knowledge-skills/performance-optimization.server.ts +328 -164
  472. package/src/mcps/knowledge-skills/project-analysis.server.ts +247 -80
  473. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +170 -67
  474. package/src/mcps/knowledge-skills/security-audit.server.ts +169 -150
  475. package/src/mcps/knowledge-skills/seo-consultant.server.ts +219 -88
  476. package/src/mcps/knowledge-skills/session-management.server.ts +232 -52
  477. package/src/mcps/knowledge-skills/skill-invocation.server.ts +406 -225
  478. package/src/mcps/knowledge-skills/strategist.server.ts +142 -80
  479. package/src/mcps/knowledge-skills/tech-writer.server.ts +349 -93
  480. package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +136 -0
  481. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +1232 -0
  482. package/src/mcps/knowledge-skills/testing-strategy.server.ts +160 -83
  483. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +486 -101
  484. package/src/mcps/lint.server.ts +107 -53
  485. package/src/mcps/mcp-client.ts +2 -2
  486. package/src/mcps/model-health-check.server.ts +71 -34
  487. package/src/mcps/orchestrator/server.ts +2 -4
  488. package/src/mcps/orchestrator.server.ts +34 -0
  489. package/src/mcps/performance-analysis.server.ts +104 -60
  490. package/src/mcps/processor-pipeline.server.ts +110 -72
  491. package/src/mcps/registry.json +1 -1
  492. package/src/mcps/researcher.server.ts +196 -122
  493. package/src/mcps/security-scan.server.ts +104 -55
  494. package/src/mcps/simulation/server-simulations.ts +1 -1
  495. package/src/mcps/state-manager.server.ts +175 -117
  496. package/src/opencode/agents/testing-best-practices.yml +12 -0
  497. package/src/opencode/codex.codex +2 -2
  498. package/src/opencode/commands/dependency-audit.md +3 -3
  499. package/src/opencode/enforcer-config.json +3 -3
  500. package/src/skills/hermes-agent/SKILL.md +36 -36
  501. package/src/skills/orchestrator/SKILL.md +1 -1
  502. package/src/skills/registry.json +1 -1
  503. package/src/skills/testing-best-practices/SKILL.md +37 -0
  504. package/.mcp.json +0 -24
  505. package/.opencode/plugin/xray-codex-injection.js +0 -624
  506. package/.plugin/plugin.json +0 -11
  507. package/dist/agents/architect.d.ts +0 -2
  508. package/dist/agents/architect.js.map +0 -1
  509. package/dist/agents/backend-engineer.d.ts +0 -8
  510. package/dist/agents/backend-engineer.js.map +0 -1
  511. package/dist/agents/bug-triage-specialist.d.ts +0 -2
  512. package/dist/agents/bug-triage-specialist.js.map +0 -1
  513. package/dist/agents/code-analyzer.d.ts +0 -7
  514. package/dist/agents/code-analyzer.js.map +0 -1
  515. package/dist/agents/code-reviewer.d.ts +0 -2
  516. package/dist/agents/code-reviewer.js.map +0 -1
  517. package/dist/agents/content-creator.d.ts +0 -9
  518. package/dist/agents/content-creator.js.map +0 -1
  519. package/dist/agents/database-engineer.d.ts +0 -8
  520. package/dist/agents/database-engineer.js.map +0 -1
  521. package/dist/agents/devops-engineer.d.ts +0 -8
  522. package/dist/agents/devops-engineer.js.map +0 -1
  523. package/dist/agents/frontend-engineer.d.ts +0 -8
  524. package/dist/agents/frontend-engineer.js.map +0 -1
  525. package/dist/agents/frontend-ui-ux-engineer.d.ts +0 -8
  526. package/dist/agents/frontend-ui-ux-engineer.js.map +0 -1
  527. package/dist/agents/growth-strategist.d.ts +0 -8
  528. package/dist/agents/growth-strategist.js.map +0 -1
  529. package/dist/agents/index.d.ts +0 -24
  530. package/dist/agents/index.js.map +0 -1
  531. package/dist/agents/librarian-agents-updater.d.ts +0 -30
  532. package/dist/agents/librarian-agents-updater.js.map +0 -1
  533. package/dist/agents/log-monitor.d.ts +0 -2
  534. package/dist/agents/log-monitor.js.map +0 -1
  535. package/dist/agents/mobile-developer.d.ts +0 -9
  536. package/dist/agents/mobile-developer.js.map +0 -1
  537. package/dist/agents/performance-engineer.d.ts +0 -8
  538. package/dist/agents/performance-engineer.js.map +0 -1
  539. package/dist/agents/refactorer.d.ts +0 -2
  540. package/dist/agents/refactorer.js.map +0 -1
  541. package/dist/agents/registry.d.ts +0 -35
  542. package/dist/agents/registry.js.map +0 -1
  543. package/dist/agents/researcher.d.ts +0 -2
  544. package/dist/agents/researcher.js.map +0 -1
  545. package/dist/agents/security-auditor.d.ts +0 -2
  546. package/dist/agents/security-auditor.js.map +0 -1
  547. package/dist/agents/seo-consultant.d.ts +0 -8
  548. package/dist/agents/seo-consultant.js.map +0 -1
  549. package/dist/agents/strategist.d.ts +0 -7
  550. package/dist/agents/strategist.js.map +0 -1
  551. package/dist/agents/tech-writer.d.ts +0 -8
  552. package/dist/agents/tech-writer.js.map +0 -1
  553. package/dist/agents/testing-lead.d.ts +0 -2
  554. package/dist/agents/testing-lead.js.map +0 -1
  555. package/dist/agents/types.d.ts +0 -45
  556. package/dist/agents/types.js.map +0 -1
  557. package/dist/analytics/emerging-pattern-detector.d.ts +0 -67
  558. package/dist/analytics/emerging-pattern-detector.js.map +0 -1
  559. package/dist/analytics/pattern-learning-engine.d.ts +0 -80
  560. package/dist/analytics/pattern-learning-engine.js.map +0 -1
  561. package/dist/analytics/pattern-performance-tracker.d.ts +0 -97
  562. package/dist/analytics/pattern-performance-tracker.js.map +0 -1
  563. package/dist/analytics/predictive-analytics.d.ts +0 -41
  564. package/dist/analytics/predictive-analytics.js.map +0 -1
  565. package/dist/analytics/prompt-pattern-analyzer.d.ts +0 -99
  566. package/dist/analytics/prompt-pattern-analyzer.js.map +0 -1
  567. package/dist/analytics/routing-performance-analyzer.d.ts +0 -101
  568. package/dist/analytics/routing-performance-analyzer.js.map +0 -1
  569. package/dist/analytics/routing-refiner.d.ts +0 -104
  570. package/dist/analytics/routing-refiner.js.map +0 -1
  571. package/dist/architect/architect-tools.d.ts +0 -70
  572. package/dist/architect/architect-tools.js.map +0 -1
  573. package/dist/architect/architectural-integrity.d.ts +0 -20
  574. package/dist/architect/architectural-integrity.js.map +0 -1
  575. package/dist/cli/commands/antigravity-status.d.ts +0 -9
  576. package/dist/cli/commands/antigravity-status.js.map +0 -1
  577. package/dist/cli/commands/archive-logs.d.ts +0 -24
  578. package/dist/cli/commands/archive-logs.js.map +0 -1
  579. package/dist/cli/commands/credible-init.d.ts +0 -11
  580. package/dist/cli/commands/credible-init.js.map +0 -1
  581. package/dist/cli/commands/govern.d.ts +0 -29
  582. package/dist/cli/commands/govern.js.map +0 -1
  583. package/dist/cli/commands/grok-install.d.ts +0 -7
  584. package/dist/cli/commands/grok-install.js.map +0 -1
  585. package/dist/cli/commands/hermes-install.d.ts +0 -2
  586. package/dist/cli/commands/hermes-install.js.map +0 -1
  587. package/dist/cli/commands/mcp-install.d.ts +0 -4
  588. package/dist/cli/commands/mcp-install.js.map +0 -1
  589. package/dist/cli/commands/openclaw-install.d.ts +0 -2
  590. package/dist/cli/commands/openclaw-install.js.map +0 -1
  591. package/dist/cli/commands/opencode-install.d.ts +0 -2
  592. package/dist/cli/commands/opencode-install.js.map +0 -1
  593. package/dist/cli/commands/plugin-commands.d.ts +0 -19
  594. package/dist/cli/commands/plugin-commands.js.map +0 -1
  595. package/dist/cli/commands/publish-agent.d.ts +0 -15
  596. package/dist/cli/commands/publish-agent.js.map +0 -1
  597. package/dist/cli/commands/security-audit.d.ts +0 -23
  598. package/dist/cli/commands/security-audit.js.map +0 -1
  599. package/dist/cli/commands/skill-install.d.ts +0 -5
  600. package/dist/cli/commands/skill-install.js.map +0 -1
  601. package/dist/cli/commands/status.d.ts +0 -41
  602. package/dist/cli/commands/status.js.map +0 -1
  603. package/dist/cli/commands/storyteller.d.ts +0 -19
  604. package/dist/cli/commands/storyteller.js.map +0 -1
  605. package/dist/cli/index.d.ts +0 -7
  606. package/dist/cli/index.js.map +0 -1
  607. package/dist/config/default-agents.d.ts +0 -12
  608. package/dist/config/default-agents.js.map +0 -1
  609. package/dist/config/routing-mappings.d.ts +0 -21
  610. package/dist/config/routing-mappings.js.map +0 -1
  611. package/dist/core/activity-logger.d.ts +0 -72
  612. package/dist/core/activity-logger.js.map +0 -1
  613. package/dist/core/adaptive-kernel.d.ts +0 -109
  614. package/dist/core/adaptive-kernel.js.map +0 -1
  615. package/dist/core/agent-spawn-gate.d.ts +0 -56
  616. package/dist/core/agent-spawn-gate.js.map +0 -1
  617. package/dist/core/boot-orchestrator.d.ts +0 -99
  618. package/dist/core/boot-orchestrator.js.map +0 -1
  619. package/dist/core/codex-formatter.d.ts +0 -96
  620. package/dist/core/codex-formatter.js.map +0 -1
  621. package/dist/core/codex-injector.d.ts +0 -74
  622. package/dist/core/codex-injector.js.map +0 -1
  623. package/dist/core/config-loader.d.ts +0 -71
  624. package/dist/core/config-loader.js.map +0 -1
  625. package/dist/core/config-paths.d.ts +0 -65
  626. package/dist/core/config-paths.js.map +0 -1
  627. package/dist/core/context-loader.d.ts +0 -122
  628. package/dist/core/context-loader.js.map +0 -1
  629. package/dist/core/context-validator.d.ts +0 -53
  630. package/dist/core/context-validator.js.map +0 -1
  631. package/dist/core/features-config.d.ts +0 -462
  632. package/dist/core/features-config.js.map +0 -1
  633. package/dist/core/framework-logger.d.ts +0 -77
  634. package/dist/core/framework-logger.js.map +0 -1
  635. package/dist/core/index.d.ts +0 -5
  636. package/dist/core/index.js.map +0 -1
  637. package/dist/core/kernel-patterns.d.ts +0 -130
  638. package/dist/core/kernel-patterns.js.map +0 -1
  639. package/dist/core/model-router.d.ts +0 -61
  640. package/dist/core/model-router.js.map +0 -1
  641. package/dist/core/orchestrator.d.ts +0 -73
  642. package/dist/core/orchestrator.js.map +0 -1
  643. package/dist/core/system-prompt-generator.d.ts +0 -35
  644. package/dist/core/system-prompt-generator.js.map +0 -1
  645. package/dist/core/xray-activation.d.ts +0 -14
  646. package/dist/core/xray-activation.js.map +0 -1
  647. package/dist/delegation/agent-delegator.d.ts +0 -186
  648. package/dist/delegation/agent-delegator.js.map +0 -1
  649. package/dist/delegation/agent-expertise.d.ts +0 -16
  650. package/dist/delegation/agent-expertise.js.map +0 -1
  651. package/dist/delegation/analytics/index.d.ts +0 -12
  652. package/dist/delegation/analytics/index.js.map +0 -1
  653. package/dist/delegation/analytics/learning-engine.d.ts +0 -85
  654. package/dist/delegation/analytics/learning-engine.js.map +0 -1
  655. package/dist/delegation/analytics/outcome-tracker.d.ts +0 -118
  656. package/dist/delegation/analytics/outcome-tracker.js.map +0 -1
  657. package/dist/delegation/analytics/routing-analytics.d.ts +0 -61
  658. package/dist/delegation/analytics/routing-analytics.js.map +0 -1
  659. package/dist/delegation/ast-code-parser.d.ts +0 -174
  660. package/dist/delegation/ast-code-parser.js.map +0 -1
  661. package/dist/delegation/codebase-context-analyzer.d.ts +0 -164
  662. package/dist/delegation/codebase-context-analyzer.js.map +0 -1
  663. package/dist/delegation/complexity-analyzer.d.ts +0 -111
  664. package/dist/delegation/complexity-analyzer.js.map +0 -1
  665. package/dist/delegation/complexity-core.d.ts +0 -119
  666. package/dist/delegation/complexity-core.js.map +0 -1
  667. package/dist/delegation/config/types.d.ts +0 -247
  668. package/dist/delegation/config/types.js.map +0 -1
  669. package/dist/delegation/dependency-graph-builder.d.ts +0 -95
  670. package/dist/delegation/dependency-graph-builder.js.map +0 -1
  671. package/dist/delegation/index.d.ts +0 -27
  672. package/dist/delegation/index.js.map +0 -1
  673. package/dist/delegation/metrics-aggregator.d.ts +0 -92
  674. package/dist/delegation/metrics-aggregator.js.map +0 -1
  675. package/dist/delegation/session-coordinator.d.ts +0 -133
  676. package/dist/delegation/session-coordinator.js.map +0 -1
  677. package/dist/delegation/strategy-selector.d.ts +0 -28
  678. package/dist/delegation/strategy-selector.js.map +0 -1
  679. package/dist/delegation/voting-types.d.ts +0 -155
  680. package/dist/delegation/voting-types.js.map +0 -1
  681. package/dist/delegation/weighted-voting-aggregator.d.ts +0 -37
  682. package/dist/delegation/weighted-voting-aggregator.js.map +0 -1
  683. package/dist/enforcement/core/index.d.ts +0 -15
  684. package/dist/enforcement/core/index.js.map +0 -1
  685. package/dist/enforcement/core/rule-executor.d.ts +0 -158
  686. package/dist/enforcement/core/rule-executor.js.map +0 -1
  687. package/dist/enforcement/core/rule-hierarchy.d.ts +0 -146
  688. package/dist/enforcement/core/rule-hierarchy.js.map +0 -1
  689. package/dist/enforcement/core/rule-registry.d.ts +0 -197
  690. package/dist/enforcement/core/rule-registry.js.map +0 -1
  691. package/dist/enforcement/core/violation-fixer.d.ts +0 -106
  692. package/dist/enforcement/core/violation-fixer.js.map +0 -1
  693. package/dist/enforcement/enforcer-tools.d.ts +0 -78
  694. package/dist/enforcement/enforcer-tools.js.map +0 -1
  695. package/dist/enforcement/index.d.ts +0 -23
  696. package/dist/enforcement/index.js.map +0 -1
  697. package/dist/enforcement/loaders/agent-triage-loader.d.ts +0 -99
  698. package/dist/enforcement/loaders/agent-triage-loader.js.map +0 -1
  699. package/dist/enforcement/loaders/agents-md-validation-loader.d.ts +0 -76
  700. package/dist/enforcement/loaders/agents-md-validation-loader.js.map +0 -1
  701. package/dist/enforcement/loaders/base-loader.d.ts +0 -83
  702. package/dist/enforcement/loaders/base-loader.js.map +0 -1
  703. package/dist/enforcement/loaders/codex-loader.d.ts +0 -77
  704. package/dist/enforcement/loaders/codex-loader.js.map +0 -1
  705. package/dist/enforcement/loaders/index.d.ts +0 -37
  706. package/dist/enforcement/loaders/index.js.map +0 -1
  707. package/dist/enforcement/loaders/loader-orchestrator.d.ts +0 -97
  708. package/dist/enforcement/loaders/loader-orchestrator.js.map +0 -1
  709. package/dist/enforcement/loaders/processor-loader.d.ts +0 -60
  710. package/dist/enforcement/loaders/processor-loader.js.map +0 -1
  711. package/dist/enforcement/rule-enforcer.d.ts +0 -142
  712. package/dist/enforcement/rule-enforcer.js.map +0 -1
  713. package/dist/enforcement/types.d.ts +0 -501
  714. package/dist/enforcement/types.js.map +0 -1
  715. package/dist/enforcement/validators/architecture-validators.d.ts +0 -172
  716. package/dist/enforcement/validators/architecture-validators.js.map +0 -1
  717. package/dist/enforcement/validators/base-validator.d.ts +0 -88
  718. package/dist/enforcement/validators/base-validator.js.map +0 -1
  719. package/dist/enforcement/validators/code-quality-validators.d.ts +0 -90
  720. package/dist/enforcement/validators/code-quality-validators.js.map +0 -1
  721. package/dist/enforcement/validators/index.d.ts +0 -15
  722. package/dist/enforcement/validators/index.js.map +0 -1
  723. package/dist/enforcement/validators/security-validators.d.ts +0 -53
  724. package/dist/enforcement/validators/security-validators.js.map +0 -1
  725. package/dist/enforcement/validators/testing-validators.d.ts +0 -81
  726. package/dist/enforcement/validators/testing-validators.js.map +0 -1
  727. package/dist/enforcement/validators/validator-registry.d.ts +0 -92
  728. package/dist/enforcement/validators/validator-registry.js.map +0 -1
  729. package/dist/execution/opencode-cli-invoker.d.ts +0 -8
  730. package/dist/execution/opencode-cli-invoker.js.map +0 -1
  731. package/dist/execution/proposal-applier.d.ts +0 -16
  732. package/dist/execution/proposal-applier.js.map +0 -1
  733. package/dist/governance/codex-policy.service.d.ts +0 -39
  734. package/dist/governance/codex-policy.service.js.map +0 -1
  735. package/dist/governance/governance-core.d.ts +0 -40
  736. package/dist/governance/governance-core.js.map +0 -1
  737. package/dist/governance/governance-service.d.ts +0 -45
  738. package/dist/governance/governance-service.js.map +0 -1
  739. package/dist/governance/governance-types.d.ts +0 -95
  740. package/dist/governance/governance-types.js.map +0 -1
  741. package/dist/index.d.ts +0 -26
  742. package/dist/index.js.map +0 -1
  743. package/dist/inference/deploy-verifier.d.ts +0 -26
  744. package/dist/inference/deploy-verifier.js.map +0 -1
  745. package/dist/inference/index.d.ts +0 -9
  746. package/dist/inference/index.js.map +0 -1
  747. package/dist/inference/inference-accumulator.d.ts +0 -29
  748. package/dist/inference/inference-accumulator.js.map +0 -1
  749. package/dist/inference/inference-cycle.d.ts +0 -98
  750. package/dist/inference/inference-cycle.js.map +0 -1
  751. package/dist/inference/semantic-patterns.d.ts +0 -7
  752. package/dist/inference/semantic-patterns.js.map +0 -1
  753. package/dist/inference/session-capture.d.ts +0 -32
  754. package/dist/inference/session-capture.js.map +0 -1
  755. package/dist/integrations/base/Integration.d.ts +0 -267
  756. package/dist/integrations/base/Integration.js.map +0 -1
  757. package/dist/integrations/base/index.d.ts +0 -11
  758. package/dist/integrations/base/index.js.map +0 -1
  759. package/dist/integrations/base/registry.d.ts +0 -273
  760. package/dist/integrations/base/registry.js.map +0 -1
  761. package/dist/integrations/base/types.d.ts +0 -168
  762. package/dist/integrations/base/types.js.map +0 -1
  763. package/dist/integrations/enforcement-gate.d.ts +0 -44
  764. package/dist/integrations/enforcement-gate.js.map +0 -1
  765. package/dist/integrations/governance/governance-client.d.ts +0 -79
  766. package/dist/integrations/governance/governance-client.js.map +0 -1
  767. package/dist/integrations/governance/index.d.ts +0 -99
  768. package/dist/integrations/governance/index.js.map +0 -1
  769. package/dist/integrations/governance/types.d.ts +0 -265
  770. package/dist/integrations/governance/types.js.map +0 -1
  771. package/dist/integrations/grok/grok-cli.d.ts +0 -25
  772. package/dist/integrations/grok/grok-cli.js.map +0 -1
  773. package/dist/integrations/grok/hooks/pre-tool-use.d.ts +0 -18
  774. package/dist/integrations/grok/hooks/pre-tool-use.js.map +0 -1
  775. package/dist/integrations/hermes-agent/hermes-agent-integration.d.ts +0 -133
  776. package/dist/integrations/hermes-agent/hermes-agent-integration.js +0 -504
  777. package/dist/integrations/hermes-agent/hermes-agent-integration.js.map +0 -1
  778. package/dist/integrations/hermes-agent/index.d.ts +0 -11
  779. package/dist/integrations/hermes-agent/index.js +0 -12
  780. package/dist/integrations/hermes-agent/index.js.map +0 -1
  781. package/dist/integrations/hermes-agent/types.d.ts +0 -227
  782. package/dist/integrations/hermes-agent/types.js +0 -11
  783. package/dist/integrations/hermes-agent/types.js.map +0 -1
  784. package/dist/integrations/openclaw/api-server.d.ts +0 -86
  785. package/dist/integrations/openclaw/api-server.js.map +0 -1
  786. package/dist/integrations/openclaw/client.d.ts +0 -121
  787. package/dist/integrations/openclaw/client.js.map +0 -1
  788. package/dist/integrations/openclaw/config.d.ts +0 -96
  789. package/dist/integrations/openclaw/config.js.map +0 -1
  790. package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -134
  791. package/dist/integrations/openclaw/hooks/xray-hooks.js.map +0 -1
  792. package/dist/integrations/openclaw/index.d.ts +0 -101
  793. package/dist/integrations/openclaw/index.js.map +0 -1
  794. package/dist/integrations/openclaw/types.d.ts +0 -426
  795. package/dist/integrations/openclaw/types.js.map +0 -1
  796. package/dist/integrations/plugins/index.d.ts +0 -10
  797. package/dist/integrations/plugins/index.js.map +0 -1
  798. package/dist/integrations/plugins/plugin-integration.d.ts +0 -289
  799. package/dist/integrations/plugins/plugin-integration.js.map +0 -1
  800. package/dist/integrations/plugins/plugin-registry.d.ts +0 -224
  801. package/dist/integrations/plugins/plugin-registry.js.map +0 -1
  802. package/dist/mcps/agent-resolver.d.ts +0 -46
  803. package/dist/mcps/agent-resolver.js.map +0 -1
  804. package/dist/mcps/architect-tools.server.d.ts +0 -15
  805. package/dist/mcps/architect-tools.server.js.map +0 -1
  806. package/dist/mcps/auto-format.server.d.ts +0 -17
  807. package/dist/mcps/auto-format.server.js.map +0 -1
  808. package/dist/mcps/boot-orchestrator.server.d.ts +0 -20
  809. package/dist/mcps/boot-orchestrator.server.js.map +0 -1
  810. package/dist/mcps/config/config-loader.d.ts +0 -58
  811. package/dist/mcps/config/config-loader.js.map +0 -1
  812. package/dist/mcps/config/config-validator.d.ts +0 -40
  813. package/dist/mcps/config/config-validator.js.map +0 -1
  814. package/dist/mcps/config/index.d.ts +0 -31
  815. package/dist/mcps/config/index.js.map +0 -1
  816. package/dist/mcps/config/plugin-server-registry.d.ts +0 -127
  817. package/dist/mcps/config/plugin-server-registry.js.map +0 -1
  818. package/dist/mcps/config/server-config-registry.d.ts +0 -51
  819. package/dist/mcps/config/server-config-registry.js.map +0 -1
  820. package/dist/mcps/connection/connection-pool.d.ts +0 -64
  821. package/dist/mcps/connection/connection-pool.js.map +0 -1
  822. package/dist/mcps/connection/mcp-connection.d.ts +0 -66
  823. package/dist/mcps/connection/mcp-connection.js.map +0 -1
  824. package/dist/mcps/connection/process-spawner.d.ts +0 -24
  825. package/dist/mcps/connection/process-spawner.js.map +0 -1
  826. package/dist/mcps/enforcer-tools.server.d.ts +0 -25
  827. package/dist/mcps/enforcer-tools.server.js.map +0 -1
  828. package/dist/mcps/estimation.server.d.ts +0 -19
  829. package/dist/mcps/estimation.server.js.map +0 -1
  830. package/dist/mcps/framework-compliance-audit.server.d.ts +0 -20
  831. package/dist/mcps/framework-compliance-audit.server.js.map +0 -1
  832. package/dist/mcps/framework-help.server.d.ts +0 -12
  833. package/dist/mcps/framework-help.server.js.map +0 -1
  834. package/dist/mcps/governance.server.d.ts +0 -34
  835. package/dist/mcps/governance.server.js.map +0 -1
  836. package/dist/mcps/in-process-skill-registry.d.ts +0 -20
  837. package/dist/mcps/in-process-skill-registry.js.map +0 -1
  838. package/dist/mcps/index.d.ts +0 -17
  839. package/dist/mcps/index.js.map +0 -1
  840. package/dist/mcps/knowledge-skills/api-design.server.d.ts +0 -13
  841. package/dist/mcps/knowledge-skills/api-design.server.js.map +0 -1
  842. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +0 -7
  843. package/dist/mcps/knowledge-skills/architecture-patterns.server.js.map +0 -1
  844. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +0 -31
  845. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js.map +0 -1
  846. package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +0 -30
  847. package/dist/mcps/knowledge-skills/code-analyzer.server.js.map +0 -1
  848. package/dist/mcps/knowledge-skills/code-review.server.d.ts +0 -44
  849. package/dist/mcps/knowledge-skills/code-review.server.js.map +0 -1
  850. package/dist/mcps/knowledge-skills/content-creator.server.d.ts +0 -11
  851. package/dist/mcps/knowledge-skills/content-creator.server.js.map +0 -1
  852. package/dist/mcps/knowledge-skills/database-design.server.d.ts +0 -41
  853. package/dist/mcps/knowledge-skills/database-design.server.js.map +0 -1
  854. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +0 -41
  855. package/dist/mcps/knowledge-skills/devops-deployment.server.js.map +0 -1
  856. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +0 -13
  857. package/dist/mcps/knowledge-skills/git-workflow.server.js.map +0 -1
  858. package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +0 -11
  859. package/dist/mcps/knowledge-skills/growth-strategist.server.js.map +0 -1
  860. package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +0 -22
  861. package/dist/mcps/knowledge-skills/log-monitor.server.js.map +0 -1
  862. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +0 -17
  863. package/dist/mcps/knowledge-skills/mobile-development.server.js.map +0 -1
  864. package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +0 -53
  865. package/dist/mcps/knowledge-skills/multimodal-looker.server.js.map +0 -1
  866. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +0 -69
  867. package/dist/mcps/knowledge-skills/performance-optimization.server.js.map +0 -1
  868. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +0 -35
  869. package/dist/mcps/knowledge-skills/project-analysis.server.js.map +0 -1
  870. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +0 -31
  871. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js.map +0 -1
  872. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +0 -46
  873. package/dist/mcps/knowledge-skills/security-audit.server.js.map +0 -1
  874. package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +0 -24
  875. package/dist/mcps/knowledge-skills/seo-consultant.server.js.map +0 -1
  876. package/dist/mcps/knowledge-skills/session-management.server.d.ts +0 -21
  877. package/dist/mcps/knowledge-skills/session-management.server.js.map +0 -1
  878. package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +0 -32
  879. package/dist/mcps/knowledge-skills/skill-invocation.server.js.map +0 -1
  880. package/dist/mcps/knowledge-skills/strategist.server.d.ts +0 -8
  881. package/dist/mcps/knowledge-skills/strategist.server.js.map +0 -1
  882. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +0 -45
  883. package/dist/mcps/knowledge-skills/tech-writer.server.js.map +0 -1
  884. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +0 -45
  885. package/dist/mcps/knowledge-skills/testing-strategy.server.js.map +0 -1
  886. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +0 -66
  887. package/dist/mcps/knowledge-skills/ui-ux-design.server.js.map +0 -1
  888. package/dist/mcps/lint.server.d.ts +0 -15
  889. package/dist/mcps/lint.server.js.map +0 -1
  890. package/dist/mcps/mcp-client.d.ts +0 -157
  891. package/dist/mcps/mcp-client.js.map +0 -1
  892. package/dist/mcps/model-health-check.server.d.ts +0 -14
  893. package/dist/mcps/model-health-check.server.js.map +0 -1
  894. package/dist/mcps/orchestrator/config/agent-capabilities.d.ts +0 -35
  895. package/dist/mcps/orchestrator/config/agent-capabilities.js.map +0 -1
  896. package/dist/mcps/orchestrator/execution/execution-planner.d.ts +0 -62
  897. package/dist/mcps/orchestrator/execution/execution-planner.js.map +0 -1
  898. package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +0 -32
  899. package/dist/mcps/orchestrator/handlers/complexity-handler.js.map +0 -1
  900. package/dist/mcps/orchestrator/handlers/status-handler.d.ts +0 -69
  901. package/dist/mcps/orchestrator/handlers/status-handler.js.map +0 -1
  902. package/dist/mcps/orchestrator/handlers/task-handler.d.ts +0 -52
  903. package/dist/mcps/orchestrator/handlers/task-handler.js.map +0 -1
  904. package/dist/mcps/orchestrator/server.d.ts +0 -38
  905. package/dist/mcps/orchestrator/server.js.map +0 -1
  906. package/dist/mcps/orchestrator/types.d.ts +0 -79
  907. package/dist/mcps/orchestrator/types.js.map +0 -1
  908. package/dist/mcps/performance-analysis.server.d.ts +0 -25
  909. package/dist/mcps/performance-analysis.server.js.map +0 -1
  910. package/dist/mcps/processor-pipeline.server.d.ts +0 -29
  911. package/dist/mcps/processor-pipeline.server.js.map +0 -1
  912. package/dist/mcps/protocol/protocol-constants.d.ts +0 -46
  913. package/dist/mcps/protocol/protocol-constants.js.map +0 -1
  914. package/dist/mcps/researcher.server.d.ts +0 -29
  915. package/dist/mcps/researcher.server.js.map +0 -1
  916. package/dist/mcps/security-scan.server.d.ts +0 -18
  917. package/dist/mcps/security-scan.server.js.map +0 -1
  918. package/dist/mcps/shared/knowledge-skill-base.d.ts +0 -14
  919. package/dist/mcps/shared/knowledge-skill-base.js.map +0 -1
  920. package/dist/mcps/shared/prompt-security-validator.d.ts +0 -44
  921. package/dist/mcps/shared/prompt-security-validator.js.map +0 -1
  922. package/dist/mcps/shared/security-scanner.d.ts +0 -119
  923. package/dist/mcps/shared/security-scanner.js.map +0 -1
  924. package/dist/mcps/simulation/index.d.ts +0 -12
  925. package/dist/mcps/simulation/index.js.map +0 -1
  926. package/dist/mcps/simulation/server-simulations.d.ts +0 -39
  927. package/dist/mcps/simulation/server-simulations.js.map +0 -1
  928. package/dist/mcps/simulation/simulation-engine.d.ts +0 -51
  929. package/dist/mcps/simulation/simulation-engine.js.map +0 -1
  930. package/dist/mcps/state-manager.server.d.ts +0 -26
  931. package/dist/mcps/state-manager.server.js.map +0 -1
  932. package/dist/mcps/tools/index.d.ts +0 -14
  933. package/dist/mcps/tools/index.js.map +0 -1
  934. package/dist/mcps/tools/tool-cache.d.ts +0 -53
  935. package/dist/mcps/tools/tool-cache.js.map +0 -1
  936. package/dist/mcps/tools/tool-discovery.d.ts +0 -27
  937. package/dist/mcps/tools/tool-discovery.js.map +0 -1
  938. package/dist/mcps/tools/tool-executor.d.ts +0 -41
  939. package/dist/mcps/tools/tool-executor.js.map +0 -1
  940. package/dist/mcps/tools/tool-registry.d.ts +0 -42
  941. package/dist/mcps/tools/tool-registry.js.map +0 -1
  942. package/dist/mcps/types/index.d.ts +0 -13
  943. package/dist/mcps/types/index.js.map +0 -1
  944. package/dist/mcps/types/json-rpc.types.d.ts +0 -35
  945. package/dist/mcps/types/json-rpc.types.js.map +0 -1
  946. package/dist/mcps/types/mcp.types.d.ts +0 -105
  947. package/dist/mcps/types/mcp.types.js.map +0 -1
  948. package/dist/metrics/agent-metrics.d.ts +0 -170
  949. package/dist/metrics/agent-metrics.js.map +0 -1
  950. package/dist/metrics/index.d.ts +0 -6
  951. package/dist/metrics/index.js.map +0 -1
  952. package/dist/monitoring/advanced-profiler.d.ts +0 -51
  953. package/dist/monitoring/advanced-profiler.js.map +0 -1
  954. package/dist/monitoring/memory-monitor.d.ts +0 -113
  955. package/dist/monitoring/memory-monitor.js.map +0 -1
  956. package/dist/monitoring/nudge-watchdog.d.ts +0 -88
  957. package/dist/monitoring/nudge-watchdog.js.map +0 -1
  958. package/dist/monitoring/test-auto-generation-monitor.d.ts +0 -64
  959. package/dist/monitoring/test-auto-generation-monitor.js.map +0 -1
  960. package/dist/nucleus/default-plugins.d.ts +0 -17
  961. package/dist/nucleus/default-plugins.js.map +0 -1
  962. package/dist/nucleus/govern-http.d.ts +0 -59
  963. package/dist/nucleus/govern-http.js.map +0 -1
  964. package/dist/nucleus/index.d.ts +0 -18
  965. package/dist/nucleus/index.js.map +0 -1
  966. package/dist/nucleus/kernel.d.ts +0 -51
  967. package/dist/nucleus/kernel.js.map +0 -1
  968. package/dist/nucleus/orchestrator.d.ts +0 -97
  969. package/dist/nucleus/orchestrator.js.map +0 -1
  970. package/dist/nucleus/plugin-registry.d.ts +0 -132
  971. package/dist/nucleus/plugin-registry.js.map +0 -1
  972. package/dist/nucleus/thin-dispatch.d.ts +0 -28
  973. package/dist/nucleus/thin-dispatch.js.map +0 -1
  974. package/dist/orchestrator/agent-spawn-governor.d.ts +0 -127
  975. package/dist/orchestrator/agent-spawn-governor.js.map +0 -1
  976. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +0 -156
  977. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js.map +0 -1
  978. package/dist/orchestrator/intelligent-commit-batcher.d.ts +0 -114
  979. package/dist/orchestrator/intelligent-commit-batcher.js.map +0 -1
  980. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +0 -127
  981. package/dist/orchestrator/multi-agent-orchestration-coordinator.js.map +0 -1
  982. package/dist/orchestrator/orchestrator.d.ts +0 -142
  983. package/dist/orchestrator/orchestrator.js.map +0 -1
  984. package/dist/plugin/xray-codex-injection.d.ts +0 -55
  985. package/dist/plugin/xray-codex-injection.js.map +0 -1
  986. package/dist/postprocessor/PostProcessor.d.ts +0 -80
  987. package/dist/postprocessor/PostProcessor.js.map +0 -1
  988. package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +0 -11
  989. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +0 -51
  990. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js.map +0 -1
  991. package/dist/postprocessor/analysis/FailureAnalysisEngine.d.ts +0 -39
  992. package/dist/postprocessor/analysis/FailureAnalysisEngine.js.map +0 -1
  993. package/dist/postprocessor/autofix/AutoFixEngine.d.ts +0 -40
  994. package/dist/postprocessor/autofix/AutoFixEngine.js.map +0 -1
  995. package/dist/postprocessor/autofix/FixValidator.d.ts +0 -23
  996. package/dist/postprocessor/autofix/FixValidator.js.map +0 -1
  997. package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.d.ts +0 -11
  998. package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.js +0 -357
  999. package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.js.map +0 -1
  1000. package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +0 -44
  1001. package/dist/postprocessor/config/ProcessorConfigLoader.js +0 -22
  1002. package/dist/postprocessor/config/ProcessorConfigLoader.js.map +0 -1
  1003. package/dist/postprocessor/config.d.ts +0 -6
  1004. package/dist/postprocessor/config.js.map +0 -1
  1005. package/dist/postprocessor/escalation/EscalationEngine.d.ts +0 -154
  1006. package/dist/postprocessor/escalation/EscalationEngine.js.map +0 -1
  1007. package/dist/postprocessor/metamorphosis/SelfProposalEngine.d.ts +0 -87
  1008. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +0 -473
  1009. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js.map +0 -1
  1010. package/dist/postprocessor/metamorphosis/index.d.ts +0 -2
  1011. package/dist/postprocessor/metamorphosis/index.js +0 -2
  1012. package/dist/postprocessor/metamorphosis/index.js.map +0 -1
  1013. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +0 -40
  1014. package/dist/postprocessor/monitoring/MonitoringEngine.js.map +0 -1
  1015. package/dist/postprocessor/redeploy/RedeployCoordinator.d.ts +0 -91
  1016. package/dist/postprocessor/redeploy/RedeployCoordinator.js.map +0 -1
  1017. package/dist/postprocessor/reporting/PostProcessorReporter.d.ts +0 -19
  1018. package/dist/postprocessor/reporting/PostProcessorReporter.js +0 -97
  1019. package/dist/postprocessor/reporting/PostProcessorReporter.js.map +0 -1
  1020. package/dist/postprocessor/services/RegressionAnalysisService.d.ts +0 -40
  1021. package/dist/postprocessor/services/RegressionAnalysisService.js.map +0 -1
  1022. package/dist/postprocessor/success/SuccessHandler.d.ts +0 -57
  1023. package/dist/postprocessor/success/SuccessHandler.js.map +0 -1
  1024. package/dist/postprocessor/triggers/APITrigger.d.ts +0 -35
  1025. package/dist/postprocessor/triggers/APITrigger.js.map +0 -1
  1026. package/dist/postprocessor/triggers/GitHookTrigger.d.ts +0 -38
  1027. package/dist/postprocessor/triggers/GitHookTrigger.js.map +0 -1
  1028. package/dist/postprocessor/triggers/WebhookTrigger.d.ts +0 -47
  1029. package/dist/postprocessor/triggers/WebhookTrigger.js.map +0 -1
  1030. package/dist/postprocessor/types.d.ts +0 -233
  1031. package/dist/postprocessor/types.js.map +0 -1
  1032. package/dist/postprocessor/validation/HookMetricsCollector.d.ts +0 -47
  1033. package/dist/postprocessor/validation/HookMetricsCollector.js +0 -188
  1034. package/dist/postprocessor/validation/HookMetricsCollector.js.map +0 -1
  1035. package/dist/postprocessor/validation/LightweightValidator.d.ts +0 -46
  1036. package/dist/postprocessor/validation/LightweightValidator.js +0 -271
  1037. package/dist/postprocessor/validation/LightweightValidator.js.map +0 -1
  1038. package/dist/processors/doc-write-guard.d.ts +0 -6
  1039. package/dist/processors/doc-write-guard.js.map +0 -1
  1040. package/dist/processors/implementations/agents-md-validation-processor.d.ts +0 -63
  1041. package/dist/processors/implementations/agents-md-validation-processor.js.map +0 -1
  1042. package/dist/processors/implementations/async-pattern-processor.d.ts +0 -48
  1043. package/dist/processors/implementations/async-pattern-processor.js.map +0 -1
  1044. package/dist/processors/implementations/codex-compliance-processor.d.ts +0 -7
  1045. package/dist/processors/implementations/codex-compliance-processor.js.map +0 -1
  1046. package/dist/processors/implementations/commit-batcher-processor.d.ts +0 -13
  1047. package/dist/processors/implementations/commit-batcher-processor.js.map +0 -1
  1048. package/dist/processors/implementations/console-log-guard-processor.d.ts +0 -33
  1049. package/dist/processors/implementations/console-log-guard-processor.js.map +0 -1
  1050. package/dist/processors/implementations/coverage-analysis-processor.d.ts +0 -20
  1051. package/dist/processors/implementations/coverage-analysis-processor.js.map +0 -1
  1052. package/dist/processors/implementations/error-boundary-processor.d.ts +0 -7
  1053. package/dist/processors/implementations/error-boundary-processor.js.map +0 -1
  1054. package/dist/processors/implementations/inference-improvement-processor.d.ts +0 -36
  1055. package/dist/processors/implementations/inference-improvement-processor.js.map +0 -1
  1056. package/dist/processors/implementations/log-protection-processor.d.ts +0 -30
  1057. package/dist/processors/implementations/log-protection-processor.js.map +0 -1
  1058. package/dist/processors/implementations/nudge-processor.d.ts +0 -22
  1059. package/dist/processors/implementations/nudge-processor.js.map +0 -1
  1060. package/dist/processors/implementations/performance-budget-processor.d.ts +0 -50
  1061. package/dist/processors/implementations/performance-budget-processor.js.map +0 -1
  1062. package/dist/processors/implementations/postprocessor-chain-validator.d.ts +0 -46
  1063. package/dist/processors/implementations/postprocessor-chain-validator.js.map +0 -1
  1064. package/dist/processors/implementations/pre-validate-processor.d.ts +0 -7
  1065. package/dist/processors/implementations/pre-validate-processor.js.map +0 -1
  1066. package/dist/processors/implementations/publish-preflight-processor.d.ts +0 -38
  1067. package/dist/processors/implementations/publish-preflight-processor.js.map +0 -1
  1068. package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +0 -39
  1069. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js.map +0 -1
  1070. package/dist/processors/implementations/regression-testing-processor.d.ts +0 -20
  1071. package/dist/processors/implementations/regression-testing-processor.js.map +0 -1
  1072. package/dist/processors/implementations/session-summary-processor.d.ts +0 -27
  1073. package/dist/processors/implementations/session-summary-processor.js.map +0 -1
  1074. package/dist/processors/implementations/spawn-governance-processor.d.ts +0 -58
  1075. package/dist/processors/implementations/spawn-governance-processor.js.map +0 -1
  1076. package/dist/processors/implementations/state-validation-processor.d.ts +0 -11
  1077. package/dist/processors/implementations/state-validation-processor.js.map +0 -1
  1078. package/dist/processors/implementations/storytelling-trigger-processor.d.ts +0 -42
  1079. package/dist/processors/implementations/storytelling-trigger-processor.js.map +0 -1
  1080. package/dist/processors/implementations/test-auto-creation-processor.d.ts +0 -17
  1081. package/dist/processors/implementations/test-auto-creation-processor.js.map +0 -1
  1082. package/dist/processors/implementations/test-execution-processor.d.ts +0 -11
  1083. package/dist/processors/implementations/test-execution-processor.js.map +0 -1
  1084. package/dist/processors/implementations/typescript-compilation-processor.d.ts +0 -38
  1085. package/dist/processors/implementations/typescript-compilation-processor.js.map +0 -1
  1086. package/dist/processors/implementations/version-compliance-processor.d.ts +0 -112
  1087. package/dist/processors/implementations/version-compliance-processor.js.map +0 -1
  1088. package/dist/processors/processor-interfaces.d.ts +0 -127
  1089. package/dist/processors/processor-interfaces.js.map +0 -1
  1090. package/dist/processors/processor-manager.d.ts +0 -80
  1091. package/dist/processors/processor-manager.js.map +0 -1
  1092. package/dist/processors/processor-types.d.ts +0 -190
  1093. package/dist/processors/processor-types.js.map +0 -1
  1094. package/dist/public/XrayService.d.ts +0 -17
  1095. package/dist/public/XrayService.js.map +0 -1
  1096. package/dist/public/index.d.ts +0 -4
  1097. package/dist/public/index.js.map +0 -1
  1098. package/dist/reporting/framework-reporting-system.d.ts +0 -19
  1099. package/dist/reporting/framework-reporting-system.js.map +0 -1
  1100. package/dist/reporting/log-parser.d.ts +0 -10
  1101. package/dist/reporting/log-parser.js.map +0 -1
  1102. package/dist/reporting/metrics.d.ts +0 -15
  1103. package/dist/reporting/metrics.js.map +0 -1
  1104. package/dist/reporting/report-formatter.d.ts +0 -5
  1105. package/dist/reporting/report-formatter.js.map +0 -1
  1106. package/dist/reporting/types.d.ts +0 -102
  1107. package/dist/reporting/types.js.map +0 -1
  1108. package/dist/scripts/integration.d.ts +0 -37
  1109. package/dist/scripts/integration.js.map +0 -1
  1110. package/dist/security/comprehensive-security-audit.d.ts +0 -158
  1111. package/dist/security/comprehensive-security-audit.js.map +0 -1
  1112. package/dist/security/security-hardener.d.ts +0 -129
  1113. package/dist/security/security-hardener.js.map +0 -1
  1114. package/dist/security/security-headers.d.ts +0 -64
  1115. package/dist/security/security-headers.js.map +0 -1
  1116. package/dist/services/inference-tuner.d.ts +0 -77
  1117. package/dist/services/inference-tuner.js.map +0 -1
  1118. package/dist/session/index.d.ts +0 -3
  1119. package/dist/session/index.js.map +0 -1
  1120. package/dist/session/session-cleanup-manager.d.ts +0 -118
  1121. package/dist/session/session-cleanup-manager.js.map +0 -1
  1122. package/dist/session/session-monitor.d.ts +0 -133
  1123. package/dist/session/session-monitor.js.map +0 -1
  1124. package/dist/session/session-state-manager.d.ts +0 -145
  1125. package/dist/session/session-state-manager.js.map +0 -1
  1126. package/dist/skills/xray-orchestrator/index.d.ts +0 -13
  1127. package/dist/skills/xray-orchestrator/index.js.map +0 -1
  1128. package/dist/state/index.d.ts +0 -1
  1129. package/dist/state/index.js.map +0 -1
  1130. package/dist/state/state-manager.d.ts +0 -42
  1131. package/dist/state/state-manager.js.map +0 -1
  1132. package/dist/tools/assess-complexity-tool.d.ts +0 -28
  1133. package/dist/tools/assess-complexity-tool.js.map +0 -1
  1134. package/dist/tools/query-routing-tool.d.ts +0 -17
  1135. package/dist/tools/query-routing-tool.js.map +0 -1
  1136. package/dist/types/metamorphosis.d.ts +0 -21
  1137. package/dist/types/metamorphosis.js.map +0 -1
  1138. package/dist/utils/codex-parser.d.ts +0 -61
  1139. package/dist/utils/codex-parser.js.map +0 -1
  1140. package/dist/utils/command-runner.d.ts +0 -32
  1141. package/dist/utils/command-runner.js.map +0 -1
  1142. package/dist/utils/import-resolver.d.ts +0 -54
  1143. package/dist/utils/import-resolver.js.map +0 -1
  1144. package/dist/utils/language-detector.d.ts +0 -44
  1145. package/dist/utils/language-detector.js.map +0 -1
  1146. package/dist/utils/path-resolver.d.ts +0 -48
  1147. package/dist/utils/path-resolver.js.map +0 -1
  1148. package/dist/utils/shutdown-handler.d.ts +0 -27
  1149. package/dist/utils/shutdown-handler.js.map +0 -1
  1150. package/dist/utils/task-graph.d.ts +0 -29
  1151. package/dist/utils/task-graph.js.map +0 -1
  1152. package/dist/validation/estimation-validator.d.ts +0 -61
  1153. package/dist/validation/estimation-validator.js.map +0 -1
  1154. package/dist/validation/report-content-validator.d.ts +0 -42
  1155. package/dist/validation/report-content-validator.js.map +0 -1
  1156. package/xray/agents_template.md +0 -49
  1157. package/xray/codex.json +0 -598
  1158. package/xray/config.json +0 -26
  1159. package/xray/features.json +0 -148
  1160. package/xray/integrations.json +0 -23
  1161. package/xray/routing-mappings.json +0 -752
  1162. package/xray/workflow_state.json +0 -28
@@ -2,17 +2,31 @@ import * as fs from "fs";
2
2
  import * as path from "path";
3
3
  import { shouldTriggerCycle, accumulateCorpus } from "./inference-accumulator.js";
4
4
  import { DeployVerifier } from "./deploy-verifier.js";
5
+ import { VotingCoordinator } from "../delegation/voting-coordinator.js";
5
6
  import { XrayStateManager } from "../state/state-manager.js";
6
7
  import { frameworkLogger } from "../core/framework-logger.js";
8
+ import { getGovernanceIntegration } from "../integrations/governance/index.js";
9
+ import { featuresConfigLoader } from "../core/features-config.js";
10
+ import { mcpClientManager } from "../mcps/mcp-client.js";
11
+ import { getConfigDir } from "../core/config-paths.js";
7
12
  import { invokeViaOpencode as invokeOpencodeFromEngine } from "../execution/opencode-cli-invoker.js";
8
13
  import { ProposalApplier } from "../execution/proposal-applier.js";
9
- import { handleGovernRequest } from "../nucleus/govern-http.js";
10
- const CONSOLIDATED_STATE_FILE = "inference-state.json";
14
+ const CYCLE_STATE_FILE = "inference-cycle-state.json";
15
+ const CYCLE_HISTORY_FILE = "inference-cycle-history.json";
16
+ const GOVERNANCE_AGENTS = {
17
+ // Real individual knowledge-skill MCP servers (have analyze_proposal handlers)
18
+ fix: ["code-review", "security-audit", "researcher"],
19
+ refactor: ["code-review", "security-audit", "researcher"],
20
+ guard: ["code-review", "security-audit", "researcher"],
21
+ automate: ["code-review", "security-audit", "researcher"],
22
+ codify: ["code-review", "security-audit", "researcher"],
23
+ };
11
24
  export class InferenceCycle {
12
25
  // Singleton registry + state management to prevent recursive agent spawning
13
26
  static instances = new Map();
14
27
  static reEntryLock = false;
15
28
  static governedProposalIds = new Set();
29
+ static votingCoordinator = null;
16
30
  static getInstance(projectRoot, options) {
17
31
  const root = path.resolve(projectRoot || process.cwd());
18
32
  if (!InferenceCycle.instances.has(root)) {
@@ -24,6 +38,7 @@ export class InferenceCycle {
24
38
  InferenceCycle.instances.clear();
25
39
  InferenceCycle.reEntryLock = false;
26
40
  InferenceCycle.governedProposalIds.clear();
41
+ InferenceCycle.votingCoordinator = null;
27
42
  }
28
43
  inferenceDir;
29
44
  stateDir;
@@ -83,6 +98,7 @@ export class InferenceCycle {
83
98
  InferenceCycle.governedProposalIds.add(p.id);
84
99
  this.setPhase("complete");
85
100
  this.saveCycleState(cycleId);
101
+ this.saveGovernanceState(this.getCoordinator());
86
102
  const result = this.buildResult(cycleId, true, "external proposals", startTime, undefined, proposals, votes);
87
103
  this.appendHistory(result);
88
104
  frameworkLogger.log("inference-cycle", "external-governance-complete", "info", {
@@ -108,7 +124,7 @@ export class InferenceCycle {
108
124
  const cycleId = `cycle-${Date.now()}`;
109
125
  try {
110
126
  this.setPhase("collecting");
111
- const lastCycleFile = path.join(this.stateDir, CONSOLIDATED_STATE_FILE);
127
+ const lastCycleFile = path.join(this.stateDir, CYCLE_STATE_FILE);
112
128
  const threshold = this.options.force ? { trigger: true, reason: "force flag set" } : shouldTriggerCycle(this.inferenceDir, lastCycleFile);
113
129
  if (!threshold.trigger) {
114
130
  this.setPhase("idle");
@@ -120,7 +136,7 @@ export class InferenceCycle {
120
136
  });
121
137
  const corpus = accumulateCorpus(this.inferenceDir);
122
138
  this.setPhase("proposing");
123
- const proposals = await this.generateProposals(corpus);
139
+ const proposals = this.generateProposals(corpus);
124
140
  this.adjustFromHistory(proposals);
125
141
  if (proposals.length === 0) {
126
142
  this.setPhase("complete");
@@ -172,6 +188,7 @@ export class InferenceCycle {
172
188
  }
173
189
  this.setPhase("complete");
174
190
  this.saveCycleState(cycleId);
191
+ this.saveGovernanceState(this.getCoordinator());
175
192
  this.appendHistory(this.buildResult(cycleId, true, threshold.reason, startTime, corpus, proposals, votes, deployResult));
176
193
  return this.buildResult(cycleId, true, threshold.reason, startTime, corpus, proposals, votes, deployResult);
177
194
  }
@@ -184,7 +201,7 @@ export class InferenceCycle {
184
201
  InferenceCycle.reEntryLock = false;
185
202
  }
186
203
  }
187
- async generateProposals(corpus) {
204
+ generateProposals(corpus) {
188
205
  const proposals = [];
189
206
  for (const problem of corpus.recurringProblems) {
190
207
  proposals.push({
@@ -247,61 +264,25 @@ export class InferenceCycle {
247
264
  status: "pending",
248
265
  });
249
266
  }
250
- // Validate proposals against codex terms 1/3/5 (ai-reasoning terms made auditable)
251
- // Adjusts confidence down when validators flag concerns, making the inference
252
- // pipeline explicit about architecture/product quality validation.
253
- try {
254
- const { globalValidatorRegistry } = await import("../enforcement/validators/validator-registry.js");
255
- const noOverEngineer = globalValidatorRegistry.getValidator("no-over-engineering");
256
- const singleResponsibility = globalValidatorRegistry.getValidator("single-responsibility");
257
- for (const p of proposals) {
258
- // Term 1/3 validation: flag over-engineered proposals
259
- if (noOverEngineer) {
260
- const res = await noOverEngineer.validate({
261
- operation: "inference",
262
- files: [],
263
- newCode: p.description,
264
- });
265
- if (!res.passed) {
266
- p.confidence *= 0.85;
267
- p.evidence.push(`Term 1/3: NoOverEngineeringValidator flagged: ${res.message}`);
268
- }
269
- }
270
- // Term 5 validation: flag proposals violating single responsibility
271
- if (singleResponsibility) {
272
- const res = await singleResponsibility.validate({
273
- operation: "inference",
274
- files: [],
275
- newCode: p.description,
276
- });
277
- if (!res.passed) {
278
- p.confidence *= 0.85;
279
- p.evidence.push(`Term 5: SingleResponsibilityValidator flagged: ${res.message}`);
280
- }
281
- }
282
- // Block proposals that fail both validators severely (confidence <= 0.3 after adjustments)
283
- if (p.confidence <= 0.3) {
284
- await frameworkLogger.log("inference-cycle", "proposal-blocked", "warning", {
285
- proposalId: p.id,
286
- title: p.title,
287
- confidence: p.confidence,
288
- reason: "Confidence below 0.3 threshold after validator adjustments",
289
- });
290
- }
291
- }
292
- }
293
- catch {
294
- // Validator check is non-blocking for inference — log and continue
295
- }
296
- const actionable = proposals.filter(p => p.confidence > 0.3);
297
- return actionable.sort((a, b) => b.confidence - a.confidence).slice(0, 3);
267
+ return proposals.sort((a, b) => b.confidence - a.confidence).slice(0, 3);
298
268
  }
299
269
  adjustFromHistory(proposals) {
300
270
  this.adjustConfidenceFromHistory(proposals);
301
271
  proposals.sort((a, b) => b.confidence - a.confidence);
302
272
  }
273
+ getCoordinator() {
274
+ if (!InferenceCycle.votingCoordinator) {
275
+ const stateManager = this.getGovernanceStateManager();
276
+ InferenceCycle.votingCoordinator = new VotingCoordinator(stateManager);
277
+ }
278
+ return InferenceCycle.votingCoordinator;
279
+ }
303
280
  async applyProposals(proposals) {
304
- const applier = new ProposalApplier(this.projectRoot);
281
+ const applier = new ProposalApplier(this.projectRoot, async (p) => this.applyProposalWork(p), async (p, prUrl) => {
282
+ if (this.options.skipResearcherReview)
283
+ return "go";
284
+ return this.researcherReview(p, prUrl);
285
+ });
305
286
  const results = await applier.applyProposals(proposals);
306
287
  for (const r of results) {
307
288
  const p = proposals.find(pr => pr.id === r.proposalId);
@@ -345,8 +326,12 @@ export class InferenceCycle {
345
326
  targetFiles,
346
327
  });
347
328
  try {
348
- const agentName = p.type === "refactor" ? "refactorer" : "code-reviewer";
349
- await invokeOpencodeFromEngine(agentName, prompt, this.projectRoot);
329
+ let agentName = p.type === "refactor" ? "refactorer" : "code-reviewer";
330
+ // In pure MCP mode, use real skill server names so the orchestrator dispatches to actual MCP tools
331
+ if (process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true') {
332
+ agentName = p.type === "refactor" ? "refactoring-strategies" : "code-review";
333
+ }
334
+ await this.invokeAgentInternal(agentName, prompt);
350
335
  return true;
351
336
  }
352
337
  catch (err) {
@@ -368,11 +353,14 @@ export class InferenceCycle {
368
353
  ``,
369
354
  `1. Read the relevant source files`,
370
355
  `2. Add the missing guard, validation, or edge case handling`,
371
- `3. If this is a codex rule, add the term to xray/codex.json`,
356
+ `3. If this is a codex rule, add the term to .opencode/xray/codex.json`,
372
357
  `4. Make minimal, surgical changes`,
373
358
  ].join("\n");
374
359
  try {
375
- await invokeOpencodeFromEngine("code-reviewer", prompt, this.projectRoot);
360
+ const agentName = process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true'
361
+ ? "code-review"
362
+ : "code-reviewer";
363
+ await this.invokeAgentInternal(agentName, prompt);
376
364
  return true;
377
365
  }
378
366
  catch (err) {
@@ -400,7 +388,10 @@ export class InferenceCycle {
400
388
  `3. Implement it if straightforward, otherwise describe the design`,
401
389
  ].join("\n");
402
390
  try {
403
- await invokeOpencodeFromEngine("architect", prompt, this.projectRoot);
391
+ const agentName = process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true'
392
+ ? "architecture-patterns"
393
+ : "architect";
394
+ await this.invokeAgentInternal(agentName, prompt);
404
395
  return true;
405
396
  }
406
397
  catch (err) {
@@ -448,7 +439,7 @@ Respond with EXACTLY one of:
448
439
  - NO-GO (proposal is invalid, reject)
449
440
  - MODIFY: <specific changes needed>`;
450
441
  try {
451
- const result = await invokeOpencodeFromEngine("researcher", prompt, this.projectRoot);
442
+ const result = await this.invokeAgentInternal("researcher", prompt);
452
443
  const output = result.toLowerCase();
453
444
  if (output.includes("no-go"))
454
445
  return "no-go";
@@ -462,99 +453,481 @@ Respond with EXACTLY one of:
462
453
  }
463
454
  }
464
455
  async governProposals(proposals) {
465
- const governanceResponse = await this.governViaNucleus(proposals);
466
- frameworkLogger.log("inference-cycle", "governance-nucleus-success", "info", {
467
- proposalCount: proposals.length,
468
- overall: governanceResponse.overallDecision,
469
- });
470
- return this.convertNucleusResponse(governanceResponse, proposals);
456
+ // Primary path: Use the first-class Governance MCP (real skill servers + required Dynamo)
457
+ // This is the clean, centralized path (governance.server.ts + GovernanceService)
458
+ const useGovernanceMcp = process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true' ||
459
+ this.isGovernanceMcpPreferred();
460
+ if (useGovernanceMcp) {
461
+ try {
462
+ const result = await Promise.race([
463
+ mcpClientManager.callServerTool("governance", "govern_proposals", {
464
+ proposals: proposals.map(p => ({
465
+ id: p.id,
466
+ type: p.type,
467
+ title: p.title,
468
+ description: p.description,
469
+ evidence: p.evidence || [],
470
+ source: p.source || "inference",
471
+ confidence: p.confidence || 0.8,
472
+ })),
473
+ context: { source: "inference-cycle" },
474
+ options: { require_external: true },
475
+ }),
476
+ new Promise((_, reject) => setTimeout(() => reject(new Error("Governance MCP timed out after 8s")), 8000)),
477
+ ]);
478
+ const text = result?.content?.[0]?.text || "";
479
+ const parsed = this.parseGovernanceMcpResponse(text, proposals);
480
+ frameworkLogger.log("inference-cycle", "governance-mcp-primary-path", "info", {
481
+ proposalCount: proposals.length,
482
+ overall: parsed.overallDecision,
483
+ });
484
+ return parsed.votes;
485
+ }
486
+ catch (err) {
487
+ frameworkLogger.log("inference-cycle", "governance-mcp-failed", "error", {
488
+ error: err instanceof Error ? err.message : String(err),
489
+ });
490
+ // In forced pure MCP mode we must not silently fall back
491
+ if (process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true') {
492
+ throw err;
493
+ }
494
+ // In normal mode, fall back to legacy path with deprecation warning.
495
+ // The legacy path will be removed once all consumers have migrated to the Governance MCP + Dynamo Solar SSOT model.
496
+ frameworkLogger.log("inference-cycle", "governance-legacy-fallback", "warning", {
497
+ message: "Falling back to legacy governance path. This path is deprecated and will be removed in a future version.",
498
+ });
499
+ }
500
+ }
501
+ // Legacy internal path (deprecated)
502
+ const internalVotes = await this.governProposalsInternal(proposals);
503
+ const governanceIntegration = getGovernanceIntegration();
504
+ if (governanceIntegration?.isAvailable()) {
505
+ const externalVotes = await this.governProposalsExternal(proposals);
506
+ return this.mergeGovernanceVotes(internalVotes, externalVotes, proposals);
507
+ }
508
+ return internalVotes;
509
+ }
510
+ isGovernanceMcpPreferred() {
511
+ try {
512
+ const config = featuresConfigLoader.loadConfig();
513
+ const inferenceGov = config.inference_governance;
514
+ return inferenceGov?.enabled ?? true;
515
+ }
516
+ catch {
517
+ return true;
518
+ }
519
+ }
520
+ parseGovernanceMcpResponse(text, proposals) {
521
+ // The governance MCP returns a GovernanceResponse JSON
522
+ try {
523
+ const data = JSON.parse(text);
524
+ const results = data.results || [];
525
+ const votes = proposals.map((p, i) => {
526
+ const r = results[i] || {};
527
+ return {
528
+ proposalId: p.id,
529
+ decision: (r.finalDecision === 'approve' ? 'approve' : r.finalDecision === 'reject' ? 'reject' : 'needs_revision'),
530
+ confidence: r.averageConfidence || 0.75,
531
+ details: (r.votes || []).map((v) => `${v.server}: ${v.decision} (${v.confidence})`),
532
+ };
533
+ });
534
+ return { votes, overallDecision: data.overallDecision || "needs_revision" };
535
+ }
536
+ catch {
537
+ frameworkLogger.log('inference-cycle', 'governance-mcp-parse-failed', 'warning', {
538
+ textPreview: text.substring(0, 200),
539
+ proposalCount: proposals.length,
540
+ });
541
+ const votes = proposals.map(p => ({
542
+ proposalId: p.id,
543
+ decision: "abstain",
544
+ confidence: 0.5,
545
+ details: ["governance-mcp: parse-failed"],
546
+ }));
547
+ return { votes, overallDecision: "needs_revision" };
548
+ }
471
549
  }
472
550
  /**
473
- * Map InferenceProposal.source to GovernanceProposal.source.
474
- * Inference-specific sources (recurring_problem, recurring_pattern, wrong_turn)
475
- * all normalize to 'inference'. Future tuning/mod-specific sources can be added here.
476
- */
477
- static SOURCE_MAP = {
478
- 'recurring_problem': 'inference',
479
- 'recurring_pattern': 'inference',
480
- 'wrong_turn': 'inference',
481
- };
482
- /**
483
- * Convert InferenceProposal[] to GovernanceRequest and route through
484
- * the nucleus kernel (handleGovernRequest). This is the v3 uniform path.
551
+ * Oscillator 1: Internal VotingCoordinator-based governance
485
552
  */
486
- async governViaNucleus(proposals) {
487
- // Auto-detect project identity from package.json for tagging
488
- let projectName = 'unknown';
489
- let projectTags = [];
553
+ async governProposalsInternal(proposals) {
554
+ // Defensive: if pure MCP mode is forced, use individual skill servers only
555
+ if (process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true') {
556
+ return this.governProposalsWithIndividualSkills(proposals);
557
+ }
558
+ const coordinator = this.getCoordinator();
559
+ const sessionId = `inference-governance-${Date.now()}`;
560
+ const results = [];
561
+ const todoPrompt = [
562
+ `Vote on ${proposals.length} inference proposals. Output EXACTLY one PROPOSAL block per proposal.`,
563
+ ``,
564
+ `FORMAT (exact, no extra text, no markdown):`,
565
+ `PROPOSAL: <number>`,
566
+ ` AGENT: architect`,
567
+ ` DECISION: approve|reject|abstain`,
568
+ ` CONFIDENCE: 0.XX`,
569
+ ` REASONING: <brief reason>`,
570
+ ``,
571
+ `Example:`,
572
+ `PROPOSAL: 1`,
573
+ ` AGENT: architect`,
574
+ ` DECISION: approve`,
575
+ ` CONFIDENCE: 0.85`,
576
+ ` REASONING: Cleanup reduces maintenance burden`,
577
+ ``,
578
+ `PROPOSALS:`,
579
+ ];
580
+ for (let i = 0; i < proposals.length; i++) {
581
+ const p = proposals[i];
582
+ todoPrompt.push(`${i + 1}. [${p.type}] "${p.title}"`);
583
+ }
490
584
  try {
491
- const pkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'), 'utf-8'));
492
- projectName = pkg.name || 'unknown';
493
- projectTags = projectName === '0xray' ? ['0xray'] : [projectName];
585
+ const jsonOutput = await this.invokeAgentInternal("architect", todoPrompt.join("\n"));
586
+ const allVotes = this.parseSubagentVotes(jsonOutput, proposals);
587
+ for (const proposal of proposals) {
588
+ const agents = GOVERNANCE_AGENTS[proposal.type] ?? ["code-reviewer"];
589
+ const participants = ["architect", ...agents];
590
+ const voteId = await coordinator.initiateVoting(sessionId, proposal.title, proposal.description, participants, {
591
+ complexity: Math.min(50, 10 + proposal.evidence.length * 5 + (proposal.confidence > 0.8 ? 10 : 0)),
592
+ riskLevel: proposal.type === "fix" ? "low" : proposal.type === "guard" ? "high" : "medium",
593
+ hasSecurityConcerns: proposal.type === "guard" || proposal.type === "fix",
594
+ hasArchitecturalImpact: proposal.type === "codify" || proposal.type === "automate",
595
+ participantCount: participants.length,
596
+ });
597
+ const proposalVotes = allVotes.filter((v) => v.proposalId === proposal.id);
598
+ for (const v of proposalVotes) {
599
+ coordinator.submitVote(voteId, v.agentName, v.decision, v.confidence, v.reasoning);
600
+ }
601
+ const resolved = coordinator.resolveVoting(voteId);
602
+ if (resolved) {
603
+ results.push({
604
+ proposalId: proposal.id,
605
+ decision: resolved.decision === "approve" ? "approve" : "reject",
606
+ confidence: resolved.confidence,
607
+ details: resolved.details?.map((d) => `${d.agentName}: vote=${d.vote}, weight=${d.weight.toFixed(2)}`) || [],
608
+ });
609
+ if (resolved.details) {
610
+ for (const detail of resolved.details) {
611
+ this.getCoordinator().getAggregator().updateAgentPerformance(detail.agentName, resolved.decision, detail.vote, detail.vote === resolved.decision, proposal.confidence);
612
+ }
613
+ }
614
+ }
615
+ else {
616
+ results.push(this.rejectNoQuorum(proposal, "agents did not vote (no quorum)"));
617
+ }
618
+ }
494
619
  }
495
- catch {
496
- projectTags = [];
497
- }
498
- const governanceRequest = {
499
- proposals: proposals.map(p => ({
500
- id: p.id,
501
- type: p.type,
502
- title: p.title,
503
- description: p.description,
504
- evidence: p.evidence,
505
- source: InferenceCycle.SOURCE_MAP[p.source] || 'inference',
506
- confidence: p.confidence,
507
- tags: projectTags,
508
- })),
509
- context: {
510
- project: projectName,
511
- phase: 'inference-cycle',
512
- source: 'inference-cycle',
513
- tags: projectTags,
514
- },
515
- options: {
516
- requireExternalDynamo: !process.env.XRAY_LOCAL_MODE,
517
- },
620
+ catch (error) {
621
+ frameworkLogger.log("inference-cycle", "architect-governance-failed", "error", { error: String(error) });
622
+ for (const proposal of proposals) {
623
+ results.push(this.rejectNoQuorum(proposal, `agent invocation failed: ${error instanceof Error ? error.message : String(error)}`));
624
+ }
625
+ }
626
+ const metrics = coordinator.getMetrics();
627
+ frameworkLogger.log("inference-cycle", "governance-metrics", "info", {
628
+ totalVotes: metrics.totalVotes,
629
+ avgConfidence: metrics.averageConfidence.toFixed(2),
630
+ strategyUsage: metrics.strategyUsage,
631
+ });
632
+ return results;
633
+ }
634
+ /**
635
+ * Pure individual knowledge-skill MCP path for governance.
636
+ * Used when STRRAY_FORCE_MCP_GOVERNANCE=true.
637
+ * Each proposal is evaluated directly by the relevant skill servers using analyze_proposal.
638
+ */
639
+ async governProposalsWithIndividualSkills(proposals) {
640
+ const results = [];
641
+ const GOVERNANCE_AGENTS = {
642
+ fix: ["code-review", "security-audit", "researcher"],
643
+ refactor: ["code-review", "security-audit", "researcher"],
644
+ guard: ["code-review", "security-audit", "researcher"],
645
+ automate: ["code-review", "security-audit", "researcher"],
646
+ codify: ["code-review", "security-audit", "researcher"],
518
647
  };
519
- return handleGovernRequest(governanceRequest);
648
+ for (const proposal of proposals) {
649
+ const agents = GOVERNANCE_AGENTS[proposal.type] ?? ["code-review", "security-audit"];
650
+ const skillVotes = [];
651
+ for (const agent of agents) {
652
+ try {
653
+ const skillResult = await mcpClientManager.callServerTool(agent, "analyze_proposal", {
654
+ proposalTitle: proposal.title,
655
+ proposalDescription: proposal.description,
656
+ evidence: proposal.evidence,
657
+ proposalType: proposal.type,
658
+ });
659
+ let structured = "";
660
+ const contents = skillResult?.content || [];
661
+ for (const c of contents) {
662
+ if (c?.text && c.text.includes("DECISION:")) {
663
+ structured = c.text.trim();
664
+ break;
665
+ }
666
+ }
667
+ if (!structured) {
668
+ const full = JSON.stringify(skillResult);
669
+ const m = full.match(/DECISION:\s*(approve|reject|abstain)[\s\S]{0,300}?REASONING:[^\n"]*/i);
670
+ if (m)
671
+ structured = m[0].trim();
672
+ }
673
+ skillVotes.push({
674
+ agent,
675
+ toolUsed: "analyze_proposal",
676
+ rawResponse: structured || JSON.stringify(skillResult),
677
+ structuredVote: structured || null,
678
+ });
679
+ }
680
+ catch (err) {
681
+ skillVotes.push({
682
+ agent,
683
+ toolUsed: "analyze_proposal",
684
+ rawResponse: `error: ${err}`,
685
+ structuredVote: null,
686
+ });
687
+ }
688
+ }
689
+ const approves = skillVotes.filter((v) => v.structuredVote && v.structuredVote.includes("DECISION: approve")).length;
690
+ const rejects = skillVotes.filter((v) => v.structuredVote && v.structuredVote.includes("DECISION: reject")).length;
691
+ const decision = approves > rejects ? "approve" : (rejects > approves ? "reject" : "abstain");
692
+ let avgConf = 0.75;
693
+ const confMatches = skillVotes.map((v) => {
694
+ if (!v.structuredVote)
695
+ return 0.75;
696
+ const m = v.structuredVote.match(/CONFIDENCE:\s*([0-9.]+)/);
697
+ return m ? parseFloat(m[1]) : 0.75;
698
+ });
699
+ if (confMatches.length > 0)
700
+ avgConf = confMatches.reduce((a, b) => a + b, 0) / confMatches.length;
701
+ results.push({
702
+ proposalId: proposal.id,
703
+ decision: decision,
704
+ confidence: Math.round(avgConf * 100) / 100,
705
+ details: skillVotes.map((v) => `${v.agent}: ${v.structuredVote?.split('\n')[0] || 'no structured vote'}`),
706
+ });
707
+ }
708
+ return results;
520
709
  }
521
710
  /**
522
- * Convert a GovernanceResponse (nucleus kernel format) back to the
523
- * InferenceCycleResult["votes"] format that the rest of the cycle expects.
711
+ * Merge internal and external governance votes.
712
+ * A proposal passes both oscillators — must be approved by internal AND external.
524
713
  */
525
- convertNucleusResponse(response, proposals) {
526
- return proposals.map((p, i) => {
527
- const result = response.results[i];
528
- if (!result) {
529
- return {
530
- proposalId: p.id,
531
- decision: 'reject',
532
- confidence: 0,
533
- details: ['nucleus: no result returned'],
534
- };
714
+ mergeGovernanceVotes(internalVotes, externalVotes, proposals) {
715
+ const merged = [];
716
+ for (const proposal of proposals) {
717
+ const internal = internalVotes.find((v) => v.proposalId === proposal.id);
718
+ const external = externalVotes.find((v) => v.proposalId === proposal.id);
719
+ if (!internal) {
720
+ merged.push(this.rejectNoQuorum(proposal, "internal governance vote missing"));
721
+ continue;
535
722
  }
536
- const decision = result.finalDecision === 'approve' ? 'approve' : result.finalDecision === 'reject' ? 'reject' : 'abstain';
537
- return {
538
- proposalId: p.id,
539
- decision,
540
- confidence: result.averageConfidence,
541
- details: result.votes?.map((v) => `${v.server || v.agentName || 'agent'}: ${v.decision} (${v.confidence})`) || [result.reasoningSummary],
542
- };
723
+ const internalApproved = internal.decision === "approve";
724
+ const externalApproved = external?.decision === "approve";
725
+ const bothApproved = internalApproved && (!external || externalApproved);
726
+ merged.push({
727
+ proposalId: proposal.id,
728
+ decision: bothApproved ? "approve" : "reject",
729
+ confidence: internal.confidence * (external ? external.confidence : 1.0),
730
+ details: [
731
+ ...internal.details,
732
+ ...(external ? [`External governance: ${external.decision} (conf: ${external.confidence.toFixed(2)})`, ...external.details] : []),
733
+ ],
734
+ });
735
+ }
736
+ return merged;
737
+ }
738
+ // Removed: buildOrchestratorGovernancePrompt (replaced by inline TODO prompt in governProposals)
739
+ /**
740
+ * Govern proposals using external chrono-warp-drive Dynamo endpoint
741
+ */
742
+ async governProposalsExternal(proposals) {
743
+ const governanceIntegration = getGovernanceIntegration();
744
+ if (!governanceIntegration) {
745
+ throw new Error("Governance integration not available");
746
+ }
747
+ // Build agent reviews from proposal evidence
748
+ const agentReviews = proposals.flatMap((p) => p.evidence.slice(0, 2).map((e) => `[${p.type}] ${e}`));
749
+ try {
750
+ const batchResult = await governanceIntegration.checkProposals(proposals, agentReviews, []);
751
+ const votes = batchResult.results.map((result) => ({
752
+ proposalId: result.governanceResponse.proposalId,
753
+ decision: result.vote.toLowerCase() === "yes" ? "approve" : "reject",
754
+ confidence: result.governanceResponse.confidence,
755
+ details: [
756
+ `Governance: ${result.governanceResponse.recommendation}`,
757
+ `Isotope: ${result.governanceResponse.governanceIsotopeId}`,
758
+ ...result.governanceResponse.reasons.slice(0, 2),
759
+ ],
760
+ }));
761
+ frameworkLogger.log("inference-cycle", "external-governance-complete", "info", {
762
+ proposalCount: proposals.length,
763
+ passedCount: batchResult.results.filter((r) => r.passed).length,
764
+ });
765
+ return votes;
766
+ }
767
+ catch (error) {
768
+ frameworkLogger.log("inference-cycle", "external-governance-failed", "error", {
769
+ error: error instanceof Error ? error.message : String(error),
770
+ });
771
+ return proposals.map((p) => this.rejectNoQuorum(p, "external governance endpoint failed"));
772
+ }
773
+ }
774
+ async invokeAgentInternal(agentName, prompt) {
775
+ frameworkLogger.log("inference-cycle", "invoke-agent-internal", "info", {
776
+ agentName,
777
+ promptLength: prompt.length,
543
778
  });
779
+ try {
780
+ const { mcpClientManager } = await import("../mcps/mcp-client.js");
781
+ const MCP_TIMEOUT_MS = 8000;
782
+ const result = await Promise.race([
783
+ mcpClientManager.callServerTool("orchestrator", "orchestrate-task", {
784
+ description: prompt,
785
+ tasks: [{
786
+ id: `task-${Date.now()}`,
787
+ description: prompt,
788
+ type: agentName,
789
+ priority: "high",
790
+ }],
791
+ executionMode: "sequential",
792
+ }),
793
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Orchestrator MCP timed out after ${MCP_TIMEOUT_MS}ms`)), MCP_TIMEOUT_MS)),
794
+ ]);
795
+ const content = result.content;
796
+ let responseText = "";
797
+ if (content && Array.isArray(content)) {
798
+ responseText = content.map((c) => c.text ?? "").join("");
799
+ }
800
+ else {
801
+ responseText = JSON.stringify(result);
802
+ }
803
+ // In pure MCP governance mode, trust the orchestrator response (it now does real work)
804
+ const isPureMcp = process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true';
805
+ const hasRealContent = /PROPOSAL:\s*\d+/i.test(responseText) ||
806
+ /DECISION:\s*(approve|reject|abstain)/i.test(responseText) ||
807
+ /Agent Outputs \(real MCP responses\):/i.test(responseText);
808
+ if (hasRealContent || isPureMcp) {
809
+ if (isPureMcp && !hasRealContent) {
810
+ frameworkLogger.log("inference-cycle", "pure-mcp-orchestrator-response", "info", {
811
+ agentName,
812
+ responsePreview: responseText.substring(0, 300),
813
+ });
814
+ }
815
+ return responseText;
816
+ }
817
+ frameworkLogger.log("inference-cycle", "mcp-no-useful-content", "info", {
818
+ agentName,
819
+ responsePreview: responseText.substring(0, 200),
820
+ });
821
+ }
822
+ catch (mcpError) {
823
+ frameworkLogger.log("inference-cycle", "mcp-invocation-failed", "info", {
824
+ agentName,
825
+ error: String(mcpError),
826
+ });
827
+ }
828
+ if (this.agentInvoker) {
829
+ frameworkLogger.log("inference-cycle", "invoke-via-callback", "info", { agentName });
830
+ return this.agentInvoker(agentName, prompt);
831
+ }
832
+ // Only fall back to OpenCode if not in forced pure MCP mode
833
+ if (process.env.STRRAY_FORCE_MCP_GOVERNANCE === 'true') {
834
+ throw new Error(`[PURE MCP] Orchestrator returned no usable response for agent "${agentName}" and OpenCode fallback is disabled`);
835
+ }
836
+ return this.invokeViaOpencode(agentName, prompt);
837
+ }
838
+ async invokeViaOpencode(agentName, prompt) {
839
+ return invokeOpencodeFromEngine(agentName, prompt, this.projectRoot);
840
+ }
841
+ parseSubagentVotes(jsonOutput, proposals) {
842
+ const votes = [];
843
+ const lines = jsonOutput.split("\n").filter((l) => l.trim());
844
+ for (const line of lines) {
845
+ try {
846
+ const obj = JSON.parse(line);
847
+ if (obj.type === "tool_use" && obj.part?.type === "tool" && obj.part.tool === "task") {
848
+ const agentName = obj.part.state?.input?.subagent_type || "";
849
+ const output = obj.part.state?.output || "";
850
+ // Each task output may contain multiple PROPOSAL blocks
851
+ const blocks = output.split(/PROPOSAL:\s*/).filter((b) => b.trim().length > 0);
852
+ for (const block of blocks) {
853
+ const numMatch = block.match(/^(\d+)/);
854
+ if (!numMatch)
855
+ continue;
856
+ const proposalIdx = parseInt(numMatch[1], 10) - 1;
857
+ if (proposalIdx < 0 || proposalIdx >= proposals.length)
858
+ continue;
859
+ const decisionMatch = block.match(/DECISION:\s*(\w+)/i);
860
+ const confMatch = block.match(/CONFIDENCE:\s*(0?\.\d+|1\.0|1|0)/i);
861
+ const reasonMatch = block.match(/REASONING:\s*(.+)/i);
862
+ if (decisionMatch) {
863
+ const proposal = proposals[proposalIdx];
864
+ if (proposal) {
865
+ votes.push({
866
+ proposalId: proposal.id,
867
+ agentName,
868
+ decision: decisionMatch[1].toLowerCase(),
869
+ confidence: confMatch ? Math.min(1, Math.max(0, parseFloat(confMatch[1]))) : 0.5,
870
+ reasoning: reasonMatch ? reasonMatch[1].trim() : "",
871
+ });
872
+ }
873
+ }
874
+ }
875
+ }
876
+ }
877
+ catch {
878
+ // Not JSON, skip
879
+ }
880
+ }
881
+ // Fallback: if no votes found from JSON format, try parsing plain-text
882
+ // PROPOSAL/DECISION blocks directly (e.g. from opencode CLI fallback path)
883
+ if (votes.length === 0 && /PROPOSAL:\s*\d+/i.test(jsonOutput)) {
884
+ const blocks = jsonOutput.split(/PROPOSAL:\s*/).filter((b) => b.trim().length > 0);
885
+ for (const block of blocks) {
886
+ const numMatch = block.match(/^(\d+)/);
887
+ if (!numMatch)
888
+ continue;
889
+ const numStr = numMatch[1];
890
+ if (!numStr)
891
+ continue;
892
+ const proposalIdx = parseInt(numStr, 10) - 1;
893
+ if (proposalIdx < 0 || proposalIdx >= proposals.length)
894
+ continue;
895
+ const agentMatch = block.match(/AGENT:\s*(\w[\w-]*)/i);
896
+ const decisionMatch = block.match(/DECISION:\s*(\w+)/i);
897
+ const confMatch = block.match(/CONFIDENCE:\s*(0?\.\d+|1\.0|1|0)/i);
898
+ const reasonMatch = block.match(/REASONING:\s*(.+)/i);
899
+ if (decisionMatch) {
900
+ const proposal = proposals[proposalIdx];
901
+ if (proposal) {
902
+ let decision = decisionMatch[1].toLowerCase();
903
+ if (decision === "yes")
904
+ decision = "approve";
905
+ if (decision === "no")
906
+ decision = "reject";
907
+ votes.push({
908
+ proposalId: proposal.id,
909
+ agentName: agentMatch?.[1] ?? "architect",
910
+ decision,
911
+ confidence: confMatch ? Math.min(1, Math.max(0, parseFloat(confMatch[1]))) : 0.5,
912
+ reasoning: reasonMatch ? reasonMatch[1].trim() : "",
913
+ });
914
+ }
915
+ }
916
+ }
917
+ }
918
+ return votes;
544
919
  }
545
920
  getGovernanceStateManager() {
546
921
  if (!fs.existsSync(this.stateDir)) {
547
922
  fs.mkdirSync(this.stateDir, { recursive: true });
548
923
  }
549
- const statePath = path.join(this.stateDir, CONSOLIDATED_STATE_FILE);
924
+ const stateFile = path.join(this.stateDir, "governance-state.json");
550
925
  const stateManager = new XrayStateManager();
551
- if (fs.existsSync(statePath)) {
926
+ if (fs.existsSync(stateFile)) {
552
927
  try {
553
- const data = JSON.parse(fs.readFileSync(statePath, "utf-8"));
554
- if (data.governanceState) {
555
- for (const [key, value] of Object.entries(data.governanceState)) {
556
- stateManager.set(key, value);
557
- }
928
+ const data = JSON.parse(fs.readFileSync(stateFile, "utf-8"));
929
+ for (const [key, value] of Object.entries(data)) {
930
+ stateManager.set(key, value);
558
931
  }
559
932
  }
560
933
  catch {
@@ -563,6 +936,26 @@ Respond with EXACTLY one of:
563
936
  }
564
937
  return stateManager;
565
938
  }
939
+ saveGovernanceState(coordinator) {
940
+ const stateFile = path.join(this.stateDir, "governance-state.json");
941
+ try {
942
+ // Export the coordinator's internal state (voting history, metrics, etc.)
943
+ const history = coordinator.getVotingHistory();
944
+ const metrics = coordinator.getMetrics();
945
+ const exportData = {
946
+ votingHistory: history,
947
+ metrics,
948
+ exportedAt: new Date().toISOString(),
949
+ };
950
+ if (!fs.existsSync(this.stateDir)) {
951
+ fs.mkdirSync(this.stateDir, { recursive: true });
952
+ }
953
+ fs.writeFileSync(stateFile, JSON.stringify(exportData, null, 2));
954
+ }
955
+ catch (error) {
956
+ frameworkLogger.log("inference-cycle", "governance-state-save-failed", "warning", { error: String(error) });
957
+ }
958
+ }
566
959
  extractTextFromNdjson(output) {
567
960
  const texts = [];
568
961
  for (const line of output.split("\n")) {
@@ -581,6 +974,28 @@ Respond with EXACTLY one of:
581
974
  }
582
975
  return texts.join("\n").trim();
583
976
  }
977
+ resolveOpencodeRoot() {
978
+ // Use the provider-agnostic config path resolver (prefers .xray/, falls back to .opencode/xray/)
979
+ const configDir = getConfigDir(this.projectRoot);
980
+ // If we resolved to a .xray or custom dir, use its parent as the "root"
981
+ if (configDir.includes(".xray") || configDir.includes("xray")) {
982
+ return path.dirname(configDir);
983
+ }
984
+ // Legacy fallback
985
+ let dir = this.projectRoot;
986
+ for (let i = 0; i < 10; i++) {
987
+ if (fs.existsSync(path.join(dir, ".opencode")))
988
+ return dir;
989
+ const parent = path.dirname(dir);
990
+ if (parent === dir)
991
+ break;
992
+ dir = parent;
993
+ }
994
+ const cwd = process.cwd();
995
+ if (fs.existsSync(path.join(cwd, ".opencode")))
996
+ return cwd;
997
+ return this.projectRoot;
998
+ }
584
999
  rejectNoQuorum(proposal, reason) {
585
1000
  return {
586
1001
  proposalId: proposal.id,
@@ -647,35 +1062,37 @@ Respond with EXACTLY one of:
647
1062
  if (!fs.existsSync(this.stateDir)) {
648
1063
  fs.mkdirSync(this.stateDir, { recursive: true });
649
1064
  }
650
- const statePath = path.join(this.stateDir, CONSOLIDATED_STATE_FILE);
651
- const existing = fs.existsSync(statePath) ? JSON.parse(fs.readFileSync(statePath, "utf-8")) : {};
652
- existing.cycleState = {
1065
+ fs.writeFileSync(path.join(this.stateDir, CYCLE_STATE_FILE), JSON.stringify({
653
1066
  cycleId,
654
1067
  completedAt: new Date().toISOString(),
655
1068
  phase: this.phase,
656
- };
657
- fs.writeFileSync(statePath, JSON.stringify(existing, null, 2));
1069
+ }));
658
1070
  }
659
1071
  appendHistory(result) {
660
1072
  if (!fs.existsSync(this.stateDir)) {
661
1073
  fs.mkdirSync(this.stateDir, { recursive: true });
662
1074
  }
663
- const statePath = path.join(this.stateDir, CONSOLIDATED_STATE_FILE);
664
- const existing = fs.existsSync(statePath) ? JSON.parse(fs.readFileSync(statePath, "utf-8")) : {};
665
- let history = existing.history || [];
1075
+ const historyPath = path.join(this.stateDir, CYCLE_HISTORY_FILE);
1076
+ let history = [];
1077
+ if (fs.existsSync(historyPath)) {
1078
+ try {
1079
+ history = JSON.parse(fs.readFileSync(historyPath, "utf-8"));
1080
+ }
1081
+ catch {
1082
+ history = [];
1083
+ }
1084
+ }
666
1085
  history.push(result);
667
1086
  if (history.length > 50)
668
1087
  history = history.slice(-50);
669
- existing.history = history;
670
- fs.writeFileSync(statePath, JSON.stringify(existing, null, 2));
1088
+ fs.writeFileSync(historyPath, JSON.stringify(history, null, 2));
671
1089
  }
672
1090
  loadHistory() {
673
- const statePath = path.join(this.stateDir, CONSOLIDATED_STATE_FILE);
674
- if (!fs.existsSync(statePath))
1091
+ const historyPath = path.join(this.stateDir, CYCLE_HISTORY_FILE);
1092
+ if (!fs.existsSync(historyPath))
675
1093
  return [];
676
1094
  try {
677
- const data = JSON.parse(fs.readFileSync(statePath, "utf-8"));
678
- return data.history || [];
1095
+ return JSON.parse(fs.readFileSync(historyPath, "utf-8"));
679
1096
  }
680
1097
  catch {
681
1098
  return [];
@@ -749,4 +1166,3 @@ Respond with EXACTLY one of:
749
1166
  };
750
1167
  }
751
1168
  }
752
- //# sourceMappingURL=inference-cycle.js.map