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,846 @@
1
+ /**
2
+ * xray Security Audit MCP Server
3
+ *
4
+ * Knowledge skill for comprehensive security analysis, vulnerability assessment,
5
+ * and compliance validation - ensures production-ready security posture
6
+ */
7
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
+ import * as fs from "fs";
11
+ import * as path from "path";
12
+ import { createGracefulShutdown } from "../../utils/shutdown-handler.js";
13
+ class StringRaySecurityAuditServer {
14
+ server;
15
+ constructor() {
16
+ this.server = new Server({
17
+ name: "security-audit", version: "1.22.67",
18
+ }, {
19
+ capabilities: {
20
+ tools: {},
21
+ },
22
+ });
23
+ this.setupToolHandlers();
24
+ // Server initialization - removed unnecessary startup logging
25
+ }
26
+ setupToolHandlers() {
27
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
28
+ return {
29
+ tools: [
30
+ {
31
+ name: "audit_security",
32
+ description: "Perform comprehensive security audit on codebase files",
33
+ inputSchema: {
34
+ type: "object",
35
+ properties: {
36
+ files: {
37
+ type: "array",
38
+ items: { type: "string" },
39
+ description: "List of file paths to audit",
40
+ },
41
+ includeDependencies: {
42
+ type: "boolean",
43
+ description: "Include dependency vulnerability analysis",
44
+ default: true,
45
+ },
46
+ complianceFrameworks: {
47
+ type: "array",
48
+ items: {
49
+ type: "string",
50
+ enum: ["owasp-top-10", "nist", "iso-27001", "pci-dss"],
51
+ },
52
+ description: "Compliance frameworks to check against",
53
+ },
54
+ },
55
+ required: ["files"],
56
+ },
57
+ },
58
+ {
59
+ name: "check_vulnerability",
60
+ description: "Check specific security vulnerability patterns in a file",
61
+ inputSchema: {
62
+ type: "object",
63
+ properties: {
64
+ filePath: {
65
+ type: "string",
66
+ description: "Path to the file to check",
67
+ },
68
+ vulnerabilityType: {
69
+ type: "string",
70
+ enum: [
71
+ "injection",
72
+ "authentication",
73
+ "authorization",
74
+ "cryptography",
75
+ "xss",
76
+ "csrf",
77
+ "secrets",
78
+ "configuration",
79
+ ],
80
+ },
81
+ severity: {
82
+ type: "string",
83
+ enum: ["critical", "high", "medium", "low", "info"],
84
+ description: "Minimum severity level to report",
85
+ },
86
+ },
87
+ required: ["filePath", "vulnerabilityType"],
88
+ },
89
+ },
90
+ {
91
+ name: "generate_security_report",
92
+ description: "Generate comprehensive security report with remediation steps",
93
+ inputSchema: {
94
+ type: "object",
95
+ properties: {
96
+ auditResults: {
97
+ type: "object",
98
+ description: "Results from audit_security tool",
99
+ },
100
+ format: {
101
+ type: "string",
102
+ enum: ["markdown", "json", "html"],
103
+ default: "markdown",
104
+ },
105
+ includeRemediation: {
106
+ type: "boolean",
107
+ default: true,
108
+ },
109
+ },
110
+ required: ["auditResults"],
111
+ },
112
+ },
113
+ {
114
+ name: "analyze_proposal",
115
+ description: "Analyze an inference proposal (pattern/bug/refactor) from a security perspective and return a structured governance decision",
116
+ inputSchema: {
117
+ type: "object",
118
+ properties: {
119
+ proposalTitle: { type: "string" },
120
+ proposalDescription: { type: "string" },
121
+ evidence: { type: "array", items: { type: "string" } },
122
+ proposalType: { type: "string" },
123
+ },
124
+ required: ["proposalTitle", "proposalDescription"],
125
+ },
126
+ },
127
+ ],
128
+ };
129
+ });
130
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
131
+ const { name, arguments: args } = request.params;
132
+ switch (name) {
133
+ case "audit_security":
134
+ return await this.auditSecurity(args);
135
+ case "check_vulnerability":
136
+ return await this.checkVulnerability(args);
137
+ case "generate_security_report":
138
+ return await this.generateSecurityReport(args);
139
+ case "analyze_proposal":
140
+ return await this.analyzeProposal(args);
141
+ default:
142
+ throw new Error(`Unknown tool: ${name}`);
143
+ }
144
+ });
145
+ }
146
+ async auditSecurity(args) {
147
+ const { files, includeDependencies = true, complianceFrameworks = ["owasp-top-10"], } = args;
148
+ try {
149
+ const vulnerabilities = [];
150
+ let totalFiles = 0;
151
+ for (const filePath of files) {
152
+ if (!fs.existsSync(filePath)) {
153
+ continue;
154
+ }
155
+ totalFiles++;
156
+ const content = fs.readFileSync(filePath, "utf-8");
157
+ const extension = path.extname(filePath).toLowerCase();
158
+ const language = this.detectLanguage(extension);
159
+ const fileVulnerabilities = this.analyzeFileForVulnerabilities(content, filePath, language);
160
+ vulnerabilities.push(...fileVulnerabilities);
161
+ }
162
+ // Generate compliance analysis
163
+ const compliance = this.analyzeCompliance(vulnerabilities, complianceFrameworks);
164
+ // Calculate summary metrics
165
+ const summary = this.calculateSecuritySummary(vulnerabilities, totalFiles);
166
+ const report = {
167
+ summary,
168
+ vulnerabilities,
169
+ recommendations: this.generateRecommendations(vulnerabilities, compliance),
170
+ compliance,
171
+ };
172
+ return {
173
+ content: [
174
+ {
175
+ type: "text",
176
+ text: `Security Audit Report:\n\n` +
177
+ `📊 SUMMARY\n` +
178
+ `Files Analyzed: ${totalFiles}\n` +
179
+ `Vulnerabilities Found: ${vulnerabilities.length}\n` +
180
+ `Critical: ${summary.criticalCount} | High: ${summary.highCount} | Medium: ${summary.mediumCount} | Low: ${summary.lowCount}\n` +
181
+ `Overall Risk Score: ${summary.overallRiskScore}/100\n` +
182
+ `Compliance Score: ${summary.complianceScore}/100\n\n` +
183
+ `🚨 TOP VULNERABILITIES\n${vulnerabilities
184
+ .slice(0, 5)
185
+ .map((v) => `${this.getSeverityIcon(v.severity)} ${v.title} (${v.category}) - ${v.file}:${v.line}`)
186
+ .join("\n")}\n\n` +
187
+ `💡 KEY RECOMMENDATIONS\n${report.recommendations
188
+ .slice(0, 3)
189
+ .map((r) => `â€ĸ ${r}`)
190
+ .join("\n")}`,
191
+ },
192
+ ],
193
+ data: report, // Include full report data
194
+ };
195
+ }
196
+ catch (error) {
197
+ return {
198
+ content: [
199
+ {
200
+ type: "text",
201
+ text: `Error performing security audit: ${error instanceof Error ? error.message : String(error)}`,
202
+ },
203
+ ],
204
+ };
205
+ }
206
+ }
207
+ async checkVulnerability(args) {
208
+ const { filePath, vulnerabilityType, severity = "info" } = args;
209
+ try {
210
+ if (!fs.existsSync(filePath)) {
211
+ throw new Error(`File not found: ${filePath}`);
212
+ }
213
+ const content = fs.readFileSync(filePath, "utf-8");
214
+ const extension = path.extname(filePath).toLowerCase();
215
+ const language = this.detectLanguage(extension);
216
+ const vulnerabilities = this.analyzeFileForVulnerabilities(content, filePath, language)
217
+ .filter((v) => v.category === vulnerabilityType ||
218
+ this.mapVulnTypeToCategory(vulnerabilityType).includes(v.category))
219
+ .filter((v) => this.severityLevel(v.severity) >= this.severityLevel(severity));
220
+ return {
221
+ content: [
222
+ {
223
+ type: "text",
224
+ text: `Vulnerability Check Results for ${vulnerabilityType}:\n\n` +
225
+ `File: ${filePath}\n` +
226
+ `Vulnerabilities Found: ${vulnerabilities.length}\n\n` +
227
+ vulnerabilities
228
+ .map((v) => `${this.getSeverityIcon(v.severity)} ${v.title}\n` +
229
+ ` Line ${v.line}: ${v.description}\n` +
230
+ ` Impact: ${v.impact}\n` +
231
+ ` Fix: ${v.recommendation}\n`)
232
+ .join("\n") +
233
+ (vulnerabilities.length === 0
234
+ ? "\n✅ No vulnerabilities of this type found!"
235
+ : ""),
236
+ },
237
+ ],
238
+ };
239
+ }
240
+ catch (error) {
241
+ return {
242
+ content: [
243
+ {
244
+ type: "text",
245
+ text: `Error checking vulnerability: ${error instanceof Error ? error.message : String(error)}`,
246
+ },
247
+ ],
248
+ };
249
+ }
250
+ }
251
+ async generateSecurityReport(args) {
252
+ const { auditResults, format = "markdown", includeRemediation = true, } = args;
253
+ try {
254
+ const report = auditResults.data
255
+ ? auditResults.data
256
+ : auditResults;
257
+ let output = "";
258
+ switch (format) {
259
+ case "markdown":
260
+ output = this.generateMarkdownReport(report, includeRemediation);
261
+ break;
262
+ case "json":
263
+ output = JSON.stringify(report, null, 2);
264
+ break;
265
+ case "html":
266
+ output = this.generateHTMLReport(report, includeRemediation);
267
+ break;
268
+ default:
269
+ output = this.generateMarkdownReport(report, includeRemediation);
270
+ }
271
+ return {
272
+ content: [
273
+ {
274
+ type: "text",
275
+ text: `Security Report Generated (${format.toUpperCase()}):\n\n${format === "json" ? "```\n" + output + "\n```" : output.substring(0, 2000) + (output.length > 2000 ? "\n\n... (truncated)" : "")}`,
276
+ },
277
+ ],
278
+ fullReport: output,
279
+ };
280
+ }
281
+ catch (error) {
282
+ return {
283
+ content: [
284
+ {
285
+ type: "text",
286
+ text: `Error generating security report: ${error instanceof Error ? error.message : String(error)}`,
287
+ },
288
+ ],
289
+ };
290
+ }
291
+ }
292
+ analyzeFileForVulnerabilities(content, filePath, language) {
293
+ const vulnerabilities = [];
294
+ const lines = content.split("\n");
295
+ lines.forEach((line, index) => {
296
+ const lineNum = index + 1;
297
+ // Injection vulnerabilities
298
+ vulnerabilities.push(...this.checkInjectionVulnerabilities(line, lineNum, filePath, language));
299
+ // Authentication & Authorization
300
+ vulnerabilities.push(...this.checkAuthVulnerabilities(line, lineNum, filePath, language));
301
+ // Cryptography issues
302
+ vulnerabilities.push(...this.checkCryptoVulnerabilities(line, lineNum, filePath, language));
303
+ // Configuration issues
304
+ vulnerabilities.push(...this.checkConfigurationVulnerabilities(line, lineNum, filePath, language));
305
+ // Data protection
306
+ vulnerabilities.push(...this.checkDataProtectionVulnerabilities(line, lineNum, filePath, language));
307
+ // Input validation
308
+ vulnerabilities.push(...this.checkInputValidationVulnerabilities(line, lineNum, filePath, language));
309
+ });
310
+ return vulnerabilities;
311
+ }
312
+ checkInjectionVulnerabilities(line, lineNum, filePath, language) {
313
+ const vulnerabilities = [];
314
+ // SQL Injection
315
+ if (line.includes("query(") ||
316
+ line.includes("execute(") ||
317
+ line.includes("sql(")) {
318
+ if (line.includes("${") ||
319
+ line.includes("+") ||
320
+ line.includes("concat(")) {
321
+ vulnerabilities.push({
322
+ id: `SQLI-${filePath}-${lineNum}`,
323
+ title: "Potential SQL Injection",
324
+ severity: "critical",
325
+ category: "injection",
326
+ cwe: "CWE-89",
327
+ owasp: "A03:2021-Injection",
328
+ file: filePath,
329
+ line: lineNum,
330
+ description: "String concatenation or template literals used in SQL queries",
331
+ impact: "Attackers can execute arbitrary SQL commands",
332
+ recommendation: "Use parameterized queries or prepared statements",
333
+ codeSnippet: line.trim(),
334
+ confidence: 85,
335
+ });
336
+ }
337
+ }
338
+ // Command Injection
339
+ if (line.includes("exec(") ||
340
+ line.includes("spawn(") ||
341
+ line.includes("system(")) {
342
+ if (line.includes("${") || line.includes("+")) {
343
+ vulnerabilities.push({
344
+ id: `CMDI-${filePath}-${lineNum}`,
345
+ title: "Potential Command Injection",
346
+ severity: "critical",
347
+ category: "injection",
348
+ cwe: "CWE-78",
349
+ owasp: "A03:2021-Injection",
350
+ file: filePath,
351
+ line: lineNum,
352
+ description: "Dynamic command execution with user input",
353
+ impact: "Attackers can execute arbitrary system commands",
354
+ recommendation: "Validate and sanitize input, use safe APIs",
355
+ codeSnippet: line.trim(),
356
+ confidence: 90,
357
+ });
358
+ }
359
+ }
360
+ return vulnerabilities;
361
+ }
362
+ checkAuthVulnerabilities(line, lineNum, filePath, language) {
363
+ const vulnerabilities = [];
364
+ // Weak password policies
365
+ if (line.includes("password") &&
366
+ (line.includes("length") || line.includes("min"))) {
367
+ if (line.includes("6") || line.includes("8")) {
368
+ vulnerabilities.push({
369
+ id: `WEAKPASS-${filePath}-${lineNum}`,
370
+ title: "Weak Password Policy",
371
+ severity: "medium",
372
+ category: "authentication",
373
+ cwe: "CWE-521",
374
+ owasp: "A02:2021-Cryptographic Failures",
375
+ file: filePath,
376
+ line: lineNum,
377
+ description: "Password minimum length is too short",
378
+ impact: "Weak passwords are easily cracked",
379
+ recommendation: "Require at least 12 characters, mix of character types",
380
+ codeSnippet: line.trim(),
381
+ confidence: 75,
382
+ });
383
+ }
384
+ }
385
+ // JWT without expiration
386
+ if (line.includes("jwt") || line.includes("JWT")) {
387
+ if (!line.includes("expires") &&
388
+ !line.includes("exp") &&
389
+ !line.includes("expiresIn")) {
390
+ vulnerabilities.push({
391
+ id: `JWTNOEXP-${filePath}-${lineNum}`,
392
+ title: "JWT Without Expiration",
393
+ severity: "high",
394
+ category: "authentication",
395
+ cwe: "CWE-613",
396
+ owasp: "A07:2021-Identification and Authentication Failures",
397
+ file: filePath,
398
+ line: lineNum,
399
+ description: "JWT tokens created without expiration time",
400
+ impact: "Tokens never expire, infinite session vulnerability",
401
+ recommendation: "Always set expiration time on JWT tokens",
402
+ codeSnippet: line.trim(),
403
+ confidence: 80,
404
+ });
405
+ }
406
+ }
407
+ return vulnerabilities;
408
+ }
409
+ checkCryptoVulnerabilities(line, lineNum, filePath, language) {
410
+ const vulnerabilities = [];
411
+ // Weak hashing algorithms
412
+ if (line.includes("md5(") ||
413
+ line.includes("sha1(") ||
414
+ line.includes("MD5") ||
415
+ line.includes("SHA1")) {
416
+ vulnerabilities.push({
417
+ id: `WEAKHASH-${filePath}-${lineNum}`,
418
+ title: "Weak Hashing Algorithm",
419
+ severity: "high",
420
+ category: "cryptography",
421
+ cwe: "CWE-328",
422
+ owasp: "A02:2021-Cryptographic Failures",
423
+ file: filePath,
424
+ line: lineNum,
425
+ description: "Using deprecated or weak hashing algorithms",
426
+ impact: "Passwords and data easily compromised",
427
+ recommendation: "Use bcrypt, scrypt, or Argon2 for passwords; SHA-256+ for data",
428
+ codeSnippet: line.trim(),
429
+ confidence: 95,
430
+ });
431
+ }
432
+ // Insecure random number generation
433
+ if (line.includes("Math.random(")) {
434
+ vulnerabilities.push({
435
+ id: `WEAKRAND-${filePath}-${lineNum}`,
436
+ title: "Weak Random Number Generation",
437
+ severity: "medium",
438
+ category: "cryptography",
439
+ cwe: "CWE-338",
440
+ owasp: "A02:2021-Cryptographic Failures",
441
+ file: filePath,
442
+ line: lineNum,
443
+ description: "Using Math.random() for security-sensitive operations",
444
+ impact: "Predictable random values compromise security",
445
+ recommendation: "Use crypto.randomBytes() or secure random APIs",
446
+ codeSnippet: line.trim(),
447
+ confidence: 85,
448
+ });
449
+ }
450
+ return vulnerabilities;
451
+ }
452
+ checkConfigurationVulnerabilities(line, lineNum, filePath, language) {
453
+ const vulnerabilities = [];
454
+ // Debug mode in production
455
+ if (line.includes("DEBUG") || line.includes("debug")) {
456
+ if (line.includes("true") || line.includes("enabled")) {
457
+ vulnerabilities.push({
458
+ id: `DEBUGPROD-${filePath}-${lineNum}`,
459
+ title: "Debug Mode Enabled",
460
+ severity: "medium",
461
+ category: "configuration",
462
+ cwe: "CWE-489",
463
+ owasp: "A05:2021-Security Misconfiguration",
464
+ file: filePath,
465
+ line: lineNum,
466
+ description: "Debug mode appears to be enabled",
467
+ impact: "Sensitive information leaked in production",
468
+ recommendation: "Disable debug mode in production environments",
469
+ codeSnippet: line.trim(),
470
+ confidence: 70,
471
+ });
472
+ }
473
+ }
474
+ // CORS misconfiguration
475
+ if (line.includes("cors") || line.includes("CORS")) {
476
+ if (line.includes("*") || line.includes("allow-all")) {
477
+ vulnerabilities.push({
478
+ id: `CORSMISCONFIG-${filePath}-${lineNum}`,
479
+ title: "CORS Misconfiguration",
480
+ severity: "medium",
481
+ category: "configuration",
482
+ cwe: "CWE-942",
483
+ owasp: "A05:2021-Security Misconfiguration",
484
+ file: filePath,
485
+ line: lineNum,
486
+ description: "Overly permissive CORS configuration",
487
+ impact: "Cross-origin requests from any domain allowed",
488
+ recommendation: "Specify allowed origins explicitly",
489
+ codeSnippet: line.trim(),
490
+ confidence: 75,
491
+ });
492
+ }
493
+ }
494
+ return vulnerabilities;
495
+ }
496
+ checkDataProtectionVulnerabilities(line, lineNum, filePath, language) {
497
+ const vulnerabilities = [];
498
+ // Sensitive data logging
499
+ if (line.includes("console.log") || line.includes("logger.")) {
500
+ if (line.includes("password") ||
501
+ line.includes("token") ||
502
+ line.includes("secret") ||
503
+ line.includes("key")) {
504
+ vulnerabilities.push({
505
+ id: `SENSITIVELOG-${filePath}-${lineNum}`,
506
+ title: "Sensitive Data Logging",
507
+ severity: "high",
508
+ category: "data-protection",
509
+ cwe: "CWE-532",
510
+ owasp: "A09:2021-Security Logging and Monitoring Failures",
511
+ file: filePath,
512
+ line: lineNum,
513
+ description: "Logging sensitive information like passwords or tokens",
514
+ impact: "Credentials exposed in logs",
515
+ recommendation: "Never log sensitive data, use proper redaction",
516
+ codeSnippet: line.trim(),
517
+ confidence: 90,
518
+ });
519
+ }
520
+ }
521
+ // Insecure data transmission
522
+ if (line.includes("http://") &&
523
+ !line.includes("localhost") &&
524
+ !line.includes("127.0.0.1")) {
525
+ vulnerabilities.push({
526
+ id: `HTTPNOTLS-${filePath}-${lineNum}`,
527
+ title: "Insecure HTTP Transmission",
528
+ severity: "high",
529
+ category: "data-protection",
530
+ cwe: "CWE-319",
531
+ owasp: "A02:2021-Cryptographic Failures",
532
+ file: filePath,
533
+ line: lineNum,
534
+ description: "Data transmitted over unencrypted HTTP",
535
+ impact: "Data intercepted by attackers",
536
+ recommendation: "Use HTTPS for all data transmission",
537
+ codeSnippet: line.trim(),
538
+ confidence: 95,
539
+ });
540
+ }
541
+ return vulnerabilities;
542
+ }
543
+ checkInputValidationVulnerabilities(line, lineNum, filePath, language) {
544
+ const vulnerabilities = [];
545
+ // Missing input validation
546
+ if (line.includes("req.body") ||
547
+ line.includes("req.query") ||
548
+ line.includes("req.params")) {
549
+ // Check if there's any validation on the same or next few lines
550
+ const nextLines = this.getNextLines(filePath, lineNum, 3);
551
+ const hasValidation = nextLines.some((nextLine) => nextLine.includes("validate") ||
552
+ nextLine.includes("sanitize") ||
553
+ nextLine.includes("joi") ||
554
+ nextLine.includes("zod") ||
555
+ nextLine.includes("isEmail") ||
556
+ nextLine.includes("isLength"));
557
+ if (!hasValidation) {
558
+ vulnerabilities.push({
559
+ id: `NOVALIDATION-${filePath}-${lineNum}`,
560
+ title: "Missing Input Validation",
561
+ severity: "medium",
562
+ category: "input-validation",
563
+ cwe: "CWE-20",
564
+ owasp: "A03:2021-Injection",
565
+ file: filePath,
566
+ line: lineNum,
567
+ description: "User input processed without validation",
568
+ impact: "Malicious input can cause security issues",
569
+ recommendation: "Validate and sanitize all user inputs",
570
+ codeSnippet: line.trim(),
571
+ confidence: 60,
572
+ });
573
+ }
574
+ }
575
+ return vulnerabilities;
576
+ }
577
+ getNextLines(filePath, startLine, count) {
578
+ try {
579
+ const content = fs.readFileSync(filePath, "utf-8");
580
+ const lines = content.split("\n");
581
+ const result = [];
582
+ for (let i = startLine; i < Math.min(startLine + count, lines.length); i++) {
583
+ const line = lines[i];
584
+ if (line) {
585
+ result.push(line);
586
+ }
587
+ }
588
+ return result;
589
+ }
590
+ catch {
591
+ return [];
592
+ }
593
+ }
594
+ detectLanguage(extension) {
595
+ const languageMap = {
596
+ ".ts": "typescript",
597
+ ".tsx": "typescript",
598
+ ".js": "javascript",
599
+ ".jsx": "javascript",
600
+ ".py": "python",
601
+ ".java": "java",
602
+ ".cpp": "cpp",
603
+ ".c": "c",
604
+ ".cs": "csharp",
605
+ ".php": "php",
606
+ ".rb": "ruby",
607
+ ".go": "go",
608
+ ".rs": "rust",
609
+ ".swift": "swift",
610
+ ".kt": "kotlin",
611
+ ".scala": "scala",
612
+ };
613
+ return languageMap[extension] || "unknown";
614
+ }
615
+ calculateSecuritySummary(vulnerabilities, totalFiles) {
616
+ const counts = {
617
+ critical: vulnerabilities.filter((v) => v.severity === "critical").length,
618
+ high: vulnerabilities.filter((v) => v.severity === "high").length,
619
+ medium: vulnerabilities.filter((v) => v.severity === "medium").length,
620
+ low: vulnerabilities.filter((v) => v.severity === "low").length,
621
+ };
622
+ // Calculate risk score based on vulnerability counts and severity
623
+ const riskScore = Math.min(100, counts.critical * 10 +
624
+ counts.high * 5 +
625
+ counts.medium * 2 +
626
+ counts.low * 1);
627
+ // Calculate compliance score (inverse of risk score, adjusted for file count)
628
+ const baseCompliance = Math.max(0, 100 - riskScore);
629
+ const complianceScore = Math.max(0, baseCompliance - (totalFiles > 10 ? 5 : 0));
630
+ return {
631
+ totalFiles,
632
+ vulnerabilitiesFound: vulnerabilities.length,
633
+ criticalCount: counts.critical,
634
+ highCount: counts.high,
635
+ mediumCount: counts.medium,
636
+ lowCount: counts.low,
637
+ overallRiskScore: riskScore,
638
+ complianceScore,
639
+ };
640
+ }
641
+ analyzeCompliance(vulnerabilities, frameworks) {
642
+ const owaspTop10 = {};
643
+ // OWASP Top 10 2021 mapping
644
+ const owaspMapping = {
645
+ "A01:2021-Broken Access Control": ["authorization"],
646
+ "A02:2021-Cryptographic Failures": ["cryptography"],
647
+ "A03:2021-Injection": ["injection"],
648
+ "A04:2021-Insecure Design": ["configuration", "input-validation"],
649
+ "A05:2021-Security Misconfiguration": ["configuration"],
650
+ "A06:2021-Vulnerable Components": [], // Would need dependency analysis
651
+ "A07:2021-Authentication Failures": ["authentication"],
652
+ "A08:2021-Software Integrity": ["configuration"],
653
+ "A09:2021-Security Logging": ["data-protection"],
654
+ "A10:2021-SSRF": ["injection"], // Simplified mapping
655
+ };
656
+ // Check each OWASP category
657
+ Object.entries(owaspMapping).forEach(([owaspId, categories]) => {
658
+ const hasVulnsInCategory = vulnerabilities.some((v) => categories.includes(v.category));
659
+ owaspTop10[owaspId] = !hasVulnsInCategory; // True if no vulnerabilities found
660
+ });
661
+ return {
662
+ owaspTop10,
663
+ frameworks,
664
+ };
665
+ }
666
+ generateRecommendations(vulnerabilities, compliance) {
667
+ const recommendations = [];
668
+ // Group vulnerabilities by category
669
+ const byCategory = vulnerabilities.reduce((acc, v) => {
670
+ acc[v.category] = (acc[v.category] || 0) + 1;
671
+ return acc;
672
+ }, {});
673
+ // Generate category-specific recommendations
674
+ if ((byCategory.injection || 0) > 0) {
675
+ recommendations.push("Implement parameterized queries and input sanitization to prevent injection attacks");
676
+ }
677
+ if ((byCategory.authentication || 0) > 0) {
678
+ recommendations.push("Strengthen authentication mechanisms and implement proper session management");
679
+ }
680
+ if ((byCategory.cryptography || 0) > 0) {
681
+ recommendations.push("Replace weak cryptographic algorithms with modern, secure alternatives");
682
+ }
683
+ if ((byCategory.configuration || 0) > 0) {
684
+ recommendations.push("Review and harden security configurations, disable debug modes in production");
685
+ }
686
+ if ((byCategory["data-protection"] || 0) > 0) {
687
+ recommendations.push("Implement proper data protection measures and avoid logging sensitive information");
688
+ }
689
+ // OWASP compliance recommendations
690
+ const failedOwasp = Object.entries(compliance.owaspTop10)
691
+ .filter(([_, compliant]) => !compliant)
692
+ .map(([category]) => category);
693
+ if (failedOwasp.length > 0) {
694
+ recommendations.push(`Address OWASP Top 10 compliance issues: ${failedOwasp.join(", ")}`);
695
+ }
696
+ // General recommendations
697
+ if (vulnerabilities.length === 0) {
698
+ recommendations.push("Maintain regular security audits and stay updated with security best practices");
699
+ }
700
+ else {
701
+ recommendations.push("Implement automated security testing in CI/CD pipeline");
702
+ recommendations.push("Conduct regular security training for development team");
703
+ }
704
+ return recommendations;
705
+ }
706
+ severityLevel(severity) {
707
+ const levels = { info: 0, low: 1, medium: 2, high: 3, critical: 4 };
708
+ return levels[severity] || 0;
709
+ }
710
+ mapVulnTypeToCategory(type) {
711
+ const mapping = {
712
+ injection: ["injection"],
713
+ authentication: ["authentication"],
714
+ authorization: ["authorization"],
715
+ cryptography: ["cryptography"],
716
+ xss: ["injection", "data-protection"],
717
+ csrf: ["authentication", "authorization"],
718
+ secrets: ["data-protection", "configuration"],
719
+ configuration: ["configuration"],
720
+ };
721
+ return mapping[type] || [];
722
+ }
723
+ getSeverityIcon(severity) {
724
+ const icons = {
725
+ critical: "🚨",
726
+ high: "🔴",
727
+ medium: "🟡",
728
+ low: "đŸŸĸ",
729
+ info: "â„šī¸",
730
+ };
731
+ return icons[severity] || "❓";
732
+ }
733
+ generateMarkdownReport(report, includeRemediation) {
734
+ let output = `# Security Audit Report\n\n`;
735
+ output += `## Executive Summary\n\n`;
736
+ output += `- **Files Analyzed**: ${report.summary.totalFiles}\n`;
737
+ output += `- **Vulnerabilities Found**: ${report.summary.vulnerabilitiesFound}\n`;
738
+ output += `- **Risk Score**: ${report.summary.overallRiskScore}/100\n`;
739
+ output += `- **Compliance Score**: ${report.summary.complianceScore}/100\n\n`;
740
+ output += `## Vulnerability Breakdown\n\n`;
741
+ output += `| Severity | Count |\n`;
742
+ output += `|----------|-------|\n`;
743
+ output += `| Critical | ${report.summary.criticalCount} |\n`;
744
+ output += `| High | ${report.summary.highCount} |\n`;
745
+ output += `| Medium | ${report.summary.mediumCount} |\n`;
746
+ output += `| Low | ${report.summary.lowCount} |\n\n`;
747
+ if (includeRemediation) {
748
+ output += `## Key Recommendations\n\n`;
749
+ report.recommendations.forEach((rec, i) => {
750
+ output += `${i + 1}. ${rec}\n`;
751
+ });
752
+ output += `\n`;
753
+ }
754
+ output += `## Detailed Findings\n\n`;
755
+ report.vulnerabilities.forEach((vuln) => {
756
+ output += `### ${this.getSeverityIcon(vuln.severity)} ${vuln.title}\n\n`;
757
+ output += `- **File**: ${vuln.file}:${vuln.line}\n`;
758
+ output += `- **Category**: ${vuln.category}\n`;
759
+ output += `- **Severity**: ${vuln.severity}\n`;
760
+ output += `- **Description**: ${vuln.description}\n`;
761
+ output += `- **Impact**: ${vuln.impact}\n`;
762
+ output += `- **Recommendation**: ${vuln.recommendation}\n\n`;
763
+ if (vuln.cwe)
764
+ output += `- **CWE**: ${vuln.cwe}\n`;
765
+ if (vuln.owasp)
766
+ output += `- **OWASP**: ${vuln.owasp}\n`;
767
+ output += `\n---\n\n`;
768
+ });
769
+ return output;
770
+ }
771
+ generateHTMLReport(report, includeRemediation) {
772
+ // Simplified HTML generation - could be expanded
773
+ return `<html><body><h1>Security Audit Report</h1><p>Risk Score: ${report.summary.overallRiskScore}/100</p></body></html>`;
774
+ }
775
+ /**
776
+ * Governance-oriented proposal analysis from a security perspective.
777
+ */
778
+ async analyzeProposal(args) {
779
+ const { proposalTitle = "", proposalDescription = "", evidence = [], proposalType = "" } = args;
780
+ const text = `${proposalTitle} ${proposalDescription} ${evidence.join(" ")}`.toLowerCase();
781
+ let decision = "approve";
782
+ let confidence = 0.82;
783
+ let reasoning = "The proposal does not appear to introduce significant new security surface area.";
784
+ if (text.includes("aml") || text.includes("kyc") || text.includes("anti-money")) {
785
+ decision = "approve";
786
+ confidence = 0.91;
787
+ reasoning = "AML/KYC compliance measures are critical for regulatory security posture. Automated transaction monitoring closes vulnerability gaps in financial crime detection and demonstrates due diligence for regulatory inspections.";
788
+ }
789
+ else if (text.includes("psd2") || text.includes("strong customer authentication") || text.includes("payment initiation")) {
790
+ decision = "approve";
791
+ confidence = 0.93;
792
+ reasoning = "PSD2 SCA implementation is a mandatory security control for payment services. Multi-factor authentication with dynamic linking reduces unauthorized payment risk and satisfies EBA regulatory technical standards.";
793
+ }
794
+ else if (text.includes("gdpr") || text.includes("right to erasure") || text.includes("data protection")) {
795
+ decision = "approve";
796
+ confidence = 0.94;
797
+ reasoning = "GDPR compliance controls are foundational to data security posture. Automated data erasure pipelines reduce data breach exposure windows and satisfy supervisory authority inspection requirements.";
798
+ }
799
+ else if (text.includes("beneficial ownership") || text.includes("ubo") || text.includes("pep screening")) {
800
+ decision = "approve";
801
+ confidence = 0.87;
802
+ reasoning = "Beneficial ownership transparency and PEP screening are critical AML controls. Verifying ultimate beneficial owners reduces money laundering risk through corporate account structuring.";
803
+ }
804
+ else if (text.includes("extract method")) {
805
+ decision = "approve";
806
+ confidence = 0.88;
807
+ reasoning = "Extract Method refactoring improves security posture by reducing attack surface in large monolithic files and enabling better isolation of sensitive logic.";
808
+ }
809
+ else if (text.includes("test coverage")) {
810
+ decision = "approve";
811
+ confidence = 0.91;
812
+ reasoning = "Expanding test coverage is one of the highest-ROI security controls available — more tests surface regressions and boundary condition vulnerabilities earlier.";
813
+ }
814
+ else if (text.includes("increase timeout") && text.includes("flaky")) {
815
+ decision = "reject";
816
+ confidence = 0.75;
817
+ reasoning = "Repeatedly increasing timeouts to hide flaky tests can mask timing attacks, race conditions, and resource exhaustion vulnerabilities. Root cause remediation is required.";
818
+ }
819
+ if (proposalType === "fix" && text.includes("timeout")) {
820
+ confidence = Math.max(0.65, confidence - 0.10);
821
+ }
822
+ return {
823
+ content: [
824
+ {
825
+ type: "text",
826
+ text: `DECISION: ${decision}\nCONFIDENCE: ${confidence.toFixed(2)}\nREASONING: ${reasoning}`,
827
+ },
828
+ ],
829
+ };
830
+ }
831
+ async run() {
832
+ const transport = new StdioServerTransport();
833
+ await this.server.connect(transport);
834
+ // Use centralized shutdown handler
835
+ createGracefulShutdown({
836
+ serverName: "security-audit.server",
837
+ server: this.server,
838
+ });
839
+ }
840
+ }
841
+ // Run the server if this file is executed directly
842
+ if (import.meta.url === `file://${process.argv[1]}`) {
843
+ const server = new StringRaySecurityAuditServer();
844
+ server.run().catch(() => { });
845
+ }
846
+ export { StringRaySecurityAuditServer };