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,19 @@
1
+ /**
2
+ * Rule Enforcement Core Components
3
+ *
4
+ * This module exports the core components of the rule enforcement system.
5
+ * These components handle rule storage, hierarchy, execution, and fixing.
6
+ *
7
+ * Phase 5 refactoring: Extracted from RuleEnforcer.
8
+ *
9
+ * @module enforcement/core
10
+ * @version 1.0.0
11
+ */
12
+ // Rule storage and management
13
+ export { RuleRegistry } from './rule-registry.js';
14
+ // Rule dependency management
15
+ export { RuleHierarchy } from './rule-hierarchy.js';
16
+ // Validation execution orchestration
17
+ export { RuleExecutor } from './rule-executor.js';
18
+ // Violation fix delegation
19
+ export { ViolationFixer } from './violation-fixer.js';
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Rule Executor - Orchestrate validation execution
3
+ *
4
+ * This class orchestrates the execution of validation rules, handling
5
+ * single rule execution, batch execution, parallel vs serial execution,
6
+ * dependency ordering, timeouts, and error handling.
7
+ *
8
+ * Phase 5 refactoring: Extracted from RuleEnforcer.
9
+ *
10
+ * @module enforcement/core
11
+ * @version 1.0.0
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const executor = new RuleExecutor(registry, hierarchy, validatorRegistry);
16
+ *
17
+ * // Execute all applicable rules for an operation
18
+ * const report = await executor.execute('write', context);
19
+ *
20
+ * // Execute a specific rule
21
+ * const result = await executor.executeSingle('no-duplicate-code', context);
22
+ *
23
+ * // Execute multiple rules in batch
24
+ * const results = await executor.executeBatch(['rule1', 'rule2'], context);
25
+ * ```
26
+ */
27
+ import { frameworkLogger } from '../../core/framework-logger.js';
28
+ import { isRuleValidationResult, } from '../types.js';
29
+ /**
30
+ * RuleExecutor orchestrates the execution of validation rules.
31
+ *
32
+ * Key responsibilities:
33
+ * - Execute single rules
34
+ * - Execute rules in batch (parallel or serial)
35
+ * - Sort rules by dependency order
36
+ * - Handle timeouts and errors
37
+ * - Generate validation reports
38
+ */
39
+ export class RuleExecutor {
40
+ registry;
41
+ hierarchy;
42
+ validatorRegistry;
43
+ /** Default timeout for rule validation in milliseconds */
44
+ DEFAULT_TIMEOUT_MS = 30000;
45
+ constructor(registry, hierarchy, validatorRegistry) {
46
+ this.registry = registry;
47
+ this.hierarchy = hierarchy;
48
+ this.validatorRegistry = validatorRegistry;
49
+ }
50
+ /**
51
+ * Execute validation for an operation against all applicable rules.
52
+ *
53
+ * This method:
54
+ * 1. Gets all applicable rules for the operation
55
+ * 2. Sorts them by dependency order
56
+ * 3. Executes each rule
57
+ * 4. Collects results and generates a validation report
58
+ *
59
+ * @param operation - The operation being performed (e.g., 'write', 'create')
60
+ * @param context - Validation context with code and operation info
61
+ * @param options - Optional execution options
62
+ * @returns Promise resolving to validation report
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const report = await executor.execute('write', {
67
+ * operation: 'write',
68
+ * files: ['src/index.ts'],
69
+ * newCode: 'console.log("hello");'
70
+ * });
71
+ *
72
+ * console.log(report.passed); // false if any rule failed
73
+ * console.log(report.errors); // Array of error messages
74
+ * ```
75
+ */
76
+ async execute(operation, context, options) {
77
+ const applicableRules = this.getApplicableRules(operation, context);
78
+ await frameworkLogger.log('rule-executor', 'execute-start', 'info', {
79
+ operation,
80
+ ruleCount: applicableRules.length,
81
+ rules: applicableRules.map(r => r.id),
82
+ });
83
+ const results = [];
84
+ const errors = [];
85
+ const warnings = [];
86
+ // Always sort rules by dependency order for execute()
87
+ const sortedRules = this.sortByDependencyOrder(applicableRules);
88
+ // Execute rules
89
+ if (options?.parallel) {
90
+ // Execute in parallel
91
+ const batchResults = await this.executeParallel(sortedRules, context, options);
92
+ this.processResults(batchResults, sortedRules, results, errors, warnings);
93
+ }
94
+ else {
95
+ // Execute serially
96
+ const executedRules = new Set();
97
+ for (const rule of sortedRules) {
98
+ // Check if dependencies are satisfied
99
+ if (!this.hierarchy.isDependencySatisfied(rule.id, executedRules)) {
100
+ const deps = this.hierarchy.getDependencies(rule.id);
101
+ warnings.push(`${rule.id}: dependencies not satisfied (requires: ${deps.join(', ')})`);
102
+ executedRules.add(rule.id);
103
+ continue;
104
+ }
105
+ try {
106
+ const result = await this.executeRuleWithTimeout(rule, context, options?.timeoutMs || this.DEFAULT_TIMEOUT_MS);
107
+ this.processResult(result, rule, results, errors, warnings);
108
+ executedRules.add(rule.id);
109
+ // Stop on first error if requested
110
+ if (options?.stopOnError && errors.length > 0) {
111
+ break;
112
+ }
113
+ }
114
+ catch (error) {
115
+ const errorMessage = `Rule ${rule.name} failed: ${error instanceof Error ? error.message : String(error)}`;
116
+ errors.push(errorMessage);
117
+ executedRules.add(rule.id);
118
+ await frameworkLogger.log('rule-executor', 'rule-execution-error', 'error', {
119
+ ruleId: rule.id,
120
+ operation,
121
+ error: errorMessage,
122
+ });
123
+ // Stop on first error if requested
124
+ if (options?.stopOnError) {
125
+ break;
126
+ }
127
+ }
128
+ }
129
+ }
130
+ const report = {
131
+ operation,
132
+ passed: errors.length === 0,
133
+ errors,
134
+ warnings,
135
+ results,
136
+ timestamp: new Date(),
137
+ };
138
+ await frameworkLogger.log('rule-executor', 'execute-complete', report.passed ? 'success' : 'error', {
139
+ operation,
140
+ passed: report.passed,
141
+ errorCount: errors.length,
142
+ warningCount: warnings.length,
143
+ });
144
+ return report;
145
+ }
146
+ /**
147
+ * Execute a single rule by ID.
148
+ *
149
+ * @param ruleId - The ID of the rule to execute
150
+ * @param context - Validation context
151
+ * @returns Promise resolving to validation result
152
+ * @throws Error if rule not found or not enabled
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const result = await executor.executeSingle('no-duplicate-code', context);
157
+ * console.log(result.passed); // true or false
158
+ * ```
159
+ */
160
+ async executeSingle(ruleId, context) {
161
+ const rule = this.registry.getRule(ruleId);
162
+ if (!rule) {
163
+ throw new Error(`Rule with ID "${ruleId}" not found`);
164
+ }
165
+ if (!rule.enabled) {
166
+ throw new Error(`Rule "${ruleId}" is disabled`);
167
+ }
168
+ return this.executeRuleWithTimeout(rule, context, this.DEFAULT_TIMEOUT_MS);
169
+ }
170
+ /**
171
+ * Execute multiple rules in batch.
172
+ *
173
+ * Supports parallel or serial execution based on options.
174
+ * Optionally sorts rules by dependency order before execution.
175
+ *
176
+ * @param ruleIds - Array of rule IDs to execute
177
+ * @param context - Validation context
178
+ * @param options - Optional batch execution options
179
+ * @returns Promise resolving to array of validation results
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * const results = await executor.executeBatch(
184
+ * ['no-duplicate-code', 'tests-required'],
185
+ * context,
186
+ * { parallel: true, sortByDependencies: true }
187
+ * );
188
+ * ```
189
+ */
190
+ async executeBatch(ruleIds, context, options) {
191
+ // Get rule definitions
192
+ const rules = [];
193
+ for (const id of ruleIds) {
194
+ const rule = this.registry.getRule(id);
195
+ if (rule && rule.enabled) {
196
+ rules.push(rule);
197
+ }
198
+ }
199
+ // Sort by dependencies if requested
200
+ const sortedRules = options?.sortByDependencies !== false
201
+ ? this.sortByDependencyOrder(rules)
202
+ : rules;
203
+ if (options?.parallel) {
204
+ return this.executeParallel(sortedRules, context, options);
205
+ }
206
+ else {
207
+ const results = [];
208
+ for (const rule of sortedRules) {
209
+ const result = await this.executeRuleWithTimeout(rule, context, options?.timeoutMs || this.DEFAULT_TIMEOUT_MS);
210
+ results.push(result);
211
+ if (options?.stopOnError && !result.passed) {
212
+ break;
213
+ }
214
+ }
215
+ return results;
216
+ }
217
+ }
218
+ /**
219
+ * Execute a rule with timeout protection.
220
+ *
221
+ * @param rule - The rule definition to execute
222
+ * @param context - Validation context
223
+ * @param timeoutMs - Timeout in milliseconds
224
+ * @returns Promise resolving to validation result
225
+ */
226
+ async executeRuleWithTimeout(rule, context, timeoutMs) {
227
+ return new Promise((resolve, reject) => {
228
+ const timeoutId = setTimeout(() => {
229
+ reject(new Error(`Rule ${rule.id} timed out after ${timeoutMs}ms`));
230
+ }, timeoutMs);
231
+ rule.validator(context)
232
+ .then(result => {
233
+ clearTimeout(timeoutId);
234
+ resolve(result);
235
+ })
236
+ .catch(error => {
237
+ clearTimeout(timeoutId);
238
+ reject(error);
239
+ });
240
+ });
241
+ }
242
+ /**
243
+ * Execute rules in parallel.
244
+ *
245
+ * @param rules - Array of rules to execute
246
+ * @param context - Validation context
247
+ * @param options - Execution options
248
+ * @returns Promise resolving to array of results
249
+ */
250
+ async executeParallel(rules, context, options) {
251
+ const concurrency = options?.concurrency || rules.length;
252
+ const results = [];
253
+ // Process in chunks based on concurrency limit
254
+ for (let i = 0; i < rules.length; i += concurrency) {
255
+ const chunk = rules.slice(i, i + concurrency);
256
+ const chunkPromises = chunk.map(rule => this.executeRuleWithTimeout(rule, context, options?.timeoutMs || this.DEFAULT_TIMEOUT_MS).catch(error => ({
257
+ passed: false,
258
+ message: `Rule ${rule.id} failed: ${error instanceof Error ? error.message : String(error)}`,
259
+ })));
260
+ const chunkResults = await Promise.all(chunkPromises);
261
+ results.push(...chunkResults);
262
+ // Stop on first error if requested
263
+ if (options?.stopOnError && chunkResults.some(r => !r.passed)) {
264
+ break;
265
+ }
266
+ }
267
+ return results;
268
+ }
269
+ /**
270
+ * Sort rules by dependency order using the hierarchy.
271
+ *
272
+ * @param rules - Array of rules to sort
273
+ * @returns Sorted array of rules
274
+ */
275
+ sortByDependencyOrder(rules) {
276
+ const ruleIds = rules.map(r => r.id);
277
+ const orderedIds = this.hierarchy.getExecutionOrder(ruleIds);
278
+ // Map ordered IDs back to rule definitions
279
+ const ruleMap = new Map(rules.map(r => [r.id, r]));
280
+ return orderedIds
281
+ .map(id => ruleMap.get(id))
282
+ .filter((r) => r !== undefined);
283
+ }
284
+ /**
285
+ * Process a single result and categorize errors/warnings.
286
+ */
287
+ processResult(result, rule, results, errors, warnings) {
288
+ if (isRuleValidationResult(result) && result.passed === false) {
289
+ results.push(result);
290
+ if (rule.severity === 'error' || rule.severity === 'blocking' || rule.severity === 'high') {
291
+ errors.push(`${rule.name}: ${result.message}`);
292
+ }
293
+ else if (rule.severity === 'warning') {
294
+ warnings.push(`${rule.name}: ${result.message}`);
295
+ }
296
+ }
297
+ }
298
+ /**
299
+ * Process multiple results and categorize errors/warnings.
300
+ */
301
+ processResults(batchResults, rules, results, errors, warnings) {
302
+ batchResults.forEach((result, index) => {
303
+ const rule = rules[index];
304
+ if (rule && isRuleValidationResult(result) && result.passed === false) {
305
+ results.push(result);
306
+ if (rule.severity === 'error' || rule.severity === 'blocking' || rule.severity === 'high') {
307
+ errors.push(`${rule.name}: ${result.message}`);
308
+ }
309
+ else if (rule.severity === 'warning') {
310
+ warnings.push(`${rule.name}: ${result.message}`);
311
+ }
312
+ }
313
+ });
314
+ }
315
+ /**
316
+ * Get applicable rules for an operation and context.
317
+ *
318
+ * @param operation - The operation being performed
319
+ * @param context - Validation context
320
+ * @returns Array of applicable rule definitions
321
+ */
322
+ getApplicableRules(operation, context) {
323
+ return this.registry.getRules().filter(rule => this.isRuleApplicable(rule, operation, context));
324
+ }
325
+ /**
326
+ * Check if a rule is applicable to the current operation.
327
+ *
328
+ * @param rule - The rule definition
329
+ * @param operation - The operation being performed
330
+ * @param context - Validation context
331
+ * @returns true if the rule is applicable
332
+ */
333
+ isRuleApplicable(rule, operation, context) {
334
+ if (!rule.enabled)
335
+ return false;
336
+ // Check operation type for specific rules
337
+ switch (rule.id) {
338
+ case 'tests-required':
339
+ return operation === 'write' || operation === 'create';
340
+ case 'no-duplicate-code':
341
+ return operation === 'write' && !!context.newCode;
342
+ case 'no-over-engineering':
343
+ return operation === 'write' && !!context.newCode;
344
+ case 'resolve-all-errors':
345
+ return operation === 'write' && !!context.newCode;
346
+ case 'prevent-infinite-loops':
347
+ return operation === 'write' && !!context.newCode;
348
+ case 'state-management-patterns':
349
+ return operation === 'write' && !!context.newCode;
350
+ case 'import-consistency':
351
+ return operation === 'write' && !!context.newCode;
352
+ case 'documentation-required':
353
+ return operation === 'write' || operation === 'modify';
354
+ case 'clean-debug-logs':
355
+ return operation === 'write' && !!context.newCode;
356
+ case 'console-log-usage':
357
+ return operation === 'write' && !!context.newCode;
358
+ case 'src-dist-integrity':
359
+ return ((operation === 'write' || operation === 'copy' || operation === 'modify') &&
360
+ !!context.files);
361
+ default:
362
+ return true;
363
+ }
364
+ }
365
+ }
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Rule Hierarchy - Manage rule dependencies and execution order
3
+ *
4
+ * This class manages rule dependencies and calculates execution order.
5
+ * It uses topological sorting to ensure dependencies are validated before dependents.
6
+ *
7
+ * Phase 5 refactoring: Extracted from RuleEnforcer.
8
+ *
9
+ * @module enforcement/core
10
+ * @version 1.0.0
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const hierarchy = new RuleHierarchy();
15
+ * hierarchy.addDependency('tests-required', ['no-duplicate-code']);
16
+ * hierarchy.addDependency('memory-optimization', ['context-analysis-integration']);
17
+ *
18
+ * const order = hierarchy.getExecutionOrder(['tests-required', 'memory-optimization']);
19
+ * // Result: ['no-duplicate-code', 'tests-required', 'context-analysis-integration', 'memory-optimization']
20
+ * ```
21
+ */
22
+ /**
23
+ * RuleHierarchy manages rule dependency relationships and execution ordering.
24
+ *
25
+ * Key responsibilities:
26
+ * - Track rule dependencies (A depends on B)
27
+ * - Calculate execution order via topological sort
28
+ * - Detect circular dependencies
29
+ * - Check dependency satisfaction
30
+ */
31
+ export class RuleHierarchy {
32
+ /** Map of rule IDs to their dependencies */
33
+ dependencies = new Map();
34
+ /** Map of rule IDs to rules that depend on them */
35
+ dependents = new Map();
36
+ /**
37
+ * Add a dependency relationship.
38
+ * The rule will be executed after all its dependencies.
39
+ *
40
+ * @param ruleId - The rule that depends on others
41
+ * @param dependsOn - Array of rule IDs that must be executed first
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * hierarchy.addDependency('tests-required', ['no-duplicate-code']);
46
+ * // tests-required will be validated after no-duplicate-code
47
+ * ```
48
+ */
49
+ addDependency(ruleId, dependsOn) {
50
+ // Add forward dependency relationship
51
+ if (!this.dependencies.has(ruleId)) {
52
+ this.dependencies.set(ruleId, new Set());
53
+ }
54
+ dependsOn.forEach(dep => this.dependencies.get(ruleId).add(dep));
55
+ // Track reverse relationship (dependents)
56
+ dependsOn.forEach(dep => {
57
+ if (!this.dependents.has(dep)) {
58
+ this.dependents.set(dep, new Set());
59
+ }
60
+ this.dependents.get(dep).add(ruleId);
61
+ });
62
+ }
63
+ /**
64
+ * Get all dependencies for a rule.
65
+ *
66
+ * @param ruleId - The rule to get dependencies for
67
+ * @returns Array of rule IDs that the rule depends on
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const deps = hierarchy.getDependencies('tests-required');
72
+ * console.log(deps); // ['no-duplicate-code']
73
+ * ```
74
+ */
75
+ getDependencies(ruleId) {
76
+ const deps = this.dependencies.get(ruleId);
77
+ return deps ? Array.from(deps) : [];
78
+ }
79
+ /**
80
+ * Get all rules that depend on the given rule.
81
+ *
82
+ * @param ruleId - The rule to get dependents for
83
+ * @returns Array of rule IDs that depend on this rule
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const dependents = hierarchy.getDependents('no-duplicate-code');
88
+ * console.log(dependents); // ['tests-required']
89
+ * ```
90
+ */
91
+ getDependents(ruleId) {
92
+ const deps = this.dependents.get(ruleId);
93
+ return deps ? Array.from(deps) : [];
94
+ }
95
+ /**
96
+ * Get the execution order for a set of rules using topological sort.
97
+ * Rules are returned in order such that dependencies come before dependents.
98
+ *
99
+ * Uses Kahn's algorithm for topological sorting.
100
+ *
101
+ * @param ruleIds - Array of rule IDs to order
102
+ * @returns Sorted array of rule IDs in dependency order
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const order = hierarchy.getExecutionOrder(['tests-required', 'no-duplicate-code']);
107
+ * // Result: ['no-duplicate-code', 'tests-required']
108
+ * ```
109
+ */
110
+ getExecutionOrder(ruleIds) {
111
+ if (ruleIds.length === 0)
112
+ return [];
113
+ // Build in-degree map for rules in the set
114
+ const inDegree = new Map();
115
+ const adjacencyList = new Map();
116
+ // Initialize
117
+ ruleIds.forEach(id => {
118
+ inDegree.set(id, 0);
119
+ adjacencyList.set(id, new Set());
120
+ });
121
+ // Calculate in-degrees and adjacency list
122
+ ruleIds.forEach(id => {
123
+ const deps = this.getDependencies(id);
124
+ deps.forEach(dep => {
125
+ // Only count dependencies that are in the rule set
126
+ if (ruleIds.includes(dep)) {
127
+ inDegree.set(id, (inDegree.get(id) || 0) + 1);
128
+ adjacencyList.get(dep).add(id);
129
+ }
130
+ });
131
+ });
132
+ // Kahn's algorithm
133
+ const result = [];
134
+ const queue = [];
135
+ // Start with nodes that have no dependencies
136
+ inDegree.forEach((degree, id) => {
137
+ if (degree === 0)
138
+ queue.push(id);
139
+ });
140
+ while (queue.length > 0) {
141
+ const current = queue.shift();
142
+ result.push(current);
143
+ const dependents = adjacencyList.get(current) || new Set();
144
+ dependents.forEach(dependent => {
145
+ const newDegree = (inDegree.get(dependent) || 0) - 1;
146
+ inDegree.set(dependent, newDegree);
147
+ if (newDegree === 0) {
148
+ queue.push(dependent);
149
+ }
150
+ });
151
+ }
152
+ // If not all rules were processed, there's a circular dependency
153
+ if (result.length !== ruleIds.length) {
154
+ // Return rules in original order if topological sort fails
155
+ // This ensures we still execute rules even with cycles
156
+ return [...ruleIds];
157
+ }
158
+ return result;
159
+ }
160
+ /**
161
+ * Check if any circular dependencies exist in the hierarchy.
162
+ *
163
+ * @returns true if circular dependencies exist, false otherwise
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * if (hierarchy.hasCircularDependencies()) {
168
+ * console.error('Circular dependencies detected!');
169
+ * }
170
+ * ```
171
+ */
172
+ hasCircularDependencies() {
173
+ return this.findCircularDependencies().length > 0;
174
+ }
175
+ /**
176
+ * Find all circular dependency cycles.
177
+ * Uses DFS to detect cycles in the dependency graph.
178
+ *
179
+ * @returns Array of cycles, where each cycle is an array of rule IDs
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * const cycles = hierarchy.findCircularDependencies();
184
+ * // cycles might be [['rule-a', 'rule-b', 'rule-c']]
185
+ * ```
186
+ */
187
+ findCircularDependencies() {
188
+ const cycles = [];
189
+ const visited = new Set();
190
+ const recursionStack = new Set();
191
+ const dfs = (node, path) => {
192
+ if (recursionStack.has(node)) {
193
+ // Found a cycle
194
+ const cycleStart = path.indexOf(node);
195
+ if (cycleStart !== -1) {
196
+ const cycle = path.slice(cycleStart);
197
+ cycles.push(cycle);
198
+ }
199
+ return;
200
+ }
201
+ if (visited.has(node)) {
202
+ return;
203
+ }
204
+ visited.add(node);
205
+ recursionStack.add(node);
206
+ path.push(node);
207
+ const deps = this.getDependencies(node);
208
+ deps.forEach(dep => {
209
+ dfs(dep, [...path]);
210
+ });
211
+ recursionStack.delete(node);
212
+ };
213
+ // Check all nodes
214
+ this.dependencies.forEach((_, ruleId) => {
215
+ if (!visited.has(ruleId)) {
216
+ dfs(ruleId, []);
217
+ }
218
+ });
219
+ return cycles;
220
+ }
221
+ /**
222
+ * Check if all dependencies for a rule have been executed.
223
+ *
224
+ * @param ruleId - The rule to check
225
+ * @param executedRules - Set of rule IDs that have already been executed
226
+ * @returns true if all dependencies are satisfied, false otherwise
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * const executed = new Set(['no-duplicate-code']);
231
+ * if (hierarchy.isDependencySatisfied('tests-required', executed)) {
232
+ * // Safe to execute tests-required
233
+ * }
234
+ * ```
235
+ */
236
+ isDependencySatisfied(ruleId, executedRules) {
237
+ const deps = this.getDependencies(ruleId);
238
+ return deps.every(dep => executedRules.has(dep));
239
+ }
240
+ /**
241
+ * Clear all dependency relationships.
242
+ * Useful for testing or reinitializing.
243
+ */
244
+ clear() {
245
+ this.dependencies.clear();
246
+ this.dependents.clear();
247
+ }
248
+ /**
249
+ * Get all rules that have dependencies registered.
250
+ *
251
+ * @returns Array of rule IDs with dependencies
252
+ */
253
+ getAllRules() {
254
+ const rules = new Set();
255
+ this.dependencies.forEach((_, ruleId) => rules.add(ruleId));
256
+ this.dependents.forEach((_, ruleId) => rules.add(ruleId));
257
+ return Array.from(rules);
258
+ }
259
+ }