0xray 4.0.12 → 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 (940) hide show
  1. package/.grok-plugin/plugin.json +1 -1
  2. package/.xray/features.json +1 -1
  3. package/llms.txt +1 -1
  4. package/package.json +1 -1
  5. package/scripts/foundry/CHANGELOG.md +3 -1
  6. package/scripts/foundry/README.md +1 -1
  7. package/scripts/foundry/package.json +1 -1
  8. package/scripts/foundry/plant/agents/inspect.yml +1 -1
  9. package/scripts/foundry/plant/agents/mill.yml +1 -1
  10. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  11. package/xray/features.json +1 -1
  12. package/.opencode/skills/api-design/SKILL.md +0 -37
  13. package/.opencode/skills/architect-tools/SKILL.md +0 -37
  14. package/.opencode/skills/architecture-patterns/SKILL.md +0 -37
  15. package/.opencode/skills/auto-format/SKILL.md +0 -37
  16. package/.opencode/skills/backend-engineer/SKILL.md +0 -49
  17. package/.opencode/skills/boot-orchestrator/SKILL.md +0 -33
  18. package/.opencode/skills/bug-triage/SKILL.md +0 -43
  19. package/.opencode/skills/code-analyzer/SKILL.md +0 -45
  20. package/.opencode/skills/code-review/SKILL.md +0 -52
  21. package/.opencode/skills/content-creator/SKILL.md +0 -38
  22. package/.opencode/skills/database-engineer/SKILL.md +0 -46
  23. package/.opencode/skills/devops-engineer/SKILL.md +0 -49
  24. package/.opencode/skills/enforcer/SKILL.md +0 -37
  25. package/.opencode/skills/framework-compliance-audit/SKILL.md +0 -37
  26. package/.opencode/skills/frontend-engineer/SKILL.md +0 -49
  27. package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +0 -41
  28. package/.opencode/skills/git-workflow/SKILL.md +0 -37
  29. package/.opencode/skills/growth-strategist/SKILL.md +0 -48
  30. package/.opencode/skills/hermes-agent/SKILL.md +0 -212
  31. package/.opencode/skills/inference-improve/SKILL.md +0 -97
  32. package/.opencode/skills/lint/SKILL.md +0 -37
  33. package/.opencode/skills/log-monitor/SKILL.md +0 -44
  34. package/.opencode/skills/mobile-developer/SKILL.md +0 -42
  35. package/.opencode/skills/model-health-check/SKILL.md +0 -37
  36. package/.opencode/skills/multimodal-looker/SKILL.md +0 -45
  37. package/.opencode/skills/orchestrator/SKILL.md +0 -61
  38. package/.opencode/skills/performance-analysis/SKILL.md +0 -37
  39. package/.opencode/skills/performance-engineer/SKILL.md +0 -41
  40. package/.opencode/skills/performance-optimization/SKILL.md +0 -37
  41. package/.opencode/skills/processor-pipeline/SKILL.md +0 -37
  42. package/.opencode/skills/project-analysis/SKILL.md +0 -42
  43. package/.opencode/skills/refactoring-strategies/SKILL.md +0 -37
  44. package/.opencode/skills/registry.json +0 -65
  45. package/.opencode/skills/researcher/SKILL.md +0 -50
  46. package/.opencode/skills/security-audit/SKILL.md +0 -48
  47. package/.opencode/skills/security-scan/SKILL.md +0 -37
  48. package/.opencode/skills/seo-consultant/SKILL.md +0 -43
  49. package/.opencode/skills/session-management/SKILL.md +0 -36
  50. package/.opencode/skills/state-manager/SKILL.md +0 -37
  51. package/.opencode/skills/storyteller/SKILL.md +0 -130
  52. package/.opencode/skills/strategist/SKILL.md +0 -44
  53. package/.opencode/skills/tech-writer/SKILL.md +0 -37
  54. package/.opencode/skills/testing-best-practices/SKILL.md +0 -37
  55. package/.opencode/skills/testing-strategy/SKILL.md +0 -54
  56. package/.opencode/skills/ui-ux-design/SKILL.md +0 -603
  57. package/.opencode/skills/xray-orchestrator/SKILL.md +0 -141
  58. package/.opencode/skills/xray-orchestrator/index.ts +0 -267
  59. package/dist/.gitignore.default +0 -67
  60. package/dist/AGENTS.md +0 -225
  61. package/dist/CHANGELOG.md +0 -2764
  62. package/dist/LICENSE +0 -21
  63. package/dist/README.md +0 -233
  64. package/dist/SKILLS.md +0 -166
  65. package/dist/agents/architect.d.ts +0 -2
  66. package/dist/agents/architect.js +0 -56
  67. package/dist/agents/backend-engineer.d.ts +0 -8
  68. package/dist/agents/backend-engineer.js +0 -81
  69. package/dist/agents/bug-triage-specialist.d.ts +0 -2
  70. package/dist/agents/bug-triage-specialist.js +0 -74
  71. package/dist/agents/code-analyzer.d.ts +0 -7
  72. package/dist/agents/code-analyzer.js +0 -150
  73. package/dist/agents/code-reviewer.d.ts +0 -2
  74. package/dist/agents/code-reviewer.js +0 -69
  75. package/dist/agents/content-creator.d.ts +0 -9
  76. package/dist/agents/content-creator.js +0 -72
  77. package/dist/agents/database-engineer.d.ts +0 -8
  78. package/dist/agents/database-engineer.js +0 -76
  79. package/dist/agents/devops-engineer.d.ts +0 -8
  80. package/dist/agents/devops-engineer.js +0 -84
  81. package/dist/agents/frontend-engineer.d.ts +0 -8
  82. package/dist/agents/frontend-engineer.js +0 -78
  83. package/dist/agents/frontend-ui-ux-engineer.d.ts +0 -8
  84. package/dist/agents/frontend-ui-ux-engineer.js +0 -64
  85. package/dist/agents/growth-strategist.d.ts +0 -8
  86. package/dist/agents/growth-strategist.js +0 -111
  87. package/dist/agents/index.d.ts +0 -25
  88. package/dist/agents/index.js +0 -47
  89. package/dist/agents/known-names.d.ts +0 -26
  90. package/dist/agents/known-names.js +0 -72
  91. package/dist/agents/librarian-agents-updater.d.ts +0 -30
  92. package/dist/agents/librarian-agents-updater.js +0 -333
  93. package/dist/agents/log-monitor.d.ts +0 -2
  94. package/dist/agents/log-monitor.js +0 -109
  95. package/dist/agents/mobile-developer.d.ts +0 -9
  96. package/dist/agents/mobile-developer.js +0 -102
  97. package/dist/agents/multimodal-looker.d.ts +0 -9
  98. package/dist/agents/multimodal-looker.js +0 -93
  99. package/dist/agents/performance-engineer.d.ts +0 -8
  100. package/dist/agents/performance-engineer.js +0 -86
  101. package/dist/agents/refactorer.d.ts +0 -2
  102. package/dist/agents/refactorer.js +0 -80
  103. package/dist/agents/registry.d.ts +0 -37
  104. package/dist/agents/registry.js +0 -354
  105. package/dist/agents/researcher.d.ts +0 -2
  106. package/dist/agents/researcher.js +0 -83
  107. package/dist/agents/security-auditor.d.ts +0 -2
  108. package/dist/agents/security-auditor.js +0 -158
  109. package/dist/agents/seo-consultant.d.ts +0 -8
  110. package/dist/agents/seo-consultant.js +0 -53
  111. package/dist/agents/strategist.d.ts +0 -7
  112. package/dist/agents/strategist.js +0 -47
  113. package/dist/agents/tech-writer.d.ts +0 -8
  114. package/dist/agents/tech-writer.js +0 -84
  115. package/dist/agents/testing-lead.d.ts +0 -2
  116. package/dist/agents/testing-lead.js +0 -95
  117. package/dist/agents/types.d.ts +0 -45
  118. package/dist/agents/types.js +0 -1
  119. package/dist/analytics/consent-manager.d.ts +0 -92
  120. package/dist/analytics/consent-manager.js +0 -257
  121. package/dist/analytics/emerging-pattern-detector.d.ts +0 -66
  122. package/dist/analytics/emerging-pattern-detector.js +0 -259
  123. package/dist/analytics/pattern-learning-engine.d.ts +0 -79
  124. package/dist/analytics/pattern-learning-engine.js +0 -277
  125. package/dist/analytics/pattern-performance-tracker.d.ts +0 -96
  126. package/dist/analytics/pattern-performance-tracker.js +0 -335
  127. package/dist/analytics/predictive-analytics.d.ts +0 -40
  128. package/dist/analytics/predictive-analytics.js +0 -247
  129. package/dist/analytics/prompt-pattern-analyzer.d.ts +0 -98
  130. package/dist/analytics/prompt-pattern-analyzer.js +0 -370
  131. package/dist/analytics/routing-performance-analyzer.d.ts +0 -100
  132. package/dist/analytics/routing-performance-analyzer.js +0 -355
  133. package/dist/analytics/routing-refiner.d.ts +0 -102
  134. package/dist/analytics/routing-refiner.js +0 -377
  135. package/dist/analytics/simple-pattern-analyzer.d.ts +0 -79
  136. package/dist/analytics/simple-pattern-analyzer.js +0 -296
  137. package/dist/architect/architect-tools.d.ts +0 -70
  138. package/dist/architect/architect-tools.js +0 -437
  139. package/dist/architect/architectural-integrity.d.ts +0 -20
  140. package/dist/architect/architectural-integrity.js +0 -78
  141. package/dist/benchmark/performance-benchmark.d.ts +0 -103
  142. package/dist/benchmark/performance-benchmark.js +0 -373
  143. package/dist/cli/commands/analytics-disable.d.ts +0 -9
  144. package/dist/cli/commands/analytics-disable.js +0 -72
  145. package/dist/cli/commands/analytics-enable-action.d.ts +0 -8
  146. package/dist/cli/commands/analytics-enable-action.js +0 -82
  147. package/dist/cli/commands/analytics-preview.d.ts +0 -9
  148. package/dist/cli/commands/analytics-preview.js +0 -106
  149. package/dist/cli/commands/analytics-status.d.ts +0 -9
  150. package/dist/cli/commands/analytics-status.js +0 -68
  151. package/dist/cli/commands/antigravity-status.d.ts +0 -9
  152. package/dist/cli/commands/antigravity-status.js +0 -106
  153. package/dist/cli/commands/archive-logs.d.ts +0 -23
  154. package/dist/cli/commands/archive-logs.js +0 -160
  155. package/dist/cli/commands/credible-init.d.ts +0 -11
  156. package/dist/cli/commands/credible-init.js +0 -82
  157. package/dist/cli/commands/enforce.d.ts +0 -12
  158. package/dist/cli/commands/enforce.js +0 -78
  159. package/dist/cli/commands/foundry-mint-wear.d.ts +0 -3
  160. package/dist/cli/commands/foundry-mint-wear.js +0 -17
  161. package/dist/cli/commands/govern.d.ts +0 -29
  162. package/dist/cli/commands/govern.js +0 -149
  163. package/dist/cli/commands/grok-install.d.ts +0 -7
  164. package/dist/cli/commands/grok-install.js +0 -16
  165. package/dist/cli/commands/hermes-install.d.ts +0 -2
  166. package/dist/cli/commands/hermes-install.js +0 -90
  167. package/dist/cli/commands/mcp-install.d.ts +0 -4
  168. package/dist/cli/commands/mcp-install.js +0 -253
  169. package/dist/cli/commands/openclaw-install.d.ts +0 -2
  170. package/dist/cli/commands/openclaw-install.js +0 -80
  171. package/dist/cli/commands/opencode-install.d.ts +0 -2
  172. package/dist/cli/commands/opencode-install.js +0 -153
  173. package/dist/cli/commands/plugin-commands.d.ts +0 -18
  174. package/dist/cli/commands/plugin-commands.js +0 -245
  175. package/dist/cli/commands/publish-agent.d.ts +0 -15
  176. package/dist/cli/commands/publish-agent.js +0 -184
  177. package/dist/cli/commands/security-audit.d.ts +0 -23
  178. package/dist/cli/commands/security-audit.js +0 -219
  179. package/dist/cli/commands/skill-install.d.ts +0 -6
  180. package/dist/cli/commands/skill-install.js +0 -522
  181. package/dist/cli/commands/status.d.ts +0 -41
  182. package/dist/cli/commands/status.js +0 -199
  183. package/dist/cli/commands/storyteller.d.ts +0 -19
  184. package/dist/cli/commands/storyteller.js +0 -230
  185. package/dist/cli/index.d.ts +0 -7
  186. package/dist/cli/index.js +0 -996
  187. package/dist/cli/server.d.ts +0 -1
  188. package/dist/cli/server.js +0 -147
  189. package/dist/config/default-agents.d.ts +0 -12
  190. package/dist/config/default-agents.js +0 -16
  191. package/dist/config/routing-mappings.d.ts +0 -26
  192. package/dist/config/routing-mappings.js +0 -151
  193. package/dist/core/activity-logger.d.ts +0 -71
  194. package/dist/core/activity-logger.js +0 -259
  195. package/dist/core/adaptive-kernel.d.ts +0 -108
  196. package/dist/core/adaptive-kernel.js +0 -191
  197. package/dist/core/agent-spawn-gate.d.ts +0 -56
  198. package/dist/core/agent-spawn-gate.js +0 -120
  199. package/dist/core/boot-orchestrator.d.ts +0 -99
  200. package/dist/core/boot-orchestrator.js +0 -809
  201. package/dist/core/bridge.mjs +0 -922
  202. package/dist/core/codex-formatter.d.ts +0 -95
  203. package/dist/core/codex-formatter.js +0 -218
  204. package/dist/core/codex-injector.d.ts +0 -73
  205. package/dist/core/codex-injector.js +0 -423
  206. package/dist/core/config-loader.d.ts +0 -59
  207. package/dist/core/config-loader.js +0 -157
  208. package/dist/core/config-paths.d.ts +0 -66
  209. package/dist/core/config-paths.js +0 -169
  210. package/dist/core/context-loader.d.ts +0 -120
  211. package/dist/core/context-loader.js +0 -268
  212. package/dist/core/context-validator.d.ts +0 -52
  213. package/dist/core/context-validator.js +0 -211
  214. package/dist/core/features-config.d.ts +0 -531
  215. package/dist/core/features-config.js +0 -524
  216. package/dist/core/framework-logger.d.ts +0 -76
  217. package/dist/core/framework-logger.js +0 -275
  218. package/dist/core/index.d.ts +0 -5
  219. package/dist/core/index.js +0 -6
  220. package/dist/core/kernel-patterns.d.ts +0 -129
  221. package/dist/core/kernel-patterns.js +0 -301
  222. package/dist/core/logging-config.d.ts +0 -10
  223. package/dist/core/logging-config.js +0 -43
  224. package/dist/core/model-router.d.ts +0 -56
  225. package/dist/core/model-router.js +0 -134
  226. package/dist/core/orchestrator.d.ts +0 -71
  227. package/dist/core/orchestrator.js +0 -408
  228. package/dist/core/system-prompt-generator.d.ts +0 -34
  229. package/dist/core/system-prompt-generator.js +0 -264
  230. package/dist/core/trace-context.d.ts +0 -12
  231. package/dist/core/trace-context.js +0 -33
  232. package/dist/core/xray-activation.d.ts +0 -14
  233. package/dist/core/xray-activation.js +0 -135
  234. package/dist/delegation/agent-delegator.d.ts +0 -185
  235. package/dist/delegation/agent-delegator.js +0 -768
  236. package/dist/delegation/agent-expertise.d.ts +0 -15
  237. package/dist/delegation/agent-expertise.js +0 -155
  238. package/dist/delegation/analytics/index.d.ts +0 -11
  239. package/dist/delegation/analytics/index.js +0 -11
  240. package/dist/delegation/analytics/learning-engine.d.ts +0 -84
  241. package/dist/delegation/analytics/learning-engine.js +0 -276
  242. package/dist/delegation/analytics/outcome-tracker.d.ts +0 -117
  243. package/dist/delegation/analytics/outcome-tracker.js +0 -278
  244. package/dist/delegation/analytics/routing-analytics.d.ts +0 -60
  245. package/dist/delegation/analytics/routing-analytics.js +0 -192
  246. package/dist/delegation/ast-code-parser.d.ts +0 -173
  247. package/dist/delegation/ast-code-parser.js +0 -877
  248. package/dist/delegation/codebase-context-analyzer.d.ts +0 -164
  249. package/dist/delegation/codebase-context-analyzer.js +0 -1040
  250. package/dist/delegation/complexity-analyzer.d.ts +0 -110
  251. package/dist/delegation/complexity-analyzer.js +0 -281
  252. package/dist/delegation/complexity-core.d.ts +0 -119
  253. package/dist/delegation/complexity-core.js +0 -219
  254. package/dist/delegation/config/types.d.ts +0 -247
  255. package/dist/delegation/config/types.js +0 -6
  256. package/dist/delegation/dependency-graph-builder.d.ts +0 -94
  257. package/dist/delegation/dependency-graph-builder.js +0 -408
  258. package/dist/delegation/index.d.ts +0 -25
  259. package/dist/delegation/index.js +0 -20
  260. package/dist/delegation/metrics-aggregator.d.ts +0 -91
  261. package/dist/delegation/metrics-aggregator.js +0 -334
  262. package/dist/delegation/session-coordinator.d.ts +0 -132
  263. package/dist/delegation/session-coordinator.js +0 -351
  264. package/dist/delegation/strategy-selector.d.ts +0 -27
  265. package/dist/delegation/strategy-selector.js +0 -107
  266. package/dist/delegation/voting-coordinator.d.ts +0 -48
  267. package/dist/delegation/voting-coordinator.js +0 -374
  268. package/dist/delegation/voting-types.d.ts +0 -154
  269. package/dist/delegation/voting-types.js +0 -9
  270. package/dist/delegation/weighted-voting-aggregator.d.ts +0 -36
  271. package/dist/delegation/weighted-voting-aggregator.js +0 -193
  272. package/dist/enforcement/core/index.d.ts +0 -14
  273. package/dist/enforcement/core/index.js +0 -18
  274. package/dist/enforcement/core/rule-executor.d.ts +0 -157
  275. package/dist/enforcement/core/rule-executor.js +0 -364
  276. package/dist/enforcement/core/rule-hierarchy.d.ts +0 -145
  277. package/dist/enforcement/core/rule-hierarchy.js +0 -258
  278. package/dist/enforcement/core/rule-registry.d.ts +0 -196
  279. package/dist/enforcement/core/rule-registry.js +0 -239
  280. package/dist/enforcement/core/violation-fixer.d.ts +0 -105
  281. package/dist/enforcement/core/violation-fixer.js +0 -650
  282. package/dist/enforcement/enforcer-tools.d.ts +0 -85
  283. package/dist/enforcement/enforcer-tools.js +0 -818
  284. package/dist/enforcement/index.d.ts +0 -22
  285. package/dist/enforcement/index.js +0 -40
  286. package/dist/enforcement/loaders/agent-triage-loader.d.ts +0 -98
  287. package/dist/enforcement/loaders/agent-triage-loader.js +0 -221
  288. package/dist/enforcement/loaders/agents-md-validation-loader.d.ts +0 -75
  289. package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -251
  290. package/dist/enforcement/loaders/base-loader.d.ts +0 -82
  291. package/dist/enforcement/loaders/base-loader.js +0 -85
  292. package/dist/enforcement/loaders/codex-loader.d.ts +0 -76
  293. package/dist/enforcement/loaders/codex-loader.js +0 -395
  294. package/dist/enforcement/loaders/index.d.ts +0 -36
  295. package/dist/enforcement/loaders/index.js +0 -39
  296. package/dist/enforcement/loaders/loader-orchestrator.d.ts +0 -96
  297. package/dist/enforcement/loaders/loader-orchestrator.js +0 -167
  298. package/dist/enforcement/loaders/processor-loader.d.ts +0 -59
  299. package/dist/enforcement/loaders/processor-loader.js +0 -112
  300. package/dist/enforcement/rule-enforcer.d.ts +0 -142
  301. package/dist/enforcement/rule-enforcer.js +0 -298
  302. package/dist/enforcement/test-auto-healing.d.ts +0 -83
  303. package/dist/enforcement/test-auto-healing.js +0 -325
  304. package/dist/enforcement/types.d.ts +0 -500
  305. package/dist/enforcement/types.js +0 -29
  306. package/dist/enforcement/validators/architecture-validators.d.ts +0 -154
  307. package/dist/enforcement/validators/architecture-validators.js +0 -599
  308. package/dist/enforcement/validators/base-validator.d.ts +0 -87
  309. package/dist/enforcement/validators/base-validator.js +0 -107
  310. package/dist/enforcement/validators/code-quality-validators.d.ts +0 -88
  311. package/dist/enforcement/validators/code-quality-validators.js +0 -335
  312. package/dist/enforcement/validators/index.d.ts +0 -14
  313. package/dist/enforcement/validators/index.js +0 -20
  314. package/dist/enforcement/validators/security-validators.d.ts +0 -52
  315. package/dist/enforcement/validators/security-validators.js +0 -219
  316. package/dist/enforcement/validators/testing-validators.d.ts +0 -80
  317. package/dist/enforcement/validators/testing-validators.js +0 -252
  318. package/dist/enforcement/validators/validator-registry.d.ts +0 -91
  319. package/dist/enforcement/validators/validator-registry.js +0 -149
  320. package/dist/execution/opencode-cli-invoker.d.ts +0 -8
  321. package/dist/execution/opencode-cli-invoker.js +0 -173
  322. package/dist/execution/proposal-applier.d.ts +0 -24
  323. package/dist/execution/proposal-applier.js +0 -254
  324. package/dist/governance/codex-policy.service.d.ts +0 -56
  325. package/dist/governance/codex-policy.service.js +0 -166
  326. package/dist/governance/governance-core.d.ts +0 -53
  327. package/dist/governance/governance-core.js +0 -168
  328. package/dist/governance/governance-service.d.ts +0 -39
  329. package/dist/governance/governance-service.js +0 -351
  330. package/dist/governance/governance-types.d.ts +0 -90
  331. package/dist/governance/governance-types.js +0 -11
  332. package/dist/governance/llm-governance-provider.d.ts +0 -16
  333. package/dist/governance/llm-governance-provider.js +0 -284
  334. package/dist/governance/local-confer.d.ts +0 -10
  335. package/dist/governance/local-confer.js +0 -27
  336. package/dist/index.d.ts +0 -28
  337. package/dist/index.js +0 -24
  338. package/dist/inference/deploy-verifier.d.ts +0 -26
  339. package/dist/inference/deploy-verifier.js +0 -161
  340. package/dist/inference/index.d.ts +0 -10
  341. package/dist/inference/index.js +0 -5
  342. package/dist/inference/inference-accumulator.d.ts +0 -29
  343. package/dist/inference/inference-accumulator.js +0 -126
  344. package/dist/inference/inference-agent-invoker.d.ts +0 -3
  345. package/dist/inference/inference-agent-invoker.js +0 -67
  346. package/dist/inference/inference-applier.d.ts +0 -4
  347. package/dist/inference/inference-applier.js +0 -178
  348. package/dist/inference/inference-cycle.d.ts +0 -70
  349. package/dist/inference/inference-cycle.js +0 -392
  350. package/dist/inference/inference-proposal-generator.d.ts +0 -3
  351. package/dist/inference/inference-proposal-generator.js +0 -149
  352. package/dist/inference/semantic-patterns.d.ts +0 -7
  353. package/dist/inference/semantic-patterns.js +0 -310
  354. package/dist/inference/session-capture.d.ts +0 -32
  355. package/dist/inference/session-capture.js +0 -308
  356. package/dist/infrastructure/iac-validator.d.ts +0 -150
  357. package/dist/infrastructure/iac-validator.js +0 -465
  358. package/dist/infrastructure/schemas/cloud-schemas.d.ts +0 -482
  359. package/dist/infrastructure/schemas/cloud-schemas.js +0 -488
  360. package/dist/integrations/base/ExampleIntegration.d.ts +0 -46
  361. package/dist/integrations/base/ExampleIntegration.js +0 -180
  362. package/dist/integrations/base/Integration.d.ts +0 -266
  363. package/dist/integrations/base/Integration.js +0 -394
  364. package/dist/integrations/base/README.md +0 -446
  365. package/dist/integrations/base/index.d.ts +0 -11
  366. package/dist/integrations/base/index.js +0 -15
  367. package/dist/integrations/base/registry.d.ts +0 -272
  368. package/dist/integrations/base/registry.js +0 -605
  369. package/dist/integrations/base/types.d.ts +0 -167
  370. package/dist/integrations/base/types.js +0 -117
  371. package/dist/integrations/enforcement-gate.d.ts +0 -44
  372. package/dist/integrations/enforcement-gate.js +0 -348
  373. package/dist/integrations/governance/governance-client.d.ts +0 -75
  374. package/dist/integrations/governance/governance-client.js +0 -315
  375. package/dist/integrations/governance/index.d.ts +0 -98
  376. package/dist/integrations/governance/index.js +0 -365
  377. package/dist/integrations/governance/types.d.ts +0 -238
  378. package/dist/integrations/governance/types.js +0 -96
  379. package/dist/integrations/grok/grok-cli.d.ts +0 -31
  380. package/dist/integrations/grok/grok-cli.js +0 -222
  381. package/dist/integrations/grok/hooks/grok-hook-activity.js +0 -53
  382. package/dist/integrations/grok/hooks/grok-hook-utils.js +0 -372
  383. package/dist/integrations/grok/hooks/post-tool-use.js +0 -118
  384. package/dist/integrations/grok/hooks/pre-tool-use.js +0 -136
  385. package/dist/integrations/grok/hooks/session-start.js +0 -189
  386. package/dist/integrations/grok/plugin/0xray/.mcp.json +0 -35
  387. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +0 -70
  388. package/dist/integrations/hermes-agent/.mcp.json +0 -32
  389. package/dist/integrations/hermes-agent/__init__.py +0 -790
  390. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  391. package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
  392. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  393. package/dist/integrations/hermes-agent/after-install.md +0 -71
  394. package/dist/integrations/hermes-agent/bridge.mjs +0 -1060
  395. package/dist/integrations/hermes-agent/conftest.py +0 -14
  396. package/dist/integrations/hermes-agent/logs/framework/routing-outcomes.json +0 -1
  397. package/dist/integrations/hermes-agent/plugin.yaml +0 -12
  398. package/dist/integrations/hermes-agent/schemas.py +0 -149
  399. package/dist/integrations/hermes-agent/test_plugin.py +0 -1100
  400. package/dist/integrations/hermes-agent/tools.py +0 -357
  401. package/dist/integrations/hooks/confer-hook-runtime.mjs +0 -49
  402. package/dist/integrations/hooks/delegation-gate-runtime.mjs +0 -110
  403. package/dist/integrations/hooks/pipeline-hook-runtime.mjs +0 -211
  404. package/dist/integrations/hooks/plan-hook-runtime.mjs +0 -68
  405. package/dist/integrations/hooks/station-hook-runtime.cjs +0 -421
  406. package/dist/integrations/hooks/station-hook-runtime.mjs +0 -24
  407. package/dist/integrations/hooks/station-memory-ingest.mjs +0 -45
  408. package/dist/integrations/hooks/station-memory-match.mjs +0 -47
  409. package/dist/integrations/hooks/synthesis-hook-runtime.mjs +0 -50
  410. package/dist/integrations/hooks/user-aside-hook-runtime.mjs +0 -49
  411. package/dist/integrations/openclaw/README.md +0 -134
  412. package/dist/integrations/openclaw/api-server.d.ts +0 -86
  413. package/dist/integrations/openclaw/api-server.js +0 -388
  414. package/dist/integrations/openclaw/client.d.ts +0 -125
  415. package/dist/integrations/openclaw/client.js +0 -499
  416. package/dist/integrations/openclaw/config.d.ts +0 -95
  417. package/dist/integrations/openclaw/config.js +0 -372
  418. package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +0 -102
  419. package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -123
  420. package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -279
  421. package/dist/integrations/openclaw/index.d.ts +0 -100
  422. package/dist/integrations/openclaw/index.js +0 -367
  423. package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +0 -75
  424. package/dist/integrations/openclaw/plugin/xray-pre-tool/openclaw.plugin.json +0 -10
  425. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +0 -12
  426. package/dist/integrations/openclaw/pre-tool-gate.d.ts +0 -19
  427. package/dist/integrations/openclaw/pre-tool-gate.js +0 -39
  428. package/dist/integrations/openclaw/types.d.ts +0 -425
  429. package/dist/integrations/openclaw/types.js +0 -152
  430. package/dist/integrations/plugins/index.d.ts +0 -9
  431. package/dist/integrations/plugins/index.js +0 -9
  432. package/dist/integrations/plugins/plugin-integration.d.ts +0 -288
  433. package/dist/integrations/plugins/plugin-integration.js +0 -605
  434. package/dist/integrations/plugins/plugin-registry.d.ts +0 -223
  435. package/dist/integrations/plugins/plugin-registry.js +0 -579
  436. package/dist/mcps/agent-resolver.d.ts +0 -45
  437. package/dist/mcps/agent-resolver.js +0 -105
  438. package/dist/mcps/architect-tools.server.d.ts +0 -16
  439. package/dist/mcps/architect-tools.server.js +0 -217
  440. package/dist/mcps/auto-format.server.d.ts +0 -18
  441. package/dist/mcps/auto-format.server.js +0 -395
  442. package/dist/mcps/boot-orchestrator.server.d.ts +0 -48
  443. package/dist/mcps/boot-orchestrator.server.js +0 -835
  444. package/dist/mcps/config/config-loader.d.ts +0 -56
  445. package/dist/mcps/config/config-loader.js +0 -140
  446. package/dist/mcps/config/config-validator.d.ts +0 -40
  447. package/dist/mcps/config/config-validator.js +0 -101
  448. package/dist/mcps/config/index.d.ts +0 -31
  449. package/dist/mcps/config/index.js +0 -30
  450. package/dist/mcps/config/plugin-server-registry.d.ts +0 -126
  451. package/dist/mcps/config/plugin-server-registry.js +0 -222
  452. package/dist/mcps/config/server-config-registry.d.ts +0 -51
  453. package/dist/mcps/config/server-config-registry.js +0 -349
  454. package/dist/mcps/connection/connection-manager.d.ts +0 -39
  455. package/dist/mcps/connection/connection-manager.js +0 -79
  456. package/dist/mcps/connection/connection-pool.d.ts +0 -64
  457. package/dist/mcps/connection/connection-pool.js +0 -164
  458. package/dist/mcps/connection/mcp-connection.d.ts +0 -66
  459. package/dist/mcps/connection/mcp-connection.js +0 -233
  460. package/dist/mcps/connection/process-spawner.d.ts +0 -24
  461. package/dist/mcps/connection/process-spawner.js +0 -34
  462. package/dist/mcps/enforcer-tools.server.d.ts +0 -26
  463. package/dist/mcps/enforcer-tools.server.js +0 -712
  464. package/dist/mcps/estimation.server.d.ts +0 -19
  465. package/dist/mcps/estimation.server.js +0 -149
  466. package/dist/mcps/framework-compliance-audit.server.d.ts +0 -20
  467. package/dist/mcps/framework-compliance-audit.server.js +0 -471
  468. package/dist/mcps/framework-help.server.d.ts +0 -13
  469. package/dist/mcps/framework-help.server.js +0 -383
  470. package/dist/mcps/governance.server.d.ts +0 -36
  471. package/dist/mcps/governance.server.js +0 -499
  472. package/dist/mcps/in-process-skill-registry.d.ts +0 -20
  473. package/dist/mcps/in-process-skill-registry.js +0 -48
  474. package/dist/mcps/index.d.ts +0 -17
  475. package/dist/mcps/index.js +0 -65
  476. package/dist/mcps/knowledge-skills/api-design.server.d.ts +0 -13
  477. package/dist/mcps/knowledge-skills/api-design.server.js +0 -92
  478. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +0 -13
  479. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +0 -82
  480. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +0 -31
  481. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +0 -434
  482. package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +0 -29
  483. package/dist/mcps/knowledge-skills/code-analyzer.server.js +0 -578
  484. package/dist/mcps/knowledge-skills/code-review.server.d.ts +0 -44
  485. package/dist/mcps/knowledge-skills/code-review.server.js +0 -783
  486. package/dist/mcps/knowledge-skills/content-creator.server.d.ts +0 -11
  487. package/dist/mcps/knowledge-skills/content-creator.server.js +0 -234
  488. package/dist/mcps/knowledge-skills/database-design.server.d.ts +0 -41
  489. package/dist/mcps/knowledge-skills/database-design.server.js +0 -788
  490. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +0 -41
  491. package/dist/mcps/knowledge-skills/devops-deployment.server.js +0 -1147
  492. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +0 -13
  493. package/dist/mcps/knowledge-skills/git-workflow.server.js +0 -83
  494. package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +0 -11
  495. package/dist/mcps/knowledge-skills/growth-strategist.server.js +0 -339
  496. package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +0 -22
  497. package/dist/mcps/knowledge-skills/log-monitor.server.js +0 -431
  498. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +0 -17
  499. package/dist/mcps/knowledge-skills/mobile-development.server.js +0 -495
  500. package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +0 -53
  501. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +0 -1028
  502. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +0 -69
  503. package/dist/mcps/knowledge-skills/performance-optimization.server.js +0 -1537
  504. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +0 -35
  505. package/dist/mcps/knowledge-skills/project-analysis.server.js +0 -724
  506. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +0 -31
  507. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +0 -762
  508. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +0 -46
  509. package/dist/mcps/knowledge-skills/security-audit.server.js +0 -684
  510. package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +0 -24
  511. package/dist/mcps/knowledge-skills/seo-consultant.server.js +0 -745
  512. package/dist/mcps/knowledge-skills/session-management.server.d.ts +0 -22
  513. package/dist/mcps/knowledge-skills/session-management.server.js +0 -394
  514. package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +0 -32
  515. package/dist/mcps/knowledge-skills/skill-invocation.server.js +0 -454
  516. package/dist/mcps/knowledge-skills/storyteller.server.d.ts +0 -11
  517. package/dist/mcps/knowledge-skills/storyteller.server.js +0 -167
  518. package/dist/mcps/knowledge-skills/strategist.server.d.ts +0 -15
  519. package/dist/mcps/knowledge-skills/strategist.server.js +0 -172
  520. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +0 -45
  521. package/dist/mcps/knowledge-skills/tech-writer.server.js +0 -1016
  522. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +0 -34
  523. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +0 -694
  524. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +0 -45
  525. package/dist/mcps/knowledge-skills/testing-strategy.server.js +0 -689
  526. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +0 -67
  527. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +0 -1265
  528. package/dist/mcps/lint.server.d.ts +0 -15
  529. package/dist/mcps/lint.server.js +0 -340
  530. package/dist/mcps/mcp-client.d.ts +0 -157
  531. package/dist/mcps/mcp-client.js +0 -574
  532. package/dist/mcps/model-health-check.server.d.ts +0 -14
  533. package/dist/mcps/model-health-check.server.js +0 -201
  534. package/dist/mcps/orchestrator/aside-context.d.ts +0 -21
  535. package/dist/mcps/orchestrator/aside-context.js +0 -207
  536. package/dist/mcps/orchestrator/config/agent-capabilities.d.ts +0 -39
  537. package/dist/mcps/orchestrator/config/agent-capabilities.js +0 -128
  538. package/dist/mcps/orchestrator/config/memory-routing-bridge.d.ts +0 -12
  539. package/dist/mcps/orchestrator/config/memory-routing-bridge.js +0 -71
  540. package/dist/mcps/orchestrator/execution/execution-planner.d.ts +0 -64
  541. package/dist/mcps/orchestrator/execution/execution-planner.js +0 -320
  542. package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +0 -55
  543. package/dist/mcps/orchestrator/handlers/complexity-handler.js +0 -285
  544. package/dist/mcps/orchestrator/handlers/status-handler.d.ts +0 -71
  545. package/dist/mcps/orchestrator/handlers/status-handler.js +0 -239
  546. package/dist/mcps/orchestrator/handlers/task-handler.d.ts +0 -59
  547. package/dist/mcps/orchestrator/handlers/task-handler.js +0 -354
  548. package/dist/mcps/orchestrator/index.d.ts +0 -6
  549. package/dist/mcps/orchestrator/index.js +0 -5
  550. package/dist/mcps/orchestrator/server.d.ts +0 -38
  551. package/dist/mcps/orchestrator/server.js +0 -538
  552. package/dist/mcps/orchestrator/types.d.ts +0 -131
  553. package/dist/mcps/orchestrator/types.js +0 -6
  554. package/dist/mcps/orchestrator.server.d.ts +0 -10
  555. package/dist/mcps/orchestrator.server.js +0 -20
  556. package/dist/mcps/performance-analysis.server.d.ts +0 -25
  557. package/dist/mcps/performance-analysis.server.js +0 -488
  558. package/dist/mcps/processor-pipeline.server.d.ts +0 -29
  559. package/dist/mcps/processor-pipeline.server.js +0 -531
  560. package/dist/mcps/protocol/protocol-constants.d.ts +0 -46
  561. package/dist/mcps/protocol/protocol-constants.js +0 -46
  562. package/dist/mcps/registry.json +0 -109
  563. package/dist/mcps/researcher-confidence.d.ts +0 -21
  564. package/dist/mcps/researcher-confidence.js +0 -92
  565. package/dist/mcps/researcher.server.d.ts +0 -29
  566. package/dist/mcps/researcher.server.js +0 -419
  567. package/dist/mcps/security-scan.server.d.ts +0 -19
  568. package/dist/mcps/security-scan.server.js +0 -517
  569. package/dist/mcps/shared/knowledge-skill-base.d.ts +0 -17
  570. package/dist/mcps/shared/knowledge-skill-base.js +0 -52
  571. package/dist/mcps/shared/prompt-security-validator.d.ts +0 -44
  572. package/dist/mcps/shared/prompt-security-validator.js +0 -148
  573. package/dist/mcps/shared/security-scanner.d.ts +0 -119
  574. package/dist/mcps/shared/security-scanner.js +0 -429
  575. package/dist/mcps/simulation/index.d.ts +0 -12
  576. package/dist/mcps/simulation/index.js +0 -12
  577. package/dist/mcps/simulation/server-simulations.d.ts +0 -39
  578. package/dist/mcps/simulation/server-simulations.js +0 -219
  579. package/dist/mcps/simulation/simulation-engine.d.ts +0 -51
  580. package/dist/mcps/simulation/simulation-engine.js +0 -96
  581. package/dist/mcps/state-manager.server.d.ts +0 -27
  582. package/dist/mcps/state-manager.server.js +0 -609
  583. package/dist/mcps/tools/index.d.ts +0 -14
  584. package/dist/mcps/tools/index.js +0 -14
  585. package/dist/mcps/tools/tool-cache.d.ts +0 -53
  586. package/dist/mcps/tools/tool-cache.js +0 -112
  587. package/dist/mcps/tools/tool-discovery.d.ts +0 -27
  588. package/dist/mcps/tools/tool-discovery.js +0 -65
  589. package/dist/mcps/tools/tool-executor.d.ts +0 -41
  590. package/dist/mcps/tools/tool-executor.js +0 -75
  591. package/dist/mcps/tools/tool-registry.d.ts +0 -42
  592. package/dist/mcps/tools/tool-registry.js +0 -67
  593. package/dist/mcps/types/index.d.ts +0 -13
  594. package/dist/mcps/types/index.js +0 -15
  595. package/dist/mcps/types/json-rpc.types.d.ts +0 -35
  596. package/dist/mcps/types/json-rpc.types.js +0 -7
  597. package/dist/mcps/types/mcp.types.d.ts +0 -105
  598. package/dist/mcps/types/mcp.types.js +0 -7
  599. package/dist/memory-routing/index.d.ts +0 -6
  600. package/dist/memory-routing/index.js +0 -4
  601. package/dist/memory-routing/null-provider.d.ts +0 -14
  602. package/dist/memory-routing/null-provider.js +0 -63
  603. package/dist/memory-routing/provider-loader.d.ts +0 -6
  604. package/dist/memory-routing/provider-loader.js +0 -165
  605. package/dist/memory-routing/provider-registry.d.ts +0 -8
  606. package/dist/memory-routing/provider-registry.js +0 -41
  607. package/dist/memory-routing/types.d.ts +0 -111
  608. package/dist/memory-routing/types.js +0 -7
  609. package/dist/memory-routing/validate-config.d.ts +0 -7
  610. package/dist/memory-routing/validate-config.js +0 -32
  611. package/dist/metrics/agent-metrics.d.ts +0 -169
  612. package/dist/metrics/agent-metrics.js +0 -574
  613. package/dist/metrics/index.d.ts +0 -6
  614. package/dist/metrics/index.js +0 -6
  615. package/dist/monitoring/advanced-profiler.d.ts +0 -51
  616. package/dist/monitoring/advanced-profiler.js +0 -232
  617. package/dist/monitoring/memory-monitor.d.ts +0 -113
  618. package/dist/monitoring/memory-monitor.js +0 -315
  619. package/dist/monitoring/nudge-watchdog.d.ts +0 -87
  620. package/dist/monitoring/nudge-watchdog.js +0 -355
  621. package/dist/monitoring/test-auto-generation-monitor.d.ts +0 -64
  622. package/dist/monitoring/test-auto-generation-monitor.js +0 -157
  623. package/dist/nucleus/aside-worktree.d.ts +0 -41
  624. package/dist/nucleus/aside-worktree.js +0 -164
  625. package/dist/nucleus/autonomy-kernel.d.ts +0 -55
  626. package/dist/nucleus/autonomy-kernel.js +0 -234
  627. package/dist/nucleus/confer.d.ts +0 -57
  628. package/dist/nucleus/confer.js +0 -322
  629. package/dist/nucleus/default-plugins.d.ts +0 -17
  630. package/dist/nucleus/default-plugins.js +0 -173
  631. package/dist/nucleus/delegation-gate.d.ts +0 -105
  632. package/dist/nucleus/delegation-gate.js +0 -582
  633. package/dist/nucleus/govern-http.d.ts +0 -59
  634. package/dist/nucleus/govern-http.js +0 -175
  635. package/dist/nucleus/index.d.ts +0 -17
  636. package/dist/nucleus/index.js +0 -12
  637. package/dist/nucleus/kernel.d.ts +0 -51
  638. package/dist/nucleus/kernel.js +0 -62
  639. package/dist/nucleus/lead-dev-plan-persistence.d.ts +0 -70
  640. package/dist/nucleus/lead-dev-plan-persistence.js +0 -402
  641. package/dist/nucleus/pending-delegations.d.ts +0 -71
  642. package/dist/nucleus/pending-delegations.js +0 -285
  643. package/dist/nucleus/plugin-registry.d.ts +0 -132
  644. package/dist/nucleus/plugin-registry.js +0 -175
  645. package/dist/nucleus/spawn-plan-resolution.d.ts +0 -20
  646. package/dist/nucleus/spawn-plan-resolution.js +0 -42
  647. package/dist/nucleus/suit-temperament.d.ts +0 -40
  648. package/dist/nucleus/suit-temperament.js +0 -157
  649. package/dist/nucleus/synthesis-completion.d.ts +0 -6
  650. package/dist/nucleus/synthesis-completion.js +0 -29
  651. package/dist/nucleus/synthesis-consult-receipt.d.ts +0 -32
  652. package/dist/nucleus/synthesis-consult-receipt.js +0 -171
  653. package/dist/nucleus/synthesis-context.d.ts +0 -31
  654. package/dist/nucleus/synthesis-context.js +0 -86
  655. package/dist/nucleus/synthesis.d.ts +0 -54
  656. package/dist/nucleus/synthesis.js +0 -196
  657. package/dist/nucleus/thin-dispatch.d.ts +0 -33
  658. package/dist/nucleus/thin-dispatch.js +0 -85
  659. package/dist/nucleus/user-aside.d.ts +0 -70
  660. package/dist/nucleus/user-aside.js +0 -393
  661. package/dist/orchestrator/agent-spawn-governor.d.ts +0 -126
  662. package/dist/orchestrator/agent-spawn-governor.js +0 -558
  663. package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +0 -156
  664. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +0 -399
  665. package/dist/orchestrator/intelligent-commit-batcher.d.ts +0 -114
  666. package/dist/orchestrator/intelligent-commit-batcher.js +0 -344
  667. package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts +0 -126
  668. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -455
  669. package/dist/orchestrator/orchestrator.d.ts +0 -141
  670. package/dist/orchestrator/orchestrator.js +0 -648
  671. package/dist/orchestrator/self-direction-activation.d.ts +0 -108
  672. package/dist/orchestrator/self-direction-activation.js +0 -244
  673. package/dist/orchestrator/universal-librarian-consultation.d.ts +0 -98
  674. package/dist/orchestrator/universal-librarian-consultation.js +0 -216
  675. package/dist/orchestrator/universal-registry-bridge.d.ts +0 -84
  676. package/dist/orchestrator/universal-registry-bridge.js +0 -246
  677. package/dist/performance/performance-budget-enforcer.d.ts +0 -157
  678. package/dist/performance/performance-budget-enforcer.js +0 -433
  679. package/dist/performance/performance-regression-tester.d.ts +0 -107
  680. package/dist/performance/performance-regression-tester.js +0 -341
  681. package/dist/plugin/plugin-codex-context.d.ts +0 -18
  682. package/dist/plugin/plugin-codex-context.js +0 -87
  683. package/dist/plugin/plugin-helpers.d.ts +0 -23
  684. package/dist/plugin/plugin-helpers.js +0 -155
  685. package/dist/plugin/plugin-logger.d.ts +0 -8
  686. package/dist/plugin/plugin-logger.js +0 -46
  687. package/dist/plugin/plugin-modules.d.ts +0 -11
  688. package/dist/plugin/plugin-modules.js +0 -144
  689. package/dist/plugin/plugin-quality-gate.d.ts +0 -11
  690. package/dist/plugin/plugin-quality-gate.js +0 -88
  691. package/dist/plugin/plugin-types.d.ts +0 -93
  692. package/dist/plugin/plugin-types.js +0 -1
  693. package/dist/plugin/xray-codex-injection.d.ts +0 -39
  694. package/dist/plugin/xray-codex-injection.js +0 -399
  695. package/dist/postprocessor/PostProcessor.d.ts +0 -108
  696. package/dist/postprocessor/PostProcessor.js +0 -1053
  697. package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +0 -11
  698. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +0 -50
  699. package/dist/postprocessor/analysis/FailureAnalysisEngine.d.ts +0 -39
  700. package/dist/postprocessor/analysis/FailureAnalysisEngine.js +0 -245
  701. package/dist/postprocessor/autofix/AutoFixEngine.d.ts +0 -48
  702. package/dist/postprocessor/autofix/AutoFixEngine.js +0 -254
  703. package/dist/postprocessor/autofix/FixValidator.d.ts +0 -23
  704. package/dist/postprocessor/autofix/FixValidator.js +0 -56
  705. package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +0 -44
  706. package/dist/postprocessor/config/ProcessorConfigLoader.js +0 -16
  707. package/dist/postprocessor/config.d.ts +0 -6
  708. package/dist/postprocessor/config.js +0 -65
  709. package/dist/postprocessor/escalation/EscalationEngine.d.ts +0 -154
  710. package/dist/postprocessor/escalation/EscalationEngine.js +0 -492
  711. package/dist/postprocessor/integration.d.ts +0 -156
  712. package/dist/postprocessor/integration.js +0 -194
  713. package/dist/postprocessor/metamorphosis/SelfProposalEngine.d.ts +0 -87
  714. package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +0 -472
  715. package/dist/postprocessor/metamorphosis/index.d.ts +0 -2
  716. package/dist/postprocessor/metamorphosis/index.js +0 -1
  717. package/dist/postprocessor/monitoring/MonitoringEngine.d.ts +0 -40
  718. package/dist/postprocessor/monitoring/MonitoringEngine.js +0 -125
  719. package/dist/postprocessor/redeploy/RedeployCoordinator.d.ts +0 -91
  720. package/dist/postprocessor/redeploy/RedeployCoordinator.js +0 -342
  721. package/dist/postprocessor/redeploy/RetryHandler.d.ts +0 -49
  722. package/dist/postprocessor/redeploy/RetryHandler.js +0 -118
  723. package/dist/postprocessor/services/RegressionAnalysisService.d.ts +0 -39
  724. package/dist/postprocessor/services/RegressionAnalysisService.js +0 -130
  725. package/dist/postprocessor/success/SuccessHandler.d.ts +0 -57
  726. package/dist/postprocessor/success/SuccessHandler.js +0 -134
  727. package/dist/postprocessor/triggers/APITrigger.d.ts +0 -34
  728. package/dist/postprocessor/triggers/APITrigger.js +0 -114
  729. package/dist/postprocessor/triggers/GitHookTrigger.d.ts +0 -38
  730. package/dist/postprocessor/triggers/GitHookTrigger.js +0 -557
  731. package/dist/postprocessor/triggers/WebhookTrigger.d.ts +0 -46
  732. package/dist/postprocessor/triggers/WebhookTrigger.js +0 -210
  733. package/dist/postprocessor/types.d.ts +0 -227
  734. package/dist/postprocessor/types.js +0 -4
  735. package/dist/processors/doc-write-guard.d.ts +0 -6
  736. package/dist/processors/doc-write-guard.js +0 -46
  737. package/dist/processors/implementations/agents-md-validation-processor.d.ts +0 -62
  738. package/dist/processors/implementations/agents-md-validation-processor.js +0 -285
  739. package/dist/processors/implementations/async-pattern-processor.d.ts +0 -47
  740. package/dist/processors/implementations/async-pattern-processor.js +0 -157
  741. package/dist/processors/implementations/codex-compliance-processor.d.ts +0 -7
  742. package/dist/processors/implementations/codex-compliance-processor.js +0 -57
  743. package/dist/processors/implementations/commit-batcher-processor.d.ts +0 -13
  744. package/dist/processors/implementations/commit-batcher-processor.js +0 -71
  745. package/dist/processors/implementations/console-log-guard-processor.d.ts +0 -32
  746. package/dist/processors/implementations/console-log-guard-processor.js +0 -162
  747. package/dist/processors/implementations/coverage-analysis-processor.d.ts +0 -19
  748. package/dist/processors/implementations/coverage-analysis-processor.js +0 -137
  749. package/dist/processors/implementations/error-boundary-processor.d.ts +0 -7
  750. package/dist/processors/implementations/error-boundary-processor.js +0 -44
  751. package/dist/processors/implementations/inference-improvement-processor.d.ts +0 -36
  752. package/dist/processors/implementations/inference-improvement-processor.js +0 -262
  753. package/dist/processors/implementations/log-protection-processor.d.ts +0 -29
  754. package/dist/processors/implementations/log-protection-processor.js +0 -117
  755. package/dist/processors/implementations/nudge-processor.d.ts +0 -21
  756. package/dist/processors/implementations/nudge-processor.js +0 -129
  757. package/dist/processors/implementations/performance-budget-processor.d.ts +0 -49
  758. package/dist/processors/implementations/performance-budget-processor.js +0 -216
  759. package/dist/processors/implementations/postprocessor-chain-validator.d.ts +0 -45
  760. package/dist/processors/implementations/postprocessor-chain-validator.js +0 -148
  761. package/dist/processors/implementations/pre-validate-processor.d.ts +0 -7
  762. package/dist/processors/implementations/pre-validate-processor.js +0 -18
  763. package/dist/processors/implementations/publish-preflight-processor.d.ts +0 -37
  764. package/dist/processors/implementations/publish-preflight-processor.js +0 -240
  765. package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +0 -7
  766. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +0 -33
  767. package/dist/processors/implementations/refactoring-logging-processor.d.ts +0 -31
  768. package/dist/processors/implementations/refactoring-logging-processor.js +0 -96
  769. package/dist/processors/implementations/regression-testing-processor.d.ts +0 -20
  770. package/dist/processors/implementations/regression-testing-processor.js +0 -59
  771. package/dist/processors/implementations/session-capture-processor.d.ts +0 -14
  772. package/dist/processors/implementations/session-capture-processor.js +0 -37
  773. package/dist/processors/implementations/session-summary-processor.d.ts +0 -26
  774. package/dist/processors/implementations/session-summary-processor.js +0 -125
  775. package/dist/processors/implementations/spawn-governance-processor.d.ts +0 -57
  776. package/dist/processors/implementations/spawn-governance-processor.js +0 -218
  777. package/dist/processors/implementations/state-validation-processor.d.ts +0 -11
  778. package/dist/processors/implementations/state-validation-processor.js +0 -15
  779. package/dist/processors/implementations/storytelling-trigger-processor.d.ts +0 -40
  780. package/dist/processors/implementations/storytelling-trigger-processor.js +0 -563
  781. package/dist/processors/implementations/test-auto-creation-processor.d.ts +0 -16
  782. package/dist/processors/implementations/test-auto-creation-processor.js +0 -483
  783. package/dist/processors/implementations/test-execution-processor.d.ts +0 -11
  784. package/dist/processors/implementations/test-execution-processor.js +0 -132
  785. package/dist/processors/implementations/typescript-compilation-processor.d.ts +0 -37
  786. package/dist/processors/implementations/typescript-compilation-processor.js +0 -86
  787. package/dist/processors/implementations/version-compliance-processor.d.ts +0 -80
  788. package/dist/processors/implementations/version-compliance-processor.js +0 -222
  789. package/dist/processors/processor-interfaces.d.ts +0 -126
  790. package/dist/processors/processor-interfaces.js +0 -125
  791. package/dist/processors/processor-manager.d.ts +0 -80
  792. package/dist/processors/processor-manager.js +0 -826
  793. package/dist/processors/processor-types.d.ts +0 -189
  794. package/dist/processors/processor-types.js +0 -11
  795. package/dist/public/XrayService.d.ts +0 -17
  796. package/dist/public/XrayService.js +0 -40
  797. package/dist/public/about.html +0 -228
  798. package/dist/public/enterprise.html +0 -27
  799. package/dist/public/features.html +0 -102
  800. package/dist/public/index.d.ts +0 -4
  801. package/dist/public/index.html +0 -145
  802. package/dist/public/index.js +0 -2
  803. package/dist/reporting/framework-reporting-system.d.ts +0 -19
  804. package/dist/reporting/framework-reporting-system.js +0 -187
  805. package/dist/reporting/log-parser.d.ts +0 -10
  806. package/dist/reporting/log-parser.js +0 -281
  807. package/dist/reporting/metrics.d.ts +0 -15
  808. package/dist/reporting/metrics.js +0 -202
  809. package/dist/reporting/report-formatter.d.ts +0 -5
  810. package/dist/reporting/report-formatter.js +0 -146
  811. package/dist/reporting/types.d.ts +0 -102
  812. package/dist/reporting/types.js +0 -1
  813. package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
  814. package/dist/scripts/activate-kernel-pipeline.js +0 -101
  815. package/dist/scripts/integration.d.ts +0 -36
  816. package/dist/scripts/integration.js +0 -233
  817. package/dist/scripts/pre-command +0 -26
  818. package/dist/scripts/pre-command.mjs +0 -358
  819. package/dist/security/comprehensive-security-audit.d.ts +0 -157
  820. package/dist/security/comprehensive-security-audit.js +0 -1004
  821. package/dist/security/index.d.ts +0 -13
  822. package/dist/security/index.js +0 -13
  823. package/dist/security/prompt-security-validator.d.ts +0 -44
  824. package/dist/security/prompt-security-validator.js +0 -148
  825. package/dist/security/security-agent-coordinator.d.ts +0 -71
  826. package/dist/security/security-agent-coordinator.js +0 -203
  827. package/dist/security/security-auditor.d.ts +0 -55
  828. package/dist/security/security-auditor.js +0 -583
  829. package/dist/security/security-hardener.d.ts +0 -61
  830. package/dist/security/security-hardener.js +0 -169
  831. package/dist/security/security-hardening-system.d.ts +0 -238
  832. package/dist/security/security-hardening-system.js +0 -726
  833. package/dist/security/security-headers.d.ts +0 -63
  834. package/dist/security/security-headers.js +0 -117
  835. package/dist/security/security-orchestration-layer.d.ts +0 -118
  836. package/dist/security/security-orchestration-layer.js +0 -495
  837. package/dist/security/security-scanner.d.ts +0 -119
  838. package/dist/security/security-scanner.js +0 -429
  839. package/dist/services/inference-tuner.d.ts +0 -76
  840. package/dist/services/inference-tuner.js +0 -300
  841. package/dist/session/index.d.ts +0 -3
  842. package/dist/session/index.js +0 -3
  843. package/dist/session/session-cleanup-manager.d.ts +0 -117
  844. package/dist/session/session-cleanup-manager.js +0 -365
  845. package/dist/session/session-monitor.d.ts +0 -132
  846. package/dist/session/session-monitor.js +0 -502
  847. package/dist/session/session-state-manager.d.ts +0 -144
  848. package/dist/session/session-state-manager.js +0 -521
  849. package/dist/skills/api-design/SKILL.md +0 -37
  850. package/dist/skills/architect-tools/SKILL.md +0 -37
  851. package/dist/skills/architecture-patterns/SKILL.md +0 -37
  852. package/dist/skills/auto-format/SKILL.md +0 -37
  853. package/dist/skills/backend-engineer/SKILL.md +0 -49
  854. package/dist/skills/boot-orchestrator/SKILL.md +0 -33
  855. package/dist/skills/bug-triage/SKILL.md +0 -43
  856. package/dist/skills/code-analyzer/SKILL.md +0 -45
  857. package/dist/skills/code-review/SKILL.md +0 -52
  858. package/dist/skills/content-creator/SKILL.md +0 -38
  859. package/dist/skills/database-engineer/SKILL.md +0 -46
  860. package/dist/skills/devops-engineer/SKILL.md +0 -49
  861. package/dist/skills/enforcer/SKILL.md +0 -37
  862. package/dist/skills/framework-compliance-audit/SKILL.md +0 -37
  863. package/dist/skills/frontend-engineer/SKILL.md +0 -49
  864. package/dist/skills/frontend-ui-ux-engineer/SKILL.md +0 -41
  865. package/dist/skills/git-workflow/SKILL.md +0 -37
  866. package/dist/skills/growth-strategist/SKILL.md +0 -48
  867. package/dist/skills/hermes-agent/SKILL.md +0 -212
  868. package/dist/skills/inference-improve/SKILL.md +0 -97
  869. package/dist/skills/lint/SKILL.md +0 -37
  870. package/dist/skills/log-monitor/SKILL.md +0 -44
  871. package/dist/skills/mobile-developer/SKILL.md +0 -42
  872. package/dist/skills/model-health-check/SKILL.md +0 -37
  873. package/dist/skills/multimodal-looker/SKILL.md +0 -45
  874. package/dist/skills/orchestrator/SKILL.md +0 -61
  875. package/dist/skills/performance-analysis/SKILL.md +0 -37
  876. package/dist/skills/performance-engineer/SKILL.md +0 -41
  877. package/dist/skills/performance-optimization/SKILL.md +0 -37
  878. package/dist/skills/processor-pipeline/SKILL.md +0 -37
  879. package/dist/skills/project-analysis/SKILL.md +0 -42
  880. package/dist/skills/refactoring-strategies/SKILL.md +0 -37
  881. package/dist/skills/registry.json +0 -65
  882. package/dist/skills/researcher/SKILL.md +0 -50
  883. package/dist/skills/security-audit/SKILL.md +0 -48
  884. package/dist/skills/security-scan/SKILL.md +0 -37
  885. package/dist/skills/seo-consultant/SKILL.md +0 -43
  886. package/dist/skills/session-management/SKILL.md +0 -36
  887. package/dist/skills/state-manager/SKILL.md +0 -37
  888. package/dist/skills/storyteller/SKILL.md +0 -130
  889. package/dist/skills/strategist/SKILL.md +0 -44
  890. package/dist/skills/tech-writer/SKILL.md +0 -37
  891. package/dist/skills/testing-best-practices/SKILL.md +0 -37
  892. package/dist/skills/testing-strategy/SKILL.md +0 -54
  893. package/dist/skills/ui-ux-design/SKILL.md +0 -603
  894. package/dist/skills/xray-orchestrator/SKILL.md +0 -141
  895. package/dist/skills/xray-orchestrator/index.d.ts +0 -12
  896. package/dist/skills/xray-orchestrator/index.js +0 -223
  897. package/dist/state/context-providers.d.ts +0 -4
  898. package/dist/state/context-providers.js +0 -1
  899. package/dist/state/index.d.ts +0 -4
  900. package/dist/state/index.js +0 -7
  901. package/dist/state/state-manager.d.ts +0 -41
  902. package/dist/state/state-manager.js +0 -207
  903. package/dist/state/state-types.d.ts +0 -5
  904. package/dist/state/state-types.js +0 -1
  905. package/dist/testing/memory-regression-suite.d.ts +0 -105
  906. package/dist/testing/memory-regression-suite.js +0 -258
  907. package/dist/tools/assess-complexity-tool.d.ts +0 -28
  908. package/dist/tools/assess-complexity-tool.js +0 -44
  909. package/dist/tools/query-routing-tool.d.ts +0 -17
  910. package/dist/tools/query-routing-tool.js +0 -59
  911. package/dist/types/metamorphosis.d.ts +0 -21
  912. package/dist/types/metamorphosis.js +0 -6
  913. package/dist/utils/batch-operations.d.ts +0 -25
  914. package/dist/utils/batch-operations.js +0 -292
  915. package/dist/utils/codex-parser.d.ts +0 -60
  916. package/dist/utils/codex-parser.js +0 -444
  917. package/dist/utils/command-runner.d.ts +0 -32
  918. package/dist/utils/command-runner.js +0 -96
  919. package/dist/utils/import-resolver.d.ts +0 -54
  920. package/dist/utils/import-resolver.js +0 -189
  921. package/dist/utils/language-detector.d.ts +0 -43
  922. package/dist/utils/language-detector.js +0 -382
  923. package/dist/utils/path-resolver.d.ts +0 -48
  924. package/dist/utils/path-resolver.js +0 -112
  925. package/dist/utils/shutdown-handler.d.ts +0 -26
  926. package/dist/utils/shutdown-handler.js +0 -74
  927. package/dist/utils/task-graph.d.ts +0 -29
  928. package/dist/utils/task-graph.js +0 -106
  929. package/dist/utils/test-template-generator.d.ts +0 -25
  930. package/dist/utils/test-template-generator.js +0 -178
  931. package/dist/utils/token-manager.d.ts +0 -48
  932. package/dist/utils/token-manager.js +0 -163
  933. package/dist/validation/agent-config-validator.d.ts +0 -110
  934. package/dist/validation/agent-config-validator.js +0 -280
  935. package/dist/validation/estimation-validator.d.ts +0 -61
  936. package/dist/validation/estimation-validator.js +0 -241
  937. package/dist/validation/orchestration-flow-validator.d.ts +0 -87
  938. package/dist/validation/orchestration-flow-validator.js +0 -606
  939. package/dist/validation/report-content-validator.d.ts +0 -42
  940. 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
- )