0xray 3.1.1 → 3.3.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 (309) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/.opencode/commands/auto-format.md +3 -3
  3. package/.opencode/commands/auto-summary-capture.md +2 -2
  4. package/.opencode/commands/enforcer-daily-scan.md +3 -3
  5. package/.opencode/commands/framework-compliance-audit.md +4 -4
  6. package/.opencode/commands/interactive-validator.md +2 -2
  7. package/.opencode/commands/job-summary-logger.md +2 -2
  8. package/.opencode/commands/mode-switch.md +1 -1
  9. package/.opencode/commands/model-health-check.md +2 -2
  10. package/.opencode/commands/performance-analysis.md +2 -2
  11. package/.opencode/commands/pre-commit-introspection.md +3 -3
  12. package/.opencode/commands/security-scan.md +3 -3
  13. package/.opencode/commands/sisyphus-validation.md +3 -3
  14. package/.opencode/commands/summary-logger.md +2 -2
  15. package/AGENTS.md +3 -13
  16. package/README.md +3 -3
  17. package/dist/AGENTS.md +3 -13
  18. package/dist/CHANGELOG.md +55 -0
  19. package/dist/README.md +3 -3
  20. package/dist/analytics/consent-manager.js +0 -1
  21. package/dist/analytics/emerging-pattern-detector.js +0 -1
  22. package/dist/analytics/pattern-learning-engine.js +0 -1
  23. package/dist/analytics/pattern-performance-tracker.js +0 -1
  24. package/dist/analytics/predictive-analytics.js +0 -1
  25. package/dist/analytics/prompt-pattern-analyzer.js +0 -1
  26. package/dist/analytics/routing-performance-analyzer.js +0 -1
  27. package/dist/analytics/routing-refiner.js +0 -1
  28. package/dist/analytics/simple-pattern-analyzer.js +0 -1
  29. package/dist/cli/commands/archive-logs.js +0 -1
  30. package/dist/cli/commands/opencode-install.js +13 -0
  31. package/dist/cli/commands/plugin-commands.js +0 -1
  32. package/dist/cli/commands/status.js +11 -13
  33. package/dist/cli/index.js +2 -7
  34. package/dist/core/activity-logger.js +0 -1
  35. package/dist/core/adaptive-kernel.js +0 -1
  36. package/dist/core/boot-orchestrator.js +2 -12
  37. package/dist/core/bridge.mjs +0 -1
  38. package/dist/core/codex-formatter.js +0 -1
  39. package/dist/core/codex-injector.js +0 -1
  40. package/dist/core/config-loader.js +36 -28
  41. package/dist/core/context-loader.js +0 -1
  42. package/dist/core/context-validator.js +0 -1
  43. package/dist/core/features-config.js +40 -1
  44. package/dist/core/kernel-patterns.js +0 -1
  45. package/dist/core/model-router.js +23 -64
  46. package/dist/core/system-prompt-generator.js +0 -1
  47. package/dist/delegation/agent-delegator.js +0 -1
  48. package/dist/delegation/agent-expertise.js +0 -1
  49. package/dist/delegation/analytics/index.js +0 -1
  50. package/dist/delegation/analytics/learning-engine.js +0 -1
  51. package/dist/delegation/analytics/outcome-tracker.js +0 -1
  52. package/dist/delegation/analytics/routing-analytics.js +0 -1
  53. package/dist/delegation/ast-code-parser.js +0 -1
  54. package/dist/delegation/complexity-analyzer.js +0 -1
  55. package/dist/delegation/dependency-graph-builder.js +0 -1
  56. package/dist/delegation/index.js +0 -1
  57. package/dist/delegation/metrics-aggregator.js +0 -1
  58. package/dist/delegation/session-coordinator.js +0 -1
  59. package/dist/delegation/strategy-selector.js +0 -1
  60. package/dist/delegation/voting-coordinator.js +0 -1
  61. package/dist/delegation/voting-types.js +0 -1
  62. package/dist/delegation/weighted-voting-aggregator.js +0 -1
  63. package/dist/enforcement/core/index.js +0 -1
  64. package/dist/enforcement/core/rule-executor.js +0 -1
  65. package/dist/enforcement/core/rule-hierarchy.js +0 -1
  66. package/dist/enforcement/core/rule-registry.js +0 -1
  67. package/dist/enforcement/core/violation-fixer.js +0 -1
  68. package/dist/enforcement/index.js +0 -1
  69. package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
  70. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
  71. package/dist/enforcement/loaders/base-loader.js +0 -1
  72. package/dist/enforcement/loaders/codex-loader.js +0 -1
  73. package/dist/enforcement/loaders/index.js +0 -1
  74. package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
  75. package/dist/enforcement/loaders/processor-loader.js +0 -1
  76. package/dist/enforcement/types.js +0 -1
  77. package/dist/enforcement/validators/architecture-validators.js +0 -1
  78. package/dist/enforcement/validators/base-validator.js +0 -1
  79. package/dist/enforcement/validators/code-quality-validators.js +0 -1
  80. package/dist/enforcement/validators/index.js +0 -1
  81. package/dist/enforcement/validators/security-validators.js +0 -1
  82. package/dist/enforcement/validators/testing-validators.js +0 -1
  83. package/dist/enforcement/validators/validator-registry.js +0 -1
  84. package/dist/governance/codex-policy.service.js +0 -1
  85. package/dist/inference/inference-agent-invoker.js +67 -0
  86. package/dist/inference/inference-applier.js +178 -0
  87. package/dist/inference/inference-cycle.js +51 -827
  88. package/dist/inference/inference-proposal-generator.js +149 -0
  89. package/dist/infrastructure/iac-validator.js +465 -0
  90. package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
  91. package/dist/integrations/base/ExampleIntegration.js +0 -1
  92. package/dist/integrations/base/Integration.js +0 -1
  93. package/dist/integrations/base/index.js +0 -1
  94. package/dist/integrations/base/registry.js +0 -1
  95. package/dist/integrations/base/types.js +0 -1
  96. package/dist/integrations/enforcement-gate.js +3 -3
  97. package/dist/integrations/governance/governance-client.js +0 -1
  98. package/dist/integrations/governance/index.js +11 -19
  99. package/dist/integrations/governance/types.js +0 -1
  100. package/dist/integrations/hermes-agent/__init__.py +4 -0
  101. package/dist/integrations/hermes-agent/bridge.mjs +37 -0
  102. package/dist/integrations/openclaw/api-server.js +0 -1
  103. package/dist/integrations/openclaw/client.js +0 -1
  104. package/dist/integrations/openclaw/config.js +0 -1
  105. package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -1
  106. package/dist/integrations/openclaw/index.js +0 -1
  107. package/dist/integrations/openclaw/types.js +0 -1
  108. package/dist/integrations/plugins/index.js +0 -1
  109. package/dist/integrations/plugins/plugin-integration.js +0 -1
  110. package/dist/integrations/plugins/plugin-registry.js +0 -1
  111. package/dist/mcps/agent-resolver.js +0 -1
  112. package/dist/mcps/architect-tools.server.js +119 -185
  113. package/dist/mcps/auto-format.server.js +56 -74
  114. package/dist/mcps/boot-orchestrator.server.js +67 -85
  115. package/dist/mcps/config/config-loader.js +6 -0
  116. package/dist/mcps/config/plugin-server-registry.js +0 -1
  117. package/dist/mcps/enforcer-tools.server.js +207 -273
  118. package/dist/mcps/estimation.server.js +63 -107
  119. package/dist/mcps/framework-compliance-audit.server.js +52 -81
  120. package/dist/mcps/framework-help.server.js +71 -89
  121. package/dist/mcps/governance.server.js +97 -149
  122. package/dist/mcps/knowledge-skills/api-design.server.js +33 -65
  123. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +33 -65
  124. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +123 -163
  125. package/dist/mcps/knowledge-skills/code-analyzer.server.js +210 -237
  126. package/dist/mcps/knowledge-skills/code-review.server.js +108 -142
  127. package/dist/mcps/knowledge-skills/content-creator.server.js +203 -225
  128. package/dist/mcps/knowledge-skills/database-design.server.js +116 -150
  129. package/dist/mcps/knowledge-skills/devops-deployment.server.js +123 -157
  130. package/dist/mcps/knowledge-skills/git-workflow.server.js +34 -67
  131. package/dist/mcps/knowledge-skills/growth-strategist.server.js +301 -323
  132. package/dist/mcps/knowledge-skills/log-monitor.server.js +139 -159
  133. package/dist/mcps/knowledge-skills/mobile-development.server.js +170 -200
  134. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +122 -158
  135. package/dist/mcps/knowledge-skills/performance-optimization.server.js +88 -138
  136. package/dist/mcps/knowledge-skills/project-analysis.server.js +131 -218
  137. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +115 -150
  138. package/dist/mcps/knowledge-skills/security-audit.server.js +16 -143
  139. package/dist/mcps/knowledge-skills/seo-consultant.server.js +20 -213
  140. package/dist/mcps/knowledge-skills/session-management.server.js +13 -90
  141. package/dist/mcps/knowledge-skills/skill-invocation.server.js +43 -421
  142. package/dist/mcps/knowledge-skills/strategist.server.js +10 -55
  143. package/dist/mcps/knowledge-skills/tech-writer.server.js +16 -191
  144. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +18 -191
  145. package/dist/mcps/knowledge-skills/testing-strategy.server.js +18 -156
  146. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +22 -296
  147. package/dist/mcps/lint.server.js +50 -91
  148. package/dist/mcps/model-health-check.server.js +32 -60
  149. package/dist/mcps/orchestrator/aside-context.js +207 -0
  150. package/dist/mcps/orchestrator/config/agent-capabilities.js +30 -11
  151. package/dist/mcps/orchestrator/config/memory-routing-bridge.js +70 -0
  152. package/dist/mcps/orchestrator/execution/execution-planner.js +25 -7
  153. package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
  154. package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
  155. package/dist/mcps/orchestrator/handlers/task-handler.js +59 -1
  156. package/dist/mcps/orchestrator/index.js +5 -0
  157. package/dist/mcps/orchestrator/server.js +63 -8
  158. package/dist/mcps/performance-analysis.server.js +56 -87
  159. package/dist/mcps/processor-pipeline.server.js +68 -99
  160. package/dist/mcps/researcher.server.js +80 -153
  161. package/dist/mcps/security-scan.server.js +56 -70
  162. package/dist/mcps/shared/knowledge-skill-base.js +11 -4
  163. package/dist/mcps/state-manager.server.js +124 -152
  164. package/dist/memory-routing/index.js +4 -0
  165. package/dist/memory-routing/null-provider.js +51 -0
  166. package/dist/memory-routing/provider-loader.js +91 -0
  167. package/dist/memory-routing/provider-registry.js +40 -0
  168. package/dist/memory-routing/types.js +7 -0
  169. package/dist/memory-routing/validate-config.js +32 -0
  170. package/dist/monitoring/nudge-watchdog.js +0 -1
  171. package/dist/nucleus/default-plugins.js +13 -19
  172. package/dist/nucleus/index.js +0 -1
  173. package/dist/nucleus/thin-dispatch.js +29 -1
  174. package/dist/orchestrator/agent-spawn-governor.js +0 -1
  175. package/dist/orchestrator/intelligent-commit-batcher.js +2 -10
  176. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -1
  177. package/dist/orchestrator/orchestrator.js +8 -18
  178. package/dist/orchestrator/self-direction-activation.js +0 -1
  179. package/dist/orchestrator/universal-registry-bridge.js +0 -1
  180. package/dist/performance/performance-budget-enforcer.js +0 -1
  181. package/dist/performance/performance-regression-tester.js +0 -1
  182. package/dist/plugin/plugin-codex-context.js +87 -0
  183. package/dist/plugin/plugin-helpers.js +155 -0
  184. package/dist/plugin/plugin-logger.js +46 -0
  185. package/dist/plugin/plugin-modules.js +144 -0
  186. package/dist/plugin/plugin-quality-gate.js +88 -0
  187. package/dist/plugin/plugin-types.js +1 -0
  188. package/dist/plugin/xray-codex-injection.js +338 -0
  189. package/dist/postprocessor/PostProcessor.js +3 -9
  190. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
  191. package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
  192. package/dist/postprocessor/integration.js +194 -0
  193. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
  194. package/dist/postprocessor/metamorphosis/index.js +1 -0
  195. package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
  196. package/dist/postprocessor/services/RegressionAnalysisService.js +0 -1
  197. package/dist/postprocessor/triggers/APITrigger.js +0 -1
  198. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
  199. package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
  200. package/dist/processors/implementations/async-pattern-processor.js +0 -1
  201. package/dist/processors/implementations/console-log-guard-processor.js +0 -1
  202. package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
  203. package/dist/processors/implementations/inference-improvement-processor.js +2 -9
  204. package/dist/processors/implementations/log-protection-processor.js +0 -1
  205. package/dist/processors/implementations/nudge-processor.js +0 -1
  206. package/dist/processors/implementations/performance-budget-processor.js +0 -1
  207. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
  208. package/dist/processors/implementations/publish-preflight-processor.js +4 -12
  209. package/dist/processors/implementations/session-summary-processor.js +8 -16
  210. package/dist/processors/implementations/spawn-governance-processor.js +0 -1
  211. package/dist/processors/implementations/storytelling-trigger-processor.js +3 -28
  212. package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
  213. package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
  214. package/dist/processors/implementations/version-compliance-processor.js +0 -1
  215. package/dist/processors/processor-interfaces.js +0 -1
  216. package/dist/processors/processor-types.js +0 -1
  217. package/dist/scripts/integration.js +0 -1
  218. package/dist/security/comprehensive-security-audit.js +0 -1
  219. package/dist/security/security-agent-coordinator.js +0 -1
  220. package/dist/security/security-auditor.js +0 -1
  221. package/dist/security/security-hardener.js +0 -1
  222. package/dist/security/security-hardening-system.js +0 -1
  223. package/dist/security/security-headers.js +0 -1
  224. package/dist/security/security-orchestration-layer.js +0 -1
  225. package/dist/services/inference-tuner.js +0 -1
  226. package/dist/session/session-cleanup-manager.js +0 -1
  227. package/dist/session/session-monitor.js +0 -1
  228. package/dist/session/session-state-manager.js +0 -1
  229. package/dist/skills/xray-orchestrator/index.js +0 -1
  230. package/dist/utils/codex-parser.js +0 -1
  231. package/dist/utils/language-detector.js +0 -1
  232. package/dist/utils/shutdown-handler.js +0 -1
  233. package/dist/validation/agent-config-validator.js +280 -0
  234. package/dist/validation/orchestration-flow-validator.js +606 -0
  235. package/package.json +1 -1
  236. package/scripts/node/release.mjs +2 -2
  237. package/scripts/node/setup.cjs +28 -0
  238. package/scripts/node/universal-version-manager.js +1 -1
  239. package/src/mcps/agent-resolver.ts +0 -1
  240. package/src/mcps/architect-tools.server.ts +129 -211
  241. package/src/mcps/auto-format.server.ts +74 -103
  242. package/src/mcps/boot-orchestrator.server.ts +71 -96
  243. package/src/mcps/config/__tests__/config-loader.test.ts +6 -6
  244. package/src/mcps/config/config-loader.ts +7 -0
  245. package/src/mcps/config/plugin-server-registry.ts +0 -1
  246. package/src/mcps/enforcer-tools.server.ts +217 -294
  247. package/src/mcps/estimation.server.ts +62 -122
  248. package/src/mcps/framework-compliance-audit.server.ts +53 -95
  249. package/src/mcps/framework-help.server.ts +74 -96
  250. package/src/mcps/governance.server.ts +97 -162
  251. package/src/mcps/knowledge-skills/api-design.server.ts +33 -72
  252. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +33 -72
  253. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +148 -193
  254. package/src/mcps/knowledge-skills/code-analyzer.server.ts +222 -254
  255. package/src/mcps/knowledge-skills/code-review.server.ts +115 -157
  256. package/src/mcps/knowledge-skills/content-creator.server.ts +219 -246
  257. package/src/mcps/knowledge-skills/database-design.server.ts +119 -160
  258. package/src/mcps/knowledge-skills/devops-deployment.server.ts +126 -167
  259. package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
  260. package/src/mcps/knowledge-skills/growth-strategist.server.ts +322 -360
  261. package/src/mcps/knowledge-skills/log-monitor.server.ts +68 -95
  262. package/src/mcps/knowledge-skills/mobile-development.server.ts +16 -56
  263. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +13 -59
  264. package/src/mcps/knowledge-skills/performance-optimization.server.ts +13 -74
  265. package/src/mcps/knowledge-skills/project-analysis.server.ts +13 -120
  266. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +13 -60
  267. package/src/mcps/knowledge-skills/security-audit.server.ts +19 -157
  268. package/src/mcps/knowledge-skills/seo-consultant.server.ts +23 -227
  269. package/src/mcps/knowledge-skills/session-management.server.ts +17 -106
  270. package/src/mcps/knowledge-skills/skill-invocation.server.ts +45 -446
  271. package/src/mcps/knowledge-skills/strategist.server.ts +13 -63
  272. package/src/mcps/knowledge-skills/tech-writer.server.ts +19 -204
  273. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +21 -204
  274. package/src/mcps/knowledge-skills/testing-strategy.server.ts +21 -165
  275. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +25 -342
  276. package/src/mcps/lint.server.ts +52 -105
  277. package/src/mcps/model-health-check.server.ts +34 -70
  278. package/src/mcps/orchestrator/aside-context.ts +245 -0
  279. package/src/mcps/orchestrator/config/agent-capabilities.ts +49 -14
  280. package/src/mcps/orchestrator/config/memory-routing-bridge.ts +80 -0
  281. package/src/mcps/orchestrator/execution/execution-planner.ts +36 -9
  282. package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
  283. package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
  284. package/src/mcps/orchestrator/handlers/task-handler.ts +78 -2
  285. package/src/mcps/orchestrator/index.ts +29 -0
  286. package/src/mcps/orchestrator/server.ts +79 -24
  287. package/src/mcps/orchestrator/types.ts +50 -0
  288. package/src/mcps/performance-analysis.server.ts +59 -102
  289. package/src/mcps/processor-pipeline.server.ts +70 -108
  290. package/src/mcps/researcher.server.ts +87 -175
  291. package/src/mcps/security-scan.server.ts +57 -76
  292. package/src/mcps/shared/knowledge-skill-base.ts +12 -4
  293. package/src/mcps/state-manager.server.ts +129 -169
  294. package/src/opencode/codex.codex +1 -1
  295. package/src/opencode/commands/auto-format.md +3 -3
  296. package/src/opencode/commands/auto-summary-capture.md +2 -2
  297. package/src/opencode/commands/enforcer-daily-scan.md +3 -3
  298. package/src/opencode/commands/framework-compliance-audit.md +4 -4
  299. package/src/opencode/commands/interactive-validator.md +2 -2
  300. package/src/opencode/commands/job-summary-logger.md +2 -2
  301. package/src/opencode/commands/mode-switch.md +1 -1
  302. package/src/opencode/commands/model-health-check.md +2 -2
  303. package/src/opencode/commands/performance-analysis.md +2 -2
  304. package/src/opencode/commands/pre-commit-introspection.md +3 -3
  305. package/src/opencode/commands/security-scan.md +3 -3
  306. package/src/opencode/commands/sisyphus-validation.md +3 -3
  307. package/src/opencode/commands/summary-logger.md +2 -2
  308. package/src/skills/xray-orchestrator/index.ts +0 -1
  309. package/dist/nucleus/orchestrator.js +0 -479
@@ -5,9 +5,7 @@ import { XrayContextLoader } from "./context-loader.js";
5
5
  import { XrayStateManager } from "../state/state-manager.js";
6
6
  import { ProcessorManager } from "../processors/processor-manager.js";
7
7
  import { pathResolver } from "../utils/path-resolver.js";
8
- import * as fs from "fs";
9
8
  import * as path from "path";
10
- const { existsSync, readFileSync } = fs;
11
9
  // Path configuration - can be overridden by environment or use path resolver
12
10
  const AGENTS_BASE_PATH = process.env.XRAY_AGENTS_PATH || process.env.XRAY_AGENTS_PATH || "../agents";
13
11
  import { createAgentDelegator, createSessionCoordinator, } from "../delegation/index.js";
@@ -130,18 +128,10 @@ export class BootOrchestrator {
130
128
  }
131
129
  loadProcessorsConfig() {
132
130
  try {
133
- const configPaths = [
134
- path.join(process.cwd(), ".xray", "features.json"),
135
- ];
136
- for (const configPath of configPaths) {
137
- if (existsSync(configPath)) {
138
- const config = JSON.parse(readFileSync(configPath, "utf-8"));
139
- return config.processors || null;
140
- }
141
- }
131
+ return featuresConfigLoader.loadConfig().processors ?? null;
142
132
  }
143
133
  catch {
144
- // ignore - use defaults
134
+ // use defaults
145
135
  }
146
136
  return null;
147
137
  }
@@ -33,7 +33,6 @@
33
33
  * node bridge.mjs --http --port 18431 --cwd /path
34
34
  * curl -X POST http://localhost:18431 -d '{"command":"get-codex-prompt"}'
35
35
  *
36
- * @version 1.0.0
37
36
  * @since 2026-03-28
38
37
  */
39
38
 
@@ -13,7 +13,6 @@
13
13
  * const prompt = formatCodexPrompt({ projectRoot: '/path' });
14
14
  * // Append to system prompt
15
15
  *
16
- * @version 1.0.0
17
16
  * @since 2026-03-28
18
17
  */
19
18
  import { readFileSync, existsSync } from "fs";
@@ -4,7 +4,6 @@
4
4
  * Injects Universal Development Codex v1.2.0 context into agent operations.
5
5
  * Follows production-tested pattern from rules-injector.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-06
9
8
  */
10
9
  import * as fs from "fs";
@@ -1,53 +1,57 @@
1
1
  /**
2
- * Configuration Loader
2
+ * Configuration Loader (backward-compat shim)
3
3
  *
4
- * Loads and validates 0xRay-specific configuration from opencode.json
4
+ * Delegates to FeaturesConfigLoader as the single source of truth.
5
+ * Retained for backward compatibility -- all consumers of xrayConfigLoader
6
+ * continue to work without changes.
5
7
  *
6
- * @version 1.0.0
7
- * @since 2026-01-09
8
+ * @deprecated Use featuresConfigLoader from "./features-config.js" instead.
9
+ * Will be removed in v4.0.0.
8
10
  */
11
+ import { featuresConfigLoader } from "./features-config.js";
12
+ import { frameworkLogger } from "./framework-logger.js";
13
+ import { resolveConfigPath } from "./config-paths.js";
9
14
  import * as fs from "fs";
10
15
  import * as path from "path";
11
- import { frameworkLogger } from "./framework-logger.js";
12
- import { getConfigDir, resolveConfigPath } from "./config-paths.js";
13
16
  export class XrayConfigLoader {
14
17
  configPath;
15
18
  cachedConfig = null;
16
- cacheExpiry = 30000; // 30 seconds
19
+ cacheExpiry = 30000;
17
20
  lastLoadTime = 0;
18
21
  constructor(configPath) {
19
- this.configPath = configPath || resolveConfigPath("config.json") || path.join(getConfigDir(), "config.json");
22
+ this.configPath = configPath || resolveConfigPath("config.json") || path.join(process.cwd(), ".xray", "config.json");
20
23
  }
21
24
  /**
22
- * Load 0xRay configuration from the resolved config directory
25
+ * Load configuration -- delegates to FeaturesConfigLoader
26
+ * @deprecated Use featuresConfigLoader.getXrayConfig() instead.
23
27
  */
24
28
  loadConfig() {
25
29
  const now = Date.now();
26
- // Return cached config if still valid
27
30
  if (this.cachedConfig && now - this.lastLoadTime < this.cacheExpiry) {
28
31
  return this.cachedConfig;
29
32
  }
33
+ const primary = featuresConfigLoader.getXrayConfig();
30
34
  try {
31
35
  const configPath = path.resolve(process.cwd(), this.configPath);
32
- if (!fs.existsSync(configPath)) {
33
- return this.getDefaultConfig();
36
+ if (fs.existsSync(configPath)) {
37
+ const configData = JSON.parse(fs.readFileSync(configPath, "utf-8"));
38
+ if (configData.multi_agent_orchestration || configData.autonomous_reporting || configData.disabled_agents) {
39
+ frameworkLogger.log("config-loader", "deprecated-config-json", "warning", { message: "config.json contains overlapping keys. Migrate to features.json. See: https://0xray.ai/docs/config-migration" });
40
+ }
34
41
  }
35
- const configData = JSON.parse(fs.readFileSync(configPath, "utf-8"));
36
- const config = this.parseConfig(configData);
37
- this.cachedConfig = config;
38
- this.lastLoadTime = now;
39
- return config;
40
42
  }
41
- catch (error) {
42
- frameworkLogger.log("config-loader", "load-failed", "error", { error, message: "Failed to load 0xRay config" });
43
- return this.getDefaultConfig();
43
+ catch {
44
+ // config.json may not exist -- that's fine, features.json is SSOT
44
45
  }
46
+ this.cachedConfig = primary;
47
+ this.lastLoadTime = now;
48
+ return primary;
45
49
  }
46
50
  /**
47
51
  * Parse configuration data with validation
52
+ * @deprecated Use featuresConfigLoader.loadConfig() instead.
48
53
  */
49
54
  parseConfig(configData) {
50
- // Handle null/undefined config data
51
55
  if (!configData || typeof configData !== 'object') {
52
56
  return this.getDefaultConfig();
53
57
  }
@@ -62,6 +66,7 @@ export class XrayConfigLoader {
62
66
  }
63
67
  /**
64
68
  * Parse multi-agent orchestration configuration
69
+ * @deprecated Use featuresConfigLoader.loadConfig().multi_agent_orchestration instead.
65
70
  */
66
71
  parseMultiAgentConfig(config) {
67
72
  if (!config || typeof config !== 'object') {
@@ -80,6 +85,7 @@ export class XrayConfigLoader {
80
85
  }
81
86
  /**
82
87
  * Parse autonomous reporting configuration
88
+ * @deprecated Use featuresConfigLoader.loadConfig().autonomous_reporting instead.
83
89
  */
84
90
  parseAutonomousReportingConfig(config) {
85
91
  if (!config || typeof config !== 'object') {
@@ -87,9 +93,9 @@ export class XrayConfigLoader {
87
93
  }
88
94
  const cfg = config;
89
95
  return {
90
- enabled: typeof cfg.enabled === 'boolean' ? cfg.enabled : false,
91
- interval_minutes: Math.max(5, Math.min(1440, typeof cfg.interval_minutes === 'number' ? cfg.interval_minutes : 60)), // 5min to 24hrs
92
- auto_schedule: typeof cfg.auto_schedule === 'boolean' ? cfg.auto_schedule : false,
96
+ enabled: typeof cfg.enabled === 'boolean' ? cfg.enabled : true,
97
+ interval_minutes: Math.max(5, Math.min(1440, typeof cfg.interval_minutes === 'number' ? cfg.interval_minutes : 60)),
98
+ auto_schedule: typeof cfg.auto_schedule === 'boolean' ? cfg.auto_schedule : true,
93
99
  include_health_assessment: typeof cfg.include_health_assessment === 'boolean' ? cfg.include_health_assessment : true,
94
100
  include_agent_activities: typeof cfg.include_agent_activities === 'boolean' ? cfg.include_agent_activities : true,
95
101
  include_pipeline_operations: typeof cfg.include_pipeline_operations === 'boolean' ? cfg.include_pipeline_operations : true,
@@ -103,6 +109,7 @@ export class XrayConfigLoader {
103
109
  }
104
110
  /**
105
111
  * Get default configuration
112
+ * @deprecated Use featuresConfigLoader.getDefaultConfig() instead.
106
113
  */
107
114
  getDefaultConfig() {
108
115
  return {
@@ -116,9 +123,9 @@ export class XrayConfigLoader {
116
123
  session_persistence: true,
117
124
  },
118
125
  autonomous_reporting: {
119
- enabled: false, // Disabled by default for performance
126
+ enabled: true,
120
127
  interval_minutes: 60,
121
- auto_schedule: false,
128
+ auto_schedule: true,
122
129
  include_health_assessment: true,
123
130
  include_agent_activities: true,
124
131
  include_pipeline_operations: true,
@@ -132,18 +139,19 @@ export class XrayConfigLoader {
132
139
  }
133
140
  /**
134
141
  * Validate enum values
142
+ * @deprecated Internal implementation detail.
135
143
  */
136
144
  validateEnum(value, allowedValues, defaultValue) {
137
145
  return allowedValues.includes(value) ? value : defaultValue;
138
146
  }
139
147
  /**
140
148
  * Clear configuration cache
149
+ * @deprecated Use featuresConfigLoader.clearCache() instead.
141
150
  */
142
151
  clearCache() {
143
152
  this.cachedConfig = null;
144
153
  this.lastLoadTime = 0;
154
+ featuresConfigLoader.clearCache();
145
155
  }
146
156
  }
147
- // Export singleton instance
148
157
  export const xrayConfigLoader = new XrayConfigLoader();
149
- // Backward compat aliases
@@ -4,7 +4,6 @@
4
4
  * Loads Universal Development Codex v1.2.0 context for agent initialization.
5
5
  * Provides structured access to 30+ codex terms, interweaves, lenses, and anti-patterns.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-06
9
8
  */
10
9
  import * as fs from "fs";
@@ -4,7 +4,6 @@
4
4
  * Prevents system prompt bloat by validating and rejecting context-injection attempts
5
5
  * that would exceed token budgets.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-03
9
8
  */
10
9
  /**
@@ -4,7 +4,6 @@
4
4
  * Loads and validates the unified features configuration from features.json
5
5
  * Supports token optimization, model routing, batch operations, and more.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-25
9
8
  */
10
9
  import * as fs from "fs";
@@ -446,6 +445,46 @@ export class FeaturesConfigLoader {
446
445
  });
447
446
  }
448
447
  }
448
+ /**
449
+ * Get XrayConfig-shaped slice for backward compatibility
450
+ * @deprecated Use individual getters or loadConfig() directly instead.
451
+ */
452
+ getXrayConfig() {
453
+ const config = this.loadConfig();
454
+ return {
455
+ multi_agent_orchestration: config.multi_agent_orchestration,
456
+ autonomous_reporting: config.autonomous_reporting,
457
+ disabled_agents: config.agent_management?.disabled_agents ?? [],
458
+ };
459
+ }
460
+ getTokenManagement() {
461
+ return this.loadConfig().token_optimization;
462
+ }
463
+ getProcessors() {
464
+ return this.loadConfig().processors;
465
+ }
466
+ getCommitCycle() {
467
+ return this.loadConfig().commit_cycle;
468
+ }
469
+ getStorytelling() {
470
+ return this.loadConfig().storytelling;
471
+ }
472
+ getInference() {
473
+ return this.loadConfig().inference;
474
+ }
475
+ getMemoryRouting() {
476
+ return this.loadConfig().memory_routing;
477
+ }
478
+ getPublish() {
479
+ return this.loadConfig().publish;
480
+ }
481
+ getAutoReporting() {
482
+ return this.loadConfig().autonomous_reporting;
483
+ }
484
+ getGovernance() {
485
+ const config = this.loadConfig();
486
+ return config.inference;
487
+ }
449
488
  }
450
489
  // Export singleton instance
451
490
  export const featuresConfigLoader = new FeaturesConfigLoader();
@@ -4,7 +4,6 @@
4
4
  * Pattern definitions from v1.1.0 → v2.0 kernel update
5
5
  * Includes 35+ patterns from 80+ reflections
6
6
  *
7
- * @version 2.0.0-SECURITY-ENHANCED
8
7
  */
9
8
  export class KernelAnalyzer {
10
9
  config;
@@ -2,48 +2,24 @@
2
2
  * Model Router
3
3
  *
4
4
  * Intelligent model routing based on task complexity and type.
5
- * Integrates with features-config for task-based model selection.
5
+ * Uses featuresConfigLoader as the single source of truth for all model config.
6
6
  *
7
- * @version 2.0.0
8
7
  * @since 2026-01-25
9
8
  */
10
- import * as fs from "fs";
11
- import * as path from "path";
12
9
  import { featuresConfigLoader, detectTaskType, } from "./features-config.js";
13
10
  // ============================================================================
14
11
  // Model Router Class
15
12
  // ============================================================================
16
13
  class ModelRouter {
17
- configPath;
18
- config;
19
14
  availableModels;
20
- constructor(configPath) {
21
- this.configPath =
22
- configPath || path.resolve(process.cwd(), "opencode.json");
23
- this.config = this.loadConfig();
15
+ constructor() {
24
16
  this.availableModels = this.discoverModels();
25
17
  }
26
- loadConfig() {
27
- try {
28
- const configData = fs.readFileSync(this.configPath, "utf8");
29
- return JSON.parse(configData);
30
- }
31
- catch (error) {
32
- // Provide defaults if config not found
33
- return {
34
- model_routing: {},
35
- model_default: "claude-sonnet-4",
36
- model_fallback: "claude-haiku-4",
37
- };
38
- }
39
- }
40
18
  discoverModels() {
41
19
  const defaultModels = [
42
- // Anthropic Claude models (preferred for 0xRay)
43
20
  "claude-opus-4",
44
21
  "claude-sonnet-4",
45
22
  "claude-haiku-4",
46
- // Other supported models
47
23
  "openai/gpt-4o",
48
24
  "openai/gpt-4o-mini",
49
25
  "google/gemini-pro-1.5",
@@ -51,7 +27,15 @@ class ModelRouter {
51
27
  "meta/llama-3.1-70b-instruct",
52
28
  "mistral/mistral-7b-instruct",
53
29
  ];
54
- const configModels = this.config.available_models || [];
30
+ const featuresConfig = featuresConfigLoader.loadConfig();
31
+ const configModels = [];
32
+ if (featuresConfig.model_routing?.task_routing) {
33
+ for (const route of Object.values(featuresConfig.model_routing.task_routing)) {
34
+ if (route?.model && !configModels.includes(route.model)) {
35
+ configModels.push(route.model);
36
+ }
37
+ }
38
+ }
55
39
  const uniqueModels = new Set([...defaultModels, ...configModels]);
56
40
  return Array.from(uniqueModels);
57
41
  }
@@ -82,44 +66,28 @@ class ModelRouter {
82
66
  return this.getValidatedModel();
83
67
  }
84
68
  /**
85
- * Get validated model for agent type (legacy method)
69
+ * Get validated model for agent type
86
70
  */
87
71
  getValidatedModel(agentType) {
88
- // 1. User preference (future enhancement)
89
- const userModel = this.getUserPreference();
90
- if (userModel && this.isModelAvailable(userModel)) {
91
- return userModel;
92
- }
93
- // 2. Check features config for agent-specific model
72
+ const featuresConfig = featuresConfigLoader.loadConfig();
73
+ // 1. Check features config for agent-specific model
94
74
  if (agentType) {
95
- const featuresConfig = featuresConfigLoader.loadConfig();
96
- const agentModel = featuresConfig.agent_management.agent_models[agentType];
75
+ const agentModel = featuresConfig.agent_management?.agent_models?.[agentType];
97
76
  if (agentModel && this.isModelAvailable(agentModel)) {
98
77
  return agentModel;
99
78
  }
100
- // Fall back to opencode.json model routing
101
- if (this.config.model_routing?.[agentType]) {
102
- const configModel = this.config.model_routing[agentType];
103
- if (this.isModelAvailable(configModel)) {
104
- return configModel;
105
- }
106
- }
107
79
  }
108
- // 3. Framework default from features config
109
- const featuresConfig = featuresConfigLoader.loadConfig();
80
+ // 2. Framework default from features config
110
81
  const defaultModel = featuresConfig.model_routing?.default_model;
111
82
  if (defaultModel && this.isModelAvailable(defaultModel)) {
112
83
  return defaultModel;
113
84
  }
114
- // 4. Legacy default
115
- const legacyDefault = this.config.model_default || "claude-sonnet-4";
116
- if (this.isModelAvailable(legacyDefault)) {
117
- return legacyDefault;
85
+ // 3. Hardcoded default
86
+ if (this.isModelAvailable("claude-sonnet-4")) {
87
+ return "claude-sonnet-4";
118
88
  }
119
- // 5. Ultimate fallback
120
- const fallbackModel = featuresConfig.model_routing?.fallback_model ||
121
- this.config.model_fallback ||
122
- "claude-haiku-4";
89
+ // 4. Ultimate fallback
90
+ const fallbackModel = featuresConfig.model_routing?.fallback_model || "claude-haiku-4";
123
91
  return fallbackModel;
124
92
  }
125
93
  /**
@@ -134,24 +102,15 @@ class ModelRouter {
134
102
  getMaxTokensForTaskType(taskType) {
135
103
  return featuresConfigLoader.getMaxTokensForTask(taskType);
136
104
  }
137
- getUserPreference() {
138
- // Check for user-specific config (future enhancement)
139
- return null;
140
- }
141
- isModelAvailable(model) {
142
- if (this.config.deprecated_models?.includes(model)) {
143
- return false;
144
- }
145
- // For now, accept all models - the API will validate
105
+ isModelAvailable(_model) {
146
106
  return true;
147
107
  }
148
108
  /**
149
109
  * Reload configuration from disk
150
110
  */
151
111
  reloadConfig() {
152
- this.config = this.loadConfig();
153
- this.availableModels = this.discoverModels();
154
112
  featuresConfigLoader.clearCache();
113
+ this.availableModels = this.discoverModels();
155
114
  }
156
115
  /**
157
116
  * Get current configuration summary
@@ -4,7 +4,6 @@
4
4
  * Generates optimized, token-efficient system prompts by implementing
5
5
  * selective injection and smart compression strategies.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-03
9
8
  */
10
9
  import { XrayContextLoader } from "./context-loader.js";
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * Integrates with TaskSkillRouter for keyword-based preprocessing.
8
8
  *
9
- * @version 1.1.0
10
9
  * @since 2026-01-07
11
10
  */
12
11
  import * as fs from "fs";
@@ -4,7 +4,6 @@
4
4
  * Defines expertise levels for weighted voting across all 0xRay agents.
5
5
  * Higher expertise = higher weight in voting decisions.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-04-16
9
8
  */
10
9
  export const AGENT_EXPERTISE_LEVELS = {
@@ -4,7 +4,6 @@
4
4
  * Barrel export for all analytics components.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  export { RoutingOutcomeTracker, routingOutcomeTracker } from './outcome-tracker.js';
@@ -4,7 +4,6 @@
4
4
  * P9 learning system - analyzes patterns, detects drift, and improves routing.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import { patternPerformanceTracker } from '../../analytics/pattern-performance-tracker.js';
@@ -4,7 +4,6 @@
4
4
  * Tracks routing outcomes and provides statistics for performance analysis.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import fs from 'fs';
@@ -4,7 +4,6 @@
4
4
  * Provides analytics aggregation and insights generation for routing data.
5
5
  * Extracted from task-skill-router.ts as part of Phase 2 refactoring.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-03-12
9
8
  */
10
9
  import { frameworkLogger } from "../../core/framework-logger.js";
@@ -4,7 +4,6 @@
4
4
  * AST-based code parsing and structural analysis using ast-grep.
5
5
  * Provides advanced code understanding, pattern detection, and refactoring insights.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-11
9
8
  */
10
9
  import * as fs from "fs";
@@ -10,7 +10,6 @@
10
10
  * - complex: 50+ - multi-agent orchestration with voting
11
11
  * - enterprise: 75+ - maximum orchestration
12
12
  *
13
- * @version 1.2.0
14
13
  * @since 2026-01-07
15
14
  */
16
15
  import { DEFAULT_THRESHOLDS, OPERATION_WEIGHTS, RISK_MULTIPLIERS, getLevelFromScore, getStrategyForLevel, getAgentCountForLevel, generateReasoning, } from "./complexity-core.js";
@@ -4,7 +4,6 @@
4
4
  * Builds comprehensive dependency graphs for codebase analysis.
5
5
  * Tracks file relationships, import/export chains, and architectural dependencies.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-11
9
8
  */
10
9
  import * as path from "path";
@@ -4,7 +4,6 @@
4
4
  * Complete automatic multi-agent delegation system with complexity assessment
5
5
  * and session-based coordination.
6
6
  *
7
- * @version 1.1.0
8
7
  * @since 2026-01-07
9
8
  */
10
9
  export { ComplexityAnalyzer, complexityAnalyzer, } from "./complexity-analyzer.js";
@@ -4,7 +4,6 @@
4
4
  * Provides aggregation, reporting, and export functionality for delegation
5
5
  * and orchestration metrics stored in stateManager.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-04-16
9
8
  */
10
9
  const MAX_METRICS_ENTRIES = 100;
@@ -4,7 +4,6 @@
4
4
  * Manages cross-agent communication and coordination within sessions.
5
5
  * Tracks delegation state, agent interactions, and conflict resolution.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-01-07
9
8
  */
10
9
  import { frameworkLogger } from "../core/framework-logger.js";
@@ -8,7 +8,6 @@
8
8
  * - Architectural impact
9
9
  * - Participant count
10
10
  *
11
- * @version 1.0.0
12
11
  * @since 2026-04-16
13
12
  */
14
13
  const DEFAULT_STRATEGY_CONFIG = {
@@ -7,7 +7,6 @@
7
7
  * - Historical learning and pattern detection
8
8
  * - Integration with session coordinator
9
9
  *
10
- * @version 1.0.0
11
10
  * @since 2026-04-16
12
11
  */
13
12
  import * as crypto from "crypto";
@@ -4,7 +4,6 @@
4
4
  * Comprehensive type definitions for the multi-agent voting system
5
5
  * with weighted confidence scoring and adaptive conflict resolution.
6
6
  *
7
- * @version 1.0.0
8
7
  * @since 2026-04-16
9
8
  */
10
9
  export {};
@@ -6,7 +6,6 @@
6
6
  * - History-weighted voting that considers past successful votes
7
7
  * - Multiple aggregation strategies for different decision scenarios
8
8
  *
9
- * @version 1.0.0
10
9
  * @since 2026-04-17
11
10
  */
12
11
  import { getAgentExpertiseLevel, getVotingWeight, } from "./agent-expertise.js";
@@ -7,7 +7,6 @@
7
7
  * Phase 5 refactoring: Extracted from RuleEnforcer.
8
8
  *
9
9
  * @module enforcement/core
10
- * @version 1.0.0
11
10
  */
12
11
  // Rule storage and management
13
12
  export { RuleRegistry } from './rule-registry.js';
@@ -8,7 +8,6 @@
8
8
  * Phase 5 refactoring: Extracted from RuleEnforcer.
9
9
  *
10
10
  * @module enforcement/core
11
- * @version 1.0.0
12
11
  *
13
12
  * @example
14
13
  * ```typescript
@@ -7,7 +7,6 @@
7
7
  * Phase 5 refactoring: Extracted from RuleEnforcer.
8
8
  *
9
9
  * @module enforcement/core
10
- * @version 1.0.0
11
10
  *
12
11
  * @example
13
12
  * ```typescript
@@ -6,7 +6,6 @@
6
6
  * managing rule definitions with lifecycle operations.
7
7
  *
8
8
  * @module enforcement/core
9
- * @version 1.0.0
10
9
  *
11
10
  * @example
12
11
  * ```typescript
@@ -8,7 +8,6 @@
8
8
  * Phase 5 refactoring: Extracted from RuleEnforcer.
9
9
  *
10
10
  * @module enforcement/core
11
- * @version 1.0.0
12
11
  *
13
12
  * @example
14
13
  * ```typescript
@@ -5,7 +5,6 @@
5
5
  * It validates code against development rules and codex compliance requirements.
6
6
  *
7
7
  * @module enforcement
8
- * @version 1.0.0
9
8
  *
10
9
  * @example
11
10
  * ```typescript
@@ -7,7 +7,6 @@
7
7
  * Phase 4 refactoring: Extracted from RuleEnforcer.loadAgentTriageRules()
8
8
  *
9
9
  * @module loaders/agent-triage-loader
10
- * @version 1.0.0
11
10
  */
12
11
  import { frameworkLogger } from "../../core/framework-logger.js";
13
12
  import { BaseLoader } from "./base-loader.js";