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,909 @@
1
+ /**
2
+ * Enforcer Tools - Integration layer between enforcer agent and rule enforcement system
3
+ * Provides tools for codex compliance, rule validation, and contextual analysis enforcement
4
+ */
5
+ import { ruleEnforcer, } from "./rule-enforcer.js";
6
+ import { frameworkLogger } from "../core/framework-logger.js";
7
+ import { AgentDelegator } from "../delegation/agent-delegator.js";
8
+ import { StringRayStateManager } from "../state/state-manager.js";
9
+ import { strRayConfigLoader } from "../core/config-loader.js";
10
+ import * as fs from "fs";
11
+ import * as path from "path";
12
+ // Minimum confidence to auto-delegate to another agent
13
+ const DELEGATION_CONFIDENCE_THRESHOLD = 0.50;
14
+ // Agents that enforcer should NOT delegate to (enforcer handles these itself)
15
+ const ENFORCER_HANDLES = new Set(["code-reviewer"]);
16
+ // Community skills are OPTIONAL - they may not be installed
17
+ // These mappings have lower confidence (0.55-0.7) since skills may not be available
18
+ // The system will fall back gracefully if the skill isn't installed
19
+ const ROUTING_MAPPINGS = [
20
+ // Core built-in skills (high confidence)
21
+ { keywords: ["write", "file", "create"], skill: "code-review", agent: "code-reviewer", confidence: 0.9 },
22
+ { keywords: ["review", "audit", "assess", "evaluate", "check", "inspect", "quality", "validate", "code-review"], skill: "code-review", agent: "code-reviewer", confidence: 0.9 },
23
+ { keywords: ["test", "testing", "jest", "coverage", "unit", "e2e", "cypress", "spec", "verify"], skill: "testing-best-practices", agent: "testing-lead", confidence: 0.95 },
24
+ { keywords: ["fix", "debug", "triage", "broken", "error", "crash", "bug", "issue", "resolve"], skill: "bug-triage", agent: "bug-triage-specialist", confidence: 0.92 },
25
+ { keywords: ["security", "vulnerability", "threat", "scan", "risk", "exploit", "secure", "pentest"], skill: "security-audit", agent: "security-auditor", confidence: 0.95 },
26
+ { keywords: ["refactor", "cleanup", "improve", "restructure", "modernize", "debt"], skill: "refactoring-strategies", agent: "refactorer", confidence: 0.92 },
27
+ { keywords: ["performance", "optimize", "bottleneck", "benchmark", "profile", "speed"], skill: "performance-optimization", agent: "performance-engineer", confidence: 0.93 },
28
+ { keywords: ["frontend", "react", "vue", "angular", "ui", "ux", "interface", "component"], skill: "frontend-development", agent: "frontend-engineer", confidence: 0.95 },
29
+ { keywords: ["backend", "api", "server", "microservice", "endpoint"], skill: "backend-development", agent: "backend-engineer", confidence: 0.95 },
30
+ { keywords: ["docs", "documentation", "readme", "wiki", "guide", "manual"], skill: "documentation-generation", agent: "tech-writer", confidence: 0.9 },
31
+ { keywords: ["database", "db", "sql", "schema", "migration", "query"], skill: "database-design", agent: "database-engineer", confidence: 0.95 },
32
+ { keywords: ["deploy", "ci/cd", "pipeline", "docker", "kubernetes", "infrastructure"], skill: "devops-deployment", agent: "devops-engineer", confidence: 0.94 },
33
+ { keywords: ["mobile", "ios", "android", "react-native", "flutter"], skill: "mobile-development", agent: "mobile-developer", confidence: 0.95 },
34
+ { keywords: ["enforce", "compliance", "rule", "standard", "codex", "block", "prevent"], skill: "code-review", agent: "code-reviewer", confidence: 0.95 },
35
+ { keywords: ["design", "architect", "plan", "system", "model", "pattern", "architecture"], skill: "architecture-patterns", agent: "architect", confidence: 0.95 },
36
+ { keywords: ["codebase", "explore", "research", "discover", "implementation"], skill: "git-workflow", agent: "researcher", confidence: 0.88 },
37
+ // Additional built-in skill mappings
38
+ { keywords: ["api", "rest", "graphql", "openapi", "endpoint", "swagger"], skill: "api-design", agent: "backend-engineer", confidence: 0.9 },
39
+ { keywords: ["strategy", "roadmap", "planning", "technical", "decision", "architecture"], skill: "architecture-patterns", agent: "strategist", confidence: 0.88 },
40
+ { keywords: ["reflection", "story", "narrative", "saga", "journey", "document"], skill: "storyteller", agent: "tech-writer", confidence: 0.85 },
41
+ { keywords: ["analyze", "metrics", "complexity", "maintainability", "quality"], skill: "code-analyzer", agent: "code-analyzer", confidence: 0.9 },
42
+ { keywords: ["growth", "marketing", "conversion", "acquisition", "user-acquisition"], skill: "growth-strategist", agent: "growth-strategist", confidence: 0.9 },
43
+ { keywords: ["seo", "search", "organic", "traffic", "keywords", "ranking"], skill: "seo-consultant", agent: "seo-consultant", confidence: 0.92 },
44
+ { keywords: ["content", "copy", "blog", "marketing", "social"], skill: "content-creator", agent: "content-creator", confidence: 0.88 },
45
+ { keywords: ["format", "lint", "prettier", "eslint", "style", "formatting"], skill: "auto-format", agent: "code-reviewer", confidence: 0.85 },
46
+ { keywords: ["project", "structure", "health", "dependencies", "architecture"], skill: "project-analysis", agent: "architect", confidence: 0.88 },
47
+ { keywords: ["compliance", "audit", "standards", "framework", "validation"], skill: "framework-compliance-audit", agent: "code-reviewer", confidence: 0.9 },
48
+ { keywords: ["session", "state", "persistence", "storage", "cache"], skill: "session-management", agent: "backend-engineer", confidence: 0.85 },
49
+ { keywords: ["image", "visual", "pdf", "diagram", "multimedia", "media"], skill: "multimodal-looker", agent: "multimodal-looker", confidence: 0.92 },
50
+ { keywords: ["testing", "strategy", "coverage", "test-plan"], skill: "testing-strategy", agent: "testing-lead", confidence: 0.92 },
51
+ { keywords: ["inference", "model", "llm", "tuning", "optimization"], skill: "inference-improve", agent: "performance-engineer", confidence: 0.88 },
52
+ { keywords: ["orchestrate", "boot", "initialize", "startup", "bootstrap"], skill: "boot-orchestrator", agent: "architect", confidence: 0.9 },
53
+ // Additional unmapped skills
54
+ { keywords: ["tool", "utility", "helper", "instrument"], skill: "architect-tools", agent: "architect", confidence: 0.85 },
55
+ { keywords: ["design", "visual", "style", "theme", "css", "accessibility"], skill: "ui-ux-design", agent: "frontend-ui-ux-engineer", confidence: 0.9 },
56
+ { keywords: ["agent", "multi-agent", "coordination", "hermes", "communication"], skill: "hermes-agent", agent: "architect", confidence: 0.88 },
57
+ { keywords: ["log", "diagnostic", "trace", "monitor", "watch"], skill: "log-monitor", agent: "log-monitor", confidence: 0.9 },
58
+ { keywords: ["health", "diagnostic", "model-health", "validate-llm"], skill: "model-health-check", agent: "performance-engineer", confidence: 0.88 },
59
+ { keywords: ["analyze", "profiling", "memory", "cpu", "latency"], skill: "performance-analysis", agent: "performance-engineer", confidence: 0.9 },
60
+ { keywords: ["pipeline", "stream", "etl", "batch", "process"], skill: "processor-pipeline", agent: "backend-engineer", confidence: 0.88 },
61
+ { keywords: ["vulnerability", "cve", "sast", "dast", "dependency-check"], skill: "security-scan", agent: "security-auditor", confidence: 0.92 },
62
+ { keywords: ["state", "store", "redux", "context", "persistence"], skill: "state-manager", agent: "backend-engineer", confidence: 0.88 },
63
+ // ============================================================
64
+ // Community Skills (optional, lower confidence)
65
+ // These skills are from antigravity and may not be installed
66
+ // ============================================================
67
+ // UI/UX Design & Themes (antigravity)
68
+ { keywords: ["theme", "design-system", "color", "font", "typography", "palette"], skill: "antigravity--theme-factory", agent: "frontend-ui-ux-engineer", confidence: 0.6 },
69
+ { keywords: ["hig", "salesforce design", "lightning design", "slds"], skill: "antigravity--hig-components-system", agent: "frontend-ui-ux-engineer", confidence: 0.65 },
70
+ { keywords: ["slide", "deck", "presentation", "powerpoint"], skill: "antigravity--theme-factory", agent: "content-creator", confidence: 0.55 },
71
+ // SEO (antigravity)
72
+ { keywords: ["seo technical", "crawl", "indexability", "core web vitals", "sitemap"], skill: "antigravity--seo-technical", agent: "seo-consultant", confidence: 0.7 },
73
+ { keywords: ["seo structure", "content hierarchy", "schema", "internal linking"], skill: "antigravity--seo-structure-architect", agent: "seo-consultant", confidence: 0.7 },
74
+ { keywords: ["seo snippet", "meta description", "title tag"], skill: "antigravity--seo-snippet-hunter", agent: "seo-consultant", confidence: 0.7 },
75
+ { keywords: ["seo hreflang", "international seo", "multilingual"], skill: "antigravity--seo-hreflang", agent: "seo-consultant", confidence: 0.65 },
76
+ // Security (antigravity)
77
+ { keywords: ["backend security", "secure coding", "input validation", "authentication"], skill: "antigravity--backend-security-coder", agent: "security-auditor", confidence: 0.7 },
78
+ { keywords: ["mobile security", "ios security", "android security"], skill: "antigravity--mobile-security-coder", agent: "security-auditor", confidence: 0.65 },
79
+ { keywords: ["security audit", "vulnerability assessment", "penetration test"], skill: "security-audit", agent: "security-auditor", confidence: 0.75 },
80
+ // Vector/AI Databases (antigravity)
81
+ { keywords: ["vector", "embeddings", "similarity search", "pinecone", "qdrant", "chroma"], skill: "antigravity--vector-database-engineer", agent: "database-engineer", confidence: 0.65 },
82
+ { keywords: ["similarity search", "approximate nearest neighbor"], skill: "antigravity--similarity-search-patterns", agent: "database-engineer", confidence: 0.65 },
83
+ // Frameworks & Libraries (antigravity)
84
+ { keywords: ["svelte", "sveltekit", "svelte.js"], skill: "antigravity--sveltekit", agent: "frontend-engineer", confidence: 0.65 },
85
+ { keywords: ["trpc", "typescript rpc", "tRPC"], skill: "antigravity--trpc-fullstack", agent: "backend-engineer", confidence: 0.65 },
86
+ { keywords: ["vercel ai", "ai sdk", "vapi"], skill: "antigravity--vercel-ai-sdk-expert", agent: "backend-engineer", confidence: 0.65 },
87
+ { keywords: ["threejs", "3d web", "webgl", "3d graphics"], skill: "antigravity--threejs-loaders", agent: "frontend-engineer", confidence: 0.6 },
88
+ { keywords: ["comfyui", "ai image generation", "stable diffusion"], skill: "antigravity--comfyui-gateway", agent: "multimodal-looker", confidence: 0.6 },
89
+ // Mobile (antigravity)
90
+ { keywords: ["swiftui", "ios development"], skill: "antigravity--swiftui-liquid-glass", agent: "mobile-developer", confidence: 0.7 },
91
+ { keywords: ["ios performance", "swift optimization"], skill: "antigravity--swiftui-performance-audit", agent: "mobile-developer", confidence: 0.65 },
92
+ { keywords: ["react native", "rn"], skill: "mobile-development", agent: "mobile-developer", confidence: 0.7 },
93
+ // Backend/Golang (antigravity)
94
+ { keywords: ["golang", "go", "gopher"], skill: "antigravity--golang-pro", agent: "backend-engineer", confidence: 0.65 },
95
+ { keywords: ["temporal", "workflow", " durable execution"], skill: "antigravity--temporal-golang-pro", agent: "backend-engineer", confidence: 0.65 },
96
+ { keywords: ["python async", "asyncio", "uvloop"], skill: "antigravity--async-python-patterns", agent: "backend-engineer", confidence: 0.65 },
97
+ { keywords: ["pydantic", "data validation", "python models"], skill: "antigravity--pydantic-models-py", agent: "backend-engineer", confidence: 0.65 },
98
+ { keywords: ["scala", "spark", "big data"], skill: "antigravity--scala-pro", agent: "backend-engineer", confidence: 0.6 },
99
+ { keywords: ["dotnet", "c#", ".net"], skill: "antigravity--dotnet-backend-patterns", agent: "backend-engineer", confidence: 0.6 },
100
+ // Cloud/Azure (antigravity)
101
+ { keywords: ["azure", "azd", "azure deploy"], skill: "antigravity--azd-deployment", agent: "devops-engineer", confidence: 0.65 },
102
+ { keywords: ["azure storage", "file share"], skill: "antigravity--azure-storage-file-share-ts", agent: "devops-engineer", confidence: 0.6 },
103
+ { keywords: ["azure service bus", "messaging"], skill: "antigravity--azure-servicebus-py", agent: "devops-engineer", confidence: 0.6 },
104
+ // Automation/Bots (antigravity)
105
+ { keywords: ["discord bot", "discord automation"], skill: "antigravity--discord-bot-architect", agent: "backend-engineer", confidence: 0.6 },
106
+ { keywords: ["n8n", "workflow automation"], skill: "antigravity--n8n-expression-syntax", agent: "devops-engineer", confidence: 0.6 },
107
+ { keywords: ["linkedin automation", "social posting"], skill: "antigravity--linkedin-automation", agent: "growth-strategist", confidence: 0.55 },
108
+ { keywords: ["reddit automation"], skill: "antigravity--reddit-automation", agent: "growth-strategist", confidence: 0.55 },
109
+ { keywords: ["freshdesk", "customer support automation"], skill: "antigravity--freshdesk-automation", agent: "devops-engineer", confidence: 0.55 },
110
+ { keywords: ["pagerduty", "incident management"], skill: "antigravity--pagerduty-automation", agent: "devops-engineer", confidence: 0.55 },
111
+ // AI/ML (antigravity)
112
+ { keywords: ["local llm", "ollama", "llama", "local model"], skill: "antigravity--local-llm-expert", agent: "performance-engineer", confidence: 0.65 },
113
+ { keywords: ["agent", "mcp", "model context protocol"], skill: "antigravity--agent-memory-mcp", agent: "architect", confidence: 0.65 },
114
+ { keywords: ["agent evaluation", "agent testing"], skill: "antigravity--agent-evaluation", agent: "testing-lead", confidence: 0.65 },
115
+ { keywords: ["ai agent", "autonomous agent"], skill: "antigravity--ai-agent-development", agent: "backend-engineer", confidence: 0.65 },
116
+ // Content/Marketing (antigravity)
117
+ { keywords: ["marketing content", "ad creative", "campaign"], skill: "antigravity--marketing-ideas", agent: "content-creator", confidence: 0.6 },
118
+ { keywords: ["conversion", "cro", "optimization"], skill: "antigravity--onboarding-cro", agent: "growth-strategist", confidence: 0.6 },
119
+ // Documentation & Code Quality (antigravity)
120
+ { keywords: ["code documentation", "code explain", "explain code"], skill: "antigravity--code-documentation-code-explain", agent: "tech-writer", confidence: 0.65 },
121
+ { keywords: ["code refactoring", "clean code"], skill: "antigravity--code-refactoring-refactor-clean", agent: "refactorer", confidence: 0.65 },
122
+ { keywords: ["code review checklist"], skill: "antigravity--code-review-checklist", agent: "code-reviewer", confidence: 0.7 },
123
+ // Microservices & Architecture (antigravity)
124
+ { keywords: ["microservices", "service mesh", "distributed systems"], skill: "antigravity--microservices-patterns", agent: "architect", confidence: 0.65 },
125
+ { keywords: ["architecture decision", "adr", "decision records"], skill: "antigravity--architecture-decision-records", agent: "architect", confidence: 0.65 },
126
+ // Context/Memory Management (antigravity)
127
+ { keywords: ["context management", "context compression", "token optimization"], skill: "antigravity--context-compression", agent: "performance-engineer", confidence: 0.65 },
128
+ { keywords: ["context guardian", "memory safety"], skill: "antigravity--context-guardian", agent: "performance-engineer", confidence: 0.6 },
129
+ { keywords: ["context fundamentals"], skill: "antigravity--context-fundamentals", agent: "performance-engineer", confidence: 0.6 },
130
+ // Specialized Skills
131
+ { keywords: ["interview", "technical interview", "coding interview"], skill: "antigravity--interview-coach", agent: "growth-strategist", confidence: 0.6 },
132
+ { keywords: ["i18n", "localization", "translation"], skill: "antigravity--i18n-localization", agent: "frontend-engineer", confidence: 0.6 },
133
+ { keywords: ["accessibility", "a11y", "wcag"], skill: "antigravity--accessibility-compliance-accessibility-audit", agent: "frontend-ui-ux-engineer", confidence: 0.7 },
134
+ { keywords: ["pwa", "progressive web app"], skill: "antigravity--progressive-web-app", agent: "frontend-engineer", confidence: 0.6 },
135
+ { keywords: ["data migration", "sql migration"], skill: "antigravity--database-migrations-sql-migrations", agent: "database-engineer", confidence: 0.65 },
136
+ // Requesting Code Review (superpowers)
137
+ { keywords: ["request code review", "pr review", "pull request"], skill: "superpowers--requesting-code-review", agent: "code-reviewer", confidence: 0.7 },
138
+ ];
139
+ export function getTaskRoutingRecommendation(taskDescription) {
140
+ const desc = taskDescription.toLowerCase();
141
+ for (const mapping of ROUTING_MAPPINGS) {
142
+ for (const keyword of mapping.keywords) {
143
+ if (desc.includes(keyword.toLowerCase())) {
144
+ return {
145
+ suggestedAgent: mapping.agent,
146
+ suggestedSkill: mapping.skill,
147
+ confidence: mapping.confidence,
148
+ matchedKeyword: keyword,
149
+ };
150
+ }
151
+ }
152
+ }
153
+ return {
154
+ suggestedAgent: "code-reviewer",
155
+ suggestedSkill: "code-review",
156
+ confidence: 0.5,
157
+ matchedKeyword: "none",
158
+ };
159
+ }
160
+ /**
161
+ * Pre-process and validate that the routing is appropriate for the operation
162
+ * This is the integration point between TaskSkillRouter and RuleEnforcer
163
+ */
164
+ export async function preProcessAndRoute(operation, context) {
165
+ // Build task description from operation and context
166
+ const taskDescription = buildTaskDescription(operation, context);
167
+ // Get routing recommendation
168
+ const routing = getTaskRoutingRecommendation(taskDescription);
169
+ // Log the routing decision
170
+ await frameworkLogger.log("enforcer-tools", "task-routed", "debug", {
171
+ operation,
172
+ taskDescription: taskDescription.substring(0, 100),
173
+ suggestedAgent: routing.suggestedAgent,
174
+ suggestedSkill: routing.suggestedSkill,
175
+ confidence: routing.confidence,
176
+ });
177
+ // Enhance context with routing information
178
+ const enhancedContext = {
179
+ ...context,
180
+ operation,
181
+ // Add routing info to context for rule validators to use
182
+ ...context.routing,
183
+ };
184
+ return {
185
+ enhancedContext,
186
+ routing,
187
+ };
188
+ }
189
+ /**
190
+ * Build a task description from operation and context for routing
191
+ */
192
+ function buildTaskDescription(operation, context) {
193
+ const parts = [operation];
194
+ if (context.component) {
195
+ parts.push(context.component);
196
+ }
197
+ if (context.files && context.files.length > 0) {
198
+ parts.push(`files: ${context.files.join(", ")}`);
199
+ }
200
+ return parts.join(" ");
201
+ }
202
+ /**
203
+ * Execute the full release workflow
204
+ * Triggered when user says: release, npm publish, publish to npm, bump and publish, ship it
205
+ */
206
+ async function executeReleaseWorkflow(operation, context, jobId, routing) {
207
+ const { execSync } = await import('child_process');
208
+ // Extract release options from routing context
209
+ const releaseContext = routing.context || {};
210
+ const bumpType = releaseContext.bumpType || 'patch';
211
+ const createTag = releaseContext.createTag || false;
212
+ await frameworkLogger.log("enforcer-tools", "release-workflow-starting", "info", { jobId, bumpType, createTag });
213
+ const steps = [];
214
+ const errors = [];
215
+ // HARD STOP: Build must pass before release
216
+ await frameworkLogger.log("enforcer-tools", "release-build-check", "info", { step: "Verifying build passes..." });
217
+ try {
218
+ execSync(`npm run build`, {
219
+ cwd: process.cwd(),
220
+ stdio: 'pipe'
221
+ });
222
+ steps.push("✅ Build verified");
223
+ }
224
+ catch (e) {
225
+ const errorMsg = `🛑 RELEASE STOPPED: Build failed before publishing. Fix build errors first.`;
226
+ frameworkLogger.log("enforcer-tools", "release-blocked", "error", {
227
+ message: errorMsg,
228
+ });
229
+ frameworkLogger.log("enforcer-tools", "release-build-error", "error", {
230
+ message: `Error: ${e}`,
231
+ error: e,
232
+ });
233
+ return {
234
+ operation: "release",
235
+ passed: false,
236
+ blocked: true,
237
+ errors: [errorMsg, `Build error: ${e}`],
238
+ warnings: [],
239
+ fixes: [],
240
+ report: {
241
+ passed: false,
242
+ operation: "release",
243
+ errors: [errorMsg, `Build error: ${e}`],
244
+ warnings: [],
245
+ results: [],
246
+ timestamp: new Date(),
247
+ },
248
+ };
249
+ }
250
+ try {
251
+ // Step 1: Run version-manager to bump version and generate changelog
252
+ await frameworkLogger.log("enforcer-tools", "release-step-1-version", "info", { step: "Bumping version..." });
253
+ try {
254
+ const versionArg = createTag ? '--tag' : '';
255
+ execSync(`node scripts/node/version-manager.mjs ${bumpType} ${versionArg}`, {
256
+ cwd: process.cwd(),
257
+ stdio: 'inherit'
258
+ });
259
+ steps.push("✅ Version bumped + changelog generated");
260
+ }
261
+ catch (e) {
262
+ errors.push(`Version bump failed: ${e}`);
263
+ }
264
+ // Step 2: Git commit and push
265
+ await frameworkLogger.log("enforcer-tools", "release-step-2-git", "info", { step: "Committing and pushing..." });
266
+ try {
267
+ execSync(`git add -A && git commit -m "release: v${bumpType} - Changelog updated" && git push`, {
268
+ cwd: process.cwd(),
269
+ stdio: 'inherit'
270
+ });
271
+ steps.push("✅ Git commit + push");
272
+ }
273
+ catch (e) {
274
+ errors.push(`Git commit/push failed: ${e}`);
275
+ }
276
+ // Step 3: npm publish
277
+ await frameworkLogger.log("enforcer-tools", "release-step-3-npm", "info", { step: "Publishing to npm..." });
278
+ try {
279
+ execSync(`npm publish`, {
280
+ cwd: process.cwd(),
281
+ stdio: 'inherit'
282
+ });
283
+ steps.push("✅ npm published");
284
+ }
285
+ catch (e) {
286
+ errors.push(`npm publish failed: ${e}`);
287
+ }
288
+ // Step 4: Generate tweet context
289
+ await frameworkLogger.log("enforcer-tools", "release-step-4-tweet", "info", { step: "Generating tweet..." });
290
+ try {
291
+ execSync(`node scripts/node/release-tweet.mjs`, {
292
+ cwd: process.cwd(),
293
+ stdio: 'inherit'
294
+ });
295
+ steps.push("✅ Tweet context generated - ready for @growth-strategist");
296
+ }
297
+ catch (e) {
298
+ errors.push(`Tweet generation failed: ${e}`);
299
+ }
300
+ }
301
+ catch (e) {
302
+ errors.push(`Release workflow failed: ${e}`);
303
+ }
304
+ return {
305
+ operation: "release",
306
+ passed: errors.length === 0,
307
+ blocked: false,
308
+ errors,
309
+ warnings: [],
310
+ fixes: [],
311
+ report: {
312
+ passed: errors.length === 0,
313
+ operation: "release",
314
+ errors,
315
+ warnings: steps,
316
+ results: steps.map(s => ({ rule: 'release', passed: true, message: s })),
317
+ timestamp: new Date(),
318
+ },
319
+ };
320
+ }
321
+ /**
322
+ * Delegate a task to another agent via AgentDelegator
323
+ * This is the key integration that ensures enforcer routes to best agent
324
+ */
325
+ async function delegateToAgent(agentName, operation, context, jobId) {
326
+ try {
327
+ // Create a minimal state manager and config loader for the delegator
328
+ const stateManager = new StringRayStateManager();
329
+ // Create the delegator
330
+ const delegator = new AgentDelegator(stateManager, strRayConfigLoader);
331
+ // Build task description for the delegated agent
332
+ const taskDescription = buildTaskDescription(operation, context);
333
+ // Build the delegation request
334
+ const request = {
335
+ operation,
336
+ description: taskDescription,
337
+ context: {
338
+ ...context,
339
+ originalJobId: jobId,
340
+ },
341
+ sessionId: stateManager.get("current_session_id") || `delegated-${jobId}`,
342
+ };
343
+ // Analyze and get delegation strategy
344
+ const analysis = await delegator.analyzeDelegation(request);
345
+ // Execute the delegation
346
+ const result = await delegator.executeDelegation(analysis, request);
347
+ await frameworkLogger.log("enforcer-tools", "delegation-complete", "info", {
348
+ jobId,
349
+ delegatedTo: agentName,
350
+ success: result.success,
351
+ agentsUsed: result.agents,
352
+ });
353
+ // Convert delegation result to EnforcementResult format
354
+ return {
355
+ operation,
356
+ passed: result.success,
357
+ blocked: !result.success,
358
+ errors: result.errors || [],
359
+ warnings: [],
360
+ fixes: [],
361
+ report: {
362
+ passed: result.success,
363
+ operation,
364
+ timestamp: new Date(),
365
+ errors: result.errors || [],
366
+ warnings: [],
367
+ results: [],
368
+ },
369
+ };
370
+ }
371
+ catch (error) {
372
+ const errorMessage = error instanceof Error ? error.message : String(error);
373
+ await frameworkLogger.log("enforcer-tools", "delegation-failed", "error", {
374
+ jobId,
375
+ delegatedTo: agentName,
376
+ error: errorMessage,
377
+ });
378
+ // Fall back to self-execution if delegation fails
379
+ return await ruleValidationSelf(operation, context, jobId);
380
+ }
381
+ }
382
+ /**
383
+ * Fallback: Execute validation ourselves if delegation fails
384
+ */
385
+ async function ruleValidationSelf(operation, context, jobId) {
386
+ const report = await ruleEnforcer.validateOperation(operation, context);
387
+ return {
388
+ operation,
389
+ passed: report.passed,
390
+ blocked: report.errors.length > 0,
391
+ errors: report.errors,
392
+ warnings: report.warnings,
393
+ fixes: [],
394
+ report,
395
+ };
396
+ }
397
+ /**
398
+ * Run pre-commit validation with auto-fix enabled
399
+ * This is the integration point that automatically creates test files when needed
400
+ */
401
+ async function runPreCommitValidationWithAutoFix(files, operation = "commit") {
402
+ try {
403
+ // Dynamically import to avoid circular dependencies
404
+ const { testAutoCreationProcessor } = await import("../processors/implementations/test-auto-creation-processor.js");
405
+ let fixesApplied = 0;
406
+ // Process each file
407
+ for (const filePath of files) {
408
+ // Only process TypeScript source files
409
+ if (filePath.endsWith(".ts") && !filePath.endsWith(".test.ts")) {
410
+ const result = await testAutoCreationProcessor.execute({
411
+ tool: "write",
412
+ args: { filePath },
413
+ directory: process.cwd(),
414
+ filePath,
415
+ operation,
416
+ });
417
+ if (result.success) {
418
+ fixesApplied++;
419
+ }
420
+ }
421
+ }
422
+ return { success: true, fixesApplied };
423
+ }
424
+ catch (error) {
425
+ return {
426
+ success: false,
427
+ fixesApplied: 0,
428
+ error: error instanceof Error ? error.message : String(error),
429
+ };
430
+ }
431
+ }
432
+ /**
433
+ * Rule Validation Tool - Validates operations against rule hierarchy
434
+ * Now with intelligent task routing via TaskSkillRouter
435
+ * Automatically delegates to best agent when confidence is high
436
+ */
437
+ export async function ruleValidation(operation, context) {
438
+ const jobId = `rule-validation-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
439
+ // PRE-PROCESS: Get intelligent routing recommendation
440
+ const { enhancedContext, routing } = await preProcessAndRoute(operation, context);
441
+ await frameworkLogger.log("enforcer-tools", "rule-validation-start", "info", {
442
+ jobId,
443
+ operation,
444
+ files: context.files?.length || 0,
445
+ hasExistingCode: !!context.existingCode,
446
+ // Add routing info to logs
447
+ routedTo: routing.suggestedAgent,
448
+ routingSkill: routing.suggestedSkill,
449
+ routingConfidence: routing.confidence,
450
+ });
451
+ // DELEGATION LOGIC: If high confidence and recommended agent is not self-handled, delegate!
452
+ const shouldDelegate = routing.confidence >= DELEGATION_CONFIDENCE_THRESHOLD &&
453
+ !ENFORCER_HANDLES.has(routing.suggestedAgent) &&
454
+ routing.suggestedAgent !== "code-reviewer";
455
+ // SPECIAL CASE: Release workflow - execute full release process
456
+ if (routing.matchedKeyword === "release-workflow") {
457
+ await frameworkLogger.log("enforcer-tools", "release-workflow-triggered", "info", {
458
+ jobId,
459
+ operation,
460
+ bumpType: routing.context?.bumpType || 'patch',
461
+ createTag: routing.context?.createTag || false,
462
+ });
463
+ // Execute the release workflow
464
+ return await executeReleaseWorkflow(operation, context, jobId, routing);
465
+ }
466
+ if (shouldDelegate) {
467
+ await frameworkLogger.log("enforcer-tools", "delegating-to-agent", "info", {
468
+ jobId,
469
+ operation,
470
+ delegatedTo: routing.suggestedAgent,
471
+ confidence: routing.confidence,
472
+ reason: `High confidence (${routing.confidence}) routing to specialized agent`,
473
+ });
474
+ // Delegate to the recommended agent instead of doing work itself
475
+ return await delegateToAgent(routing.suggestedAgent, operation, context, jobId);
476
+ }
477
+ // Use enhanced context with routing for validation
478
+ const report = await ruleEnforcer.validateOperation(operation, enhancedContext);
479
+ const result = {
480
+ operation,
481
+ passed: report.passed,
482
+ blocked: report.errors.length > 0,
483
+ errors: report.errors,
484
+ warnings: report.warnings,
485
+ fixes: [],
486
+ report,
487
+ };
488
+ // Generate fixes for common issues
489
+ if (!report.passed) {
490
+ result.fixes = generateFixes(report, context);
491
+ }
492
+ // AUTO-FIX: Run pre-commit validation with auto-fix for missing tests
493
+ // This integrates the auto-fix path into the standard validation flow
494
+ if (!report.passed && context.files && context.files.length > 0) {
495
+ const autoFixResult = await runPreCommitValidationWithAutoFix(context.files, operation);
496
+ if (autoFixResult.success && autoFixResult.fixesApplied > 0) {
497
+ await frameworkLogger.log("enforcer-tools", "auto-fix-applied", "info", {
498
+ jobId,
499
+ fixesApplied: autoFixResult.fixesApplied,
500
+ files: context.files,
501
+ });
502
+ }
503
+ }
504
+ // INTEGRATION POINT: Check for reporting rules and trigger report generation
505
+ // This integrates reporting triggers into the existing rule validation pipeline
506
+ if (!report.passed) {
507
+ // Trigger report generation for rule violations
508
+ await frameworkLogger.log("enforcer-tools", "reporting-triggered", "info", {
509
+ jobId,
510
+ operation,
511
+ hasViolations: report.errors.length > 0,
512
+ hasWarnings: report.warnings.length > 0,
513
+ context: {
514
+ files: context.files?.length,
515
+ operation,
516
+ timestamp: new Date().toISOString(),
517
+ },
518
+ });
519
+ }
520
+ await frameworkLogger.log("enforcer-tools", "rule-validation-complete", result.passed ? "success" : "error", {
521
+ jobId,
522
+ operation,
523
+ passed: result.passed,
524
+ blocked: result.blocked,
525
+ errorCount: result.errors.length,
526
+ warningCount: result.warnings.length,
527
+ fixCount: result.fixes.length,
528
+ });
529
+ return result;
530
+ }
531
+ /**
532
+ * Context Analysis Validation Tool - Validates contextual analysis integration
533
+ */
534
+ export async function contextAnalysisValidation(files, operation) {
535
+ const jobId = `context-validation-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
536
+ await frameworkLogger.log("enforcer-tools", "context-validation-start", "info", {
537
+ jobId,
538
+ operation,
539
+ fileCount: files.length,
540
+ });
541
+ // Check if files exist and are readable
542
+ const existingFiles = new Map();
543
+ const missingFiles = [];
544
+ for (const file of files) {
545
+ try {
546
+ const content = fs.readFileSync(file, "utf8");
547
+ existingFiles.set(file, content);
548
+ }
549
+ catch (error) {
550
+ missingFiles.push(file);
551
+ }
552
+ }
553
+ const context = {
554
+ operation,
555
+ files,
556
+ existingCode: existingFiles,
557
+ };
558
+ // Run comprehensive validation
559
+ const validationResult = await ruleValidation(operation, context);
560
+ // Additional context-specific checks
561
+ const contextIssues = await validateContextIntegration(files, existingFiles);
562
+ const result = {
563
+ ...validationResult,
564
+ errors: [...validationResult.errors, ...contextIssues.errors],
565
+ warnings: [...validationResult.warnings, ...contextIssues.warnings],
566
+ blocked: validationResult.blocked,
567
+ };
568
+ await frameworkLogger.log("enforcer-tools", "context-validation-complete", result.passed ? "success" : "error", {
569
+ jobId,
570
+ operation,
571
+ fileCount: files.length,
572
+ contextErrors: contextIssues.errors.length,
573
+ contextWarnings: contextIssues.warnings.length,
574
+ });
575
+ return result;
576
+ }
577
+ /**
578
+ * Codex Enforcement Tool - Comprehensive codex compliance validation
579
+ */
580
+ export async function codexEnforcement(operation, files, newCode) {
581
+ const jobId = `codex-enforcement-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
582
+ await frameworkLogger.log("enforcer-tools", "codex-enforcement-start", "info", {
583
+ jobId,
584
+ operation,
585
+ fileCount: files.length,
586
+ hasNewCode: !!newCode,
587
+ });
588
+ // Load existing code for comparison
589
+ const existingCode = new Map();
590
+ for (const file of files) {
591
+ try {
592
+ const content = fs.readFileSync(file, "utf8");
593
+ existingCode.set(file, content);
594
+ }
595
+ catch (error) {
596
+ // File doesn't exist yet (new file)
597
+ }
598
+ }
599
+ const context = {
600
+ operation,
601
+ files,
602
+ existingCode,
603
+ ...(newCode && { newCode }),
604
+ dependencies: extractDependencies(newCode || "", files),
605
+ };
606
+ const validationResult = await ruleValidation(operation, context);
607
+ // Generate codex compliance report
608
+ const codexReport = await generateCodexComplianceReport(files, newCode);
609
+ const combinedErrors = [...validationResult.errors, ...codexReport.violations];
610
+ const combinedWarnings = [...validationResult.warnings, ...codexReport.warnings];
611
+ const result = {
612
+ ...validationResult,
613
+ errors: combinedErrors,
614
+ warnings: combinedWarnings,
615
+ blocked: combinedErrors.length > 0,
616
+ };
617
+ await frameworkLogger.log("enforcer-tools", "codex-enforcement-complete", result.passed ? "success" : "error", {
618
+ jobId,
619
+ operation,
620
+ codexViolations: codexReport.violations.length,
621
+ codexWarnings: codexReport.warnings.length,
622
+ complianceScore: codexReport.complianceScore,
623
+ });
624
+ return result;
625
+ }
626
+ /**
627
+ * Quality Gate Check Tool - Final validation before commit/execution
628
+ */
629
+ export async function qualityGateCheck(operation, context) {
630
+ const jobId = `quality-gate-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
631
+ await frameworkLogger.log("enforcer-tools", "quality-gate-start", "info", {
632
+ jobId,
633
+ operation,
634
+ files: context.files.length,
635
+ hasTests: !!(context.tests && context.tests.length > 0),
636
+ });
637
+ // Run all validations
638
+ const validations = await Promise.all([
639
+ ruleValidation(operation, {
640
+ operation,
641
+ files: context.files,
642
+ ...(context.newCode && { newCode: context.newCode }),
643
+ ...(context.tests && { tests: context.tests }),
644
+ ...(context.dependencies && { dependencies: context.dependencies }),
645
+ }),
646
+ contextAnalysisValidation(context.files, operation),
647
+ codexEnforcement(operation, context.files, context.newCode),
648
+ ]);
649
+ // Combine results
650
+ const combinedErrors = validations.flatMap((v) => v.errors);
651
+ const combinedWarnings = validations.flatMap((v) => v.warnings);
652
+ const combinedFixes = validations.flatMap((v) => v.fixes);
653
+ const passed = combinedErrors.length === 0;
654
+ const blocked = !passed; // Quality gates block on any error
655
+ const result = {
656
+ operation,
657
+ passed,
658
+ blocked,
659
+ errors: combinedErrors,
660
+ warnings: combinedWarnings,
661
+ fixes: combinedFixes,
662
+ report: validations[0].report, // Use first report as primary
663
+ };
664
+ // Execute automatic fixes if operation would pass after fixes
665
+ if (blocked && combinedFixes.some((f) => f.type === "auto")) {
666
+ await executeAutomaticFixes(combinedFixes.filter((f) => f.type === "auto"));
667
+ result.blocked = false; // Allow after auto-fixes
668
+ }
669
+ await frameworkLogger.log("enforcer-tools", "quality-gate-complete", passed ? "success" : "error", {
670
+ jobId,
671
+ operation,
672
+ passed,
673
+ blocked: result.blocked,
674
+ totalErrors: combinedErrors.length,
675
+ totalWarnings: combinedWarnings.length,
676
+ autoFixes: combinedFixes.filter((f) => f.type === "auto").length,
677
+ });
678
+ return result;
679
+ }
680
+ // Helper functions
681
+ function generateFixes(report, context) {
682
+ const fixes = [];
683
+ for (const result of report.results) {
684
+ if (result.fixes) {
685
+ for (const fix of result.fixes) {
686
+ if (fix.type === "create-file") {
687
+ fixes.push({
688
+ type: "auto",
689
+ description: fix.description,
690
+ action: async () => {
691
+ if (fix.filePath && fix.content) {
692
+ const dir = path.dirname(fix.filePath);
693
+ if (!fs.existsSync(dir)) {
694
+ fs.mkdirSync(dir, { recursive: true });
695
+ }
696
+ fs.writeFileSync(fix.filePath, fix.content);
697
+ }
698
+ },
699
+ });
700
+ }
701
+ else {
702
+ fixes.push({
703
+ type: "manual",
704
+ description: fix.description,
705
+ });
706
+ }
707
+ }
708
+ }
709
+ }
710
+ return fixes;
711
+ }
712
+ async function validateContextIntegration(files, existingCode) {
713
+ const errors = [];
714
+ const warnings = [];
715
+ for (const [filePath, content] of existingCode) {
716
+ // Check for proper context provider usage
717
+ if (content.includes("CodebaseContextAnalyzer") &&
718
+ !content.includes("memoryConfig")) {
719
+ warnings.push(`${filePath}: CodebaseContextAnalyzer should use memory configuration`);
720
+ }
721
+ if (content.includes("ASTCodeParser") &&
722
+ !content.includes("try") &&
723
+ !content.includes("catch")) {
724
+ errors.push(`${filePath}: ASTCodeParser initialization should handle missing ast-grep gracefully`);
725
+ }
726
+ if (content.includes("DependencyGraphBuilder") &&
727
+ !content.includes("contextAnalyzer")) {
728
+ errors.push(`${filePath}: DependencyGraphBuilder requires context analyzer parameter`);
729
+ }
730
+ }
731
+ return { errors, warnings };
732
+ }
733
+ async function generateCodexComplianceReport(files, newCode) {
734
+ const violations = [];
735
+ const warnings = [];
736
+ // Basic codex checks (simplified - would integrate with full codex validation)
737
+ if (newCode) {
738
+ if (newCode.includes("any") || newCode.includes("@ts-ignore")) {
739
+ violations.push('Codex violation: Type safety first - no "any" types or ts-ignore allowed');
740
+ }
741
+ // Check for actual console.log() calls - only flag if NOT in a comment
742
+ const consoleLogCallMatches = newCode.match(/console\.log\(/g);
743
+ if (consoleLogCallMatches && consoleLogCallMatches.length > 0) {
744
+ const lines = newCode.split('\n');
745
+ let hasConsoleLogInCode = false;
746
+ for (const line of lines) {
747
+ const trimmed = line.trim();
748
+ if (trimmed.includes('console.log(')) {
749
+ const beforeConsole = trimmed.substring(0, trimmed.indexOf('console.log('));
750
+ if (!beforeConsole.includes('//') && !beforeConsole.includes('/*')) {
751
+ hasConsoleLogInCode = true;
752
+ break;
753
+ }
754
+ }
755
+ }
756
+ if (hasConsoleLogInCode) {
757
+ violations.push('Codex violation: console.log() statements detected in production code - use frameworkLogger instead');
758
+ }
759
+ }
760
+ if (!newCode.includes("try") &&
761
+ (newCode.includes("await") || newCode.includes("Promise"))) {
762
+ warnings.push("Codex warning: Async operations should have error handling");
763
+ }
764
+ }
765
+ const complianceScore = violations.length === 0
766
+ ? 100
767
+ : Math.max(0, 100 - violations.length * 20 - warnings.length * 5);
768
+ return { violations, warnings, complianceScore };
769
+ }
770
+ function extractDependencies(code, files) {
771
+ const dependencies = [];
772
+ // Simple regex-based dependency extraction (would be enhanced with proper AST parsing)
773
+ const importRegex = /import\s+.*?\s+from\s+['"]([^'"]+)['"]/g;
774
+ let match;
775
+ while ((match = importRegex.exec(code)) !== null) {
776
+ const dep = match[1];
777
+ if (dep && !dep.startsWith(".") && !dep.startsWith("/")) {
778
+ dependencies.push(dep);
779
+ }
780
+ }
781
+ return dependencies;
782
+ }
783
+ async function executeAutomaticFixes(fixes) {
784
+ for (const fix of fixes) {
785
+ if (fix.action) {
786
+ try {
787
+ await fix.action();
788
+ await frameworkLogger.log("enforcer-tools", "auto-fix-executed", "success", {
789
+ description: fix.description,
790
+ });
791
+ }
792
+ catch (error) {
793
+ await frameworkLogger.log("enforcer-tools", "auto-fix-failed", "error", {
794
+ description: fix.description,
795
+ error: error instanceof Error ? error.message : String(error),
796
+ });
797
+ }
798
+ }
799
+ }
800
+ }
801
+ // Additional utility functions for enforcer operations
802
+ /**
803
+ * Get comprehensive enforcement status
804
+ */
805
+ export async function getEnforcementStatus() {
806
+ try {
807
+ const stats = ruleEnforcer.getRuleStats();
808
+ return {
809
+ rules: stats.totalRules,
810
+ validations: 0, // Would be tracked in real implementation
811
+ violations: 0, // Would be tracked in real implementation
812
+ fixes: 0, // Would be tracked in real implementation
813
+ success: true,
814
+ };
815
+ }
816
+ catch (error) {
817
+ await frameworkLogger.log("enforcer-tools", "status-check-failed", "error", {
818
+ error: error instanceof Error ? error.message : String(error),
819
+ });
820
+ return {
821
+ rules: 0,
822
+ validations: 0,
823
+ violations: 0,
824
+ fixes: 0,
825
+ success: false,
826
+ };
827
+ }
828
+ }
829
+ /**
830
+ * Run comprehensive pre-commit validation
831
+ */
832
+ export async function runPreCommitValidation(files, operation = "commit") {
833
+ const jobId = `pre-commit-validation-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
834
+ await frameworkLogger.log("enforcer-tools", "pre-commit-validation-start", "info", {
835
+ jobId,
836
+ files: files.length,
837
+ operation,
838
+ });
839
+ try {
840
+ // Run all validation types
841
+ const validations = await Promise.allSettled([
842
+ ruleValidation(operation, { operation, files }),
843
+ contextAnalysisValidation(files, operation),
844
+ codexEnforcement(operation, files),
845
+ ]);
846
+ // Aggregate results
847
+ const errors = [];
848
+ const warnings = [];
849
+ const fixes = [];
850
+ for (const result of validations) {
851
+ if (result.status === "fulfilled") {
852
+ errors.push(...result.value.errors);
853
+ warnings.push(...result.value.warnings);
854
+ fixes.push(...result.value.fixes);
855
+ }
856
+ else {
857
+ errors.push(`Validation failed: ${result.reason}`);
858
+ }
859
+ }
860
+ const finalResult = {
861
+ operation,
862
+ passed: errors.length === 0,
863
+ blocked: errors.length > 0,
864
+ errors,
865
+ warnings,
866
+ fixes,
867
+ report: validations[0]?.status === "fulfilled"
868
+ ? validations[0].value.report
869
+ : {},
870
+ };
871
+ await frameworkLogger.log("enforcer-tools", "pre-commit-validation-complete", finalResult.passed ? "success" : "error", {
872
+ jobId,
873
+ operation,
874
+ passed: finalResult.passed,
875
+ blocked: finalResult.blocked,
876
+ errors: errors.length,
877
+ warnings: warnings.length,
878
+ fixes: fixes.length,
879
+ });
880
+ return finalResult;
881
+ }
882
+ catch (error) {
883
+ await frameworkLogger.log("enforcer-tools", "pre-commit-validation-failed", "error", {
884
+ jobId,
885
+ operation,
886
+ error: error instanceof Error ? error.message : String(error),
887
+ });
888
+ return {
889
+ operation,
890
+ passed: false,
891
+ blocked: true,
892
+ errors: [
893
+ `Pre-commit validation failed: ${error instanceof Error ? error.message : String(error)}`,
894
+ ],
895
+ warnings: [],
896
+ fixes: [],
897
+ report: {},
898
+ };
899
+ }
900
+ }
901
+ // Export tools for MCP integration
902
+ export const enforcerTools = {
903
+ ruleValidation,
904
+ contextAnalysisValidation,
905
+ codexEnforcement,
906
+ qualityGateCheck,
907
+ getEnforcementStatus,
908
+ runPreCommitValidation,
909
+ };