agentic-qe 3.7.9 → 3.7.10

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 (358) hide show
  1. package/.claude/skills/.validation/README.md +111 -111
  2. package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
  3. package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -252
  4. package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -413
  5. package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -350
  6. package/.claude/skills/.validation/schemas/skill-eval.schema.json +462 -462
  7. package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
  8. package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
  9. package/.claude/skills/.validation/schemas/skill-output.template.json +610 -610
  10. package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -250
  11. package/.claude/skills/.validation/templates/eval.template.yaml +366 -366
  12. package/.claude/skills/.validation/templates/schemas/output.json +145 -145
  13. package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
  14. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
  15. package/.claude/skills/.validation/test-data/invalid-output.json +5 -5
  16. package/.claude/skills/.validation/test-data/minimal-output.json +9 -9
  17. package/.claude/skills/.validation/test-data/sample-output.json +73 -73
  18. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
  19. package/.claude/skills/a11y-ally/schemas/output.json +549 -549
  20. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
  21. package/.claude/skills/accessibility-testing/schemas/output.json +776 -776
  22. package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -191
  23. package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -577
  24. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
  25. package/.claude/skills/api-testing-patterns/schemas/output.json +845 -845
  26. package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
  27. package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -291
  28. package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -288
  29. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
  30. package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
  31. package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
  32. package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
  33. package/.claude/skills/code-review-quality/schemas/output.json +264 -264
  34. package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
  35. package/.claude/skills/compatibility-testing/schemas/output.json +551 -551
  36. package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
  37. package/.claude/skills/compliance-testing/schemas/output.json +845 -845
  38. package/.claude/skills/consultancy-practices/schemas/output.json +282 -282
  39. package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -748
  40. package/.claude/skills/contract-testing/schemas/output.json +638 -638
  41. package/.claude/skills/database-testing/evals/database-testing.yaml +968 -968
  42. package/.claude/skills/database-testing/schemas/output.json +1446 -1446
  43. package/.claude/skills/debug-loop/SKILL.md +61 -61
  44. package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -735
  45. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
  46. package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -74
  47. package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
  48. package/.claude/skills/iterative-loop/SKILL.md +371 -371
  49. package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -544
  50. package/.claude/skills/localization-testing/schemas/output.json +325 -325
  51. package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -798
  52. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
  53. package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -58
  54. package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
  55. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
  56. package/.claude/skills/mobile-testing/schemas/output.json +318 -318
  57. package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
  58. package/.claude/skills/mutation-testing/schemas/output.json +707 -707
  59. package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -295
  60. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
  61. package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -369
  62. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
  63. package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
  64. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
  65. package/.claude/skills/n8n-security-testing/schemas/output.json +293 -293
  66. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
  67. package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
  68. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
  69. package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
  70. package/.claude/skills/observability-testing-patterns/SKILL.md +930 -930
  71. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
  72. package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -58
  73. package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
  74. package/.claude/skills/pentest-validation/SKILL.md +268 -268
  75. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
  76. package/.claude/skills/pentest-validation/schemas/output.json +281 -281
  77. package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -144
  78. package/.claude/skills/performance-analysis/schemas/output.json +588 -588
  79. package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -772
  80. package/.claude/skills/performance-testing/schemas/output.json +1184 -1184
  81. package/.claude/skills/pr-review/SKILL.md +61 -61
  82. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
  83. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
  84. package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
  85. package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
  86. package/.claude/skills/qcsd-development-swarm/SKILL.md +2154 -2154
  87. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
  88. package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -72
  89. package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
  90. package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
  91. package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
  92. package/.claude/skills/qcsd-production-swarm/SKILL.md +2781 -2781
  93. package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
  94. package/.claude/skills/qcsd-production-swarm/schemas/output.json +505 -505
  95. package/.claude/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
  96. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
  97. package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -314
  98. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
  99. package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -315
  100. package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
  101. package/.claude/skills/qe-contract-testing/schemas/output.json +295 -295
  102. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
  103. package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -286
  104. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
  105. package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -283
  106. package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -264
  107. package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
  108. package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -288
  109. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
  110. package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -550
  111. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
  112. package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -587
  113. package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
  114. package/.claude/skills/qe-security-compliance/schemas/output.json +498 -498
  115. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
  116. package/.claude/skills/qe-test-execution/schemas/output.json +529 -529
  117. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
  118. package/.claude/skills/qe-test-generation/schemas/output.json +439 -439
  119. package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
  120. package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -491
  121. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
  122. package/.claude/skills/quality-metrics/schemas/output.json +403 -403
  123. package/.claude/skills/refactoring-patterns/schemas/output.json +475 -475
  124. package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -504
  125. package/.claude/skills/regression-testing/schemas/output.json +311 -311
  126. package/.claude/skills/release/SKILL.md +347 -347
  127. package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
  128. package/.claude/skills/risk-based-testing/schemas/output.json +480 -480
  129. package/.claude/skills/security-testing/evals/security-testing.yaml +789 -789
  130. package/.claude/skills/security-testing/schemas/output.json +879 -879
  131. package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
  132. package/.claude/skills/security-visual-testing/schemas/output.json +486 -486
  133. package/.claude/skills/sfdipot-product-factors/SKILL.md +239 -239
  134. package/.claude/skills/sherlock-review/schemas/output.json +297 -297
  135. package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
  136. package/.claude/skills/shift-left-testing/schemas/output.json +459 -459
  137. package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
  138. package/.claude/skills/shift-right-testing/schemas/output.json +418 -418
  139. package/.claude/skills/skills-manifest.json +1 -1
  140. package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -444
  141. package/.claude/skills/technical-writing/schemas/output.json +268 -268
  142. package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
  143. package/.claude/skills/test-automation-strategy/schemas/output.json +444 -444
  144. package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -504
  145. package/.claude/skills/test-data-management/schemas/output.json +284 -284
  146. package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
  147. package/.claude/skills/test-design-techniques/schemas/output.json +295 -295
  148. package/.claude/skills/test-environment-management/schemas/output.json +310 -310
  149. package/.claude/skills/test-idea-rewriting/SKILL.md +229 -229
  150. package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
  151. package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -329
  152. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
  153. package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -84
  154. package/.claude/skills/testability-scoring/schemas/output.json +606 -606
  155. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
  156. package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -150
  157. package/.claude/skills/verification-quality/schemas/output.json +432 -432
  158. package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
  159. package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -294
  160. package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
  161. package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -150
  162. package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
  163. package/CHANGELOG.md +14 -0
  164. package/README.md +169 -900
  165. package/assets/agents/v3/helpers/quality-criteria/evidence-classification.md +116 -116
  166. package/assets/agents/v3/helpers/quality-criteria/htsm-categories.md +139 -139
  167. package/assets/governance/constitution.md +202 -202
  168. package/assets/governance/shards/chaos-resilience.shard.md +221 -221
  169. package/assets/governance/shards/code-intelligence.shard.md +178 -178
  170. package/assets/governance/shards/contract-testing.shard.md +206 -206
  171. package/assets/governance/shards/coverage-analysis.shard.md +146 -146
  172. package/assets/governance/shards/defect-intelligence.shard.md +182 -182
  173. package/assets/governance/shards/learning-optimization.shard.md +248 -248
  174. package/assets/governance/shards/quality-assessment.shard.md +165 -165
  175. package/assets/governance/shards/requirements-validation.shard.md +177 -177
  176. package/assets/governance/shards/security-compliance.shard.md +196 -196
  177. package/assets/governance/shards/test-execution.shard.md +156 -156
  178. package/assets/governance/shards/test-generation.shard.md +128 -128
  179. package/assets/governance/shards/visual-accessibility.shard.md +209 -209
  180. package/assets/hooks/cross-phase-memory.yaml +253 -253
  181. package/assets/patterns/adr-051-booster-patterns.json +78 -78
  182. package/assets/patterns/adr-051-embedding-patterns.json +147 -147
  183. package/assets/patterns/adr-051-integration-summary.json +62 -62
  184. package/assets/patterns/adr-051-reasoning-patterns.json +166 -166
  185. package/assets/patterns/adr-051-router-patterns.json +113 -113
  186. package/assets/patterns/index.json +136 -136
  187. package/assets/skills/.validation/README.md +111 -111
  188. package/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
  189. package/assets/skills/.validation/examples/performance-testing-output.example.json +252 -252
  190. package/assets/skills/.validation/examples/security-testing-output.example.json +413 -413
  191. package/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -350
  192. package/assets/skills/.validation/schemas/skill-eval.schema.json +462 -462
  193. package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
  194. package/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
  195. package/assets/skills/.validation/schemas/skill-output.template.json +610 -610
  196. package/assets/skills/.validation/skill-validation-mcp-integration.md +250 -250
  197. package/assets/skills/.validation/templates/eval.template.yaml +366 -366
  198. package/assets/skills/.validation/templates/schemas/output.json +145 -145
  199. package/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
  200. package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
  201. package/assets/skills/.validation/test-data/invalid-output.json +5 -5
  202. package/assets/skills/.validation/test-data/minimal-output.json +9 -9
  203. package/assets/skills/.validation/test-data/sample-output.json +73 -73
  204. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
  205. package/assets/skills/a11y-ally/schemas/output.json +549 -549
  206. package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
  207. package/assets/skills/accessibility-testing/schemas/output.json +776 -776
  208. package/assets/skills/accessibility-testing/test-data/sample-output.json +191 -191
  209. package/assets/skills/agentic-quality-engineering/schemas/output.json +577 -577
  210. package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
  211. package/assets/skills/api-testing-patterns/schemas/output.json +845 -845
  212. package/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
  213. package/assets/skills/brutal-honesty-review/schemas/output.json +291 -291
  214. package/assets/skills/bug-reporting-excellence/schemas/output.json +288 -288
  215. package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
  216. package/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
  217. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
  218. package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
  219. package/assets/skills/code-review-quality/schemas/output.json +264 -264
  220. package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
  221. package/assets/skills/compatibility-testing/schemas/output.json +551 -551
  222. package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
  223. package/assets/skills/compliance-testing/schemas/output.json +845 -845
  224. package/assets/skills/consultancy-practices/schemas/output.json +282 -282
  225. package/assets/skills/contract-testing/evals/contract-testing.yaml +748 -748
  226. package/assets/skills/contract-testing/schemas/output.json +638 -638
  227. package/assets/skills/database-testing/evals/database-testing.yaml +968 -968
  228. package/assets/skills/database-testing/schemas/output.json +1446 -1446
  229. package/assets/skills/debug-loop/SKILL.md +61 -61
  230. package/assets/skills/enterprise-integration-testing/SKILL.md +735 -735
  231. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
  232. package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -74
  233. package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
  234. package/assets/skills/localization-testing/evals/localization-testing.yaml +544 -544
  235. package/assets/skills/localization-testing/schemas/output.json +325 -325
  236. package/assets/skills/middleware-testing-patterns/SKILL.md +798 -798
  237. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
  238. package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -58
  239. package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
  240. package/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
  241. package/assets/skills/mobile-testing/schemas/output.json +318 -318
  242. package/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
  243. package/assets/skills/mutation-testing/schemas/output.json +707 -707
  244. package/assets/skills/mutation-testing/test-data/sample-output.json +295 -295
  245. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
  246. package/assets/skills/n8n-expression-testing/schemas/output.json +369 -369
  247. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
  248. package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
  249. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
  250. package/assets/skills/n8n-security-testing/schemas/output.json +293 -293
  251. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
  252. package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
  253. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
  254. package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
  255. package/assets/skills/observability-testing-patterns/SKILL.md +930 -930
  256. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
  257. package/assets/skills/observability-testing-patterns/schemas/output.json +58 -58
  258. package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
  259. package/assets/skills/pentest-validation/SKILL.md +268 -268
  260. package/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
  261. package/assets/skills/pentest-validation/schemas/output.json +281 -281
  262. package/assets/skills/performance-testing/evals/performance-testing.yaml +772 -772
  263. package/assets/skills/performance-testing/schemas/output.json +1184 -1184
  264. package/assets/skills/pr-review/SKILL.md +61 -61
  265. package/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
  266. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
  267. package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
  268. package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
  269. package/assets/skills/qcsd-development-swarm/SKILL.md +2154 -2154
  270. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
  271. package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -72
  272. package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
  273. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
  274. package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
  275. package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -2781
  276. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
  277. package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -505
  278. package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
  279. package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
  280. package/assets/skills/qe-chaos-resilience/schemas/output.json +314 -314
  281. package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
  282. package/assets/skills/qe-code-intelligence/schemas/output.json +315 -315
  283. package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
  284. package/assets/skills/qe-contract-testing/schemas/output.json +295 -295
  285. package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
  286. package/assets/skills/qe-coverage-analysis/schemas/output.json +286 -286
  287. package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
  288. package/assets/skills/qe-defect-intelligence/schemas/output.json +283 -283
  289. package/assets/skills/qe-iterative-loop/schemas/output.json +264 -264
  290. package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
  291. package/assets/skills/qe-learning-optimization/schemas/output.json +288 -288
  292. package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
  293. package/assets/skills/qe-quality-assessment/schemas/output.json +550 -550
  294. package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
  295. package/assets/skills/qe-requirements-validation/schemas/output.json +587 -587
  296. package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
  297. package/assets/skills/qe-security-compliance/schemas/output.json +498 -498
  298. package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
  299. package/assets/skills/qe-test-execution/schemas/output.json +529 -529
  300. package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
  301. package/assets/skills/qe-test-generation/schemas/output.json +439 -439
  302. package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
  303. package/assets/skills/qe-visual-accessibility/schemas/output.json +491 -491
  304. package/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
  305. package/assets/skills/quality-metrics/schemas/output.json +403 -403
  306. package/assets/skills/refactoring-patterns/schemas/output.json +475 -475
  307. package/assets/skills/regression-testing/evals/regression-testing.yaml +504 -504
  308. package/assets/skills/regression-testing/schemas/output.json +311 -311
  309. package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
  310. package/assets/skills/risk-based-testing/schemas/output.json +480 -480
  311. package/assets/skills/security-testing/evals/security-testing.yaml +789 -789
  312. package/assets/skills/security-testing/schemas/output.json +879 -879
  313. package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
  314. package/assets/skills/security-visual-testing/schemas/output.json +486 -486
  315. package/assets/skills/sfdipot-product-factors/SKILL.md +239 -239
  316. package/assets/skills/sherlock-review/schemas/output.json +297 -297
  317. package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
  318. package/assets/skills/shift-left-testing/schemas/output.json +459 -459
  319. package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
  320. package/assets/skills/shift-right-testing/schemas/output.json +418 -418
  321. package/assets/skills/tdd-london-chicago/schemas/output.json +444 -444
  322. package/assets/skills/technical-writing/schemas/output.json +268 -268
  323. package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
  324. package/assets/skills/test-automation-strategy/schemas/output.json +444 -444
  325. package/assets/skills/test-data-management/evals/test-data-management.yaml +504 -504
  326. package/assets/skills/test-data-management/schemas/output.json +284 -284
  327. package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
  328. package/assets/skills/test-design-techniques/schemas/output.json +295 -295
  329. package/assets/skills/test-environment-management/schemas/output.json +310 -310
  330. package/assets/skills/test-idea-rewriting/SKILL.md +229 -229
  331. package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
  332. package/assets/skills/test-reporting-analytics/schemas/output.json +329 -329
  333. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
  334. package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -84
  335. package/assets/skills/testability-scoring/schemas/output.json +606 -606
  336. package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
  337. package/assets/skills/verification-quality/evals/verification-quality.yaml +150 -150
  338. package/assets/skills/verification-quality/schemas/output.json +432 -432
  339. package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
  340. package/assets/skills/visual-testing-advanced/schemas/output.json +294 -294
  341. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
  342. package/assets/skills/wms-testing-patterns/schemas/output.json +150 -150
  343. package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
  344. package/assets/templates/validation-summary.json +56 -56
  345. package/dist/cli/bundle.js +54 -31
  346. package/dist/cli/commands/mcp.d.ts.map +1 -1
  347. package/dist/cli/commands/mcp.js +11 -9
  348. package/dist/cli/commands/mcp.js.map +1 -1
  349. package/dist/init/phases/10-workers.js +2 -2
  350. package/dist/init/phases/10-workers.js.map +1 -1
  351. package/dist/mcp/bundle.js +42 -19
  352. package/dist/shared/language-detector.js +1 -1
  353. package/dist/shared/language-detector.js.map +1 -1
  354. package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -1
  355. package/dist/shared/parsers/multi-language-parser.js +55 -16
  356. package/dist/shared/parsers/multi-language-parser.js.map +1 -1
  357. package/package.json +1 -1
  358. package/scripts/prepare-assets.sh +8 -0
@@ -24927,10 +24927,11 @@ function countBraceDelta(line) {
24927
24927
  }
24928
24928
  return delta;
24929
24929
  }
24930
- var PythonParser, JavaParser, CSharpParser, GoParser, RustParser, SwiftParser, KotlinParser, DartParser, TreeSitterParserRegistry, treeSitterRegistry;
24930
+ var MAX_REGEX_LINE_LEN, PythonParser, JavaParser, CSharpParser, GoParser, RustParser, SwiftParser, KotlinParser, DartParser, TreeSitterParserRegistry, treeSitterRegistry;
24931
24931
  var init_multi_language_parser = __esm({
24932
24932
  "src/shared/parsers/multi-language-parser.ts"() {
24933
24933
  "use strict";
24934
+ MAX_REGEX_LINE_LEN = 1e3;
24934
24935
  PythonParser = class {
24935
24936
  language = "python";
24936
24937
  supportedExtensions = [".py"];
@@ -24947,8 +24948,9 @@ var init_multi_language_parser = __esm({
24947
24948
  const functions = [];
24948
24949
  const rawLines = content.split("\n");
24949
24950
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
24950
- const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]+))?\s*:/;
24951
+ const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]*\S))?\s*:/;
24951
24952
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
24953
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
24952
24954
  const match = logicalLines[i58].match(funcRegex);
24953
24955
  if (match) {
24954
24956
  const indent = match[1].length;
@@ -25034,9 +25036,10 @@ var init_multi_language_parser = __esm({
25034
25036
  const imports = [];
25035
25037
  const lines = content.split("\n");
25036
25038
  for (const line of lines) {
25039
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25037
25040
  const fromMatch = line.match(/^\s*from\s+(\S+)\s+import\s+(.+)/);
25038
25041
  if (fromMatch) {
25039
- const names = fromMatch[2].split(",").map((n61) => n61.trim().split(/\s+as\s+/)[0]);
25042
+ const names = fromMatch[2].split(",").map((n61) => n61.trim().split(" as ")[0]);
25040
25043
  imports.push({
25041
25044
  module: fromMatch[1],
25042
25045
  namedImports: names,
@@ -25085,10 +25088,11 @@ var init_multi_language_parser = __esm({
25085
25088
  const functions = [];
25086
25089
  const rawLines = content.split("\n");
25087
25090
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25088
- const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w<>,.\s[\]?]+)\s+(\w+)\s*\(([^)]*)\)/;
25091
+ const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
25089
25092
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25090
25093
  const line = logicalLines[i58];
25091
25094
  if (line.includes(" class ") || line.includes(" interface ")) continue;
25095
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25092
25096
  const match = line.match(methodRegex);
25093
25097
  if (match) {
25094
25098
  const visibility = match[1] || "default";
@@ -25125,8 +25129,9 @@ var init_multi_language_parser = __esm({
25125
25129
  const classes = [];
25126
25130
  const rawLines = content.split("\n");
25127
25131
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25128
- const classRegex = /^\s*(public|private|protected)?\s*(abstract)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+implements\s+([^{]+))?\s*\{?/;
25132
+ const classRegex = /^\s*(public|private|protected)?\s*(abstract)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+implements\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
25129
25133
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25134
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25130
25135
  const match = logicalLines[i58].match(classRegex);
25131
25136
  if (match) {
25132
25137
  const name = match[3];
@@ -25153,7 +25158,8 @@ var init_multi_language_parser = __esm({
25153
25158
  const imports = [];
25154
25159
  const lines = content.split("\n");
25155
25160
  for (const line of lines) {
25156
- const match = line.match(/^\s*import\s+(static\s+)?([^;]+);/);
25161
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25162
+ const match = line.match(/^\s*import +(static +)?(\S[^;]*);/);
25157
25163
  if (match) {
25158
25164
  const module = match[2].trim();
25159
25165
  const parts = module.split(".");
@@ -25194,10 +25200,11 @@ var init_multi_language_parser = __esm({
25194
25200
  const functions = [];
25195
25201
  const rawLines = content.split("\n");
25196
25202
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25197
- const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w<>,.\s[\]?]+)\s+(\w+)\s*\(([^)]*)\)/;
25203
+ const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
25198
25204
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25199
25205
  const line = logicalLines[i58];
25200
25206
  if (line.includes(" class ") || line.includes(" interface ") || line.includes(" namespace ")) continue;
25207
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25201
25208
  const match = line.match(methodRegex);
25202
25209
  if (match) {
25203
25210
  const visibility = match[1] || "private";
@@ -25235,8 +25242,9 @@ var init_multi_language_parser = __esm({
25235
25242
  const classes = [];
25236
25243
  const rawLines = content.split("\n");
25237
25244
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25238
- const classRegex = /^\s*(public|private|protected|internal)?\s*(abstract|sealed|static|partial)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{]+))?\s*\{?/;
25245
+ const classRegex = /^\s*(public|private|protected|internal)?\s*(abstract|sealed|static|partial)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
25239
25246
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25247
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25240
25248
  const match = logicalLines[i58].match(classRegex);
25241
25249
  if (match) {
25242
25250
  const name = match[3];
@@ -25262,7 +25270,8 @@ var init_multi_language_parser = __esm({
25262
25270
  const imports = [];
25263
25271
  const lines = content.split("\n");
25264
25272
  for (const line of lines) {
25265
- const match = line.match(/^\s*using\s+(static\s+)?([^;]+);/);
25273
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25274
+ const match = line.match(/^\s*using +(static +)?(\S[^;]*);/);
25266
25275
  if (match) {
25267
25276
  imports.push({
25268
25277
  module: match[2].trim(),
@@ -25308,6 +25317,10 @@ var init_multi_language_parser = __esm({
25308
25317
  let braceDepth = 0;
25309
25318
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25310
25319
  const line = logicalLines[i58];
25320
+ if (line.length > MAX_REGEX_LINE_LEN) {
25321
+ braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
25322
+ continue;
25323
+ }
25311
25324
  const match = line.match(funcRegex);
25312
25325
  if (match && braceDepth === 0) {
25313
25326
  const name = match[3];
@@ -25415,7 +25428,7 @@ var init_multi_language_parser = __esm({
25415
25428
  const functions = [];
25416
25429
  const rawLines = content.split("\n");
25417
25430
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25418
- const fnRegex = /^\s*(pub(?:\(crate\))?\s+)?(async\s+)?fn\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*->\s*([^{]+))?\s*(?:where\s+[^{]*)?\s*\{?/;
25431
+ const fnRegex = /^\s*(pub(?:\(crate\))? +)?(async +)?fn\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*(?:where\s+[^{\s]+(?:\s+[^{\s]+)*)?\s*\{?/;
25419
25432
  let braceDepth = 0;
25420
25433
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25421
25434
  const line = logicalLines[i58];
@@ -25475,7 +25488,8 @@ var init_multi_language_parser = __esm({
25475
25488
  const imports = [];
25476
25489
  const lines = content.split("\n");
25477
25490
  for (const line of lines) {
25478
- const match = line.match(/^\s*use\s+([^;]+);/);
25491
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25492
+ const match = line.match(/^\s*use +(\S[^;]*);/);
25479
25493
  if (match) {
25480
25494
  imports.push({
25481
25495
  module: match[1].trim(),
@@ -25520,8 +25534,9 @@ var init_multi_language_parser = __esm({
25520
25534
  extractFunctions(content) {
25521
25535
  const functions = [];
25522
25536
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25523
- const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws\s+)?(?:->\s*([^{]+))?\s*\{?/;
25537
+ const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws +)?(?:->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
25524
25538
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25539
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25525
25540
  const match = logicalLines[i58].match(funcRegex);
25526
25541
  if (match) {
25527
25542
  const visibility = match[1] || "internal";
@@ -25548,8 +25563,9 @@ var init_multi_language_parser = __esm({
25548
25563
  extractClasses(content) {
25549
25564
  const classes = [];
25550
25565
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25551
- const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{]+))?\s*\{?/;
25566
+ const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
25552
25567
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25568
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25553
25569
  const match = logicalLines[i58].match(classRegex);
25554
25570
  if (match) {
25555
25571
  const name = match[3];
@@ -25615,10 +25631,14 @@ var init_multi_language_parser = __esm({
25615
25631
  const functions = [];
25616
25632
  const rawLines = content.split("\n");
25617
25633
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25618
- const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]*>\s+)?(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^{=]+))?\s*/;
25634
+ const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]*> +)?(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^{=\s]+(?:\s+[^{=\s]+)*))?\s*/;
25619
25635
  let braceDepth = 0;
25620
25636
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25621
25637
  const line = logicalLines[i58];
25638
+ if (line.length > MAX_REGEX_LINE_LEN) {
25639
+ braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
25640
+ continue;
25641
+ }
25622
25642
  const match = line.match(funcRegex);
25623
25643
  if (match && braceDepth <= 1) {
25624
25644
  const visibility = match[1] || "public";
@@ -25657,8 +25677,9 @@ var init_multi_language_parser = __esm({
25657
25677
  const classes = [];
25658
25678
  const rawLines = content.split("\n");
25659
25679
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25660
- const classRegex = /^\s*(public|private|protected|internal)?\s*(data|sealed|abstract|open)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*(?:\([^)]*\))?\s*:\s*([^{]+))?\s*\{?/;
25680
+ const classRegex = /^\s*(public|private|protected|internal)?\s*(data|sealed|abstract|open)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*(?:\([^)]*\))?\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
25661
25681
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25682
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25662
25683
  const match = logicalLines[i58].match(classRegex);
25663
25684
  if (match) {
25664
25685
  const name = match[3];
@@ -25731,10 +25752,11 @@ var init_multi_language_parser = __esm({
25731
25752
  extractFunctions(content) {
25732
25753
  const functions = [];
25733
25754
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25734
- const funcRegex = /^\s*([\w<>,.\s?]+)\s+(\w+)\s*\(([^)]*)\)(?:\s*(async))?\s*\{/;
25755
+ const funcRegex = /^\s*([\w<>,.?]+(?:\s+[\w<>,.?]+)*)\s+(\w+)\s*\(([^)]*)\)(?:\s*(async))?\s*\{/;
25735
25756
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25736
25757
  const line = logicalLines[i58];
25737
25758
  if (line.includes(" class ")) continue;
25759
+ if (line.length > MAX_REGEX_LINE_LEN) continue;
25738
25760
  const match = line.match(funcRegex);
25739
25761
  if (match) {
25740
25762
  const returnTypeRaw = match[1].trim();
@@ -25768,8 +25790,9 @@ var init_multi_language_parser = __esm({
25768
25790
  extractClasses(content) {
25769
25791
  const classes = [];
25770
25792
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
25771
- const classRegex = /^\s*(abstract\s+)?class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+(?:with|implements)\s+([^{]+))?\s*\{/;
25793
+ const classRegex = /^\s*(abstract +)?class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+(?:with|implements)\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{/;
25772
25794
  for (let i58 = 0; i58 < logicalLines.length; i58++) {
25795
+ if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
25773
25796
  const match = logicalLines[i58].match(classRegex);
25774
25797
  if (match) {
25775
25798
  const name = match[2];
@@ -25938,7 +25961,7 @@ function detectFrameworkFromProject(language, projectRoot) {
25938
25961
  }
25939
25962
  function findFiles(dir, pattern) {
25940
25963
  try {
25941
- const ext = pattern.replace("*", "");
25964
+ const ext = pattern.replace(/\*/g, "");
25942
25965
  return fs2.readdirSync(dir).filter((f74) => f74.endsWith(ext)).map((f74) => path2.join(dir, f74));
25943
25966
  } catch {
25944
25967
  return [];
@@ -172064,7 +172087,7 @@ async function handleAQEHealth() {
172064
172087
  success: true,
172065
172088
  data: {
172066
172089
  status: healthStatus,
172067
- version: true ? "3.7.9" : "3.7.2",
172090
+ version: true ? "3.7.10" : "3.7.2",
172068
172091
  loadedDomains: domainCount,
172069
172092
  memory: memoryStats,
172070
172093
  hnsw: hnswStats,
@@ -136,7 +136,7 @@ function detectFrameworkFromProject(language, projectRoot) {
136
136
  */
137
137
  function findFiles(dir, pattern) {
138
138
  try {
139
- const ext = pattern.replace('*', '');
139
+ const ext = pattern.replace(/\*/g, '');
140
140
  return fs.readdirSync(dir)
141
141
  .filter(f => f.endsWith(ext))
142
142
  .map(f => path.join(dir, f));
@@ -1 +1 @@
1
- {"version":3,"file":"language-detector.js","sourceRoot":"","sources":["../../src/shared/language-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language-detector.js","sourceRoot":"","sources":["../../src/shared/language-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"multi-language-parser.d.ts","sourceRoot":"","sources":["../../../src/shared/parsers/multi-language-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-language-parser.d.ts","sourceRoot":"","sources":["../../../src/shared/parsers/multi-language-parser.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@
10
10
  // ============================================================================
11
11
  // Shared Parsing Utilities
12
12
  // ============================================================================
13
+ // Maximum line length for regex matching. Joined multi-line signatures can be long;
14
+ // lines beyond this limit are skipped to prevent polynomial-time regex backtracking (CWE-1333).
15
+ const MAX_REGEX_LINE_LEN = 1000;
13
16
  /**
14
17
  * Join multi-line signatures into single logical lines.
15
18
  * Handles: function params spanning lines, class declarations with long implements lists,
@@ -232,8 +235,10 @@ class PythonParser {
232
235
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
233
236
  // Match: def function_name(params) -> return_type:
234
237
  // or: async def function_name(params) -> return_type:
235
- const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]+))?\s*:/;
238
+ const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]*\S))?\s*:/;
236
239
  for (let i = 0; i < logicalLines.length; i++) {
240
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
241
+ continue;
237
242
  const match = logicalLines[i].match(funcRegex);
238
243
  if (match) {
239
244
  const indent = match[1].length;
@@ -326,12 +331,14 @@ class PythonParser {
326
331
  const imports = [];
327
332
  const lines = content.split('\n');
328
333
  for (const line of lines) {
334
+ if (line.length > MAX_REGEX_LINE_LEN)
335
+ continue;
329
336
  // from module import name1, name2
330
337
  const fromMatch = line.match(/^\s*from\s+(\S+)\s+import\s+(.+)/);
331
338
  if (fromMatch) {
332
339
  const names = fromMatch[2]
333
340
  .split(',')
334
- .map((n) => n.trim().split(/\s+as\s+/)[0]);
341
+ .map((n) => n.trim().split(' as ')[0]);
335
342
  imports.push({
336
343
  module: fromMatch[1],
337
344
  namedImports: names,
@@ -389,11 +396,13 @@ class JavaParser {
389
396
  const rawLines = content.split('\n');
390
397
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
391
398
  // Match method declarations — use a simpler regex without <[^>]+> so generics don't break
392
- const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w<>,.\s[\]?]+)\s+(\w+)\s*\(([^)]*)\)/;
399
+ const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
393
400
  for (let i = 0; i < logicalLines.length; i++) {
394
401
  const line = logicalLines[i];
395
402
  if (line.includes(' class ') || line.includes(' interface '))
396
403
  continue;
404
+ if (line.length > MAX_REGEX_LINE_LEN)
405
+ continue;
397
406
  const match = line.match(methodRegex);
398
407
  if (match) {
399
408
  const visibility = match[1] || 'default';
@@ -432,8 +441,10 @@ class JavaParser {
432
441
  const classes = [];
433
442
  const rawLines = content.split('\n');
434
443
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
435
- const classRegex = /^\s*(public|private|protected)?\s*(abstract)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+implements\s+([^{]+))?\s*\{?/;
444
+ const classRegex = /^\s*(public|private|protected)?\s*(abstract)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+implements\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
436
445
  for (let i = 0; i < logicalLines.length; i++) {
446
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
447
+ continue;
437
448
  const match = logicalLines[i].match(classRegex);
438
449
  if (match) {
439
450
  const name = match[3];
@@ -462,7 +473,9 @@ class JavaParser {
462
473
  const imports = [];
463
474
  const lines = content.split('\n');
464
475
  for (const line of lines) {
465
- const match = line.match(/^\s*import\s+(static\s+)?([^;]+);/);
476
+ if (line.length > MAX_REGEX_LINE_LEN)
477
+ continue;
478
+ const match = line.match(/^\s*import +(static +)?(\S[^;]*);/);
466
479
  if (match) {
467
480
  const module = match[2].trim();
468
481
  const parts = module.split('.');
@@ -506,11 +519,13 @@ class CSharpParser {
506
519
  const functions = [];
507
520
  const rawLines = content.split('\n');
508
521
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
509
- const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w<>,.\s[\]?]+)\s+(\w+)\s*\(([^)]*)\)/;
522
+ const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
510
523
  for (let i = 0; i < logicalLines.length; i++) {
511
524
  const line = logicalLines[i];
512
525
  if (line.includes(' class ') || line.includes(' interface ') || line.includes(' namespace '))
513
526
  continue;
527
+ if (line.length > MAX_REGEX_LINE_LEN)
528
+ continue;
514
529
  const match = line.match(methodRegex);
515
530
  if (match) {
516
531
  const visibility = match[1] || 'private';
@@ -549,8 +564,10 @@ class CSharpParser {
549
564
  const classes = [];
550
565
  const rawLines = content.split('\n');
551
566
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
552
- const classRegex = /^\s*(public|private|protected|internal)?\s*(abstract|sealed|static|partial)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{]+))?\s*\{?/;
567
+ const classRegex = /^\s*(public|private|protected|internal)?\s*(abstract|sealed|static|partial)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
553
568
  for (let i = 0; i < logicalLines.length; i++) {
569
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
570
+ continue;
554
571
  const match = logicalLines[i].match(classRegex);
555
572
  if (match) {
556
573
  const name = match[3];
@@ -578,7 +595,9 @@ class CSharpParser {
578
595
  const imports = [];
579
596
  const lines = content.split('\n');
580
597
  for (const line of lines) {
581
- const match = line.match(/^\s*using\s+(static\s+)?([^;]+);/);
598
+ if (line.length > MAX_REGEX_LINE_LEN)
599
+ continue;
600
+ const match = line.match(/^\s*using +(static +)?(\S[^;]*);/);
582
601
  if (match) {
583
602
  imports.push({
584
603
  module: match[2].trim(),
@@ -630,6 +649,10 @@ class GoParser {
630
649
  let braceDepth = 0;
631
650
  for (let i = 0; i < logicalLines.length; i++) {
632
651
  const line = logicalLines[i];
652
+ if (line.length > MAX_REGEX_LINE_LEN) {
653
+ braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
654
+ continue;
655
+ }
633
656
  const match = line.match(funcRegex);
634
657
  if (match && braceDepth === 0) {
635
658
  const name = match[3];
@@ -744,7 +767,7 @@ class RustParser {
744
767
  const rawLines = content.split('\n');
745
768
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
746
769
  // Updated regex: use [^{]* instead of [^>]+ for generics to handle lifetimes
747
- const fnRegex = /^\s*(pub(?:\(crate\))?\s+)?(async\s+)?fn\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*->\s*([^{]+))?\s*(?:where\s+[^{]*)?\s*\{?/;
770
+ const fnRegex = /^\s*(pub(?:\(crate\))? +)?(async +)?fn\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*(?:where\s+[^{\s]+(?:\s+[^{\s]+)*)?\s*\{?/;
748
771
  // Track brace depth to filter nested closures.
749
772
  // Rust functions at depth 0 (top-level) and depth 1 (inside impl/mod blocks) are valid.
750
773
  let braceDepth = 0;
@@ -809,7 +832,9 @@ class RustParser {
809
832
  const imports = [];
810
833
  const lines = content.split('\n');
811
834
  for (const line of lines) {
812
- const match = line.match(/^\s*use\s+([^;]+);/);
835
+ if (line.length > MAX_REGEX_LINE_LEN)
836
+ continue;
837
+ const match = line.match(/^\s*use +(\S[^;]*);/);
813
838
  if (match) {
814
839
  imports.push({
815
840
  module: match[1].trim(),
@@ -857,8 +882,10 @@ class SwiftParser {
857
882
  extractFunctions(content) {
858
883
  const functions = [];
859
884
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
860
- const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws\s+)?(?:->\s*([^{]+))?\s*\{?/;
885
+ const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws +)?(?:->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
861
886
  for (let i = 0; i < logicalLines.length; i++) {
887
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
888
+ continue;
862
889
  const match = logicalLines[i].match(funcRegex);
863
890
  if (match) {
864
891
  const visibility = match[1] || 'internal';
@@ -885,8 +912,10 @@ class SwiftParser {
885
912
  extractClasses(content) {
886
913
  const classes = [];
887
914
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
888
- const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{]+))?\s*\{?/;
915
+ const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
889
916
  for (let i = 0; i < logicalLines.length; i++) {
917
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
918
+ continue;
890
919
  const match = logicalLines[i].match(classRegex);
891
920
  if (match) {
892
921
  const name = match[3];
@@ -956,12 +985,16 @@ class KotlinParser {
956
985
  const functions = [];
957
986
  const rawLines = content.split('\n');
958
987
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
959
- const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]*>\s+)?(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^{=]+))?\s*/;
988
+ const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]*> +)?(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^{=\s]+(?:\s+[^{=\s]+)*))?\s*/;
960
989
  // Track brace depth to filter nested lambdas that look like functions.
961
990
  // Kotlin functions at depth 0 (top-level) and depth 1 (inside class bodies) are valid.
962
991
  let braceDepth = 0;
963
992
  for (let i = 0; i < logicalLines.length; i++) {
964
993
  const line = logicalLines[i];
994
+ if (line.length > MAX_REGEX_LINE_LEN) {
995
+ braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
996
+ continue;
997
+ }
965
998
  const match = line.match(funcRegex);
966
999
  if (match && braceDepth <= 1) {
967
1000
  const visibility = match[1] || 'public';
@@ -1003,8 +1036,10 @@ class KotlinParser {
1003
1036
  const classes = [];
1004
1037
  const rawLines = content.split('\n');
1005
1038
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
1006
- const classRegex = /^\s*(public|private|protected|internal)?\s*(data|sealed|abstract|open)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*(?:\([^)]*\))?\s*:\s*([^{]+))?\s*\{?/;
1039
+ const classRegex = /^\s*(public|private|protected|internal)?\s*(data|sealed|abstract|open)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*(?:\([^)]*\))?\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
1007
1040
  for (let i = 0; i < logicalLines.length; i++) {
1041
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
1042
+ continue;
1008
1043
  const match = logicalLines[i].match(classRegex);
1009
1044
  if (match) {
1010
1045
  const name = match[3];
@@ -1087,11 +1122,13 @@ class DartParser {
1087
1122
  extractFunctions(content) {
1088
1123
  const functions = [];
1089
1124
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
1090
- const funcRegex = /^\s*([\w<>,.\s?]+)\s+(\w+)\s*\(([^)]*)\)(?:\s*(async))?\s*\{/;
1125
+ const funcRegex = /^\s*([\w<>,.?]+(?:\s+[\w<>,.?]+)*)\s+(\w+)\s*\(([^)]*)\)(?:\s*(async))?\s*\{/;
1091
1126
  for (let i = 0; i < logicalLines.length; i++) {
1092
1127
  const line = logicalLines[i];
1093
1128
  if (line.includes(' class '))
1094
1129
  continue;
1130
+ if (line.length > MAX_REGEX_LINE_LEN)
1131
+ continue;
1095
1132
  const match = line.match(funcRegex);
1096
1133
  if (match) {
1097
1134
  const returnTypeRaw = match[1].trim();
@@ -1126,8 +1163,10 @@ class DartParser {
1126
1163
  extractClasses(content) {
1127
1164
  const classes = [];
1128
1165
  const { logicalLines, lineMap } = joinMultiLineSignatures(content);
1129
- const classRegex = /^\s*(abstract\s+)?class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+(?:with|implements)\s+([^{]+))?\s*\{/;
1166
+ const classRegex = /^\s*(abstract +)?class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+(?:with|implements)\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{/;
1130
1167
  for (let i = 0; i < logicalLines.length; i++) {
1168
+ if (logicalLines[i].length > MAX_REGEX_LINE_LEN)
1169
+ continue;
1131
1170
  const match = logicalLines[i].match(classRegex);
1132
1171
  if (match) {
1133
1172
  const name = match[2];