0xray 4.0.11 → 4.0.13

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 (1009) hide show
  1. package/.grok-plugin/plugin.json +1 -1
  2. package/.xray/features.json +1 -1
  3. package/AGENTS-consumer.md +1 -1
  4. package/AGENTS.md +1 -1
  5. package/README.md +2 -2
  6. package/SKILLS.md +1 -1
  7. package/llms.txt +2 -2
  8. package/package.json +1 -1
  9. package/scripts/foundry/CHANGELOG.md +3 -1
  10. package/scripts/foundry/README.md +2 -2
  11. package/scripts/foundry/inspect.mjs +22 -6
  12. package/scripts/foundry/mint-suit.cjs +24 -0
  13. package/scripts/foundry/package.json +1 -1
  14. package/scripts/foundry/plant/agents/inspect.yml +1 -1
  15. package/scripts/foundry/plant/agents/mill.yml +1 -1
  16. package/scripts/foundry/plant/skills/inspect/SKILL.md +1 -1
  17. package/scripts/node/install-bridges.cjs +39 -24
  18. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  19. package/xray/features.json +1 -1
  20. package/.opencode/agents/api-design.yml +0 -31
  21. package/.opencode/agents/architect.yml +0 -15
  22. package/.opencode/agents/architecture-patterns.yml +0 -14
  23. package/.opencode/agents/auto-format.yml +0 -14
  24. package/.opencode/agents/backend-engineer.yml +0 -12
  25. package/.opencode/agents/boot-orchestrator.yml +0 -14
  26. package/.opencode/agents/bug-triage-specialist.yml +0 -15
  27. package/.opencode/agents/code-analyzer.yml +0 -12
  28. package/.opencode/agents/code-reviewer.yml +0 -14
  29. package/.opencode/agents/content-creator.yml +0 -12
  30. package/.opencode/agents/database-engineer.yml +0 -12
  31. package/.opencode/agents/devops-engineer.yml +0 -12
  32. package/.opencode/agents/framework-compliance-audit.yml +0 -14
  33. package/.opencode/agents/frontend-engineer.yml +0 -12
  34. package/.opencode/agents/frontend-ui-ux-engineer.yml +0 -12
  35. package/.opencode/agents/git-workflow.yml +0 -15
  36. package/.opencode/agents/growth-strategist.yml +0 -12
  37. package/.opencode/agents/hermes-agent.yml +0 -12
  38. package/.opencode/agents/inference-improve.yml +0 -12
  39. package/.opencode/agents/lint.yml +0 -14
  40. package/.opencode/agents/log-monitor.yml +0 -12
  41. package/.opencode/agents/mobile-developer.yml +0 -12
  42. package/.opencode/agents/model-health-check.yml +0 -12
  43. package/.opencode/agents/multimodal-looker.yml +0 -12
  44. package/.opencode/agents/performance-analysis.yml +0 -12
  45. package/.opencode/agents/performance-engineer.yml +0 -12
  46. package/.opencode/agents/performance-optimization.yml +0 -12
  47. package/.opencode/agents/processor-pipeline.yml +0 -14
  48. package/.opencode/agents/project-analysis.yml +0 -12
  49. package/.opencode/agents/refactorer.yml +0 -12
  50. package/.opencode/agents/researcher.yml +0 -12
  51. package/.opencode/agents/security-auditor.yml +0 -12
  52. package/.opencode/agents/security-scan.yml +0 -12
  53. package/.opencode/agents/seo-consultant.yml +0 -12
  54. package/.opencode/agents/session-management.yml +0 -12
  55. package/.opencode/agents/state-manager.yml +0 -12
  56. package/.opencode/agents/storyteller.yml +0 -12
  57. package/.opencode/agents/strategist.yml +0 -12
  58. package/.opencode/agents/tech-writer.yml +0 -12
  59. package/.opencode/agents/testing-best-practices.yml +0 -12
  60. package/.opencode/agents/testing-lead.yml +0 -12
  61. package/.opencode/agents/ui-ux-design.yml +0 -12
  62. package/.opencode/codex.codex +0 -8
  63. package/.opencode/commands/auto-format.md +0 -99
  64. package/.opencode/commands/auto-summary-capture.md +0 -90
  65. package/.opencode/commands/dependency-audit.md +0 -184
  66. package/.opencode/commands/enforcer-daily-scan.md +0 -137
  67. package/.opencode/commands/framework-compliance-audit.md +0 -205
  68. package/.opencode/commands/interactive-validator.md +0 -75
  69. package/.opencode/commands/job-summary-logger.md +0 -68
  70. package/.opencode/commands/lint.md +0 -11
  71. package/.opencode/commands/mode-switch.md +0 -95
  72. package/.opencode/commands/model-health-check.md +0 -186
  73. package/.opencode/commands/performance-analysis.md +0 -144
  74. package/.opencode/commands/pre-commit-introspection.md +0 -185
  75. package/.opencode/commands/pre-commit-introspection.sh +0 -133
  76. package/.opencode/commands/security-scan.md +0 -157
  77. package/.opencode/commands/sisyphus-validation.md +0 -128
  78. package/.opencode/commands/summary-logger.md +0 -83
  79. package/.opencode/enforcer-config.json +0 -282
  80. package/.opencode/skills/api-design/SKILL.md +0 -37
  81. package/.opencode/skills/architect-tools/SKILL.md +0 -37
  82. package/.opencode/skills/architecture-patterns/SKILL.md +0 -37
  83. package/.opencode/skills/auto-format/SKILL.md +0 -37
  84. package/.opencode/skills/backend-engineer/SKILL.md +0 -49
  85. package/.opencode/skills/boot-orchestrator/SKILL.md +0 -33
  86. package/.opencode/skills/bug-triage/SKILL.md +0 -43
  87. package/.opencode/skills/code-analyzer/SKILL.md +0 -45
  88. package/.opencode/skills/code-review/SKILL.md +0 -52
  89. package/.opencode/skills/content-creator/SKILL.md +0 -38
  90. package/.opencode/skills/database-engineer/SKILL.md +0 -46
  91. package/.opencode/skills/devops-engineer/SKILL.md +0 -49
  92. package/.opencode/skills/enforcer/SKILL.md +0 -37
  93. package/.opencode/skills/framework-compliance-audit/SKILL.md +0 -37
  94. package/.opencode/skills/frontend-engineer/SKILL.md +0 -49
  95. package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +0 -41
  96. package/.opencode/skills/git-workflow/SKILL.md +0 -37
  97. package/.opencode/skills/growth-strategist/SKILL.md +0 -48
  98. package/.opencode/skills/hermes-agent/SKILL.md +0 -212
  99. package/.opencode/skills/inference-improve/SKILL.md +0 -97
  100. package/.opencode/skills/lint/SKILL.md +0 -37
  101. package/.opencode/skills/log-monitor/SKILL.md +0 -44
  102. package/.opencode/skills/mobile-developer/SKILL.md +0 -42
  103. package/.opencode/skills/model-health-check/SKILL.md +0 -37
  104. package/.opencode/skills/multimodal-looker/SKILL.md +0 -45
  105. package/.opencode/skills/orchestrator/SKILL.md +0 -61
  106. package/.opencode/skills/performance-analysis/SKILL.md +0 -37
  107. package/.opencode/skills/performance-engineer/SKILL.md +0 -41
  108. package/.opencode/skills/performance-optimization/SKILL.md +0 -37
  109. package/.opencode/skills/processor-pipeline/SKILL.md +0 -37
  110. package/.opencode/skills/project-analysis/SKILL.md +0 -42
  111. package/.opencode/skills/refactoring-strategies/SKILL.md +0 -37
  112. package/.opencode/skills/registry.json +0 -65
  113. package/.opencode/skills/researcher/SKILL.md +0 -50
  114. package/.opencode/skills/security-audit/SKILL.md +0 -48
  115. package/.opencode/skills/security-scan/SKILL.md +0 -37
  116. package/.opencode/skills/seo-consultant/SKILL.md +0 -43
  117. package/.opencode/skills/session-management/SKILL.md +0 -36
  118. package/.opencode/skills/state-manager/SKILL.md +0 -37
  119. package/.opencode/skills/storyteller/SKILL.md +0 -130
  120. package/.opencode/skills/strategist/SKILL.md +0 -44
  121. package/.opencode/skills/tech-writer/SKILL.md +0 -37
  122. package/.opencode/skills/testing-best-practices/SKILL.md +0 -37
  123. package/.opencode/skills/testing-strategy/SKILL.md +0 -54
  124. package/.opencode/skills/ui-ux-design/SKILL.md +0 -603
  125. package/.opencode/skills/xray-orchestrator/SKILL.md +0 -141
  126. package/.opencode/skills/xray-orchestrator/index.ts +0 -267
  127. package/.opencode/workflows/post-deployment-audit.yml +0 -123
  128. package/dist/.gitignore.default +0 -67
  129. package/dist/AGENTS.md +0 -225
  130. package/dist/CHANGELOG.md +0 -2755
  131. package/dist/LICENSE +0 -21
  132. package/dist/README.md +0 -233
  133. package/dist/SKILLS.md +0 -166
  134. package/dist/agents/architect.d.ts +0 -2
  135. package/dist/agents/architect.js +0 -56
  136. package/dist/agents/backend-engineer.d.ts +0 -8
  137. package/dist/agents/backend-engineer.js +0 -81
  138. package/dist/agents/bug-triage-specialist.d.ts +0 -2
  139. package/dist/agents/bug-triage-specialist.js +0 -74
  140. package/dist/agents/code-analyzer.d.ts +0 -7
  141. package/dist/agents/code-analyzer.js +0 -150
  142. package/dist/agents/code-reviewer.d.ts +0 -2
  143. package/dist/agents/code-reviewer.js +0 -69
  144. package/dist/agents/content-creator.d.ts +0 -9
  145. package/dist/agents/content-creator.js +0 -72
  146. package/dist/agents/database-engineer.d.ts +0 -8
  147. package/dist/agents/database-engineer.js +0 -76
  148. package/dist/agents/devops-engineer.d.ts +0 -8
  149. package/dist/agents/devops-engineer.js +0 -84
  150. package/dist/agents/frontend-engineer.d.ts +0 -8
  151. package/dist/agents/frontend-engineer.js +0 -78
  152. package/dist/agents/frontend-ui-ux-engineer.d.ts +0 -8
  153. package/dist/agents/frontend-ui-ux-engineer.js +0 -64
  154. package/dist/agents/growth-strategist.d.ts +0 -8
  155. package/dist/agents/growth-strategist.js +0 -111
  156. package/dist/agents/index.d.ts +0 -25
  157. package/dist/agents/index.js +0 -47
  158. package/dist/agents/known-names.d.ts +0 -26
  159. package/dist/agents/known-names.js +0 -72
  160. package/dist/agents/librarian-agents-updater.d.ts +0 -30
  161. package/dist/agents/librarian-agents-updater.js +0 -333
  162. package/dist/agents/log-monitor.d.ts +0 -2
  163. package/dist/agents/log-monitor.js +0 -109
  164. package/dist/agents/mobile-developer.d.ts +0 -9
  165. package/dist/agents/mobile-developer.js +0 -102
  166. package/dist/agents/multimodal-looker.d.ts +0 -9
  167. package/dist/agents/multimodal-looker.js +0 -93
  168. package/dist/agents/performance-engineer.d.ts +0 -8
  169. package/dist/agents/performance-engineer.js +0 -86
  170. package/dist/agents/refactorer.d.ts +0 -2
  171. package/dist/agents/refactorer.js +0 -80
  172. package/dist/agents/registry.d.ts +0 -37
  173. package/dist/agents/registry.js +0 -354
  174. package/dist/agents/researcher.d.ts +0 -2
  175. package/dist/agents/researcher.js +0 -83
  176. package/dist/agents/security-auditor.d.ts +0 -2
  177. package/dist/agents/security-auditor.js +0 -158
  178. package/dist/agents/seo-consultant.d.ts +0 -8
  179. package/dist/agents/seo-consultant.js +0 -53
  180. package/dist/agents/strategist.d.ts +0 -7
  181. package/dist/agents/strategist.js +0 -47
  182. package/dist/agents/tech-writer.d.ts +0 -8
  183. package/dist/agents/tech-writer.js +0 -84
  184. package/dist/agents/testing-lead.d.ts +0 -2
  185. package/dist/agents/testing-lead.js +0 -95
  186. package/dist/agents/types.d.ts +0 -45
  187. package/dist/agents/types.js +0 -1
  188. package/dist/analytics/consent-manager.d.ts +0 -92
  189. package/dist/analytics/consent-manager.js +0 -257
  190. package/dist/analytics/emerging-pattern-detector.d.ts +0 -66
  191. package/dist/analytics/emerging-pattern-detector.js +0 -259
  192. package/dist/analytics/pattern-learning-engine.d.ts +0 -79
  193. package/dist/analytics/pattern-learning-engine.js +0 -277
  194. package/dist/analytics/pattern-performance-tracker.d.ts +0 -96
  195. package/dist/analytics/pattern-performance-tracker.js +0 -335
  196. package/dist/analytics/predictive-analytics.d.ts +0 -40
  197. package/dist/analytics/predictive-analytics.js +0 -247
  198. package/dist/analytics/prompt-pattern-analyzer.d.ts +0 -98
  199. package/dist/analytics/prompt-pattern-analyzer.js +0 -370
  200. package/dist/analytics/routing-performance-analyzer.d.ts +0 -100
  201. package/dist/analytics/routing-performance-analyzer.js +0 -355
  202. package/dist/analytics/routing-refiner.d.ts +0 -102
  203. package/dist/analytics/routing-refiner.js +0 -377
  204. package/dist/analytics/simple-pattern-analyzer.d.ts +0 -79
  205. package/dist/analytics/simple-pattern-analyzer.js +0 -296
  206. package/dist/architect/architect-tools.d.ts +0 -70
  207. package/dist/architect/architect-tools.js +0 -437
  208. package/dist/architect/architectural-integrity.d.ts +0 -20
  209. package/dist/architect/architectural-integrity.js +0 -78
  210. package/dist/benchmark/performance-benchmark.d.ts +0 -103
  211. package/dist/benchmark/performance-benchmark.js +0 -373
  212. package/dist/cli/commands/analytics-disable.d.ts +0 -9
  213. package/dist/cli/commands/analytics-disable.js +0 -72
  214. package/dist/cli/commands/analytics-enable-action.d.ts +0 -8
  215. package/dist/cli/commands/analytics-enable-action.js +0 -82
  216. package/dist/cli/commands/analytics-preview.d.ts +0 -9
  217. package/dist/cli/commands/analytics-preview.js +0 -106
  218. package/dist/cli/commands/analytics-status.d.ts +0 -9
  219. package/dist/cli/commands/analytics-status.js +0 -68
  220. package/dist/cli/commands/antigravity-status.d.ts +0 -9
  221. package/dist/cli/commands/antigravity-status.js +0 -106
  222. package/dist/cli/commands/archive-logs.d.ts +0 -23
  223. package/dist/cli/commands/archive-logs.js +0 -160
  224. package/dist/cli/commands/credible-init.d.ts +0 -11
  225. package/dist/cli/commands/credible-init.js +0 -82
  226. package/dist/cli/commands/enforce.d.ts +0 -12
  227. package/dist/cli/commands/enforce.js +0 -78
  228. package/dist/cli/commands/foundry-mint-wear.d.ts +0 -3
  229. package/dist/cli/commands/foundry-mint-wear.js +0 -17
  230. package/dist/cli/commands/govern.d.ts +0 -29
  231. package/dist/cli/commands/govern.js +0 -149
  232. package/dist/cli/commands/grok-install.d.ts +0 -7
  233. package/dist/cli/commands/grok-install.js +0 -16
  234. package/dist/cli/commands/hermes-install.d.ts +0 -2
  235. package/dist/cli/commands/hermes-install.js +0 -90
  236. package/dist/cli/commands/mcp-install.d.ts +0 -4
  237. package/dist/cli/commands/mcp-install.js +0 -253
  238. package/dist/cli/commands/openclaw-install.d.ts +0 -2
  239. package/dist/cli/commands/openclaw-install.js +0 -80
  240. package/dist/cli/commands/opencode-install.d.ts +0 -2
  241. package/dist/cli/commands/opencode-install.js +0 -153
  242. package/dist/cli/commands/plugin-commands.d.ts +0 -18
  243. package/dist/cli/commands/plugin-commands.js +0 -245
  244. package/dist/cli/commands/publish-agent.d.ts +0 -15
  245. package/dist/cli/commands/publish-agent.js +0 -184
  246. package/dist/cli/commands/security-audit.d.ts +0 -23
  247. package/dist/cli/commands/security-audit.js +0 -219
  248. package/dist/cli/commands/skill-install.d.ts +0 -6
  249. package/dist/cli/commands/skill-install.js +0 -522
  250. package/dist/cli/commands/status.d.ts +0 -41
  251. package/dist/cli/commands/status.js +0 -199
  252. package/dist/cli/commands/storyteller.d.ts +0 -19
  253. package/dist/cli/commands/storyteller.js +0 -230
  254. package/dist/cli/index.d.ts +0 -7
  255. package/dist/cli/index.js +0 -996
  256. package/dist/cli/server.d.ts +0 -1
  257. package/dist/cli/server.js +0 -147
  258. package/dist/config/default-agents.d.ts +0 -12
  259. package/dist/config/default-agents.js +0 -16
  260. package/dist/config/routing-mappings.d.ts +0 -26
  261. package/dist/config/routing-mappings.js +0 -151
  262. package/dist/core/activity-logger.d.ts +0 -71
  263. package/dist/core/activity-logger.js +0 -259
  264. package/dist/core/adaptive-kernel.d.ts +0 -108
  265. package/dist/core/adaptive-kernel.js +0 -191
  266. package/dist/core/agent-spawn-gate.d.ts +0 -56
  267. package/dist/core/agent-spawn-gate.js +0 -120
  268. package/dist/core/boot-orchestrator.d.ts +0 -99
  269. package/dist/core/boot-orchestrator.js +0 -809
  270. package/dist/core/bridge.mjs +0 -922
  271. package/dist/core/codex-formatter.d.ts +0 -95
  272. package/dist/core/codex-formatter.js +0 -218
  273. package/dist/core/codex-injector.d.ts +0 -73
  274. package/dist/core/codex-injector.js +0 -423
  275. package/dist/core/config-loader.d.ts +0 -59
  276. package/dist/core/config-loader.js +0 -157
  277. package/dist/core/config-paths.d.ts +0 -66
  278. package/dist/core/config-paths.js +0 -169
  279. package/dist/core/context-loader.d.ts +0 -120
  280. package/dist/core/context-loader.js +0 -268
  281. package/dist/core/context-validator.d.ts +0 -52
  282. package/dist/core/context-validator.js +0 -211
  283. package/dist/core/features-config.d.ts +0 -531
  284. package/dist/core/features-config.js +0 -524
  285. package/dist/core/framework-logger.d.ts +0 -76
  286. package/dist/core/framework-logger.js +0 -275
  287. package/dist/core/index.d.ts +0 -5
  288. package/dist/core/index.js +0 -6
  289. package/dist/core/kernel-patterns.d.ts +0 -129
  290. package/dist/core/kernel-patterns.js +0 -301
  291. package/dist/core/logging-config.d.ts +0 -10
  292. package/dist/core/logging-config.js +0 -43
  293. package/dist/core/model-router.d.ts +0 -56
  294. package/dist/core/model-router.js +0 -134
  295. package/dist/core/orchestrator.d.ts +0 -71
  296. package/dist/core/orchestrator.js +0 -408
  297. package/dist/core/system-prompt-generator.d.ts +0 -34
  298. package/dist/core/system-prompt-generator.js +0 -264
  299. package/dist/core/trace-context.d.ts +0 -12
  300. package/dist/core/trace-context.js +0 -33
  301. package/dist/core/xray-activation.d.ts +0 -14
  302. package/dist/core/xray-activation.js +0 -135
  303. package/dist/delegation/agent-delegator.d.ts +0 -185
  304. package/dist/delegation/agent-delegator.js +0 -768
  305. package/dist/delegation/agent-expertise.d.ts +0 -15
  306. package/dist/delegation/agent-expertise.js +0 -155
  307. package/dist/delegation/analytics/index.d.ts +0 -11
  308. package/dist/delegation/analytics/index.js +0 -11
  309. package/dist/delegation/analytics/learning-engine.d.ts +0 -84
  310. package/dist/delegation/analytics/learning-engine.js +0 -276
  311. package/dist/delegation/analytics/outcome-tracker.d.ts +0 -117
  312. package/dist/delegation/analytics/outcome-tracker.js +0 -278
  313. package/dist/delegation/analytics/routing-analytics.d.ts +0 -60
  314. package/dist/delegation/analytics/routing-analytics.js +0 -192
  315. package/dist/delegation/ast-code-parser.d.ts +0 -173
  316. package/dist/delegation/ast-code-parser.js +0 -877
  317. package/dist/delegation/codebase-context-analyzer.d.ts +0 -164
  318. package/dist/delegation/codebase-context-analyzer.js +0 -1040
  319. package/dist/delegation/complexity-analyzer.d.ts +0 -110
  320. package/dist/delegation/complexity-analyzer.js +0 -281
  321. package/dist/delegation/complexity-core.d.ts +0 -119
  322. package/dist/delegation/complexity-core.js +0 -219
  323. package/dist/delegation/config/types.d.ts +0 -247
  324. package/dist/delegation/config/types.js +0 -6
  325. package/dist/delegation/dependency-graph-builder.d.ts +0 -94
  326. package/dist/delegation/dependency-graph-builder.js +0 -408
  327. package/dist/delegation/index.d.ts +0 -25
  328. package/dist/delegation/index.js +0 -20
  329. package/dist/delegation/metrics-aggregator.d.ts +0 -91
  330. package/dist/delegation/metrics-aggregator.js +0 -334
  331. package/dist/delegation/session-coordinator.d.ts +0 -132
  332. package/dist/delegation/session-coordinator.js +0 -351
  333. package/dist/delegation/strategy-selector.d.ts +0 -27
  334. package/dist/delegation/strategy-selector.js +0 -107
  335. package/dist/delegation/voting-coordinator.d.ts +0 -48
  336. package/dist/delegation/voting-coordinator.js +0 -374
  337. package/dist/delegation/voting-types.d.ts +0 -154
  338. package/dist/delegation/voting-types.js +0 -9
  339. package/dist/delegation/weighted-voting-aggregator.d.ts +0 -36
  340. package/dist/delegation/weighted-voting-aggregator.js +0 -193
  341. package/dist/enforcement/core/index.d.ts +0 -14
  342. package/dist/enforcement/core/index.js +0 -18
  343. package/dist/enforcement/core/rule-executor.d.ts +0 -157
  344. package/dist/enforcement/core/rule-executor.js +0 -364
  345. package/dist/enforcement/core/rule-hierarchy.d.ts +0 -145
  346. package/dist/enforcement/core/rule-hierarchy.js +0 -258
  347. package/dist/enforcement/core/rule-registry.d.ts +0 -196
  348. package/dist/enforcement/core/rule-registry.js +0 -239
  349. package/dist/enforcement/core/violation-fixer.d.ts +0 -105
  350. package/dist/enforcement/core/violation-fixer.js +0 -650
  351. package/dist/enforcement/enforcer-tools.d.ts +0 -85
  352. package/dist/enforcement/enforcer-tools.js +0 -818
  353. package/dist/enforcement/index.d.ts +0 -22
  354. package/dist/enforcement/index.js +0 -40
  355. package/dist/enforcement/loaders/agent-triage-loader.d.ts +0 -98
  356. package/dist/enforcement/loaders/agent-triage-loader.js +0 -221
  357. package/dist/enforcement/loaders/agents-md-validation-loader.d.ts +0 -75
  358. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -251
  359. package/dist/enforcement/loaders/base-loader.d.ts +0 -82
  360. package/dist/enforcement/loaders/base-loader.js +0 -85
  361. package/dist/enforcement/loaders/codex-loader.d.ts +0 -76
  362. package/dist/enforcement/loaders/codex-loader.js +0 -395
  363. package/dist/enforcement/loaders/index.d.ts +0 -36
  364. package/dist/enforcement/loaders/index.js +0 -39
  365. package/dist/enforcement/loaders/loader-orchestrator.d.ts +0 -96
  366. package/dist/enforcement/loaders/loader-orchestrator.js +0 -167
  367. package/dist/enforcement/loaders/processor-loader.d.ts +0 -59
  368. package/dist/enforcement/loaders/processor-loader.js +0 -112
  369. package/dist/enforcement/rule-enforcer.d.ts +0 -142
  370. package/dist/enforcement/rule-enforcer.js +0 -298
  371. package/dist/enforcement/test-auto-healing.d.ts +0 -83
  372. package/dist/enforcement/test-auto-healing.js +0 -325
  373. package/dist/enforcement/types.d.ts +0 -500
  374. package/dist/enforcement/types.js +0 -29
  375. package/dist/enforcement/validators/architecture-validators.d.ts +0 -154
  376. package/dist/enforcement/validators/architecture-validators.js +0 -599
  377. package/dist/enforcement/validators/base-validator.d.ts +0 -87
  378. package/dist/enforcement/validators/base-validator.js +0 -107
  379. package/dist/enforcement/validators/code-quality-validators.d.ts +0 -88
  380. package/dist/enforcement/validators/code-quality-validators.js +0 -335
  381. package/dist/enforcement/validators/index.d.ts +0 -14
  382. package/dist/enforcement/validators/index.js +0 -20
  383. package/dist/enforcement/validators/security-validators.d.ts +0 -52
  384. package/dist/enforcement/validators/security-validators.js +0 -219
  385. package/dist/enforcement/validators/testing-validators.d.ts +0 -80
  386. package/dist/enforcement/validators/testing-validators.js +0 -252
  387. package/dist/enforcement/validators/validator-registry.d.ts +0 -91
  388. package/dist/enforcement/validators/validator-registry.js +0 -149
  389. package/dist/execution/opencode-cli-invoker.d.ts +0 -8
  390. package/dist/execution/opencode-cli-invoker.js +0 -173
  391. package/dist/execution/proposal-applier.d.ts +0 -24
  392. package/dist/execution/proposal-applier.js +0 -254
  393. package/dist/governance/codex-policy.service.d.ts +0 -56
  394. package/dist/governance/codex-policy.service.js +0 -166
  395. package/dist/governance/governance-core.d.ts +0 -53
  396. package/dist/governance/governance-core.js +0 -168
  397. package/dist/governance/governance-service.d.ts +0 -39
  398. package/dist/governance/governance-service.js +0 -351
  399. package/dist/governance/governance-types.d.ts +0 -90
  400. package/dist/governance/governance-types.js +0 -11
  401. package/dist/governance/llm-governance-provider.d.ts +0 -16
  402. package/dist/governance/llm-governance-provider.js +0 -284
  403. package/dist/governance/local-confer.d.ts +0 -10
  404. package/dist/governance/local-confer.js +0 -27
  405. package/dist/index.d.ts +0 -28
  406. package/dist/index.js +0 -24
  407. package/dist/inference/deploy-verifier.d.ts +0 -26
  408. package/dist/inference/deploy-verifier.js +0 -161
  409. package/dist/inference/index.d.ts +0 -10
  410. package/dist/inference/index.js +0 -5
  411. package/dist/inference/inference-accumulator.d.ts +0 -29
  412. package/dist/inference/inference-accumulator.js +0 -126
  413. package/dist/inference/inference-agent-invoker.d.ts +0 -3
  414. package/dist/inference/inference-agent-invoker.js +0 -67
  415. package/dist/inference/inference-applier.d.ts +0 -4
  416. package/dist/inference/inference-applier.js +0 -178
  417. package/dist/inference/inference-cycle.d.ts +0 -70
  418. package/dist/inference/inference-cycle.js +0 -392
  419. package/dist/inference/inference-proposal-generator.d.ts +0 -3
  420. package/dist/inference/inference-proposal-generator.js +0 -149
  421. package/dist/inference/semantic-patterns.d.ts +0 -7
  422. package/dist/inference/semantic-patterns.js +0 -310
  423. package/dist/inference/session-capture.d.ts +0 -32
  424. package/dist/inference/session-capture.js +0 -308
  425. package/dist/infrastructure/iac-validator.d.ts +0 -150
  426. package/dist/infrastructure/iac-validator.js +0 -465
  427. package/dist/infrastructure/schemas/cloud-schemas.d.ts +0 -482
  428. package/dist/infrastructure/schemas/cloud-schemas.js +0 -488
  429. package/dist/integrations/base/ExampleIntegration.d.ts +0 -46
  430. package/dist/integrations/base/ExampleIntegration.js +0 -180
  431. package/dist/integrations/base/Integration.d.ts +0 -266
  432. package/dist/integrations/base/Integration.js +0 -394
  433. package/dist/integrations/base/README.md +0 -446
  434. package/dist/integrations/base/index.d.ts +0 -11
  435. package/dist/integrations/base/index.js +0 -15
  436. package/dist/integrations/base/registry.d.ts +0 -272
  437. package/dist/integrations/base/registry.js +0 -605
  438. package/dist/integrations/base/types.d.ts +0 -167
  439. package/dist/integrations/base/types.js +0 -117
  440. package/dist/integrations/enforcement-gate.d.ts +0 -44
  441. package/dist/integrations/enforcement-gate.js +0 -348
  442. package/dist/integrations/governance/governance-client.d.ts +0 -75
  443. package/dist/integrations/governance/governance-client.js +0 -315
  444. package/dist/integrations/governance/index.d.ts +0 -98
  445. package/dist/integrations/governance/index.js +0 -365
  446. package/dist/integrations/governance/types.d.ts +0 -238
  447. package/dist/integrations/governance/types.js +0 -96
  448. package/dist/integrations/grok/grok-cli.d.ts +0 -28
  449. package/dist/integrations/grok/grok-cli.js +0 -216
  450. package/dist/integrations/grok/hooks/grok-hook-activity.js +0 -53
  451. package/dist/integrations/grok/hooks/grok-hook-utils.js +0 -372
  452. package/dist/integrations/grok/hooks/post-tool-use.js +0 -118
  453. package/dist/integrations/grok/hooks/pre-tool-use.js +0 -136
  454. package/dist/integrations/grok/hooks/session-start.js +0 -189
  455. package/dist/integrations/grok/plugin/0xray/.mcp.json +0 -35
  456. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +0 -70
  457. package/dist/integrations/hermes-agent/.mcp.json +0 -32
  458. package/dist/integrations/hermes-agent/__init__.py +0 -790
  459. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  460. package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
  461. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  462. package/dist/integrations/hermes-agent/after-install.md +0 -71
  463. package/dist/integrations/hermes-agent/bridge.mjs +0 -1060
  464. package/dist/integrations/hermes-agent/conftest.py +0 -14
  465. package/dist/integrations/hermes-agent/logs/framework/routing-outcomes.json +0 -1
  466. package/dist/integrations/hermes-agent/plugin.yaml +0 -12
  467. package/dist/integrations/hermes-agent/schemas.py +0 -149
  468. package/dist/integrations/hermes-agent/test_plugin.py +0 -1100
  469. package/dist/integrations/hermes-agent/tools.py +0 -357
  470. package/dist/integrations/hooks/confer-hook-runtime.mjs +0 -49
  471. package/dist/integrations/hooks/delegation-gate-runtime.mjs +0 -110
  472. package/dist/integrations/hooks/pipeline-hook-runtime.mjs +0 -211
  473. package/dist/integrations/hooks/plan-hook-runtime.mjs +0 -68
  474. package/dist/integrations/hooks/station-hook-runtime.cjs +0 -421
  475. package/dist/integrations/hooks/station-hook-runtime.mjs +0 -24
  476. package/dist/integrations/hooks/station-memory-ingest.mjs +0 -45
  477. package/dist/integrations/hooks/station-memory-match.mjs +0 -47
  478. package/dist/integrations/hooks/synthesis-hook-runtime.mjs +0 -50
  479. package/dist/integrations/hooks/user-aside-hook-runtime.mjs +0 -49
  480. package/dist/integrations/openclaw/README.md +0 -134
  481. package/dist/integrations/openclaw/api-server.d.ts +0 -86
  482. package/dist/integrations/openclaw/api-server.js +0 -388
  483. package/dist/integrations/openclaw/client.d.ts +0 -125
  484. package/dist/integrations/openclaw/client.js +0 -499
  485. package/dist/integrations/openclaw/config.d.ts +0 -95
  486. package/dist/integrations/openclaw/config.js +0 -372
  487. package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +0 -102
  488. package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -123
  489. package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -279
  490. package/dist/integrations/openclaw/index.d.ts +0 -100
  491. package/dist/integrations/openclaw/index.js +0 -367
  492. package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +0 -75
  493. package/dist/integrations/openclaw/plugin/xray-pre-tool/openclaw.plugin.json +0 -10
  494. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +0 -12
  495. package/dist/integrations/openclaw/pre-tool-gate.d.ts +0 -19
  496. package/dist/integrations/openclaw/pre-tool-gate.js +0 -39
  497. package/dist/integrations/openclaw/types.d.ts +0 -425
  498. package/dist/integrations/openclaw/types.js +0 -152
  499. package/dist/integrations/plugins/index.d.ts +0 -9
  500. package/dist/integrations/plugins/index.js +0 -9
  501. package/dist/integrations/plugins/plugin-integration.d.ts +0 -288
  502. package/dist/integrations/plugins/plugin-integration.js +0 -605
  503. package/dist/integrations/plugins/plugin-registry.d.ts +0 -223
  504. package/dist/integrations/plugins/plugin-registry.js +0 -579
  505. package/dist/mcps/agent-resolver.d.ts +0 -45
  506. package/dist/mcps/agent-resolver.js +0 -105
  507. package/dist/mcps/architect-tools.server.d.ts +0 -16
  508. package/dist/mcps/architect-tools.server.js +0 -217
  509. package/dist/mcps/auto-format.server.d.ts +0 -18
  510. package/dist/mcps/auto-format.server.js +0 -395
  511. package/dist/mcps/boot-orchestrator.server.d.ts +0 -48
  512. package/dist/mcps/boot-orchestrator.server.js +0 -835
  513. package/dist/mcps/config/config-loader.d.ts +0 -56
  514. package/dist/mcps/config/config-loader.js +0 -140
  515. package/dist/mcps/config/config-validator.d.ts +0 -40
  516. package/dist/mcps/config/config-validator.js +0 -101
  517. package/dist/mcps/config/index.d.ts +0 -31
  518. package/dist/mcps/config/index.js +0 -30
  519. package/dist/mcps/config/plugin-server-registry.d.ts +0 -126
  520. package/dist/mcps/config/plugin-server-registry.js +0 -222
  521. package/dist/mcps/config/server-config-registry.d.ts +0 -51
  522. package/dist/mcps/config/server-config-registry.js +0 -349
  523. package/dist/mcps/connection/connection-manager.d.ts +0 -39
  524. package/dist/mcps/connection/connection-manager.js +0 -79
  525. package/dist/mcps/connection/connection-pool.d.ts +0 -64
  526. package/dist/mcps/connection/connection-pool.js +0 -164
  527. package/dist/mcps/connection/mcp-connection.d.ts +0 -66
  528. package/dist/mcps/connection/mcp-connection.js +0 -233
  529. package/dist/mcps/connection/process-spawner.d.ts +0 -24
  530. package/dist/mcps/connection/process-spawner.js +0 -34
  531. package/dist/mcps/enforcer-tools.server.d.ts +0 -26
  532. package/dist/mcps/enforcer-tools.server.js +0 -712
  533. package/dist/mcps/estimation.server.d.ts +0 -19
  534. package/dist/mcps/estimation.server.js +0 -149
  535. package/dist/mcps/framework-compliance-audit.server.d.ts +0 -20
  536. package/dist/mcps/framework-compliance-audit.server.js +0 -471
  537. package/dist/mcps/framework-help.server.d.ts +0 -13
  538. package/dist/mcps/framework-help.server.js +0 -383
  539. package/dist/mcps/governance.server.d.ts +0 -36
  540. package/dist/mcps/governance.server.js +0 -499
  541. package/dist/mcps/in-process-skill-registry.d.ts +0 -20
  542. package/dist/mcps/in-process-skill-registry.js +0 -48
  543. package/dist/mcps/index.d.ts +0 -17
  544. package/dist/mcps/index.js +0 -65
  545. package/dist/mcps/knowledge-skills/api-design.server.d.ts +0 -13
  546. package/dist/mcps/knowledge-skills/api-design.server.js +0 -92
  547. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +0 -13
  548. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +0 -82
  549. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +0 -31
  550. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +0 -434
  551. package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +0 -29
  552. package/dist/mcps/knowledge-skills/code-analyzer.server.js +0 -578
  553. package/dist/mcps/knowledge-skills/code-review.server.d.ts +0 -44
  554. package/dist/mcps/knowledge-skills/code-review.server.js +0 -783
  555. package/dist/mcps/knowledge-skills/content-creator.server.d.ts +0 -11
  556. package/dist/mcps/knowledge-skills/content-creator.server.js +0 -234
  557. package/dist/mcps/knowledge-skills/database-design.server.d.ts +0 -41
  558. package/dist/mcps/knowledge-skills/database-design.server.js +0 -788
  559. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +0 -41
  560. package/dist/mcps/knowledge-skills/devops-deployment.server.js +0 -1147
  561. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +0 -13
  562. package/dist/mcps/knowledge-skills/git-workflow.server.js +0 -83
  563. package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +0 -11
  564. package/dist/mcps/knowledge-skills/growth-strategist.server.js +0 -339
  565. package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +0 -22
  566. package/dist/mcps/knowledge-skills/log-monitor.server.js +0 -431
  567. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +0 -17
  568. package/dist/mcps/knowledge-skills/mobile-development.server.js +0 -495
  569. package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +0 -53
  570. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +0 -1028
  571. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +0 -69
  572. package/dist/mcps/knowledge-skills/performance-optimization.server.js +0 -1537
  573. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +0 -35
  574. package/dist/mcps/knowledge-skills/project-analysis.server.js +0 -724
  575. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +0 -31
  576. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +0 -762
  577. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +0 -46
  578. package/dist/mcps/knowledge-skills/security-audit.server.js +0 -684
  579. package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +0 -24
  580. package/dist/mcps/knowledge-skills/seo-consultant.server.js +0 -745
  581. package/dist/mcps/knowledge-skills/session-management.server.d.ts +0 -22
  582. package/dist/mcps/knowledge-skills/session-management.server.js +0 -394
  583. package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +0 -32
  584. package/dist/mcps/knowledge-skills/skill-invocation.server.js +0 -454
  585. package/dist/mcps/knowledge-skills/storyteller.server.d.ts +0 -11
  586. package/dist/mcps/knowledge-skills/storyteller.server.js +0 -167
  587. package/dist/mcps/knowledge-skills/strategist.server.d.ts +0 -15
  588. package/dist/mcps/knowledge-skills/strategist.server.js +0 -172
  589. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +0 -45
  590. package/dist/mcps/knowledge-skills/tech-writer.server.js +0 -1016
  591. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +0 -34
  592. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +0 -694
  593. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +0 -45
  594. package/dist/mcps/knowledge-skills/testing-strategy.server.js +0 -689
  595. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +0 -67
  596. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +0 -1265
  597. package/dist/mcps/lint.server.d.ts +0 -15
  598. package/dist/mcps/lint.server.js +0 -340
  599. package/dist/mcps/mcp-client.d.ts +0 -157
  600. package/dist/mcps/mcp-client.js +0 -574
  601. package/dist/mcps/model-health-check.server.d.ts +0 -14
  602. package/dist/mcps/model-health-check.server.js +0 -201
  603. package/dist/mcps/orchestrator/aside-context.d.ts +0 -21
  604. package/dist/mcps/orchestrator/aside-context.js +0 -207
  605. package/dist/mcps/orchestrator/config/agent-capabilities.d.ts +0 -39
  606. package/dist/mcps/orchestrator/config/agent-capabilities.js +0 -128
  607. package/dist/mcps/orchestrator/config/memory-routing-bridge.d.ts +0 -12
  608. package/dist/mcps/orchestrator/config/memory-routing-bridge.js +0 -71
  609. package/dist/mcps/orchestrator/execution/execution-planner.d.ts +0 -64
  610. package/dist/mcps/orchestrator/execution/execution-planner.js +0 -320
  611. package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +0 -55
  612. package/dist/mcps/orchestrator/handlers/complexity-handler.js +0 -285
  613. package/dist/mcps/orchestrator/handlers/status-handler.d.ts +0 -71
  614. package/dist/mcps/orchestrator/handlers/status-handler.js +0 -239
  615. package/dist/mcps/orchestrator/handlers/task-handler.d.ts +0 -59
  616. package/dist/mcps/orchestrator/handlers/task-handler.js +0 -354
  617. package/dist/mcps/orchestrator/index.d.ts +0 -6
  618. package/dist/mcps/orchestrator/index.js +0 -5
  619. package/dist/mcps/orchestrator/server.d.ts +0 -38
  620. package/dist/mcps/orchestrator/server.js +0 -538
  621. package/dist/mcps/orchestrator/types.d.ts +0 -131
  622. package/dist/mcps/orchestrator/types.js +0 -6
  623. package/dist/mcps/orchestrator.server.d.ts +0 -10
  624. package/dist/mcps/orchestrator.server.js +0 -20
  625. package/dist/mcps/performance-analysis.server.d.ts +0 -25
  626. package/dist/mcps/performance-analysis.server.js +0 -488
  627. package/dist/mcps/processor-pipeline.server.d.ts +0 -29
  628. package/dist/mcps/processor-pipeline.server.js +0 -531
  629. package/dist/mcps/protocol/protocol-constants.d.ts +0 -46
  630. package/dist/mcps/protocol/protocol-constants.js +0 -46
  631. package/dist/mcps/registry.json +0 -109
  632. package/dist/mcps/researcher-confidence.d.ts +0 -21
  633. package/dist/mcps/researcher-confidence.js +0 -92
  634. package/dist/mcps/researcher.server.d.ts +0 -29
  635. package/dist/mcps/researcher.server.js +0 -419
  636. package/dist/mcps/security-scan.server.d.ts +0 -19
  637. package/dist/mcps/security-scan.server.js +0 -517
  638. package/dist/mcps/shared/knowledge-skill-base.d.ts +0 -17
  639. package/dist/mcps/shared/knowledge-skill-base.js +0 -52
  640. package/dist/mcps/shared/prompt-security-validator.d.ts +0 -44
  641. package/dist/mcps/shared/prompt-security-validator.js +0 -148
  642. package/dist/mcps/shared/security-scanner.d.ts +0 -119
  643. package/dist/mcps/shared/security-scanner.js +0 -429
  644. package/dist/mcps/simulation/index.d.ts +0 -12
  645. package/dist/mcps/simulation/index.js +0 -12
  646. package/dist/mcps/simulation/server-simulations.d.ts +0 -39
  647. package/dist/mcps/simulation/server-simulations.js +0 -219
  648. package/dist/mcps/simulation/simulation-engine.d.ts +0 -51
  649. package/dist/mcps/simulation/simulation-engine.js +0 -96
  650. package/dist/mcps/state-manager.server.d.ts +0 -27
  651. package/dist/mcps/state-manager.server.js +0 -609
  652. package/dist/mcps/tools/index.d.ts +0 -14
  653. package/dist/mcps/tools/index.js +0 -14
  654. package/dist/mcps/tools/tool-cache.d.ts +0 -53
  655. package/dist/mcps/tools/tool-cache.js +0 -112
  656. package/dist/mcps/tools/tool-discovery.d.ts +0 -27
  657. package/dist/mcps/tools/tool-discovery.js +0 -65
  658. package/dist/mcps/tools/tool-executor.d.ts +0 -41
  659. package/dist/mcps/tools/tool-executor.js +0 -75
  660. package/dist/mcps/tools/tool-registry.d.ts +0 -42
  661. package/dist/mcps/tools/tool-registry.js +0 -67
  662. package/dist/mcps/types/index.d.ts +0 -13
  663. package/dist/mcps/types/index.js +0 -15
  664. package/dist/mcps/types/json-rpc.types.d.ts +0 -35
  665. package/dist/mcps/types/json-rpc.types.js +0 -7
  666. package/dist/mcps/types/mcp.types.d.ts +0 -105
  667. package/dist/mcps/types/mcp.types.js +0 -7
  668. package/dist/memory-routing/index.d.ts +0 -6
  669. package/dist/memory-routing/index.js +0 -4
  670. package/dist/memory-routing/null-provider.d.ts +0 -14
  671. package/dist/memory-routing/null-provider.js +0 -63
  672. package/dist/memory-routing/provider-loader.d.ts +0 -6
  673. package/dist/memory-routing/provider-loader.js +0 -165
  674. package/dist/memory-routing/provider-registry.d.ts +0 -8
  675. package/dist/memory-routing/provider-registry.js +0 -41
  676. package/dist/memory-routing/types.d.ts +0 -111
  677. package/dist/memory-routing/types.js +0 -7
  678. package/dist/memory-routing/validate-config.d.ts +0 -7
  679. package/dist/memory-routing/validate-config.js +0 -32
  680. package/dist/metrics/agent-metrics.d.ts +0 -169
  681. package/dist/metrics/agent-metrics.js +0 -574
  682. package/dist/metrics/index.d.ts +0 -6
  683. package/dist/metrics/index.js +0 -6
  684. package/dist/monitoring/advanced-profiler.d.ts +0 -51
  685. package/dist/monitoring/advanced-profiler.js +0 -232
  686. package/dist/monitoring/memory-monitor.d.ts +0 -113
  687. package/dist/monitoring/memory-monitor.js +0 -315
  688. package/dist/monitoring/nudge-watchdog.d.ts +0 -87
  689. package/dist/monitoring/nudge-watchdog.js +0 -355
  690. package/dist/monitoring/test-auto-generation-monitor.d.ts +0 -64
  691. package/dist/monitoring/test-auto-generation-monitor.js +0 -157
  692. package/dist/nucleus/aside-worktree.d.ts +0 -41
  693. package/dist/nucleus/aside-worktree.js +0 -164
  694. package/dist/nucleus/autonomy-kernel.d.ts +0 -55
  695. package/dist/nucleus/autonomy-kernel.js +0 -234
  696. package/dist/nucleus/confer.d.ts +0 -57
  697. package/dist/nucleus/confer.js +0 -322
  698. package/dist/nucleus/default-plugins.d.ts +0 -17
  699. package/dist/nucleus/default-plugins.js +0 -173
  700. package/dist/nucleus/delegation-gate.d.ts +0 -105
  701. package/dist/nucleus/delegation-gate.js +0 -582
  702. package/dist/nucleus/govern-http.d.ts +0 -59
  703. package/dist/nucleus/govern-http.js +0 -175
  704. package/dist/nucleus/index.d.ts +0 -17
  705. package/dist/nucleus/index.js +0 -12
  706. package/dist/nucleus/kernel.d.ts +0 -51
  707. package/dist/nucleus/kernel.js +0 -62
  708. package/dist/nucleus/lead-dev-plan-persistence.d.ts +0 -70
  709. package/dist/nucleus/lead-dev-plan-persistence.js +0 -402
  710. package/dist/nucleus/pending-delegations.d.ts +0 -71
  711. package/dist/nucleus/pending-delegations.js +0 -285
  712. package/dist/nucleus/plugin-registry.d.ts +0 -132
  713. package/dist/nucleus/plugin-registry.js +0 -175
  714. package/dist/nucleus/spawn-plan-resolution.d.ts +0 -20
  715. package/dist/nucleus/spawn-plan-resolution.js +0 -42
  716. package/dist/nucleus/suit-temperament.d.ts +0 -40
  717. package/dist/nucleus/suit-temperament.js +0 -157
  718. package/dist/nucleus/synthesis-completion.d.ts +0 -6
  719. package/dist/nucleus/synthesis-completion.js +0 -29
  720. package/dist/nucleus/synthesis-consult-receipt.d.ts +0 -32
  721. package/dist/nucleus/synthesis-consult-receipt.js +0 -171
  722. package/dist/nucleus/synthesis-context.d.ts +0 -31
  723. package/dist/nucleus/synthesis-context.js +0 -86
  724. package/dist/nucleus/synthesis.d.ts +0 -54
  725. package/dist/nucleus/synthesis.js +0 -196
  726. package/dist/nucleus/thin-dispatch.d.ts +0 -33
  727. package/dist/nucleus/thin-dispatch.js +0 -85
  728. package/dist/nucleus/user-aside.d.ts +0 -70
  729. package/dist/nucleus/user-aside.js +0 -393
  730. package/dist/orchestrator/agent-spawn-governor.d.ts +0 -126
  731. package/dist/orchestrator/agent-spawn-governor.js +0 -558
  732. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +0 -156
  733. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +0 -399
  734. package/dist/orchestrator/intelligent-commit-batcher.d.ts +0 -114
  735. package/dist/orchestrator/intelligent-commit-batcher.js +0 -344
  736. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +0 -126
  737. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -455
  738. package/dist/orchestrator/orchestrator.d.ts +0 -141
  739. package/dist/orchestrator/orchestrator.js +0 -648
  740. package/dist/orchestrator/self-direction-activation.d.ts +0 -108
  741. package/dist/orchestrator/self-direction-activation.js +0 -244
  742. package/dist/orchestrator/universal-librarian-consultation.d.ts +0 -98
  743. package/dist/orchestrator/universal-librarian-consultation.js +0 -216
  744. package/dist/orchestrator/universal-registry-bridge.d.ts +0 -84
  745. package/dist/orchestrator/universal-registry-bridge.js +0 -246
  746. package/dist/performance/performance-budget-enforcer.d.ts +0 -157
  747. package/dist/performance/performance-budget-enforcer.js +0 -433
  748. package/dist/performance/performance-regression-tester.d.ts +0 -107
  749. package/dist/performance/performance-regression-tester.js +0 -341
  750. package/dist/plugin/plugin-codex-context.d.ts +0 -18
  751. package/dist/plugin/plugin-codex-context.js +0 -87
  752. package/dist/plugin/plugin-helpers.d.ts +0 -23
  753. package/dist/plugin/plugin-helpers.js +0 -155
  754. package/dist/plugin/plugin-logger.d.ts +0 -8
  755. package/dist/plugin/plugin-logger.js +0 -46
  756. package/dist/plugin/plugin-modules.d.ts +0 -11
  757. package/dist/plugin/plugin-modules.js +0 -144
  758. package/dist/plugin/plugin-quality-gate.d.ts +0 -11
  759. package/dist/plugin/plugin-quality-gate.js +0 -88
  760. package/dist/plugin/plugin-types.d.ts +0 -93
  761. package/dist/plugin/plugin-types.js +0 -1
  762. package/dist/plugin/xray-codex-injection.d.ts +0 -39
  763. package/dist/plugin/xray-codex-injection.js +0 -399
  764. package/dist/postprocessor/PostProcessor.d.ts +0 -108
  765. package/dist/postprocessor/PostProcessor.js +0 -1053
  766. package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +0 -11
  767. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +0 -50
  768. package/dist/postprocessor/analysis/FailureAnalysisEngine.d.ts +0 -39
  769. package/dist/postprocessor/analysis/FailureAnalysisEngine.js +0 -245
  770. package/dist/postprocessor/autofix/AutoFixEngine.d.ts +0 -48
  771. package/dist/postprocessor/autofix/AutoFixEngine.js +0 -254
  772. package/dist/postprocessor/autofix/FixValidator.d.ts +0 -23
  773. package/dist/postprocessor/autofix/FixValidator.js +0 -56
  774. package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +0 -44
  775. package/dist/postprocessor/config/ProcessorConfigLoader.js +0 -16
  776. package/dist/postprocessor/config.d.ts +0 -6
  777. package/dist/postprocessor/config.js +0 -65
  778. package/dist/postprocessor/escalation/EscalationEngine.d.ts +0 -154
  779. package/dist/postprocessor/escalation/EscalationEngine.js +0 -492
  780. package/dist/postprocessor/integration.d.ts +0 -156
  781. package/dist/postprocessor/integration.js +0 -194
  782. package/dist/postprocessor/metamorphosis/SelfProposalEngine.d.ts +0 -87
  783. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +0 -472
  784. package/dist/postprocessor/metamorphosis/index.d.ts +0 -2
  785. package/dist/postprocessor/metamorphosis/index.js +0 -1
  786. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +0 -40
  787. package/dist/postprocessor/monitoring/MonitoringEngine.js +0 -125
  788. package/dist/postprocessor/redeploy/RedeployCoordinator.d.ts +0 -91
  789. package/dist/postprocessor/redeploy/RedeployCoordinator.js +0 -342
  790. package/dist/postprocessor/redeploy/RetryHandler.d.ts +0 -49
  791. package/dist/postprocessor/redeploy/RetryHandler.js +0 -118
  792. package/dist/postprocessor/services/RegressionAnalysisService.d.ts +0 -39
  793. package/dist/postprocessor/services/RegressionAnalysisService.js +0 -130
  794. package/dist/postprocessor/success/SuccessHandler.d.ts +0 -57
  795. package/dist/postprocessor/success/SuccessHandler.js +0 -134
  796. package/dist/postprocessor/triggers/APITrigger.d.ts +0 -34
  797. package/dist/postprocessor/triggers/APITrigger.js +0 -114
  798. package/dist/postprocessor/triggers/GitHookTrigger.d.ts +0 -38
  799. package/dist/postprocessor/triggers/GitHookTrigger.js +0 -557
  800. package/dist/postprocessor/triggers/WebhookTrigger.d.ts +0 -46
  801. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -210
  802. package/dist/postprocessor/types.d.ts +0 -227
  803. package/dist/postprocessor/types.js +0 -4
  804. package/dist/processors/doc-write-guard.d.ts +0 -6
  805. package/dist/processors/doc-write-guard.js +0 -46
  806. package/dist/processors/implementations/agents-md-validation-processor.d.ts +0 -62
  807. package/dist/processors/implementations/agents-md-validation-processor.js +0 -285
  808. package/dist/processors/implementations/async-pattern-processor.d.ts +0 -47
  809. package/dist/processors/implementations/async-pattern-processor.js +0 -157
  810. package/dist/processors/implementations/codex-compliance-processor.d.ts +0 -7
  811. package/dist/processors/implementations/codex-compliance-processor.js +0 -57
  812. package/dist/processors/implementations/commit-batcher-processor.d.ts +0 -13
  813. package/dist/processors/implementations/commit-batcher-processor.js +0 -71
  814. package/dist/processors/implementations/console-log-guard-processor.d.ts +0 -32
  815. package/dist/processors/implementations/console-log-guard-processor.js +0 -162
  816. package/dist/processors/implementations/coverage-analysis-processor.d.ts +0 -19
  817. package/dist/processors/implementations/coverage-analysis-processor.js +0 -137
  818. package/dist/processors/implementations/error-boundary-processor.d.ts +0 -7
  819. package/dist/processors/implementations/error-boundary-processor.js +0 -44
  820. package/dist/processors/implementations/inference-improvement-processor.d.ts +0 -36
  821. package/dist/processors/implementations/inference-improvement-processor.js +0 -262
  822. package/dist/processors/implementations/log-protection-processor.d.ts +0 -29
  823. package/dist/processors/implementations/log-protection-processor.js +0 -117
  824. package/dist/processors/implementations/nudge-processor.d.ts +0 -21
  825. package/dist/processors/implementations/nudge-processor.js +0 -129
  826. package/dist/processors/implementations/performance-budget-processor.d.ts +0 -49
  827. package/dist/processors/implementations/performance-budget-processor.js +0 -216
  828. package/dist/processors/implementations/postprocessor-chain-validator.d.ts +0 -45
  829. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -148
  830. package/dist/processors/implementations/pre-validate-processor.d.ts +0 -7
  831. package/dist/processors/implementations/pre-validate-processor.js +0 -18
  832. package/dist/processors/implementations/publish-preflight-processor.d.ts +0 -37
  833. package/dist/processors/implementations/publish-preflight-processor.js +0 -240
  834. package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +0 -7
  835. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +0 -33
  836. package/dist/processors/implementations/refactoring-logging-processor.d.ts +0 -31
  837. package/dist/processors/implementations/refactoring-logging-processor.js +0 -96
  838. package/dist/processors/implementations/regression-testing-processor.d.ts +0 -20
  839. package/dist/processors/implementations/regression-testing-processor.js +0 -59
  840. package/dist/processors/implementations/session-capture-processor.d.ts +0 -14
  841. package/dist/processors/implementations/session-capture-processor.js +0 -37
  842. package/dist/processors/implementations/session-summary-processor.d.ts +0 -26
  843. package/dist/processors/implementations/session-summary-processor.js +0 -125
  844. package/dist/processors/implementations/spawn-governance-processor.d.ts +0 -57
  845. package/dist/processors/implementations/spawn-governance-processor.js +0 -218
  846. package/dist/processors/implementations/state-validation-processor.d.ts +0 -11
  847. package/dist/processors/implementations/state-validation-processor.js +0 -15
  848. package/dist/processors/implementations/storytelling-trigger-processor.d.ts +0 -40
  849. package/dist/processors/implementations/storytelling-trigger-processor.js +0 -563
  850. package/dist/processors/implementations/test-auto-creation-processor.d.ts +0 -16
  851. package/dist/processors/implementations/test-auto-creation-processor.js +0 -483
  852. package/dist/processors/implementations/test-execution-processor.d.ts +0 -11
  853. package/dist/processors/implementations/test-execution-processor.js +0 -132
  854. package/dist/processors/implementations/typescript-compilation-processor.d.ts +0 -37
  855. package/dist/processors/implementations/typescript-compilation-processor.js +0 -86
  856. package/dist/processors/implementations/version-compliance-processor.d.ts +0 -80
  857. package/dist/processors/implementations/version-compliance-processor.js +0 -222
  858. package/dist/processors/processor-interfaces.d.ts +0 -126
  859. package/dist/processors/processor-interfaces.js +0 -125
  860. package/dist/processors/processor-manager.d.ts +0 -80
  861. package/dist/processors/processor-manager.js +0 -826
  862. package/dist/processors/processor-types.d.ts +0 -189
  863. package/dist/processors/processor-types.js +0 -11
  864. package/dist/public/XrayService.d.ts +0 -17
  865. package/dist/public/XrayService.js +0 -40
  866. package/dist/public/about.html +0 -228
  867. package/dist/public/enterprise.html +0 -27
  868. package/dist/public/features.html +0 -102
  869. package/dist/public/index.d.ts +0 -4
  870. package/dist/public/index.html +0 -145
  871. package/dist/public/index.js +0 -2
  872. package/dist/reporting/framework-reporting-system.d.ts +0 -19
  873. package/dist/reporting/framework-reporting-system.js +0 -187
  874. package/dist/reporting/log-parser.d.ts +0 -10
  875. package/dist/reporting/log-parser.js +0 -281
  876. package/dist/reporting/metrics.d.ts +0 -15
  877. package/dist/reporting/metrics.js +0 -202
  878. package/dist/reporting/report-formatter.d.ts +0 -5
  879. package/dist/reporting/report-formatter.js +0 -146
  880. package/dist/reporting/types.d.ts +0 -102
  881. package/dist/reporting/types.js +0 -1
  882. package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
  883. package/dist/scripts/activate-kernel-pipeline.js +0 -101
  884. package/dist/scripts/integration.d.ts +0 -36
  885. package/dist/scripts/integration.js +0 -233
  886. package/dist/scripts/pre-command +0 -26
  887. package/dist/scripts/pre-command.mjs +0 -358
  888. package/dist/security/comprehensive-security-audit.d.ts +0 -157
  889. package/dist/security/comprehensive-security-audit.js +0 -1004
  890. package/dist/security/index.d.ts +0 -13
  891. package/dist/security/index.js +0 -13
  892. package/dist/security/prompt-security-validator.d.ts +0 -44
  893. package/dist/security/prompt-security-validator.js +0 -148
  894. package/dist/security/security-agent-coordinator.d.ts +0 -71
  895. package/dist/security/security-agent-coordinator.js +0 -203
  896. package/dist/security/security-auditor.d.ts +0 -55
  897. package/dist/security/security-auditor.js +0 -583
  898. package/dist/security/security-hardener.d.ts +0 -61
  899. package/dist/security/security-hardener.js +0 -169
  900. package/dist/security/security-hardening-system.d.ts +0 -238
  901. package/dist/security/security-hardening-system.js +0 -726
  902. package/dist/security/security-headers.d.ts +0 -63
  903. package/dist/security/security-headers.js +0 -117
  904. package/dist/security/security-orchestration-layer.d.ts +0 -118
  905. package/dist/security/security-orchestration-layer.js +0 -495
  906. package/dist/security/security-scanner.d.ts +0 -119
  907. package/dist/security/security-scanner.js +0 -429
  908. package/dist/services/inference-tuner.d.ts +0 -76
  909. package/dist/services/inference-tuner.js +0 -300
  910. package/dist/session/index.d.ts +0 -3
  911. package/dist/session/index.js +0 -3
  912. package/dist/session/session-cleanup-manager.d.ts +0 -117
  913. package/dist/session/session-cleanup-manager.js +0 -365
  914. package/dist/session/session-monitor.d.ts +0 -132
  915. package/dist/session/session-monitor.js +0 -502
  916. package/dist/session/session-state-manager.d.ts +0 -144
  917. package/dist/session/session-state-manager.js +0 -521
  918. package/dist/skills/api-design/SKILL.md +0 -37
  919. package/dist/skills/architect-tools/SKILL.md +0 -37
  920. package/dist/skills/architecture-patterns/SKILL.md +0 -37
  921. package/dist/skills/auto-format/SKILL.md +0 -37
  922. package/dist/skills/backend-engineer/SKILL.md +0 -49
  923. package/dist/skills/boot-orchestrator/SKILL.md +0 -33
  924. package/dist/skills/bug-triage/SKILL.md +0 -43
  925. package/dist/skills/code-analyzer/SKILL.md +0 -45
  926. package/dist/skills/code-review/SKILL.md +0 -52
  927. package/dist/skills/content-creator/SKILL.md +0 -38
  928. package/dist/skills/database-engineer/SKILL.md +0 -46
  929. package/dist/skills/devops-engineer/SKILL.md +0 -49
  930. package/dist/skills/enforcer/SKILL.md +0 -37
  931. package/dist/skills/framework-compliance-audit/SKILL.md +0 -37
  932. package/dist/skills/frontend-engineer/SKILL.md +0 -49
  933. package/dist/skills/frontend-ui-ux-engineer/SKILL.md +0 -41
  934. package/dist/skills/git-workflow/SKILL.md +0 -37
  935. package/dist/skills/growth-strategist/SKILL.md +0 -48
  936. package/dist/skills/hermes-agent/SKILL.md +0 -212
  937. package/dist/skills/inference-improve/SKILL.md +0 -97
  938. package/dist/skills/lint/SKILL.md +0 -37
  939. package/dist/skills/log-monitor/SKILL.md +0 -44
  940. package/dist/skills/mobile-developer/SKILL.md +0 -42
  941. package/dist/skills/model-health-check/SKILL.md +0 -37
  942. package/dist/skills/multimodal-looker/SKILL.md +0 -45
  943. package/dist/skills/orchestrator/SKILL.md +0 -61
  944. package/dist/skills/performance-analysis/SKILL.md +0 -37
  945. package/dist/skills/performance-engineer/SKILL.md +0 -41
  946. package/dist/skills/performance-optimization/SKILL.md +0 -37
  947. package/dist/skills/processor-pipeline/SKILL.md +0 -37
  948. package/dist/skills/project-analysis/SKILL.md +0 -42
  949. package/dist/skills/refactoring-strategies/SKILL.md +0 -37
  950. package/dist/skills/registry.json +0 -65
  951. package/dist/skills/researcher/SKILL.md +0 -50
  952. package/dist/skills/security-audit/SKILL.md +0 -48
  953. package/dist/skills/security-scan/SKILL.md +0 -37
  954. package/dist/skills/seo-consultant/SKILL.md +0 -43
  955. package/dist/skills/session-management/SKILL.md +0 -36
  956. package/dist/skills/state-manager/SKILL.md +0 -37
  957. package/dist/skills/storyteller/SKILL.md +0 -130
  958. package/dist/skills/strategist/SKILL.md +0 -44
  959. package/dist/skills/tech-writer/SKILL.md +0 -37
  960. package/dist/skills/testing-best-practices/SKILL.md +0 -37
  961. package/dist/skills/testing-strategy/SKILL.md +0 -54
  962. package/dist/skills/ui-ux-design/SKILL.md +0 -603
  963. package/dist/skills/xray-orchestrator/SKILL.md +0 -141
  964. package/dist/skills/xray-orchestrator/index.d.ts +0 -12
  965. package/dist/skills/xray-orchestrator/index.js +0 -223
  966. package/dist/state/context-providers.d.ts +0 -4
  967. package/dist/state/context-providers.js +0 -1
  968. package/dist/state/index.d.ts +0 -4
  969. package/dist/state/index.js +0 -7
  970. package/dist/state/state-manager.d.ts +0 -41
  971. package/dist/state/state-manager.js +0 -207
  972. package/dist/state/state-types.d.ts +0 -5
  973. package/dist/state/state-types.js +0 -1
  974. package/dist/testing/memory-regression-suite.d.ts +0 -105
  975. package/dist/testing/memory-regression-suite.js +0 -258
  976. package/dist/tools/assess-complexity-tool.d.ts +0 -28
  977. package/dist/tools/assess-complexity-tool.js +0 -44
  978. package/dist/tools/query-routing-tool.d.ts +0 -17
  979. package/dist/tools/query-routing-tool.js +0 -59
  980. package/dist/types/metamorphosis.d.ts +0 -21
  981. package/dist/types/metamorphosis.js +0 -6
  982. package/dist/utils/batch-operations.d.ts +0 -25
  983. package/dist/utils/batch-operations.js +0 -292
  984. package/dist/utils/codex-parser.d.ts +0 -60
  985. package/dist/utils/codex-parser.js +0 -444
  986. package/dist/utils/command-runner.d.ts +0 -32
  987. package/dist/utils/command-runner.js +0 -96
  988. package/dist/utils/import-resolver.d.ts +0 -54
  989. package/dist/utils/import-resolver.js +0 -189
  990. package/dist/utils/language-detector.d.ts +0 -43
  991. package/dist/utils/language-detector.js +0 -382
  992. package/dist/utils/path-resolver.d.ts +0 -48
  993. package/dist/utils/path-resolver.js +0 -112
  994. package/dist/utils/shutdown-handler.d.ts +0 -26
  995. package/dist/utils/shutdown-handler.js +0 -74
  996. package/dist/utils/task-graph.d.ts +0 -29
  997. package/dist/utils/task-graph.js +0 -106
  998. package/dist/utils/test-template-generator.d.ts +0 -25
  999. package/dist/utils/test-template-generator.js +0 -178
  1000. package/dist/utils/token-manager.d.ts +0 -48
  1001. package/dist/utils/token-manager.js +0 -163
  1002. package/dist/validation/agent-config-validator.d.ts +0 -110
  1003. package/dist/validation/agent-config-validator.js +0 -280
  1004. package/dist/validation/estimation-validator.d.ts +0 -61
  1005. package/dist/validation/estimation-validator.js +0 -241
  1006. package/dist/validation/orchestration-flow-validator.d.ts +0 -87
  1007. package/dist/validation/orchestration-flow-validator.js +0 -606
  1008. package/dist/validation/report-content-validator.d.ts +0 -42
  1009. package/dist/validation/report-content-validator.js +0 -218
@@ -1,790 +0,0 @@
1
- """Xray Hermes Plugin — full framework pipeline integration.
2
-
3
- Mirrors the OpenCode xray-codex-injection.ts behavior:
4
- 1. Captures ALL tool calls and logs to disk
5
- 2. Runs quality gates on code-producing tools
6
- 3. Runs pre/post processors via Node.js bridge
7
- 4. Persists activity to activity.log + plugin-tool-events.log
8
- 5. Tracks session statistics
9
-
10
- Bridge protocol: JSON over stdin/stdout to bridge.mjs (Node.js).
11
- """
12
-
13
- import json
14
- import logging
15
- import os
16
- import subprocess
17
- import sys
18
- from datetime import datetime, timezone
19
- from pathlib import Path
20
-
21
- try:
22
- from . import schemas, tools
23
- except ImportError:
24
- # Standalone import (e.g., pytest discovery) — modules loaded separately
25
- import importlib
26
- import types
27
- _pkg_dir = Path(__file__).resolve().parent
28
- sys.path.insert(0, str(_pkg_dir))
29
- schemas = importlib.import_module("schemas")
30
- tools = importlib.import_module("tools")
31
-
32
- logger = logging.getLogger("xray-hermes")
33
-
34
- # ── Paths ─────────────────────────────────────────────────────
35
-
36
- PLUGIN_DIR = Path(__file__).resolve().parent
37
- BRIDGE_PATH = PLUGIN_DIR / "bridge.mjs"
38
-
39
- def _find_project_root() -> Path:
40
- """Walk up from cwd to find project root."""
41
- cwd = Path.cwd()
42
- home = Path.home()
43
- override = os.environ.get("XRAY_PROJECT_ROOT")
44
- if override:
45
- return Path(override).resolve()
46
- d = cwd
47
- while True:
48
- if (d / "node_modules" / "0xray" / "package.json").exists():
49
- return d
50
- if (d / ".xray" / "features.json").exists():
51
- return d
52
- if d != home and (d / "package.json").exists():
53
- return d
54
- d = d.parent
55
- if d == d.parent:
56
- break
57
- return cwd
58
-
59
- PROJECT_ROOT = _find_project_root()
60
- LOG_DIR = PROJECT_ROOT / "logs" / "framework"
61
-
62
- # ── Constants ─────────────────────────────────────────────────
63
-
64
- # Tools that produce/modify code — these get the full pipeline
65
- _CODE_TOOLS = {"write_file", "patch", "execute_code", "write", "edit"}
66
-
67
- # Map tool names to agent/skill for outcome tracking
68
- _TOOL_AGENT_MAP = {
69
- "write_file": ("code-reviewer", "write"),
70
- "patch": ("code-reviewer", "patch"),
71
- "execute_code": ("testing-lead", "execution"),
72
- "write": ("code-reviewer", "write"),
73
- "edit": ("code-reviewer", "edit"),
74
- "terminal": ("testing-lead", "execution"),
75
- "search_files": ("researcher", "search"),
76
- "read_file": ("researcher", "read"),
77
- "browser_*": ("researcher", "browser"),
78
- "delegate_task": ("orchestrator", "delegation"),
79
- }
80
-
81
- # Tools where Xray has a better alternative
82
- # terminal: only nudge when the command looks lint/security/search related
83
- _BETTER_WITH_XRAY = {
84
- "search_files": "Use mcp_xray_researcher_search_codebase for code pattern searches",
85
- }
86
-
87
- # Patterns that suggest the terminal command should use an MCP tool instead
88
- _TERMINAL_NUDGE_PATTERNS = {
89
- "grep": "Use mcp_xray_researcher_search_codebase instead of grep",
90
- "rg ": "Use mcp_xray_researcher_search_codebase instead of ripgrep",
91
- "eslint": "Use mcp_xray_lint_lint instead of raw eslint",
92
- "npx eslint": "Use mcp_xray_lint_lint instead of raw eslint",
93
- "npm audit": "Use mcp_xray_security_scan_security_scan instead of npm audit",
94
- "yarn audit": "Use mcp_xray_security_scan_security_scan instead of yarn audit",
95
- "find ": "Use search_files(target='files') instead of find",
96
- "sed ": "Use patch tool instead of sed",
97
- "awk ": "Use patch tool instead of awk",
98
- }
99
-
100
- # ── Session stats ─────────────────────────────────────────────
101
-
102
- _INFERENCE_TUNE_INTERVAL = 100
103
- _last_tune_tool_call_count = 0
104
-
105
- _session_stats = {
106
- "started_at": None,
107
- "session_id": None,
108
- "code_operations": 0,
109
- "total_tool_calls": 0,
110
- "xray_mcp_calls": 0,
111
- "native_tool_calls": 0,
112
- "quality_gate_runs": 0,
113
- "quality_gate_blocks": 0,
114
- "pre_processor_runs": 0,
115
- "post_processor_runs": 0,
116
- "bridge_calls": 0,
117
- "bridge_errors": 0,
118
- "subagent_dispatches": 0,
119
- "subagent_validations": 0,
120
- "subagent_blocks": 0,
121
- }
122
-
123
- # ── File logging ──────────────────────────────────────────────
124
-
125
- def _ensure_log_dir():
126
- LOG_DIR.mkdir(parents=True, exist_ok=True)
127
-
128
-
129
- def _log_to_file(filename, message):
130
- """Append a timestamped line to a log file in logs/framework/."""
131
- try:
132
- _ensure_log_dir()
133
- log_path = LOG_DIR / filename
134
- timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
135
- entry = f"{timestamp} {message}\n"
136
- with open(log_path, "a", encoding="utf-8") as f:
137
- f.write(entry)
138
- except OSError:
139
- pass # never break the agent over logging
140
-
141
-
142
- def _log_tool_event(event_type, tool, args=None, duration=0, error=None):
143
- """Log tool events in the same format as the OpenCode plugin."""
144
- import random
145
- job_id = f"plugin-{int(datetime.now(timezone.utc).timestamp() * 1000)}-{random.randint(100000, 999999)}"
146
- if event_type == "start":
147
- args_keys = list((args or {}).keys())
148
- msg = f"[{job_id}] [agent] tool-started - INFO | {{\"tool\":\"{tool}\",\"args\":{json.dumps(args_keys)}}}"
149
- else:
150
- level = "ERROR" if error else "SUCCESS"
151
- err_part = f",\"error\":\"{error}\"" if error else ""
152
- msg = f"[{job_id}] [agent] tool-complete - {level} | {{\"tool\":\"{tool}\",\"duration\":{duration}{err_part}}}"
153
- _log_to_file("plugin-tool-events.log", msg)
154
-
155
-
156
- # ── Bridge calls ──────────────────────────────────────────────
157
-
158
- def _call_bridge(command: dict, timeout: int = 10) -> dict:
159
- """Call bridge.mjs with a JSON command, return parsed response."""
160
- _session_stats["bridge_calls"] += 1
161
- try:
162
- result = subprocess.run(
163
- ["node", str(BRIDGE_PATH), "--cwd", str(PROJECT_ROOT)],
164
- input=json.dumps(command),
165
- capture_output=True,
166
- text=True,
167
- timeout=timeout,
168
- )
169
- if result.returncode != 0:
170
- _session_stats["bridge_errors"] += 1
171
- return {"error": result.stderr[:300] if result.stderr else "bridge failed"}
172
- return json.loads(result.stdout)
173
- except FileNotFoundError:
174
- _session_stats["bridge_errors"] += 1
175
- return {"error": "node not found"}
176
- except subprocess.TimeoutExpired:
177
- _session_stats["bridge_errors"] += 1
178
- return {"error": f"bridge timed out after {timeout}s"}
179
- except (json.JSONDecodeError, OSError) as e:
180
- _session_stats["bridge_errors"] += 1
181
- return {"error": str(e)}
182
-
183
-
184
- # ── Hook: pre_tool_call ───────────────────────────────────────
185
-
186
- def _is_xray_mcp(tool_name: str) -> bool:
187
- return tool_name.startswith("mcp_xray_")
188
-
189
-
190
- def _delegation_gate_block(tool_name: str, args: dict, task_id: str, **kwargs):
191
- """3.5.1 multi-host parity — block via nucleus delegation-gate SSOT."""
192
- session_id = (
193
- kwargs.get("session_id")
194
- or kwargs.get("sessionId")
195
- or task_id
196
- or ""
197
- )
198
- bridge_result = _call_bridge(
199
- {
200
- "command": "delegation-gate",
201
- "phase": "pre",
202
- "tool": tool_name,
203
- "args": args or {},
204
- "sessionId": session_id,
205
- "host": "hermes",
206
- },
207
- timeout=10,
208
- )
209
- if bridge_result.get("error") and bridge_result.get("allow") is not False:
210
- err = bridge_result.get("error", "delegation-gate bridge error")
211
- _log_to_file("activity.log", f"[delegation-gate] bridge-error tool={tool_name} {err}")
212
- return {"action": "block", "message": err}
213
- if bridge_result.get("allow") is False:
214
- reason = bridge_result.get("reason", "Delegation gate blocked this tool")
215
- gate = bridge_result.get("gate", "delegation-gate")
216
- _log_to_file(
217
- "activity.log",
218
- f"[delegation-gate] deny tool={tool_name} gate={gate} reason={reason}",
219
- )
220
- return {"action": "block", "message": reason}
221
- return None
222
-
223
-
224
- def _on_pre_tool_call(tool_name: str, args: dict, task_id: str, **kwargs):
225
- """Fires before ANY tool executes.
226
-
227
- Pipeline:
228
- 1. Track stats
229
- 2. Log tool-start event to disk
230
- 3. Delegation gate (pending + spawn todo) — may block tool
231
- 4. For code-producing tools: run quality gate + pre-processors via bridge
232
- 5. For non-code tools: nudge if Xray alternative exists
233
- """
234
- _session_stats["total_tool_calls"] += 1
235
-
236
- block = _delegation_gate_block(tool_name, args, task_id, **kwargs)
237
- if block:
238
- return block
239
-
240
- # Log start event
241
- _log_tool_event("start", tool_name, args)
242
-
243
- # Xray MCP tools — track but don't interfere
244
- if _is_xray_mcp(tool_name):
245
- _session_stats["xray_mcp_calls"] += 1
246
- _log_to_file("activity.log", f"[quality-gate] SKIP [xray-mcp]: {tool_name}")
247
- return
248
-
249
- # delegate_task: snapshot working tree so post_hook can validate changes
250
- if tool_name == "delegate_task":
251
- tid = kwargs.get("task_id", "") or args.get("task_id", "") or task_id
252
- if tid:
253
- _delegate_snapshots[tid] = _snapshot_working_tree()
254
- _session_stats["subagent_dispatches"] += 1
255
- _log_to_file("activity.log",
256
- f"[pre-tool] SUBAGENT DISPATCH: task_id={tid}")
257
- return
258
-
259
- _session_stats["native_tool_calls"] += 1
260
-
261
- # Code-producing tools get the full pipeline
262
- if tool_name in _CODE_TOOLS:
263
- _session_stats["code_operations"] += 1
264
-
265
- # Extract file path for logging
266
- file_path = None
267
- if isinstance(args, dict):
268
- file_path = args.get("path") or args.get("filePath")
269
-
270
- _log_to_file("activity.log",
271
- f"[pre-tool] CODE OPERATION: tool={tool_name} file={file_path}")
272
-
273
- # Run quality gate via bridge
274
- _session_stats["quality_gate_runs"] += 1
275
- bridge_result = _call_bridge({
276
- "command": "pre-process",
277
- "tool": tool_name,
278
- "args": args or {},
279
- }, timeout=15)
280
-
281
- if "error" not in bridge_result:
282
- quality = bridge_result.get("qualityGate", {})
283
- processors = bridge_result.get("processors", {})
284
-
285
- # Log quality gate results
286
- if quality.get("passed") is False:
287
- violations = quality.get("violations", [])
288
- _session_stats["quality_gate_blocks"] += 1
289
- violation_msg = "; ".join(violations)
290
- _log_to_file("activity.log",
291
- f"[quality-gate] BLOCKED: tool={tool_name} violations={violation_msg}")
292
- logger.warning(
293
- "[xray] Quality gate BLOCKED %s: %s",
294
- tool_name, violation_msg,
295
- )
296
- else:
297
- _log_to_file("activity.log",
298
- f"[quality-gate] PASSED: tool={tool_name}")
299
-
300
- # Log processor results
301
- if processors.get("ran"):
302
- _session_stats["pre_processor_runs"] += 1
303
- success = processors.get("success", True)
304
- count = processors.get("processorCount", 0)
305
- _log_to_file("activity.log",
306
- f"[pre-processors] {'SUCCESS' if success else 'FAILED'}: "
307
- f"{count} processors for {tool_name}")
308
- if processors.get("details"):
309
- for detail in processors["details"]:
310
- status = "OK" if detail.get("success") else f"FAILED: {detail.get('error')}"
311
- _log_to_file("activity.log",
312
- f"[pre-processor] {detail.get('name', 'unknown')}: {status}")
313
- else:
314
- _log_to_file("activity.log",
315
- f"[bridge] ERROR in pre-process: {bridge_result.get('error', 'unknown')}")
316
- return
317
-
318
- # Non-code tools: nudge for Xray alternatives
319
- if tool_name in _BETTER_WITH_XRAY:
320
- tip = _BETTER_WITH_XRAY[tool_name]
321
- logger.info("[xray] Tip: %s — %s", tool_name, tip)
322
- _log_to_file("activity.log",
323
- f"[nudge] {tool_name}: {tip}")
324
-
325
- # Terminal: smart nudge based on command content
326
- if tool_name == "terminal" and isinstance(args, dict):
327
- cmd = args.get("command", "")
328
- if isinstance(cmd, str):
329
- for pattern, tip in _TERMINAL_NUDGE_PATTERNS.items():
330
- if pattern in cmd:
331
- logger.info("[xray] Tip: %s — %s", tool_name, tip)
332
- _log_to_file("activity.log",
333
- f"[nudge] {tool_name}: {tip}")
334
- break
335
-
336
-
337
- # ── Hook: post_tool_call ──────────────────────────────────────
338
-
339
- def _on_post_tool_call(tool_name: str, args: dict, result, task_id: str, **kwargs):
340
- """Fires after ANY tool returns.
341
-
342
- Pipeline:
343
- 1. Log tool-complete event to disk
344
- 2. Extract file info from write/patch operations
345
- 3. For code-producing tools: run post-processors via bridge
346
- 4. Track file modifications for session context
347
- """
348
- duration = 0
349
-
350
- # Extract file path — BUG FIX: only when path key exists with truthy value
351
- file_path = None
352
- if isinstance(args, dict) and tool_name in ("write_file", "patch"):
353
- file_path = args.get("path")
354
- if not file_path:
355
- # No path key or empty string — skip file logging
356
- pass
357
-
358
- # Extract duration from result if available
359
- if isinstance(result, dict):
360
- duration = result.get("duration", 0)
361
-
362
- # Log completion event
363
- error = None
364
- if isinstance(result, dict) and result.get("error"):
365
- error = result["error"]
366
- _log_tool_event("complete", tool_name, args, duration, error)
367
-
368
- # Record outcome for the inference feedback loop
369
- _record_tool_outcome(tool_name, args or {}, error is None)
370
-
371
- # delegate_task: clear pending delegations + validate subagent changes
372
- if tool_name == "delegate_task":
373
- tid = kwargs.get("task_id", "") or args.get("task_id", "") or task_id
374
- session_id = kwargs.get("session_id") or kwargs.get("sessionId") or tid
375
- _call_bridge(
376
- {
377
- "command": "delegation-gate",
378
- "phase": "post",
379
- "tool": tool_name,
380
- "args": args or {},
381
- "sessionId": session_id,
382
- "host": "hermes",
383
- "toolOutput": result,
384
- "result": result,
385
- },
386
- timeout=10,
387
- )
388
- if tid:
389
- _validate_subagent_changes(tid)
390
- return
391
-
392
- # Track file modifications
393
- if file_path:
394
- _log_to_file("activity.log",
395
- f"[post-tool] file-written: tool={tool_name} path={file_path}")
396
-
397
- # Code-producing tools get post-processors
398
- if tool_name in _CODE_TOOLS:
399
- # Run post-processors via bridge
400
- bridge_result = _call_bridge({
401
- "command": "post-process",
402
- "tool": tool_name,
403
- "args": args or {},
404
- "result": result,
405
- "error": error,
406
- }, timeout=15)
407
-
408
- if "error" not in bridge_result:
409
- processors = bridge_result.get("processors", {})
410
- if processors.get("ran"):
411
- _session_stats["post_processor_runs"] += 1
412
- success = processors.get("success", True)
413
- count = processors.get("processorCount", 0)
414
- _log_to_file("activity.log",
415
- f"[post-processors] {'SUCCESS' if success else 'FAILED'}: "
416
- f"{count} processors for {tool_name}")
417
- if processors.get("details"):
418
- for detail in processors["details"]:
419
- status = "OK" if detail.get("success") else f"FAILED: {detail.get('error')}"
420
- _log_to_file("activity.log",
421
- f"[post-processor] {detail.get('name', 'unknown')}: {status}")
422
- else:
423
- _log_to_file("activity.log",
424
- f"[bridge] ERROR in post-process: {bridge_result.get('error', 'unknown')}")
425
-
426
- # Auto inference tuning: every _INFERENCE_TUNE_INTERVAL tool calls,
427
- # shell out to the inference tuner to close the feedback loop.
428
- global _last_tune_tool_call_count
429
- calls = _session_stats["total_tool_calls"]
430
- if calls - _last_tune_tool_call_count >= _INFERENCE_TUNE_INTERVAL:
431
- _last_tune_tool_call_count = calls
432
- logger.info(
433
- "[xray] Triggering inference tuning cycle (tool call #%d)", calls
434
- )
435
- _log_to_file("activity.log",
436
- f"[inference-tune] auto-cycle at tool call #{calls}")
437
- try:
438
- _run_inference_tune()
439
- except Exception as e:
440
- logger.warning("[xray] Inference tuning failed: %s", e)
441
-
442
-
443
- # ── Hook: session_start ───────────────────────────────────────
444
-
445
- def _on_session_start(session_id: str, platform: str, **kwargs):
446
- """Fires when a new session starts. Resets stats, logs to disk."""
447
- _session_stats["started_at"] = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
448
- _session_stats["session_id"] = session_id
449
- for key in ("code_operations", "total_tool_calls", "xray_mcp_calls",
450
- "native_tool_calls", "quality_gate_runs", "quality_gate_blocks",
451
- "pre_processor_runs", "post_processor_runs",
452
- "bridge_calls", "bridge_errors",
453
- "subagent_dispatches", "subagent_validations", "subagent_blocks"):
454
- _session_stats[key] = 0
455
- global _last_tune_tool_call_count
456
- _last_tune_tool_call_count = 0
457
-
458
- _ensure_log_dir()
459
- _log_to_file("activity.log",
460
- f"[session-start] session={session_id} platform={platform}")
461
- try:
462
- _call_bridge({"command": "session-start", "sessionId": session_id}, timeout=10)
463
- except Exception as e:
464
- logger.debug("[xray] session-start bridge skipped: %s", e)
465
- logger.info("[xray] Session %s started on %s", session_id, platform)
466
-
467
-
468
- # ── Slash command ─────────────────────────────────────────────
469
-
470
- def _xray_command(args: str) -> str:
471
- """Slash command handler: /xray [status|stats|help]"""
472
- cmd = (args or "status").strip().lower()
473
-
474
- if cmd == "stats":
475
- return (
476
- f"Xray Session Stats\n"
477
- f" Session: {_session_stats['session_id'] or 'N/A'}\n"
478
- f" Started: {_session_stats['started_at'] or 'N/A'}\n"
479
- f" Tool calls: {_session_stats['total_tool_calls']}\n"
480
- f" Code operations: {_session_stats['code_operations']}\n"
481
- f" Xray MCP: {_session_stats['xray_mcp_calls']}\n"
482
- f" Native tools: {_session_stats['native_tool_calls']}\n"
483
- f" Quality gate runs: {_session_stats['quality_gate_runs']}\n"
484
- f" Quality gate blocks: {_session_stats['quality_gate_blocks']}\n"
485
- f" Pre-processor runs: {_session_stats['pre_processor_runs']}\n"
486
- f" Post-processor runs: {_session_stats['post_processor_runs']}\n"
487
- f" Bridge calls: {_session_stats['bridge_calls']}\n"
488
- f" Bridge errors: {_session_stats['bridge_errors']}\n"
489
- f" Subagent dispatches: {_session_stats['subagent_dispatches']}\n"
490
- f" Subagent validations: {_session_stats['subagent_validations']}\n"
491
- f" Subagent blocks: {_session_stats['subagent_blocks']}"
492
- )
493
-
494
- if cmd == "help":
495
- return (
496
- "Xray Commands:\n"
497
- " /xray status — Plugin and framework health\n"
498
- " /xray stats — Session pipeline statistics\n"
499
- " /xray help — This message"
500
- )
501
-
502
- # Default: status (calls bridge health)
503
- bridge_result = _call_bridge({"command": "health"}, timeout=10)
504
- if "error" in bridge_result:
505
- return f"Xray plugin loaded. Bridge: {bridge_result['error']}"
506
-
507
- return (
508
- f"Xray Hermes Plugin Status\n"
509
- f" Framework: {bridge_result.get('framework', 'unknown')}\n"
510
- f" Version: {bridge_result.get('version', 'unknown')}\n"
511
- f" Quality Gate: {'ready' if bridge_result.get('components', {}).get('qualityGate') else 'not loaded'}\n"
512
- f" Processors: {'ready' if bridge_result.get('components', {}).get('processorManager') else 'not loaded'}\n"
513
- f" Project: {bridge_result.get('projectRoot', 'unknown')}\n"
514
- f" Bridge calls: {_session_stats['bridge_calls']} (errors: {_session_stats['bridge_errors']})"
515
- )
516
-
517
-
518
- # ── Outcome tracking (feeds inference tuner) ──────────────────
519
-
520
- _OUTCOMES_PATH = PROJECT_ROOT / "logs" / "framework" / "routing-outcomes.json"
521
- _MAX_OUTCOMES = 1000
522
-
523
-
524
- def _record_tool_outcome(tool_name: str, args: dict, success: bool):
525
- """Append a routing outcome to routing-outcomes.json.
526
-
527
- Writes directly to the JSON file (same format the TS outcome tracker uses)
528
- so both OpenCode and Hermes plugin outcomes are visible to the tuner.
529
- """
530
- call_num = _session_stats.get("total_tool_calls", 0)
531
-
532
- # Look up agent/skill mapping
533
- agent, skill = "direct", tool_name
534
- for pattern, mapped in _TOOL_AGENT_MAP.items():
535
- if pattern.endswith("*"):
536
- if tool_name.startswith(pattern[:-1]):
537
- agent, skill = mapped
538
- break
539
- elif tool_name == pattern:
540
- agent, skill = mapped
541
- break
542
-
543
- # Build description from args
544
- if isinstance(args, dict):
545
- content = args.get("content") or args.get("path") or args.get("filePath") or ""
546
- description = str(content)[:200] if content else f"tool call: {tool_name}"
547
- else:
548
- description = f"tool call: {tool_name}"
549
-
550
- outcome = {
551
- "taskId": f"hermes-{call_num}",
552
- "taskDescription": description,
553
- "routedAgent": agent,
554
- "routedSkill": skill,
555
- "confidence": 0.8 if agent != "direct" else 0.5,
556
- "success": success,
557
- "timestamp": datetime.now(timezone.utc).isoformat(),
558
- "routingMethod": "keyword" if agent != "direct" else "default",
559
- }
560
-
561
- try:
562
- _OUTCOMES_PATH.parent.mkdir(parents=True, exist_ok=True)
563
- if _OUTCOMES_PATH.exists():
564
- with open(_OUTCOMES_PATH, "r") as f:
565
- outcomes = json.load(f)
566
- else:
567
- outcomes = []
568
-
569
- outcomes.append(outcome)
570
- # Circular buffer — keep last N outcomes
571
- if len(outcomes) > _MAX_OUTCOMES:
572
- outcomes = outcomes[-_MAX_OUTCOMES:]
573
-
574
- with open(_OUTCOMES_PATH, "w") as f:
575
- json.dump(outcomes, f, indent=2)
576
- except Exception as e:
577
- logger.debug("[xray] outcome recording failed: %s", e)
578
-
579
-
580
- # ── Inference tuning (auto-calibration) ────────────────────────
581
-
582
- def _run_inference_tune():
583
- """Shell out to 0xray inference:tuner --run-once.
584
-
585
- Runs in a background thread so it doesn't block the tool call pipeline.
586
- The tuner reads routing outcomes, runs the analytics pipeline, and
587
- writes back refined keyword mappings to routing-mappings.json.
588
- """
589
- import threading
590
-
591
- def _tune():
592
- try:
593
- result = subprocess.run(
594
- ["npx", "0xray", "inference:tuner", "--run-once"],
595
- capture_output=True, text=True, timeout=30,
596
- cwd=os.getcwd(),
597
- )
598
- if result.returncode == 0:
599
- logger.info("[0xray] Inference tuning cycle completed")
600
- _log_to_file("activity.log",
601
- "[inference-tune] cycle completed successfully")
602
- else:
603
- _log_to_file("activity.log",
604
- f"[inference-tune] cycle failed (rc={result.returncode}): "
605
- f"{result.stderr.strip()[:200]}")
606
- except subprocess.TimeoutExpired:
607
- _log_to_file("activity.log",
608
- "[inference-tune] cycle timed out after 30s")
609
- except Exception as e:
610
- _log_to_file("activity.log",
611
- f"[inference-tune] cycle error: {e}")
612
-
613
- threading.Thread(target=_tune, daemon=True).start()
614
-
615
-
616
- # ── Registration ──────────────────────────────────────────────
617
-
618
- # ── Subagent (delegate_task) enforcement ────────────────────
619
- # Subagents bypass all Xray hooks because they run in isolated
620
- # contexts. We enforce by snapshotting the working tree before dispatch
621
- # and validating all changed files after return.
622
-
623
- _delegate_snapshots: dict = {} # task_id → set of (path, mtime)
624
-
625
-
626
- def _snapshot_working_tree() -> dict:
627
- """Snapshot file mtimes under project root for subagent change detection."""
628
- try:
629
- result = subprocess.run(
630
- ["git", "-C", str(PROJECT_ROOT), "diff", "--name-only", "HEAD"],
631
- capture_output=True, text=True, timeout=5,
632
- )
633
- if result.returncode == 0:
634
- changed = set(result.stdout.strip().split("\n")) if result.stdout.strip() else set()
635
- else:
636
- changed = set()
637
- except (FileNotFoundError, subprocess.TimeoutExpired):
638
- changed = set()
639
- return {"changed_before": changed}
640
-
641
-
642
- def _validate_subagent_changes(task_id: str, **kwargs):
643
- """After delegate_task returns, find what the subagent changed and validate."""
644
- snapshot = _delegate_snapshots.pop(task_id, None)
645
- if not snapshot:
646
- return
647
-
648
- before = snapshot.get("changed_before", set())
649
-
650
- try:
651
- result = subprocess.run(
652
- ["git", "-C", str(PROJECT_ROOT), "diff", "--name-only", "HEAD"],
653
- capture_output=True, text=True, timeout=5,
654
- )
655
- if result.returncode != 0:
656
- return
657
- after = set(result.stdout.strip().split("\n")) if result.stdout.strip() else set()
658
- except (FileNotFoundError, subprocess.TimeoutExpired):
659
- return
660
-
661
- new_changes = after - before
662
- if not new_changes:
663
- return
664
-
665
- # Filter to source files only (skip dist, node_modules, logs, etc.)
666
- source_files = sorted(f for f in new_changes if any(
667
- f.startswith(prefix) for prefix in ("src/", "dist/", "scripts/", ".opencode/plugins/")
668
- ) and not any(
669
- skip in f for skip in ("node_modules/", ".log", "__pycache__", ".map")
670
- ))
671
-
672
- if not source_files:
673
- return
674
-
675
- _session_stats["code_operations"] += len(source_files)
676
- _session_stats["subagent_validations"] += 1
677
-
678
- # Resolve to absolute paths for validation
679
- abs_files = [str(PROJECT_ROOT / f) for f in source_files]
680
-
681
- # Run validation on all changed files via bridge
682
- bridge_result = _call_bridge({
683
- "command": "validate",
684
- "files": abs_files,
685
- "operation": "modify",
686
- }, timeout=30)
687
-
688
- if "error" in bridge_result:
689
- _log_to_file("activity.log",
690
- f"[subagent-validate] BRIDGE ERROR: {bridge_result['error']}")
691
- return
692
-
693
- results = bridge_result.get("fileResults", bridge_result.get("results", {}))
694
- for rel_path in source_files:
695
- file_result = results.get(rel_path, results.get(str(PROJECT_ROOT / rel_path), {}))
696
- passed = file_result.get("passed", True)
697
- violations = file_result.get("violations", [])
698
-
699
- if not passed:
700
- _session_stats["quality_gate_blocks"] += 1
701
- _session_stats["subagent_blocks"] += 1
702
- _log_to_file("activity.log",
703
- f"[subagent-validate] BLOCKED: {rel_path} "
704
- f"violations={'; '.join(str(v) for v in violations[:3])}")
705
- logger.warning(
706
- "[xray] Subagent BLOCKED %s: %s",
707
- rel_path, violations[:3],
708
- )
709
- else:
710
- _log_to_file("activity.log",
711
- f"[subagent-validate] PASSED: {rel_path}")
712
-
713
-
714
- def register(ctx):
715
- """Wire schemas to handlers and register lifecycle hooks."""
716
- # ── Register tools ────────────────────────────────────────
717
- ctx.register_tool(
718
- name="xray_validate",
719
- toolset="xray-hermes",
720
- schema=schemas.XRAY_VALIDATE,
721
- handler=tools.xray_validate,
722
- )
723
- ctx.register_tool(
724
- name="xray_codex_check",
725
- toolset="xray-hermes",
726
- schema=schemas.XRAY_CODEX_CHECK,
727
- handler=tools.xray_codex_check,
728
- )
729
- ctx.register_tool(
730
- name="xray_health",
731
- toolset="xray-hermes",
732
- schema=schemas.XRAY_HEALTH,
733
- handler=tools.xray_health,
734
- )
735
- ctx.register_tool(
736
- name="xray_hooks",
737
- toolset="xray-hermes",
738
- schema=schemas.XRAY_HOOKS,
739
- handler=tools.xray_hooks,
740
- )
741
- ctx.register_tool(
742
- name="xray_skill_install",
743
- toolset="xray-hermes",
744
- schema=schemas.XRAY_SKILL_INSTALL,
745
- handler=tools.xray_skill_install,
746
- )
747
- ctx.register_tool(
748
- name="xray_skill_registry",
749
- toolset="xray-hermes",
750
- schema=schemas.XRAY_SKILL_REGISTRY,
751
- handler=tools.xray_skill_registry,
752
- )
753
-
754
- # ── Register hooks ────────────────────────────────────────
755
- ctx.register_hook("pre_tool_call", _on_pre_tool_call)
756
- ctx.register_hook("post_tool_call", _on_post_tool_call)
757
-
758
- # Try to register session hooks
759
- try:
760
- ctx.register_hook("on_session_start", _on_session_start)
761
- except (AttributeError, TypeError):
762
- logger.debug("[xray] on_session_start hook not yet available")
763
-
764
- # ── Register slash command ────────────────────────────────
765
- try:
766
- ctx.register_command(
767
- name="xray",
768
- handler=_xray_command,
769
- description="Xray status, stats, hooks, and enforcement info",
770
- args_hint="[status|stats|help]",
771
- aliases=("sr",),
772
- )
773
- except (AttributeError, TypeError):
774
- logger.debug("[xray] Slash command registration not yet available")
775
-
776
- # ── Bootstrap ─────────────────────────────────────────────
777
- _ensure_log_dir()
778
- _log_to_file("activity.log",
779
- f"[plugin-loaded] Xray Hermes Plugin v2.2 — "
780
- f"6 tools, 2 hooks, subagent enforcement, bridge={BRIDGE_PATH.exists()}")
781
-
782
- # Log session-start since on_session_start may not fire in oneshot mode
783
- _log_to_file("activity.log",
784
- "[session-start] session=bootstrap source=plugin-load")
785
-
786
- logger.info(
787
- "[xray] Plugin v2.2 loaded: 6 tools, 2 hooks, "
788
- "subagent enforcement active, bridge=%s",
789
- BRIDGE_PATH.exists(),
790
- )