0xray 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (739) hide show
  1. package/.opencode/agents/api-design.yml +31 -0
  2. package/.opencode/agents/architect.yml +15 -0
  3. package/.opencode/agents/architecture-patterns.yml +14 -0
  4. package/.opencode/agents/auto-format.yml +14 -0
  5. package/.opencode/agents/backend-engineer.yml +12 -0
  6. package/.opencode/agents/boot-orchestrator.yml +14 -0
  7. package/.opencode/agents/bug-triage-specialist.yml +15 -0
  8. package/.opencode/agents/code-analyzer.yml +12 -0
  9. package/.opencode/agents/code-reviewer.yml +14 -0
  10. package/.opencode/agents/content-creator.yml +12 -0
  11. package/.opencode/agents/database-engineer.yml +12 -0
  12. package/.opencode/agents/devops-engineer.yml +12 -0
  13. package/.opencode/agents/framework-compliance-audit.yml +14 -0
  14. package/.opencode/agents/frontend-engineer.yml +12 -0
  15. package/.opencode/agents/frontend-ui-ux-engineer.yml +12 -0
  16. package/.opencode/agents/git-workflow.yml +15 -0
  17. package/.opencode/agents/growth-strategist.yml +12 -0
  18. package/.opencode/agents/hermes-agent.yml +12 -0
  19. package/.opencode/agents/inference-improve.yml +12 -0
  20. package/.opencode/agents/lint.yml +14 -0
  21. package/.opencode/agents/log-monitor.yml +12 -0
  22. package/.opencode/agents/mobile-developer.yml +12 -0
  23. package/.opencode/agents/model-health-check.yml +12 -0
  24. package/.opencode/agents/multimodal-looker.yml +12 -0
  25. package/.opencode/agents/performance-analysis.yml +12 -0
  26. package/.opencode/agents/performance-engineer.yml +12 -0
  27. package/.opencode/agents/performance-optimization.yml +12 -0
  28. package/.opencode/agents/processor-pipeline.yml +14 -0
  29. package/.opencode/agents/project-analysis.yml +12 -0
  30. package/.opencode/agents/refactorer.yml +12 -0
  31. package/.opencode/agents/researcher.yml +12 -0
  32. package/.opencode/agents/security-auditor.yml +12 -0
  33. package/.opencode/agents/security-scan.yml +12 -0
  34. package/.opencode/agents/seo-consultant.yml +12 -0
  35. package/.opencode/agents/session-management.yml +12 -0
  36. package/.opencode/agents/state-manager.yml +12 -0
  37. package/.opencode/agents/storyteller.yml +12 -0
  38. package/.opencode/agents/strategist.yml +12 -0
  39. package/.opencode/agents/tech-writer.yml +12 -0
  40. package/.opencode/agents/testing-best-practices.yml +12 -0
  41. package/.opencode/agents/testing-lead.yml +12 -0
  42. package/.opencode/agents/ui-ux-design.yml +12 -0
  43. package/.opencode/codex.codex +8 -0
  44. package/.opencode/commands/auto-format.md +99 -0
  45. package/.opencode/commands/auto-summary-capture.md +90 -0
  46. package/.opencode/commands/dependency-audit.md +184 -0
  47. package/.opencode/commands/enforcer-daily-scan.md +137 -0
  48. package/.opencode/commands/framework-compliance-audit.md +205 -0
  49. package/.opencode/commands/interactive-validator.md +75 -0
  50. package/.opencode/commands/job-summary-logger.md +68 -0
  51. package/.opencode/commands/lint.md +11 -0
  52. package/.opencode/commands/mode-switch.md +95 -0
  53. package/.opencode/commands/model-health-check.md +186 -0
  54. package/.opencode/commands/performance-analysis.md +144 -0
  55. package/.opencode/commands/pre-commit-introspection.md +185 -0
  56. package/.opencode/commands/pre-commit-introspection.sh +133 -0
  57. package/.opencode/commands/security-scan.md +157 -0
  58. package/.opencode/commands/sisyphus-validation.md +128 -0
  59. package/.opencode/commands/summary-logger.md +83 -0
  60. package/.opencode/enforcer-config.json +285 -0
  61. package/.opencode/hooks/hook-metrics.json +380 -0
  62. package/.opencode/hooks/post-commit +114 -0
  63. package/.opencode/hooks/post-push +34 -0
  64. package/.opencode/init.sh +151 -0
  65. package/.opencode/skills/api-design/SKILL.md +37 -0
  66. package/.opencode/skills/architect-tools/SKILL.md +37 -0
  67. package/.opencode/skills/architecture-patterns/SKILL.md +37 -0
  68. package/.opencode/skills/auto-format/SKILL.md +37 -0
  69. package/.opencode/skills/backend-engineer/SKILL.md +49 -0
  70. package/.opencode/skills/boot-orchestrator/SKILL.md +37 -0
  71. package/.opencode/skills/bug-triage/SKILL.md +43 -0
  72. package/.opencode/skills/code-analyzer/SKILL.md +45 -0
  73. package/.opencode/skills/code-review/SKILL.md +52 -0
  74. package/.opencode/skills/content-creator/SKILL.md +38 -0
  75. package/.opencode/skills/database-engineer/SKILL.md +46 -0
  76. package/.opencode/skills/devops-engineer/SKILL.md +49 -0
  77. package/.opencode/skills/enforcer/SKILL.md +37 -0
  78. package/.opencode/skills/framework-compliance-audit/SKILL.md +37 -0
  79. package/.opencode/skills/frontend-engineer/SKILL.md +49 -0
  80. package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  81. package/.opencode/skills/git-workflow/SKILL.md +37 -0
  82. package/.opencode/skills/growth-strategist/SKILL.md +48 -0
  83. package/.opencode/skills/hermes-agent/SKILL.md +212 -0
  84. package/.opencode/skills/inference-improve/SKILL.md +97 -0
  85. package/.opencode/skills/lint/SKILL.md +37 -0
  86. package/.opencode/skills/log-monitor/SKILL.md +44 -0
  87. package/.opencode/skills/mobile-developer/SKILL.md +42 -0
  88. package/.opencode/skills/model-health-check/SKILL.md +37 -0
  89. package/.opencode/skills/multimodal-looker/SKILL.md +45 -0
  90. package/.opencode/skills/orchestrator/SKILL.md +37 -0
  91. package/.opencode/skills/performance-analysis/SKILL.md +37 -0
  92. package/.opencode/skills/performance-engineer/SKILL.md +41 -0
  93. package/.opencode/skills/performance-optimization/SKILL.md +37 -0
  94. package/.opencode/skills/processor-pipeline/SKILL.md +37 -0
  95. package/.opencode/skills/project-analysis/SKILL.md +42 -0
  96. package/.opencode/skills/refactoring-strategies/SKILL.md +37 -0
  97. package/.opencode/skills/registry.json +66 -0
  98. package/.opencode/skills/researcher/SKILL.md +37 -0
  99. package/.opencode/skills/security-audit/SKILL.md +47 -0
  100. package/.opencode/skills/security-scan/SKILL.md +37 -0
  101. package/.opencode/skills/seo-consultant/SKILL.md +43 -0
  102. package/.opencode/skills/session-management/SKILL.md +36 -0
  103. package/.opencode/skills/state-manager/SKILL.md +37 -0
  104. package/.opencode/skills/storyteller/SKILL.md +130 -0
  105. package/.opencode/skills/strategist/SKILL.md +32 -0
  106. package/.opencode/skills/tech-writer/SKILL.md +37 -0
  107. package/.opencode/skills/testing-best-practices/SKILL.md +37 -0
  108. package/.opencode/skills/testing-strategy/SKILL.md +43 -0
  109. package/.opencode/skills/ui-ux-design/SKILL.md +603 -0
  110. package/.opencode/workflows/post-deployment-audit.yml +123 -0
  111. package/AGENTS.md +110 -0
  112. package/LICENSE +21 -0
  113. package/README.md +131 -0
  114. package/dist/AGENTS.md +110 -0
  115. package/dist/CHANGELOG.md +2182 -0
  116. package/dist/LICENSE +21 -0
  117. package/dist/README.md +131 -0
  118. package/dist/agents/architect.js +56 -0
  119. package/dist/agents/backend-engineer.js +81 -0
  120. package/dist/agents/bug-triage-specialist.js +74 -0
  121. package/dist/agents/code-analyzer.js +150 -0
  122. package/dist/agents/code-reviewer.js +69 -0
  123. package/dist/agents/content-creator.js +72 -0
  124. package/dist/agents/database-engineer.js +76 -0
  125. package/dist/agents/devops-engineer.js +84 -0
  126. package/dist/agents/frontend-engineer.js +78 -0
  127. package/dist/agents/frontend-ui-ux-engineer.js +64 -0
  128. package/dist/agents/growth-strategist.js +111 -0
  129. package/dist/agents/index.js +45 -0
  130. package/dist/agents/librarian-agents-updater.js +333 -0
  131. package/dist/agents/log-monitor.js +109 -0
  132. package/dist/agents/mobile-developer.js +102 -0
  133. package/dist/agents/multimodal-looker.js +93 -0
  134. package/dist/agents/performance-engineer.js +86 -0
  135. package/dist/agents/refactorer.js +80 -0
  136. package/dist/agents/registry.js +340 -0
  137. package/dist/agents/researcher.js +83 -0
  138. package/dist/agents/security-auditor.js +158 -0
  139. package/dist/agents/seo-consultant.js +53 -0
  140. package/dist/agents/strategist.js +47 -0
  141. package/dist/agents/tech-writer.js +84 -0
  142. package/dist/agents/testing-lead.js +95 -0
  143. package/dist/agents/types.js +1 -0
  144. package/dist/analytics/consent-manager.js +258 -0
  145. package/dist/analytics/emerging-pattern-detector.js +260 -0
  146. package/dist/analytics/pattern-learning-engine.js +278 -0
  147. package/dist/analytics/pattern-performance-tracker.js +336 -0
  148. package/dist/analytics/predictive-analytics.js +248 -0
  149. package/dist/analytics/prompt-pattern-analyzer.js +371 -0
  150. package/dist/analytics/routing-performance-analyzer.js +356 -0
  151. package/dist/analytics/routing-refiner.js +380 -0
  152. package/dist/analytics/simple-pattern-analyzer.js +297 -0
  153. package/dist/architect/architect-tools.js +437 -0
  154. package/dist/architect/architectural-integrity.js +78 -0
  155. package/dist/benchmark/performance-benchmark.js +372 -0
  156. package/dist/cli/commands/analytics-disable.js +72 -0
  157. package/dist/cli/commands/analytics-enable-action.js +82 -0
  158. package/dist/cli/commands/analytics-preview.js +106 -0
  159. package/dist/cli/commands/analytics-status.js +68 -0
  160. package/dist/cli/commands/antigravity-status.js +106 -0
  161. package/dist/cli/commands/archive-logs.js +161 -0
  162. package/dist/cli/commands/credible-init.js +82 -0
  163. package/dist/cli/commands/grok-install.js +16 -0
  164. package/dist/cli/commands/hermes-install.js +66 -0
  165. package/dist/cli/commands/mcp-install.js +253 -0
  166. package/dist/cli/commands/openclaw-install.js +44 -0
  167. package/dist/cli/commands/opencode-install.js +99 -0
  168. package/dist/cli/commands/plugin-commands.js +246 -0
  169. package/dist/cli/commands/publish-agent.js +184 -0
  170. package/dist/cli/commands/security-audit.js +219 -0
  171. package/dist/cli/commands/skill-install.js +481 -0
  172. package/dist/cli/commands/status.js +196 -0
  173. package/dist/cli/commands/storyteller.js +230 -0
  174. package/dist/cli/index.js +986 -0
  175. package/dist/cli/server.js +147 -0
  176. package/dist/config/default-agents.js +16 -0
  177. package/dist/core/activity-logger.js +260 -0
  178. package/dist/core/adaptive-kernel.js +192 -0
  179. package/dist/core/agent-spawn-gate.js +120 -0
  180. package/dist/core/boot-orchestrator.js +812 -0
  181. package/dist/core/bridge.mjs +945 -0
  182. package/dist/core/codex-formatter.js +220 -0
  183. package/dist/core/codex-injector.js +424 -0
  184. package/dist/core/config-loader.js +148 -0
  185. package/dist/core/config-paths.js +162 -0
  186. package/dist/core/context-loader.js +269 -0
  187. package/dist/core/context-validator.js +212 -0
  188. package/dist/core/features-config.js +457 -0
  189. package/dist/core/framework-logger.js +275 -0
  190. package/dist/core/index.js +6 -0
  191. package/dist/core/kernel-patterns.js +302 -0
  192. package/dist/core/logging-config.js +43 -0
  193. package/dist/core/model-router.js +175 -0
  194. package/dist/core/orchestrator.js +408 -0
  195. package/dist/core/system-prompt-generator.js +265 -0
  196. package/dist/core/trace-context.js +33 -0
  197. package/dist/core/xray-activation.js +134 -0
  198. package/dist/delegation/agent-delegator.js +769 -0
  199. package/dist/delegation/agent-expertise.js +156 -0
  200. package/dist/delegation/analytics/index.js +12 -0
  201. package/dist/delegation/analytics/learning-engine.js +277 -0
  202. package/dist/delegation/analytics/outcome-tracker.js +279 -0
  203. package/dist/delegation/analytics/routing-analytics.js +193 -0
  204. package/dist/delegation/ast-code-parser.js +878 -0
  205. package/dist/delegation/codebase-context-analyzer.js +1040 -0
  206. package/dist/delegation/complexity-analyzer.js +282 -0
  207. package/dist/delegation/complexity-core.js +219 -0
  208. package/dist/delegation/config/types.js +6 -0
  209. package/dist/delegation/dependency-graph-builder.js +409 -0
  210. package/dist/delegation/index.js +20 -0
  211. package/dist/delegation/metrics-aggregator.js +335 -0
  212. package/dist/delegation/session-coordinator.js +352 -0
  213. package/dist/delegation/strategy-selector.js +108 -0
  214. package/dist/delegation/voting-coordinator.js +375 -0
  215. package/dist/delegation/voting-types.js +10 -0
  216. package/dist/delegation/weighted-voting-aggregator.js +194 -0
  217. package/dist/enforcement/core/index.js +19 -0
  218. package/dist/enforcement/core/rule-executor.js +365 -0
  219. package/dist/enforcement/core/rule-hierarchy.js +259 -0
  220. package/dist/enforcement/core/rule-registry.js +240 -0
  221. package/dist/enforcement/core/violation-fixer.js +651 -0
  222. package/dist/enforcement/enforcer-tools.js +909 -0
  223. package/dist/enforcement/index.js +41 -0
  224. package/dist/enforcement/loaders/agent-triage-loader.js +222 -0
  225. package/dist/enforcement/loaders/agents-md-validation-loader.js +252 -0
  226. package/dist/enforcement/loaders/base-loader.js +86 -0
  227. package/dist/enforcement/loaders/codex-loader.js +396 -0
  228. package/dist/enforcement/loaders/index.js +40 -0
  229. package/dist/enforcement/loaders/loader-orchestrator.js +168 -0
  230. package/dist/enforcement/loaders/processor-loader.js +113 -0
  231. package/dist/enforcement/rule-enforcer.js +298 -0
  232. package/dist/enforcement/test-auto-healing.js +325 -0
  233. package/dist/enforcement/types.js +30 -0
  234. package/dist/enforcement/validators/architecture-validators.js +600 -0
  235. package/dist/enforcement/validators/base-validator.js +108 -0
  236. package/dist/enforcement/validators/code-quality-validators.js +336 -0
  237. package/dist/enforcement/validators/index.js +21 -0
  238. package/dist/enforcement/validators/security-validators.js +220 -0
  239. package/dist/enforcement/validators/testing-validators.js +253 -0
  240. package/dist/enforcement/validators/validator-registry.js +150 -0
  241. package/dist/execution/opencode-cli-invoker.js +173 -0
  242. package/dist/execution/proposal-applier.js +254 -0
  243. package/dist/governance/codex-policy.service.js +167 -0
  244. package/dist/governance/governance-core.js +152 -0
  245. package/dist/governance/governance-service.js +274 -0
  246. package/dist/governance/governance-types.js +6 -0
  247. package/dist/index.js +24 -0
  248. package/dist/inference/deploy-verifier.js +161 -0
  249. package/dist/inference/index.js +5 -0
  250. package/dist/inference/inference-accumulator.js +126 -0
  251. package/dist/inference/inference-cycle.js +1168 -0
  252. package/dist/inference/semantic-patterns.js +310 -0
  253. package/dist/inference/session-capture.js +308 -0
  254. package/dist/integrations/base/ExampleIntegration.js +181 -0
  255. package/dist/integrations/base/Integration.js +395 -0
  256. package/dist/integrations/base/README.md +446 -0
  257. package/dist/integrations/base/index.js +16 -0
  258. package/dist/integrations/base/registry.js +606 -0
  259. package/dist/integrations/base/types.js +118 -0
  260. package/dist/integrations/governance/governance-client.js +316 -0
  261. package/dist/integrations/governance/index.js +373 -0
  262. package/dist/integrations/governance/types.js +97 -0
  263. package/dist/integrations/grok/grok-cli.js +83 -0
  264. package/dist/integrations/grok/hooks/pre-tool-use.js +134 -0
  265. package/dist/integrations/grok/plugin/0xray/.mcp.json +15 -0
  266. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
  267. package/dist/integrations/hermes-agent/__init__.py +718 -0
  268. package/dist/integrations/hermes-agent/after-install.md +71 -0
  269. package/dist/integrations/hermes-agent/bridge.mjs +861 -0
  270. package/dist/integrations/hermes-agent/conftest.py +14 -0
  271. package/dist/integrations/hermes-agent/plugin.yaml +12 -0
  272. package/dist/integrations/hermes-agent/schemas.py +100 -0
  273. package/dist/integrations/hermes-agent/test_plugin.py +1100 -0
  274. package/dist/integrations/hermes-agent/tools.py +253 -0
  275. package/dist/integrations/openclaw/README.md +134 -0
  276. package/dist/integrations/openclaw/api-server.js +389 -0
  277. package/dist/integrations/openclaw/client.js +492 -0
  278. package/dist/integrations/openclaw/config.js +374 -0
  279. package/dist/integrations/openclaw/hooks/strray-hooks.js +280 -0
  280. package/dist/integrations/openclaw/index.js +351 -0
  281. package/dist/integrations/openclaw/types.js +153 -0
  282. package/dist/integrations/plugins/index.js +10 -0
  283. package/dist/integrations/plugins/plugin-integration.js +606 -0
  284. package/dist/integrations/plugins/plugin-registry.js +580 -0
  285. package/dist/mcps/agent-resolver.js +106 -0
  286. package/dist/mcps/architect-tools.server.js +277 -0
  287. package/dist/mcps/auto-format.server.js +413 -0
  288. package/dist/mcps/boot-orchestrator.server.js +853 -0
  289. package/dist/mcps/config/config-loader.js +103 -0
  290. package/dist/mcps/config/config-validator.js +101 -0
  291. package/dist/mcps/config/index.js +30 -0
  292. package/dist/mcps/config/plugin-server-registry.js +223 -0
  293. package/dist/mcps/config/server-config-registry.js +348 -0
  294. package/dist/mcps/connection/connection-manager.js +79 -0
  295. package/dist/mcps/connection/connection-pool.js +164 -0
  296. package/dist/mcps/connection/mcp-connection.js +233 -0
  297. package/dist/mcps/connection/process-spawner.js +34 -0
  298. package/dist/mcps/enforcer-tools.server.js +778 -0
  299. package/dist/mcps/estimation.server.js +192 -0
  300. package/dist/mcps/framework-compliance-audit.server.js +500 -0
  301. package/dist/mcps/framework-help.server.js +400 -0
  302. package/dist/mcps/governance.server.js +464 -0
  303. package/dist/mcps/in-process-skill-registry.js +48 -0
  304. package/dist/mcps/knowledge-skills/api-design.server.js +123 -0
  305. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +113 -0
  306. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +474 -0
  307. package/dist/mcps/knowledge-skills/code-analyzer.server.js +605 -0
  308. package/dist/mcps/knowledge-skills/code-review.server.js +847 -0
  309. package/dist/mcps/knowledge-skills/content-creator.server.js +256 -0
  310. package/dist/mcps/knowledge-skills/database-design.server.js +822 -0
  311. package/dist/mcps/knowledge-skills/devops-deployment.server.js +1180 -0
  312. package/dist/mcps/knowledge-skills/git-workflow.server.js +115 -0
  313. package/dist/mcps/knowledge-skills/growth-strategist.server.js +361 -0
  314. package/dist/mcps/knowledge-skills/log-monitor.server.js +451 -0
  315. package/dist/mcps/knowledge-skills/mobile-development.server.js +525 -0
  316. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1063 -0
  317. package/dist/mcps/knowledge-skills/performance-optimization.server.js +1587 -0
  318. package/dist/mcps/knowledge-skills/project-analysis.server.js +811 -0
  319. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +796 -0
  320. package/dist/mcps/knowledge-skills/security-audit.server.js +846 -0
  321. package/dist/mcps/knowledge-skills/seo-consultant.server.js +937 -0
  322. package/dist/mcps/knowledge-skills/session-management.server.js +470 -0
  323. package/dist/mcps/knowledge-skills/skill-invocation.server.js +729 -0
  324. package/dist/mcps/knowledge-skills/strategist.server.js +217 -0
  325. package/dist/mcps/knowledge-skills/tech-writer.server.js +1191 -0
  326. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +866 -0
  327. package/dist/mcps/knowledge-skills/testing-strategy.server.js +827 -0
  328. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1538 -0
  329. package/dist/mcps/lint.server.js +381 -0
  330. package/dist/mcps/mcp-client.js +574 -0
  331. package/dist/mcps/model-health-check.server.js +228 -0
  332. package/dist/mcps/orchestrator/config/agent-capabilities.js +87 -0
  333. package/dist/mcps/orchestrator/execution/execution-planner.js +279 -0
  334. package/dist/mcps/orchestrator/handlers/complexity-handler.js +94 -0
  335. package/dist/mcps/orchestrator/handlers/status-handler.js +232 -0
  336. package/dist/mcps/orchestrator/handlers/task-handler.js +197 -0
  337. package/dist/mcps/orchestrator/server.js +305 -0
  338. package/dist/mcps/orchestrator/types.js +6 -0
  339. package/dist/mcps/orchestrator.server.js +19 -0
  340. package/dist/mcps/performance-analysis.server.js +519 -0
  341. package/dist/mcps/processor-pipeline.server.js +561 -0
  342. package/dist/mcps/protocol/protocol-constants.js +46 -0
  343. package/dist/mcps/registry.json +110 -0
  344. package/dist/mcps/researcher.server.js +504 -0
  345. package/dist/mcps/security-scan.server.js +531 -0
  346. package/dist/mcps/simulation/index.js +12 -0
  347. package/dist/mcps/simulation/server-simulations.js +219 -0
  348. package/dist/mcps/simulation/simulation-engine.js +96 -0
  349. package/dist/mcps/state-manager.server.js +637 -0
  350. package/dist/mcps/tools/index.js +14 -0
  351. package/dist/mcps/tools/tool-cache.js +112 -0
  352. package/dist/mcps/tools/tool-discovery.js +65 -0
  353. package/dist/mcps/tools/tool-executor.js +75 -0
  354. package/dist/mcps/tools/tool-registry.js +67 -0
  355. package/dist/mcps/types/index.js +15 -0
  356. package/dist/mcps/types/json-rpc.types.js +7 -0
  357. package/dist/mcps/types/mcp.types.js +7 -0
  358. package/dist/metrics/agent-metrics.js +574 -0
  359. package/dist/metrics/index.js +6 -0
  360. package/dist/monitoring/advanced-profiler.js +232 -0
  361. package/dist/monitoring/memory-monitor.js +315 -0
  362. package/dist/monitoring/nudge-watchdog.js +356 -0
  363. package/dist/monitoring/test-auto-generation-monitor.js +157 -0
  364. package/dist/orchestrator/agent-spawn-governor.js +559 -0
  365. package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +399 -0
  366. package/dist/orchestrator/intelligent-commit-batcher.js +353 -0
  367. package/dist/orchestrator/multi-agent-orchestration-coordinator.js +456 -0
  368. package/dist/orchestrator/orchestrator.js +657 -0
  369. package/dist/orchestrator/self-direction-activation.js +245 -0
  370. package/dist/orchestrator/universal-librarian-consultation.js +216 -0
  371. package/dist/orchestrator/universal-registry-bridge.js +247 -0
  372. package/dist/performance/performance-budget-enforcer.js +434 -0
  373. package/dist/performance/performance-regression-tester.js +342 -0
  374. package/dist/plugin/xray-codex-injection.js +857 -0
  375. package/dist/postprocessor/PostProcessor.js +1048 -0
  376. package/dist/postprocessor/analysis/FailureAnalysisEngine.js +245 -0
  377. package/dist/postprocessor/autofix/AutoFixEngine.js +254 -0
  378. package/dist/postprocessor/autofix/FixValidator.js +56 -0
  379. package/dist/postprocessor/config.js +65 -0
  380. package/dist/postprocessor/escalation/EscalationEngine.js +492 -0
  381. package/dist/postprocessor/monitoring/MonitoringEngine.js +125 -0
  382. package/dist/postprocessor/redeploy/RedeployCoordinator.js +342 -0
  383. package/dist/postprocessor/services/RegressionAnalysisService.js +131 -0
  384. package/dist/postprocessor/success/SuccessHandler.js +134 -0
  385. package/dist/postprocessor/triggers/APITrigger.js +115 -0
  386. package/dist/postprocessor/triggers/GitHookTrigger.js +551 -0
  387. package/dist/postprocessor/triggers/WebhookTrigger.js +211 -0
  388. package/dist/postprocessor/types.js +4 -0
  389. package/dist/processors/doc-write-guard.js +46 -0
  390. package/dist/processors/implementations/agents-md-validation-processor.js +286 -0
  391. package/dist/processors/implementations/async-pattern-processor.js +158 -0
  392. package/dist/processors/implementations/codex-compliance-processor.js +57 -0
  393. package/dist/processors/implementations/commit-batcher-processor.js +71 -0
  394. package/dist/processors/implementations/console-log-guard-processor.js +163 -0
  395. package/dist/processors/implementations/coverage-analysis-processor.js +138 -0
  396. package/dist/processors/implementations/error-boundary-processor.js +44 -0
  397. package/dist/processors/implementations/inference-improvement-processor.js +270 -0
  398. package/dist/processors/implementations/log-protection-processor.js +118 -0
  399. package/dist/processors/implementations/nudge-processor.js +130 -0
  400. package/dist/processors/implementations/performance-budget-processor.js +217 -0
  401. package/dist/processors/implementations/postprocessor-chain-validator.js +149 -0
  402. package/dist/processors/implementations/pre-validate-processor.js +18 -0
  403. package/dist/processors/implementations/publish-preflight-processor.js +249 -0
  404. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +33 -0
  405. package/dist/processors/implementations/refactoring-logging-processor.js +96 -0
  406. package/dist/processors/implementations/regression-testing-processor.js +59 -0
  407. package/dist/processors/implementations/session-capture-processor.js +37 -0
  408. package/dist/processors/implementations/session-summary-processor.js +130 -0
  409. package/dist/processors/implementations/spawn-governance-processor.js +219 -0
  410. package/dist/processors/implementations/state-validation-processor.js +15 -0
  411. package/dist/processors/implementations/storytelling-trigger-processor.js +589 -0
  412. package/dist/processors/implementations/test-auto-creation-processor.js +484 -0
  413. package/dist/processors/implementations/test-execution-processor.js +132 -0
  414. package/dist/processors/implementations/typescript-compilation-processor.js +87 -0
  415. package/dist/processors/implementations/version-compliance-processor.js +350 -0
  416. package/dist/processors/processor-interfaces.js +126 -0
  417. package/dist/processors/processor-manager.js +826 -0
  418. package/dist/processors/processor-types.js +12 -0
  419. package/dist/public/about.html +228 -0
  420. package/dist/public/enterprise.html +27 -0
  421. package/dist/public/features.html +102 -0
  422. package/dist/public/index.html +145 -0
  423. package/dist/reporting/framework-reporting-system.js +187 -0
  424. package/dist/reporting/log-parser.js +281 -0
  425. package/dist/reporting/metrics.js +202 -0
  426. package/dist/reporting/report-formatter.js +146 -0
  427. package/dist/reporting/types.js +1 -0
  428. package/dist/scripts/activate-kernel-pipeline.js +101 -0
  429. package/dist/scripts/integration.js +234 -0
  430. package/dist/scripts/pre-command +26 -0
  431. package/dist/scripts/pre-command.mjs +358 -0
  432. package/dist/security/comprehensive-security-audit.js +1005 -0
  433. package/dist/security/index.js +13 -0
  434. package/dist/security/prompt-security-validator.js +148 -0
  435. package/dist/security/security-agent-coordinator.js +204 -0
  436. package/dist/security/security-auditor.js +584 -0
  437. package/dist/security/security-hardener.js +170 -0
  438. package/dist/security/security-hardening-system.js +727 -0
  439. package/dist/security/security-headers.js +118 -0
  440. package/dist/security/security-orchestration-layer.js +496 -0
  441. package/dist/security/security-scanner.js +429 -0
  442. package/dist/services/inference-tuner.js +301 -0
  443. package/dist/session/index.js +3 -0
  444. package/dist/session/session-cleanup-manager.js +366 -0
  445. package/dist/session/session-monitor.js +503 -0
  446. package/dist/session/session-state-manager.js +522 -0
  447. package/dist/skills/api-design/SKILL.md +37 -0
  448. package/dist/skills/architect-tools/SKILL.md +37 -0
  449. package/dist/skills/architecture-patterns/SKILL.md +37 -0
  450. package/dist/skills/auto-format/SKILL.md +37 -0
  451. package/dist/skills/backend-engineer/SKILL.md +49 -0
  452. package/dist/skills/boot-orchestrator/SKILL.md +37 -0
  453. package/dist/skills/bug-triage/SKILL.md +43 -0
  454. package/dist/skills/code-analyzer/SKILL.md +45 -0
  455. package/dist/skills/code-review/SKILL.md +52 -0
  456. package/dist/skills/content-creator/SKILL.md +38 -0
  457. package/dist/skills/database-engineer/SKILL.md +46 -0
  458. package/dist/skills/devops-engineer/SKILL.md +49 -0
  459. package/dist/skills/enforcer/SKILL.md +37 -0
  460. package/dist/skills/framework-compliance-audit/SKILL.md +37 -0
  461. package/dist/skills/frontend-engineer/SKILL.md +49 -0
  462. package/dist/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  463. package/dist/skills/git-workflow/SKILL.md +37 -0
  464. package/dist/skills/growth-strategist/SKILL.md +48 -0
  465. package/dist/skills/hermes-agent/SKILL.md +212 -0
  466. package/dist/skills/inference-improve/SKILL.md +97 -0
  467. package/dist/skills/lint/SKILL.md +37 -0
  468. package/dist/skills/log-monitor/SKILL.md +44 -0
  469. package/dist/skills/mobile-developer/SKILL.md +42 -0
  470. package/dist/skills/model-health-check/SKILL.md +37 -0
  471. package/dist/skills/multimodal-looker/SKILL.md +45 -0
  472. package/dist/skills/orchestrator/SKILL.md +37 -0
  473. package/dist/skills/performance-analysis/SKILL.md +37 -0
  474. package/dist/skills/performance-engineer/SKILL.md +41 -0
  475. package/dist/skills/performance-optimization/SKILL.md +37 -0
  476. package/dist/skills/processor-pipeline/SKILL.md +37 -0
  477. package/dist/skills/project-analysis/SKILL.md +42 -0
  478. package/dist/skills/refactoring-strategies/SKILL.md +37 -0
  479. package/dist/skills/registry.json +66 -0
  480. package/dist/skills/researcher/SKILL.md +37 -0
  481. package/dist/skills/security-audit/SKILL.md +48 -0
  482. package/dist/skills/security-scan/SKILL.md +37 -0
  483. package/dist/skills/seo-consultant/SKILL.md +43 -0
  484. package/dist/skills/session-management/SKILL.md +36 -0
  485. package/dist/skills/state-manager/SKILL.md +37 -0
  486. package/dist/skills/storyteller/SKILL.md +130 -0
  487. package/dist/skills/strategist/SKILL.md +32 -0
  488. package/dist/skills/tech-writer/SKILL.md +37 -0
  489. package/dist/skills/testing-best-practices/SKILL.md +37 -0
  490. package/dist/skills/testing-strategy/SKILL.md +43 -0
  491. package/dist/skills/ui-ux-design/SKILL.md +603 -0
  492. package/dist/state/context-providers.js +1 -0
  493. package/dist/state/index.js +7 -0
  494. package/dist/state/state-manager.js +208 -0
  495. package/dist/state/state-types.js +1 -0
  496. package/dist/testing/memory-regression-suite.js +258 -0
  497. package/dist/utils/batch-operations.js +292 -0
  498. package/dist/utils/codex-parser.js +445 -0
  499. package/dist/utils/command-runner.js +96 -0
  500. package/dist/utils/import-resolver.js +189 -0
  501. package/dist/utils/language-detector.js +383 -0
  502. package/dist/utils/path-resolver.js +112 -0
  503. package/dist/utils/shutdown-handler.js +75 -0
  504. package/dist/utils/test-template-generator.js +178 -0
  505. package/dist/utils/token-manager.js +163 -0
  506. package/dist/validation/estimation-validator.js +241 -0
  507. package/dist/validation/report-content-validator.js +218 -0
  508. package/opencode.json +153 -0
  509. package/package.json +170 -0
  510. package/scripts/helpers/resolve-config-path.cjs +57 -0
  511. package/scripts/helpers/resolve-config-path.mjs +73 -0
  512. package/scripts/hooks/pre-command +26 -0
  513. package/scripts/hooks/pre-command.mjs +358 -0
  514. package/scripts/hooks/run-hook.js +570 -0
  515. package/scripts/mjs/test-consumer-readiness.mjs +273 -0
  516. package/scripts/mjs/test-mcp-functionality.mjs +507 -0
  517. package/scripts/mjs/validate-mcp-connectivity.cjs +75 -0
  518. package/scripts/mjs/validate-postinstall-config.mjs +308 -0
  519. package/scripts/node/auto-reflection-generator.mjs +496 -0
  520. package/scripts/node/basic-security-audit.cjs +338 -0
  521. package/scripts/node/ci-cd-auto-fix.cjs +263 -0
  522. package/scripts/node/ci-report-generator.mjs +227 -0
  523. package/scripts/node/enforce-agents-md.mjs +420 -0
  524. package/scripts/node/enforce-version-compliance.sh +22 -0
  525. package/scripts/node/enforce-version-compliance.ts +126 -0
  526. package/scripts/node/github-actions-monitor.cjs +23 -0
  527. package/scripts/node/govern-reflection.mjs +160 -0
  528. package/scripts/node/postinstall.cjs +78 -0
  529. package/scripts/node/pre-publish-guard.js +267 -0
  530. package/scripts/node/prepare-consumer.cjs +143 -0
  531. package/scripts/node/reflection-processor.cjs +213 -0
  532. package/scripts/node/reflection-validate.sh +194 -0
  533. package/scripts/node/release-tweet.mjs +39 -0
  534. package/scripts/node/release.js +159 -0
  535. package/scripts/node/release.mjs +213 -0
  536. package/scripts/node/setup-dev.cjs +83 -0
  537. package/scripts/node/setup.cjs +214 -0
  538. package/scripts/node/sync-versions.mjs +140 -0
  539. package/scripts/node/universal-version-manager.js +1025 -0
  540. package/scripts/node/validate-external-processes.js +265 -0
  541. package/scripts/node/validate-mcp-connectivity.js +258 -0
  542. package/scripts/node/version-manager.mjs +524 -0
  543. package/scripts/validate-stringray-comprehensive.js +636 -0
  544. package/src/integrations/grok/plugin/0xray/.mcp.json +15 -0
  545. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
  546. package/src/mcps/agent-resolver.ts +168 -0
  547. package/src/mcps/architect-tools.server.ts +343 -0
  548. package/src/mcps/auto-format.server.ts +529 -0
  549. package/src/mcps/boot-orchestrator.server.ts +1082 -0
  550. package/src/mcps/config/__tests__/config-loader.test.ts +338 -0
  551. package/src/mcps/config/__tests__/config-validator.test.ts +646 -0
  552. package/src/mcps/config/__tests__/server-config-registry.test.ts +257 -0
  553. package/src/mcps/config/config-loader.ts +127 -0
  554. package/src/mcps/config/config-validator.ts +127 -0
  555. package/src/mcps/config/index.ts +32 -0
  556. package/src/mcps/config/plugin-server-registry.ts +335 -0
  557. package/src/mcps/config/server-config-registry.ts +395 -0
  558. package/src/mcps/connection/connection-manager.ts +91 -0
  559. package/src/mcps/connection/connection-pool.ts +216 -0
  560. package/src/mcps/connection/mcp-connection.ts +327 -0
  561. package/src/mcps/connection/process-spawner.ts +47 -0
  562. package/src/mcps/enforcer-tools.server.ts +1106 -0
  563. package/src/mcps/estimation.server.ts +229 -0
  564. package/src/mcps/framework-compliance-audit.server.ts +635 -0
  565. package/src/mcps/framework-help.server.ts +467 -0
  566. package/src/mcps/governance.server.ts +551 -0
  567. package/src/mcps/in-process-skill-registry.ts +79 -0
  568. package/src/mcps/knowledge-skills/api-design.server.test.ts +41 -0
  569. package/src/mcps/knowledge-skills/api-design.server.ts +160 -0
  570. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +152 -0
  571. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +624 -0
  572. package/src/mcps/knowledge-skills/code-analyzer.server.test.ts +129 -0
  573. package/src/mcps/knowledge-skills/code-analyzer.server.ts +591 -0
  574. package/src/mcps/knowledge-skills/code-review.server.ts +1132 -0
  575. package/src/mcps/knowledge-skills/content-creator.server.ts +300 -0
  576. package/src/mcps/knowledge-skills/database-design.server.ts +1200 -0
  577. package/src/mcps/knowledge-skills/devops-deployment.server.ts +1622 -0
  578. package/src/mcps/knowledge-skills/git-workflow.server.ts +152 -0
  579. package/src/mcps/knowledge-skills/growth-strategist.server.ts +413 -0
  580. package/src/mcps/knowledge-skills/log-monitor.server.ts +619 -0
  581. package/src/mcps/knowledge-skills/mobile-development.server.ts +672 -0
  582. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +1500 -0
  583. package/src/mcps/knowledge-skills/performance-optimization.server.ts +2065 -0
  584. package/src/mcps/knowledge-skills/project-analysis.server.ts +1111 -0
  585. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +1092 -0
  586. package/src/mcps/knowledge-skills/security-audit.server.test.ts +112 -0
  587. package/src/mcps/knowledge-skills/security-audit.server.ts +1193 -0
  588. package/src/mcps/knowledge-skills/seo-consultant.server.ts +1160 -0
  589. package/src/mcps/knowledge-skills/session-management.server.ts +576 -0
  590. package/src/mcps/knowledge-skills/skill-invocation.server.ts +941 -0
  591. package/src/mcps/knowledge-skills/strategist.server.ts +267 -0
  592. package/src/mcps/knowledge-skills/tech-writer.server.ts +1638 -0
  593. package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +136 -0
  594. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +1232 -0
  595. package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +100 -0
  596. package/src/mcps/knowledge-skills/testing-strategy.server.ts +1172 -0
  597. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +2076 -0
  598. package/src/mcps/lint.server.ts +483 -0
  599. package/src/mcps/mcp-client.ts +706 -0
  600. package/src/mcps/model-health-check.server.ts +292 -0
  601. package/src/mcps/orchestrator/config/agent-capabilities.ts +108 -0
  602. package/src/mcps/orchestrator/execution/execution-planner.ts +353 -0
  603. package/src/mcps/orchestrator/handlers/complexity-handler.ts +125 -0
  604. package/src/mcps/orchestrator/handlers/status-handler.ts +295 -0
  605. package/src/mcps/orchestrator/handlers/task-handler.ts +268 -0
  606. package/src/mcps/orchestrator/server.ts +388 -0
  607. package/src/mcps/orchestrator/types.ts +81 -0
  608. package/src/mcps/orchestrator.server.ts +34 -0
  609. package/src/mcps/performance-analysis.server.ts +715 -0
  610. package/src/mcps/processor-pipeline.server.ts +778 -0
  611. package/src/mcps/protocol/protocol-constants.ts +51 -0
  612. package/src/mcps/registry.json +110 -0
  613. package/src/mcps/researcher.server.ts +595 -0
  614. package/src/mcps/security-scan.server.ts +651 -0
  615. package/src/mcps/simulation/__tests__/simulation-engine.test.ts +275 -0
  616. package/src/mcps/simulation/index.ts +23 -0
  617. package/src/mcps/simulation/server-simulations.ts +241 -0
  618. package/src/mcps/simulation/simulation-engine.ts +126 -0
  619. package/src/mcps/state-manager.server.ts +777 -0
  620. package/src/mcps/tools/__tests__/tool-cache.test.ts +205 -0
  621. package/src/mcps/tools/__tests__/tool-discovery.test.ts +189 -0
  622. package/src/mcps/tools/__tests__/tool-executor.test.ts +215 -0
  623. package/src/mcps/tools/__tests__/tool-registry.test.ts +230 -0
  624. package/src/mcps/tools/index.ts +15 -0
  625. package/src/mcps/tools/tool-cache.ts +145 -0
  626. package/src/mcps/tools/tool-discovery.ts +83 -0
  627. package/src/mcps/tools/tool-executor.ts +106 -0
  628. package/src/mcps/tools/tool-registry.ts +78 -0
  629. package/src/mcps/types/__tests__/types.test.ts +341 -0
  630. package/src/mcps/types/index.ts +17 -0
  631. package/src/mcps/types/json-rpc.types.ts +38 -0
  632. package/src/mcps/types/mcp.types.ts +115 -0
  633. package/src/opencode/agents/api-design.yml +31 -0
  634. package/src/opencode/agents/architect.yml +15 -0
  635. package/src/opencode/agents/architecture-patterns.yml +14 -0
  636. package/src/opencode/agents/auto-format.yml +14 -0
  637. package/src/opencode/agents/backend-engineer.yml +12 -0
  638. package/src/opencode/agents/boot-orchestrator.yml +14 -0
  639. package/src/opencode/agents/bug-triage-specialist.yml +15 -0
  640. package/src/opencode/agents/code-analyzer.yml +12 -0
  641. package/src/opencode/agents/code-reviewer.yml +14 -0
  642. package/src/opencode/agents/content-creator.yml +12 -0
  643. package/src/opencode/agents/database-engineer.yml +12 -0
  644. package/src/opencode/agents/devops-engineer.yml +12 -0
  645. package/src/opencode/agents/framework-compliance-audit.yml +14 -0
  646. package/src/opencode/agents/frontend-engineer.yml +12 -0
  647. package/src/opencode/agents/frontend-ui-ux-engineer.yml +12 -0
  648. package/src/opencode/agents/git-workflow.yml +15 -0
  649. package/src/opencode/agents/growth-strategist.yml +12 -0
  650. package/src/opencode/agents/hermes-agent.yml +12 -0
  651. package/src/opencode/agents/inference-improve.yml +12 -0
  652. package/src/opencode/agents/lint.yml +14 -0
  653. package/src/opencode/agents/log-monitor.yml +12 -0
  654. package/src/opencode/agents/mobile-developer.yml +12 -0
  655. package/src/opencode/agents/model-health-check.yml +12 -0
  656. package/src/opencode/agents/multimodal-looker.yml +12 -0
  657. package/src/opencode/agents/performance-analysis.yml +12 -0
  658. package/src/opencode/agents/performance-engineer.yml +12 -0
  659. package/src/opencode/agents/performance-optimization.yml +12 -0
  660. package/src/opencode/agents/processor-pipeline.yml +14 -0
  661. package/src/opencode/agents/project-analysis.yml +12 -0
  662. package/src/opencode/agents/refactorer.yml +12 -0
  663. package/src/opencode/agents/researcher.yml +12 -0
  664. package/src/opencode/agents/security-auditor.yml +12 -0
  665. package/src/opencode/agents/security-scan.yml +12 -0
  666. package/src/opencode/agents/seo-consultant.yml +12 -0
  667. package/src/opencode/agents/session-management.yml +12 -0
  668. package/src/opencode/agents/state-manager.yml +12 -0
  669. package/src/opencode/agents/storyteller.yml +12 -0
  670. package/src/opencode/agents/strategist.yml +12 -0
  671. package/src/opencode/agents/tech-writer.yml +12 -0
  672. package/src/opencode/agents/testing-best-practices.yml +12 -0
  673. package/src/opencode/agents/testing-lead.yml +12 -0
  674. package/src/opencode/agents/ui-ux-design.yml +12 -0
  675. package/src/opencode/codex.codex +8 -0
  676. package/src/opencode/commands/auto-format.md +99 -0
  677. package/src/opencode/commands/auto-summary-capture.md +90 -0
  678. package/src/opencode/commands/dependency-audit.md +184 -0
  679. package/src/opencode/commands/enforcer-daily-scan.md +137 -0
  680. package/src/opencode/commands/framework-compliance-audit.md +205 -0
  681. package/src/opencode/commands/interactive-validator.md +75 -0
  682. package/src/opencode/commands/job-summary-logger.md +68 -0
  683. package/src/opencode/commands/lint.md +11 -0
  684. package/src/opencode/commands/mode-switch.md +95 -0
  685. package/src/opencode/commands/model-health-check.md +186 -0
  686. package/src/opencode/commands/performance-analysis.md +144 -0
  687. package/src/opencode/commands/pre-commit-introspection.md +185 -0
  688. package/src/opencode/commands/pre-commit-introspection.sh +133 -0
  689. package/src/opencode/commands/security-scan.md +157 -0
  690. package/src/opencode/commands/sisyphus-validation.md +128 -0
  691. package/src/opencode/commands/summary-logger.md +83 -0
  692. package/src/opencode/enforcer-config.json +285 -0
  693. package/src/opencode/openclaw/config.json +25 -0
  694. package/src/opencode/workflows/post-deployment-audit.yml +123 -0
  695. package/src/skills/api-design/SKILL.md +37 -0
  696. package/src/skills/architect-tools/SKILL.md +37 -0
  697. package/src/skills/architecture-patterns/SKILL.md +37 -0
  698. package/src/skills/auto-format/SKILL.md +37 -0
  699. package/src/skills/backend-engineer/SKILL.md +49 -0
  700. package/src/skills/boot-orchestrator/SKILL.md +37 -0
  701. package/src/skills/bug-triage/SKILL.md +43 -0
  702. package/src/skills/code-analyzer/SKILL.md +45 -0
  703. package/src/skills/code-review/SKILL.md +52 -0
  704. package/src/skills/content-creator/SKILL.md +38 -0
  705. package/src/skills/database-engineer/SKILL.md +46 -0
  706. package/src/skills/devops-engineer/SKILL.md +49 -0
  707. package/src/skills/enforcer/SKILL.md +37 -0
  708. package/src/skills/framework-compliance-audit/SKILL.md +37 -0
  709. package/src/skills/frontend-engineer/SKILL.md +49 -0
  710. package/src/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
  711. package/src/skills/git-workflow/SKILL.md +37 -0
  712. package/src/skills/growth-strategist/SKILL.md +48 -0
  713. package/src/skills/hermes-agent/SKILL.md +212 -0
  714. package/src/skills/inference-improve/SKILL.md +97 -0
  715. package/src/skills/lint/SKILL.md +37 -0
  716. package/src/skills/log-monitor/SKILL.md +44 -0
  717. package/src/skills/mobile-developer/SKILL.md +42 -0
  718. package/src/skills/model-health-check/SKILL.md +37 -0
  719. package/src/skills/multimodal-looker/SKILL.md +45 -0
  720. package/src/skills/orchestrator/SKILL.md +37 -0
  721. package/src/skills/performance-analysis/SKILL.md +37 -0
  722. package/src/skills/performance-engineer/SKILL.md +41 -0
  723. package/src/skills/performance-optimization/SKILL.md +37 -0
  724. package/src/skills/processor-pipeline/SKILL.md +37 -0
  725. package/src/skills/project-analysis/SKILL.md +42 -0
  726. package/src/skills/refactoring-strategies/SKILL.md +37 -0
  727. package/src/skills/registry.json +66 -0
  728. package/src/skills/researcher/SKILL.md +37 -0
  729. package/src/skills/security-audit/SKILL.md +48 -0
  730. package/src/skills/security-scan/SKILL.md +37 -0
  731. package/src/skills/seo-consultant/SKILL.md +43 -0
  732. package/src/skills/session-management/SKILL.md +36 -0
  733. package/src/skills/state-manager/SKILL.md +37 -0
  734. package/src/skills/storyteller/SKILL.md +130 -0
  735. package/src/skills/strategist/SKILL.md +32 -0
  736. package/src/skills/tech-writer/SKILL.md +37 -0
  737. package/src/skills/testing-best-practices/SKILL.md +37 -0
  738. package/src/skills/testing-strategy/SKILL.md +43 -0
  739. package/src/skills/ui-ux-design/SKILL.md +603 -0
@@ -0,0 +1,812 @@
1
+ /**
2
+ * Boot Orchestrator (min documented consumer runtime compat shim from prior StringRay releases; primary Xray* paths + XRAY_||STRRAY_ env + .strray fallbacks only; 1-line per Scope Rule).
3
+ */
4
+ import { StringRayContextLoader } from "./context-loader.js";
5
+ import { StringRayStateManager } from "../state/state-manager.js";
6
+ import { ProcessorManager } from "../processors/processor-manager.js";
7
+ import { pathResolver } from "../utils/path-resolver.js";
8
+ import * as fs from "fs";
9
+ import * as path from "path";
10
+ const { existsSync, readFileSync } = fs;
11
+ // Path configuration - can be overridden by environment or use path resolver
12
+ const AGENTS_BASE_PATH = process.env.STRRAY_AGENTS_PATH || "../agents";
13
+ import { createAgentDelegator, createSessionCoordinator, } from "../delegation/index.js";
14
+ import { createSessionCleanupManager } from "../session/session-cleanup-manager.js";
15
+ import { createSessionMonitor } from "../session/session-monitor.js";
16
+ import { createSessionStateManager } from "../session/session-state-manager.js";
17
+ import { securityHardener } from "../security/security-hardener.js";
18
+ import { securityHeadersMiddleware } from "../security/security-headers.js";
19
+ import { frameworkLogger } from "../core/framework-logger.js";
20
+ import { featuresConfigLoader } from "../core/features-config.js";
21
+ import { memoryMonitor } from "../monitoring/memory-monitor.js";
22
+ import { advancedProfiler } from "../monitoring/advanced-profiler.js";
23
+ import { strRayConfigLoader } from "./config-loader.js";
24
+ import { PluginRegistry } from "../integrations/plugins/index.js";
25
+ import { PluginServerConfigRegistry } from "../mcps/config/index.js";
26
+ import { initializeGovernanceIntegration } from "../integrations/governance/index.js";
27
+ /**
28
+ * Set up graceful interruption handling to prevent JSON parsing errors
29
+ * when processes are interrupted mid-operation
30
+ */
31
+ function setupGracefulShutdown() {
32
+ // Prevent duplicate listeners
33
+ if (process._strrayShutdownSetup) {
34
+ return;
35
+ }
36
+ process._strrayShutdownSetup = true;
37
+ let isShuttingDown = false;
38
+ process.on("SIGINT", async () => {
39
+ if (isShuttingDown) {
40
+ process.exit(0);
41
+ }
42
+ isShuttingDown = true;
43
+ try {
44
+ await frameworkLogger.log("boot-orchestrator", "-received-sigint-shutting-down-gracefully-", "info", { message: "Received SIGINT, shutting down gracefully..." });
45
+ // Basic cleanup - orchestrator shutdown handled by process termination
46
+ process.exit(0);
47
+ }
48
+ catch (error) {
49
+ // Suppress error output in CLI mode to avoid breaking interface
50
+ if (process.env.STRRAY_CLI_MODE !== "true" &&
51
+ process.env.OPENCODE_CLI !== "true") {
52
+ frameworkLogger.log("boot-orchestrator", "shutdown-error", "error", { error, message: "Error during graceful shutdown" });
53
+ }
54
+ process.exit(1);
55
+ }
56
+ });
57
+ process.on("SIGTERM", async () => {
58
+ // Termination signal message kept as console.log
59
+ try {
60
+ memoryMonitor.stop();
61
+ advancedProfiler.stop();
62
+ await new Promise((resolve) => setTimeout(resolve, 500));
63
+ process.exit(0);
64
+ }
65
+ catch (error) {
66
+ process.exit(1);
67
+ }
68
+ });
69
+ // Handle uncaught exceptions that might cause JSON parsing errors
70
+ process.on("uncaughtException", (error) => {
71
+ // Suppress error output in CLI mode to avoid breaking interface
72
+ if (process.env.STRRAY_CLI_MODE !== "true" &&
73
+ process.env.OPENCODE_CLI !== "true") {
74
+ frameworkLogger.log("boot-orchestrator", "uncaught-exception", "error", { error, message: "Uncaught Exception" });
75
+ }
76
+ memoryMonitor.stop();
77
+ advancedProfiler.stop();
78
+ process.exit(1);
79
+ });
80
+ process.on("unhandledRejection", (reason, promise) => {
81
+ // Suppress error output in CLI mode to avoid breaking interface
82
+ if (process.env.STRRAY_CLI_MODE !== "true" &&
83
+ process.env.OPENCODE_CLI !== "true") {
84
+ frameworkLogger.log("boot-orchestrator", "unhandled-rejection", "error", { promise, reason, message: "Unhandled Rejection" });
85
+ }
86
+ memoryMonitor.stop();
87
+ advancedProfiler.stop();
88
+ process.exit(1);
89
+ });
90
+ }
91
+ export class BootOrchestrator {
92
+ contextLoader;
93
+ stateManager;
94
+ processorManager;
95
+ config;
96
+ pluginRegistry;
97
+ pluginServerRegistry;
98
+ shutdownInitialized = false;
99
+ constructor(config = {}, stateManager) {
100
+ // Initialize components first for state management
101
+ this.contextLoader = StringRayContextLoader.getInstance();
102
+ this.stateManager = stateManager || new StringRayStateManager();
103
+ this.processorManager = new ProcessorManager(this.stateManager);
104
+ this.config = {
105
+ enableEnforcement: true,
106
+ codexValidation: true,
107
+ sessionManagement: true,
108
+ processorActivation: true,
109
+ agentLoading: true,
110
+ ...config,
111
+ };
112
+ }
113
+ /**
114
+ * Initialize delegation system components
115
+ */
116
+ async initializeDelegationSystem() {
117
+ try {
118
+ const agentDelegator = createAgentDelegator(this.stateManager, strRayConfigLoader);
119
+ this.stateManager.set("delegation:agent_delegator", agentDelegator);
120
+ const sessionCoordinator = createSessionCoordinator(this.stateManager);
121
+ this.stateManager.set("delegation:session_coordinator", sessionCoordinator);
122
+ const defaultSession = sessionCoordinator.initializeSession("default");
123
+ this.stateManager.set("delegation:default_session", defaultSession);
124
+ return true;
125
+ }
126
+ catch (error) {
127
+ frameworkLogger.log("boot-orchestrator", "delegation-init-failed", "error", { error, message: "Failed to initialize delegation system" });
128
+ return false;
129
+ }
130
+ }
131
+ loadProcessorsConfig() {
132
+ try {
133
+ const configPaths = [
134
+ path.join(process.cwd(), ".strray", "features.json"),
135
+ path.join(process.cwd(), ".opencode", "strray", "features.json"),
136
+ ];
137
+ for (const configPath of configPaths) {
138
+ if (existsSync(configPath)) {
139
+ const config = JSON.parse(readFileSync(configPath, "utf-8"));
140
+ return config.processors || null;
141
+ }
142
+ }
143
+ }
144
+ catch {
145
+ // ignore - use defaults
146
+ }
147
+ return null;
148
+ }
149
+ /**
150
+ * Initialize plugin system and register MCP servers
151
+ */
152
+ async initializePluginSystem(jobId) {
153
+ try {
154
+ frameworkLogger.log("boot-orchestrator", "initializing plugin system", "info", { jobId });
155
+ const pluginsDir = path.join(process.cwd(), ".strray", "plugins");
156
+ this.pluginRegistry = new PluginRegistry({
157
+ pluginsDir,
158
+ autoStart: true,
159
+ enableMetrics: true,
160
+ });
161
+ await this.pluginRegistry.initialize();
162
+ this.pluginServerRegistry = new PluginServerConfigRegistry();
163
+ const registered = this.pluginServerRegistry.registerAllPluginServers(this.pluginRegistry, { overwrite: false });
164
+ this.stateManager.set("plugin:registry", this.pluginRegistry);
165
+ this.stateManager.set("plugin:serverRegistry", this.pluginServerRegistry);
166
+ this.stateManager.set("plugin:registered", registered);
167
+ frameworkLogger.log("boot-orchestrator", "plugin system initialized", "success", { jobId, pluginsDir, registeredServers: registered });
168
+ return true;
169
+ }
170
+ catch (error) {
171
+ frameworkLogger.log("boot-orchestrator", "plugin-system-init-failed", "error", { jobId, error: error instanceof Error ? error.message : String(error) });
172
+ return false;
173
+ }
174
+ }
175
+ /**
176
+ * Load orchestrator as the first component
177
+ */
178
+ async loadOrchestrator() {
179
+ try {
180
+ // Import orchestrator dynamically to ensure it's loaded first
181
+ let orchestratorModule;
182
+ try {
183
+ orchestratorModule = await import("../core/orchestrator");
184
+ }
185
+ catch (importError) {
186
+ frameworkLogger.log("boot-orchestrator", "orchestrator-load-failed", "error", {
187
+ error: importError,
188
+ message: "Failed to load orchestrator",
189
+ });
190
+ return false;
191
+ }
192
+ const orchestratorInstance = orchestratorModule.strRayOrchestrator;
193
+ if (!orchestratorInstance) {
194
+ frameworkLogger.log("boot-orchestrator", "orchestrator-not-found", "error", { message: "Orchestrator instance not found in module" });
195
+ return false;
196
+ }
197
+ // Store in state manager for later access
198
+ this.stateManager.set("orchestrator", orchestratorInstance);
199
+ return true;
200
+ }
201
+ catch (error) {
202
+ frameworkLogger.log("boot-orchestrator", "orchestrator-load-failed-outer", "error", { error, message: "Failed to load orchestrator" });
203
+ return false;
204
+ }
205
+ }
206
+ /**
207
+ * Initialize session management system
208
+ */
209
+ async initializeSessionManagement() {
210
+ try {
211
+ // Initialize session state
212
+ this.stateManager.set("session:active", true);
213
+ this.stateManager.set("session:boot_time", Date.now());
214
+ this.stateManager.set("session:agents", []);
215
+ const sessionCoordinator = this.stateManager.get("delegation:session_coordinator");
216
+ if (sessionCoordinator) {
217
+ // Initialize session monitor first
218
+ const sessionMonitor = createSessionMonitor(this.stateManager, sessionCoordinator, undefined);
219
+ this.stateManager.set("session:monitor", sessionMonitor);
220
+ // Initialize session cleanup manager with session monitor reference
221
+ const cleanupManager = createSessionCleanupManager(this.stateManager, {}, sessionMonitor);
222
+ this.stateManager.set("session:cleanup_manager", cleanupManager);
223
+ cleanupManager.start();
224
+ // Update session monitor with cleanup manager reference
225
+ sessionMonitor.cleanupManager = cleanupManager;
226
+ const stateManagerInstance = createSessionStateManager(this.stateManager, sessionCoordinator);
227
+ this.stateManager.set("session:state_manager", stateManagerInstance);
228
+ const defaultSession = this.stateManager.get("delegation:default_session");
229
+ if (defaultSession?.sessionId) {
230
+ cleanupManager.registerSession(defaultSession.sessionId);
231
+ sessionMonitor.registerSession(defaultSession.sessionId);
232
+ }
233
+ }
234
+ return true;
235
+ }
236
+ catch (error) {
237
+ frameworkLogger.log("boot-orchestrator", "session-init-failed", "error", { error, message: "Failed to initialize session management" });
238
+ return false;
239
+ }
240
+ }
241
+ /**
242
+ * Activate pre/post processors
243
+ */
244
+ async activateProcessors(jobId) {
245
+ try {
246
+ frameworkLogger.log("boot-orchestrator", "activateProcessors started", "info", { jobId });
247
+ // Processor definitions — single source of truth for all registrations
248
+ // Load from features.json if available, otherwise use defaults
249
+ const processorsConfig = this.loadProcessorsConfig();
250
+ const prePriorityOrder = processorsConfig?.pre_processors?.priority_order || ["preValidate", "codexCompliance"];
251
+ const postPriorityOrder = processorsConfig?.post_processors?.priority_order || ["storytellingTrigger", "testExecution", "regressionTesting"];
252
+ const prePriorityMap = {};
253
+ prePriorityOrder.forEach((name, idx) => { prePriorityMap[name] = 10 + (idx * 10); });
254
+ const postPriorityMap = {};
255
+ postPriorityOrder.forEach((name, idx) => { postPriorityMap[name] = 5 + (idx * 10); });
256
+ const PROCESSOR_DEFS = [
257
+ { name: "preValidate", type: "pre", priority: prePriorityMap["preValidate"] || 10, enabled: true },
258
+ { name: "typescriptCompilation", type: "pre", priority: prePriorityMap["typescriptCompilation"] || 15, enabled: true },
259
+ { name: "codexCompliance", type: "pre", priority: prePriorityMap["codexCompliance"] || 20, enabled: true },
260
+ { name: "testAutoCreation", type: "pre", priority: prePriorityMap["testAutoCreation"] || 22, enabled: true },
261
+ { name: "versionCompliance", type: "pre", priority: prePriorityMap["versionCompliance"] || 25, enabled: true },
262
+ { name: "errorBoundary", type: "pre", priority: prePriorityMap["errorBoundary"] || 30, enabled: true },
263
+ { name: "agentsMdValidation", type: "pre", priority: prePriorityMap["agentsMdValidation"] || 35, enabled: true },
264
+ { name: "logProtection", type: "pre", priority: prePriorityMap["logProtection"] || 37, enabled: true },
265
+ { name: "stateValidation", type: "post", priority: postPriorityMap["stateValidation"] || 130, enabled: true },
266
+ { name: "spawnGovernance", type: "pre", priority: prePriorityMap["spawnGovernance"] || 40, enabled: true },
267
+ { name: "performanceBudget", type: "pre", priority: prePriorityMap["performanceBudget"] || 45, enabled: true },
268
+ { name: "asyncPattern", type: "pre", priority: prePriorityMap["asyncPattern"] || 50, enabled: true },
269
+ { name: "consoleLogGuard", type: "pre", priority: prePriorityMap["consoleLogGuard"] || 55, enabled: true },
270
+ { name: "testExecution", type: "post", priority: postPriorityMap["testExecution"] || 60, enabled: true },
271
+ { name: "regressionTesting", type: "post", priority: postPriorityMap["regressionTesting"] || 65, enabled: true },
272
+ { name: "coverageAnalysis", type: "post", priority: postPriorityMap["coverageAnalysis"] || 70, enabled: true },
273
+ { name: "inferenceImprovement", type: "post", priority: postPriorityMap["inferenceImprovement"] || 75, enabled: true },
274
+ { name: "nudge", type: "post", priority: postPriorityMap["nudge"] || 78, enabled: true },
275
+ { name: "refactoringLogging", type: "post", priority: postPriorityMap["refactoringLogging"] || 80, enabled: true },
276
+ { name: "postProcessorChain", type: "post", priority: postPriorityMap["postProcessorChain"] || 140, enabled: true },
277
+ { name: "publishPreflight", type: "post", priority: postPriorityMap["publishPreflight"] || 125, enabled: true },
278
+ { name: "storytellingTrigger", type: "post", priority: postPriorityMap["storytellingTrigger"] || 5, enabled: true },
279
+ { name: "sessionSummary", type: "post", priority: postPriorityMap["sessionSummary"] || 10, enabled: true },
280
+ { name: "commitBatcher", type: "post", priority: postPriorityMap["commitBatcher"] || 85, enabled: true },
281
+ ];
282
+ for (const def of PROCESSOR_DEFS) {
283
+ this.processorManager.registerProcessor({
284
+ name: def.name,
285
+ type: def.type,
286
+ priority: def.priority,
287
+ enabled: def.enabled,
288
+ });
289
+ frameworkLogger.log("boot-orchestrator", `registered ${def.name} processor`, "success", { jobId });
290
+ }
291
+ // Note: refactoringLogging is registered but requires agentName/task/startTime in context
292
+ // to actually log. When running via tool execution, these fields may not be present.
293
+ // The sessionSummary processor handles emoji output for tool execution flows.
294
+ frameworkLogger.log("boot-orchestrator", "processors configured", "info", { jobId, postProcessorCount: PROCESSOR_DEFS.filter(p => p.type === "post").length });
295
+ const initSuccess = await this.processorManager.initializeProcessors();
296
+ if (!initSuccess) {
297
+ frameworkLogger.log("boot-orchestrator", "processor initialization failed", "error", { jobId });
298
+ throw new Error("Processor initialization failed");
299
+ }
300
+ frameworkLogger.log("boot-orchestrator", "processors initialized successfully", "success", { jobId });
301
+ this.stateManager.set("processor:manager", this.processorManager);
302
+ this.stateManager.set("processor:active", true);
303
+ frameworkLogger.log("boot-orchestrator", "processors activated and stored in state", "success", { jobId });
304
+ return true;
305
+ }
306
+ catch (error) {
307
+ frameworkLogger.log("boot-orchestrator", "activateProcessors failed", "error", { jobId, error });
308
+ frameworkLogger.log("boot-orchestrator", "activate-processors-failed", "error", { error, message: "Failed to activate processors" });
309
+ return false;
310
+ }
311
+ }
312
+ /**
313
+ * Load remaining agents after orchestrator
314
+ */
315
+ async loadRemainingAgents(jobId) {
316
+ const agents = [
317
+ "enforcer",
318
+ "architect",
319
+ "bug-triage-specialist",
320
+ "code-reviewer",
321
+ "security-auditor",
322
+ "refactorer",
323
+ "testing-lead",
324
+ ];
325
+ const loadedAgents = [];
326
+ for (const agentName of agents) {
327
+ try {
328
+ await frameworkLogger.log("boot-orchestrator", "agent-loading", "info", { jobId, agentName });
329
+ const { getAgentEntry } = await import("../agents/registry.js");
330
+ const agentEntry = getAgentEntry(agentName);
331
+ if (agentEntry) {
332
+ this.stateManager.set(`agent:${agentName}`, agentEntry);
333
+ loadedAgents.push(agentName);
334
+ }
335
+ else {
336
+ frameworkLogger.log("boot-orchestrator", "agent-not-found", "warning", { agentName });
337
+ }
338
+ }
339
+ catch (error) {
340
+ frameworkLogger.log("boot-orchestrator", "agent-load-failed", "warning", {
341
+ agentName,
342
+ error: error instanceof Error ? error.message : String(error),
343
+ });
344
+ }
345
+ }
346
+ this.stateManager.set("session:agents", loadedAgents);
347
+ return loadedAgents;
348
+ }
349
+ /**
350
+ * Enable automatic enforcement activation
351
+ */
352
+ async enableEnforcement() {
353
+ try {
354
+ // Load codex terms for enforcement
355
+ const loadResult = await this.contextLoader.loadCodexContext(process.cwd());
356
+ if (!loadResult.success || !loadResult.context) {
357
+ throw new Error("No codex terms loaded for enforcement");
358
+ }
359
+ const codexTerms = Array.from(loadResult.context.terms.values());
360
+ // Enable enforcement mechanisms
361
+ this.stateManager.set("enforcement:active", true);
362
+ this.stateManager.set("enforcement:codex_terms", codexTerms);
363
+ this.stateManager.set("enforcement:enabled_at", Date.now());
364
+ return true;
365
+ }
366
+ catch (error) {
367
+ frameworkLogger.log("boot-orchestrator", "enforcement-failed", "error", { error, message: "Failed to enable enforcement" });
368
+ return false;
369
+ }
370
+ }
371
+ /**
372
+ * Activate codex compliance checking during boot
373
+ */
374
+ async activateCodexCompliance() {
375
+ try {
376
+ // Initialize codex injector if not already done
377
+ let codexInjector = this.stateManager.get("processor:codex_injector");
378
+ if (!codexInjector) {
379
+ // Import and initialize codex injector
380
+ // Try import with .js extension first (for Node.js/test environment)
381
+ let CodexInjector;
382
+ try {
383
+ ({ CodexInjector } = await import("./codex-injector"));
384
+ }
385
+ catch (importError) {
386
+ frameworkLogger.log("boot-orchestrator", "codex-injector-load-failed", "error", { error: importError, message: "Failed to load codex injector" });
387
+ return false;
388
+ }
389
+ codexInjector = new CodexInjector();
390
+ this.stateManager.set("processor:codex_injector", codexInjector);
391
+ }
392
+ // Enable compliance validation
393
+ this.stateManager.set("compliance:active", true);
394
+ this.stateManager.set("compliance:validator", codexInjector);
395
+ this.stateManager.set("compliance:activated_at", Date.now());
396
+ return true;
397
+ }
398
+ catch (error) {
399
+ frameworkLogger.log("boot-orchestrator", "codex-compliance-failed", "error", { error, message: "Failed to activate codex compliance" });
400
+ return false;
401
+ }
402
+ }
403
+ async initializeSecurityComponents() {
404
+ try {
405
+ this.stateManager.set("security:hardener", securityHardener);
406
+ this.stateManager.set("security:headers_middleware", securityHeadersMiddleware);
407
+ this.stateManager.set("security:initialized", true);
408
+ }
409
+ catch (error) {
410
+ frameworkLogger.log("boot-orchestrator", "security-init-failed", "error", { error, message: "Failed to initialize security components" });
411
+ throw error;
412
+ }
413
+ }
414
+ async finalizeSecurityIntegration() {
415
+ try {
416
+ const auditResult = await this.runInitialSecurityAudit();
417
+ this.stateManager.set("security:initial_audit", auditResult);
418
+ const hardener = this.stateManager.get("security:hardener");
419
+ if (hardener?.config?.enableSecureHeaders) {
420
+ this.stateManager.set("security:headers_active", true);
421
+ }
422
+ }
423
+ catch (error) {
424
+ frameworkLogger.log("boot-orchestrator", "security-finalize-failed", "error", { error, message: "Failed to finalize security integration" });
425
+ }
426
+ }
427
+ async runInitialSecurityAudit() {
428
+ try {
429
+ const securityAuditorPath = pathResolver.resolveModulePath("security/security-auditor");
430
+ const { SecurityAuditor } = await import(securityAuditorPath);
431
+ const auditor = new SecurityAuditor();
432
+ const result = await auditor.auditProject(process.cwd());
433
+ if (result.score < 80) {
434
+ frameworkLogger.log("boot-orchestrator", "low-security-score", "warning", {
435
+ score: result.score,
436
+ message: `Initial security score: ${result.score}/100 (target: 80+)`,
437
+ });
438
+ }
439
+ return result;
440
+ }
441
+ catch (error) {
442
+ frameworkLogger.log("boot-orchestrator", "security-audit-failed", "error", { error, message: "Failed to run initial security audit" });
443
+ return { score: 0, issues: [] };
444
+ }
445
+ }
446
+ /**
447
+ * Validate processor health during boot
448
+ */
449
+ async validateProcessorHealth() {
450
+ try {
451
+ const healthStatus = this.processorManager.getProcessorHealth();
452
+ const failedProcessors = healthStatus.filter((h) => h.status === "failed");
453
+ if (failedProcessors.length > 0) {
454
+ frameworkLogger.log("boot-orchestrator", "processor-health-failed", "error", {
455
+ failedProcessors: failedProcessors.map((p) => p.name),
456
+ message: `${failedProcessors.length} processors failed health check`,
457
+ });
458
+ return false;
459
+ }
460
+ const degradedProcessors = healthStatus.filter((h) => h.status === "degraded");
461
+ if (degradedProcessors.length > 0) {
462
+ frameworkLogger.log("boot-orchestrator", "processors-degraded", "warning", {
463
+ degradedProcessors: degradedProcessors.map((p) => p.name),
464
+ message: `${degradedProcessors.length} processors are degraded`,
465
+ });
466
+ }
467
+ return true;
468
+ }
469
+ catch (error) {
470
+ frameworkLogger.log("boot-orchestrator", "processor-health-validation-failed", "error", { error, message: "Processor health validation failed" });
471
+ return false;
472
+ }
473
+ }
474
+ /**
475
+ * Get current boot status information
476
+ */
477
+ getBootStatus() {
478
+ const agentsLoaded = this.stateManager.get("session:agents") || [];
479
+ const errors = [];
480
+ // Check for any stored errors
481
+ const storedErrors = this.stateManager.get("boot:errors");
482
+ if (Array.isArray(storedErrors)) {
483
+ errors.push(...storedErrors);
484
+ }
485
+ return {
486
+ success: this.stateManager.get("boot:success") || false,
487
+ orchestratorLoaded: !!this.stateManager.get("orchestrator"),
488
+ sessionManagementActive: this.stateManager.get("session:active") || false,
489
+ processorsActivated: this.stateManager.get("processor:active") || false,
490
+ enforcementEnabled: this.stateManager.get("enforcement:active") || false,
491
+ codexComplianceActive: this.stateManager.get("compliance:active") || false,
492
+ agentsLoaded: Array.isArray(agentsLoaded) ? agentsLoaded : [],
493
+ errors,
494
+ };
495
+ }
496
+ /**
497
+ * Set up comprehensive memory monitoring and alerting
498
+ */
499
+ setupMemoryMonitoring() {
500
+ // Start memory monitor
501
+ memoryMonitor.start();
502
+ advancedProfiler.start();
503
+ // CRITICAL FIX: Only add alert listener once to prevent memory leak
504
+ // Each BootOrchestrator instantiation was adding duplicate listeners
505
+ let currentListenerCount = 0;
506
+ try {
507
+ if (typeof memoryMonitor.listenerCount === "function") {
508
+ currentListenerCount = memoryMonitor.listenerCount("alert");
509
+ }
510
+ else if (memoryMonitor.listeners &&
511
+ typeof memoryMonitor.listeners === "function") {
512
+ currentListenerCount = memoryMonitor.listeners("alert").length;
513
+ }
514
+ }
515
+ catch (e) {
516
+ // Fallback: assume no listeners if we can't determine count
517
+ currentListenerCount = 0;
518
+ }
519
+ if (currentListenerCount === 0) {
520
+ // First time setup - add the memory alert handler
521
+ memoryMonitor.on("alert", (alert) => {
522
+ const level = alert.severity === "critical"
523
+ ? "error"
524
+ : alert.severity === "high"
525
+ ? "warn"
526
+ : "info";
527
+ frameworkLogger.log("boot-orchestrator", `🚨 MEMORY ALERT: ${alert.message}`, "error");
528
+ // Store alert in state for dashboard access
529
+ const alerts = this.stateManager.get("memory:alerts") || [];
530
+ alerts.push({
531
+ ...alert,
532
+ timestamp: Date.now(),
533
+ });
534
+ // Keep only last 100 alerts
535
+ if (alerts.length > 100) {
536
+ alerts.shift();
537
+ }
538
+ this.stateManager.set("memory:alerts", alerts);
539
+ // Log recommendations
540
+ alert.details.recommendations.forEach((rec) => {
541
+ frameworkLogger.log("boot-orchestrator", `💡 ${rec}`, "info");
542
+ });
543
+ });
544
+ }
545
+ // Log initial memory status
546
+ const initialStats = memoryMonitor.getCurrentStats();
547
+ frameworkLogger.log("boot-orchestrator", `🧠 Initial memory: ${initialStats.heapUsed.toFixed(1)}MB heap, ${initialStats.heapTotal.toFixed(1)}MB total`, "info");
548
+ // Store initial memory baseline
549
+ this.stateManager.set("memory:baseline", initialStats);
550
+ }
551
+ /**
552
+ * Perform comprehensive memory health check
553
+ */
554
+ getMemoryHealth() {
555
+ const summary = memoryMonitor.getSummary();
556
+ const issues = [];
557
+ // Check for memory issues
558
+ if (summary.current.heapUsed > 400) {
559
+ issues.push(`Critical heap usage: ${summary.current.heapUsed.toFixed(1)}MB`);
560
+ }
561
+ else if (summary.current.heapUsed > 200) {
562
+ issues.push(`High heap usage: ${summary.current.heapUsed.toFixed(1)}MB`);
563
+ }
564
+ if (summary.trend === "increasing") {
565
+ issues.push("Memory usage trending upward - potential leak detected");
566
+ }
567
+ if (summary.peak.heapUsed > 500) {
568
+ issues.push(`Peak usage exceeded safe limits: ${summary.peak.heapUsed.toFixed(1)}MB`);
569
+ }
570
+ return {
571
+ healthy: issues.length === 0,
572
+ issues,
573
+ metrics: summary,
574
+ };
575
+ }
576
+ /**
577
+ * Execute the boot sequence (internal framework initialization)
578
+ */
579
+ async executeBootSequence() {
580
+ const jobId = `boot-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
581
+ if (!this.shutdownInitialized) {
582
+ setupGracefulShutdown();
583
+ this.shutdownInitialized = true;
584
+ }
585
+ this.setupMemoryMonitoring();
586
+ frameworkLogger.log("boot-orchestrator", "executeBootSequence started", "info", { jobId });
587
+ const result = {
588
+ success: false,
589
+ orchestratorLoaded: false,
590
+ sessionManagementActive: false,
591
+ processorsActivated: false,
592
+ agentsLoaded: [],
593
+ enforcementEnabled: false,
594
+ codexComplianceActive: false,
595
+ errors: [],
596
+ };
597
+ try {
598
+ frameworkLogger.log("boot-orchestrator", "loading xray configuration", "info", { jobId });
599
+ // Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .strray fallbacks)
600
+ await this.loadStringRayConfiguration(jobId);
601
+ frameworkLogger.log("boot-orchestrator", "xray configuration loaded", "success", { jobId });
602
+ // Phase 1: Initialize core systems
603
+ frameworkLogger.log("boot-orchestrator", "initializing core systems", "info", { jobId });
604
+ result.orchestratorLoaded = await this.loadOrchestrator();
605
+ if (!result.orchestratorLoaded) {
606
+ frameworkLogger.log("boot-orchestrator", "orchestrator loading failed", "error", { jobId });
607
+ result.errors.push("Failed to load orchestrator");
608
+ return result;
609
+ }
610
+ frameworkLogger.log("boot-orchestrator", "orchestrator loaded successfully", "success", { jobId });
611
+ const delegationInitialized = await this.initializeDelegationSystem();
612
+ if (!delegationInitialized) {
613
+ frameworkLogger.log("boot-orchestrator", "delegation system initialization failed", "error", { jobId });
614
+ result.errors.push("Failed to initialize delegation system");
615
+ return result;
616
+ }
617
+ frameworkLogger.log("boot-orchestrator", "delegation system initialized", "success", { jobId });
618
+ // Phase 2: Session management
619
+ if (this.config.sessionManagement) {
620
+ result.sessionManagementActive =
621
+ await this.initializeSessionManagement();
622
+ if (!result.sessionManagementActive) {
623
+ frameworkLogger.log("boot-orchestrator", "session management initialization failed", "error", { jobId });
624
+ }
625
+ }
626
+ // Phase 2.5: Initialize activity logging from features.json config
627
+ try {
628
+ const { initializeActivityLogger } = await import("./activity-logger.js");
629
+ const activityConfig = featuresConfigLoader.loadConfig().activity_logging;
630
+ if (activityConfig?.enabled !== false) {
631
+ initializeActivityLogger({
632
+ enabled: activityConfig?.enabled ?? true,
633
+ log_path: activityConfig?.log_path,
634
+ });
635
+ frameworkLogger.log("boot-orchestrator", "activity logging initialized from config", "info", { jobId, enabled: activityConfig?.enabled ?? true });
636
+ }
637
+ }
638
+ catch (error) {
639
+ // Activity logger init failure is non-fatal
640
+ frameworkLogger.log("boot-orchestrator", "activity logging init skipped", "info", { jobId });
641
+ }
642
+ // Phase 3: Processors
643
+ if (this.config.processorActivation) {
644
+ frameworkLogger.log("boot-orchestrator", "activating processors", "info", { jobId });
645
+ result.processorsActivated = await this.activateProcessors(jobId);
646
+ if (!result.processorsActivated) {
647
+ frameworkLogger.log("boot-orchestrator", "processor activation failed", "error", { jobId });
648
+ result.errors.push("Failed to activate processors");
649
+ return result;
650
+ }
651
+ else {
652
+ frameworkLogger.log("boot-orchestrator", "processors activated successfully", "success", { jobId });
653
+ }
654
+ frameworkLogger.log("boot-orchestrator", "processors activated successfully", "success", { jobId });
655
+ // Validate processor health
656
+ const healthValid = await this.validateProcessorHealth();
657
+ if (!healthValid) {
658
+ frameworkLogger.log("boot-orchestrator", "processor health validation failed", "error", { jobId });
659
+ result.errors.push("Processor health validation failed");
660
+ return result;
661
+ }
662
+ frameworkLogger.log("boot-orchestrator", "processor health validated", "success", { jobId });
663
+ }
664
+ // Phase 4: Load agents
665
+ if (this.config.agentLoading) {
666
+ result.agentsLoaded = await this.loadRemainingAgents(jobId);
667
+ }
668
+ // Phase 4.5: Initialize plugin system
669
+ if (await this.initializePluginSystem(jobId)) {
670
+ frameworkLogger.log("boot-orchestrator", "plugin system initialized", "success", { jobId });
671
+ }
672
+ else {
673
+ frameworkLogger.log("boot-orchestrator", "plugin system init failed", "warning", { jobId });
674
+ }
675
+ // Phase 5: Security & compliance
676
+ if (this.config.enableEnforcement) {
677
+ frameworkLogger.log("boot-orchestrator", "enabling enforcement", "info", { jobId });
678
+ result.enforcementEnabled = await this.enableEnforcement();
679
+ if (!result.enforcementEnabled) {
680
+ frameworkLogger.log("boot-orchestrator", "enforcement enable failed", "error", { jobId });
681
+ result.errors.push("Failed to enable enforcement");
682
+ return result;
683
+ }
684
+ else {
685
+ frameworkLogger.log("boot-orchestrator", "enforcement enabled successfully", "success", { jobId });
686
+ }
687
+ }
688
+ if (this.config.codexValidation) {
689
+ frameworkLogger.log("boot-orchestrator", "activating codex compliance", "info", { jobId });
690
+ result.codexComplianceActive = await this.activateCodexCompliance();
691
+ if (!result.codexComplianceActive) {
692
+ frameworkLogger.log("boot-orchestrator", "codex compliance activation failed", "error", { jobId });
693
+ result.errors.push("Failed to activate codex compliance");
694
+ return result;
695
+ }
696
+ else {
697
+ frameworkLogger.log("boot-orchestrator", "codex compliance activated successfully", "success", { jobId });
698
+ }
699
+ }
700
+ // Finalize security integration
701
+ await this.finalizeSecurityIntegration();
702
+ // Initialize governance (Dynamo Solar SSOT + GovernanceService)
703
+ // This must happen early so GovernanceService has the managed integration ready.
704
+ const govConfig = featuresConfigLoader.config?.governance ??
705
+ featuresConfigLoader.config?.inference_governance;
706
+ if (govConfig?.enabled !== false) {
707
+ try {
708
+ await initializeGovernanceIntegration();
709
+ frameworkLogger.log("boot-orchestrator", "governance-initialized", "info", {
710
+ message: "Dynamo Solar SSOT integration initialized during boot",
711
+ });
712
+ }
713
+ catch (err) {
714
+ frameworkLogger.log("boot-orchestrator", "governance-init-warning", "warning", {
715
+ message: "Failed to initialize governance integration during boot",
716
+ error: err instanceof Error ? err.message : String(err),
717
+ });
718
+ }
719
+ }
720
+ result.success = true;
721
+ }
722
+ catch (error) {
723
+ result.errors.push(`Boot sequence error: ${error}`);
724
+ }
725
+ // Store boot result in state manager for getBootStatus
726
+ this.stateManager.set("boot:success", result.success);
727
+ this.stateManager.set("boot:errors", result.errors);
728
+ return result;
729
+ }
730
+ // Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .strray fallbacks)
731
+ async loadStringRayConfiguration(jobId) {
732
+ try {
733
+ // Consumer runtime compat shim from prior StringRay releases (1-line min per Scope Rule; primary xray paths + XRAY_||STRRAY_ env + .strray fallbacks)
734
+ const stringRayConfig = {
735
+ version: "1.22.67",
736
+ codex_enabled: true,
737
+ codex_version: "v1.7.5",
738
+ codex_terms: [
739
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
740
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
741
+ 38, 39, 40, 41, 42, 43,
742
+ ],
743
+ monitoring_metrics: [
744
+ "bundle-size",
745
+ "test-coverage",
746
+ "code-duplication",
747
+ "build-time",
748
+ "error-rate",
749
+ ],
750
+ monitoring_alerts: [
751
+ "threshold-violations",
752
+ "security-issues",
753
+ "performance-degradation",
754
+ "test-failures",
755
+ ],
756
+ agent_capabilities: {
757
+ enforcer: [
758
+ "compliance-monitoring",
759
+ "threshold-enforcement",
760
+ "automation-orchestration",
761
+ ],
762
+ architect: [
763
+ "design-review",
764
+ "architecture-validation",
765
+ "dependency-analysis",
766
+ ],
767
+ orchestrator: [
768
+ "task-coordination",
769
+ "multi-agent-orchestration",
770
+ "workflow-management",
771
+ ],
772
+ "bug-triage-specialist": [
773
+ "error-analysis",
774
+ "root-cause-identification",
775
+ "fix-suggestions",
776
+ ],
777
+ "code-reviewer": [
778
+ "code-quality-assessment",
779
+ "best-practice-validation",
780
+ "security-review",
781
+ ],
782
+ "security-auditor": [
783
+ "vulnerability-detection",
784
+ "threat-analysis",
785
+ "security-validation",
786
+ ],
787
+ refactorer: ["code-modernization", "debt-reduction", "consolidation"],
788
+ "testing-lead": [
789
+ "test-strategy-design",
790
+ "coverage-optimization",
791
+ "behavioral-testing",
792
+ ],
793
+ },
794
+ };
795
+ // Store configuration in state manager for use by other components
796
+ this.stateManager.set("strray:config", stringRayConfig);
797
+ this.stateManager.set("strray:version", stringRayConfig.version);
798
+ this.stateManager.set("strray:codex_enabled", stringRayConfig.codex_enabled);
799
+ this.stateManager.set("strray:codex_terms", stringRayConfig.codex_terms);
800
+ this.stateManager.set("strray:monitoring_metrics", stringRayConfig.monitoring_metrics);
801
+ this.stateManager.set("strray:monitoring_alerts", stringRayConfig.monitoring_alerts);
802
+ this.stateManager.set("strray:agent_capabilities", stringRayConfig.agent_capabilities);
803
+ await frameworkLogger.log("boot-orchestrator", "configuration-loaded", "success", { jobId });
804
+ }
805
+ catch (error) {
806
+ frameworkLogger.log("boot-orchestrator", "config-load-warning", "warning", { error, message: "Failed to load xray configuration" });
807
+ // Continue with defaults if loading fails
808
+ }
809
+ }
810
+ }
811
+ // Export singleton instance
812
+ export const bootOrchestrator = new BootOrchestrator();