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.
- package/.claude/skills/.validation/README.md +111 -111
- package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/.claude/skills/.validation/schemas/skill-output.template.json +610 -610
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/.claude/skills/.validation/templates/eval.template.yaml +366 -366
- package/.claude/skills/.validation/templates/schemas/output.json +145 -145
- package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/.claude/skills/.validation/test-data/invalid-output.json +5 -5
- package/.claude/skills/.validation/test-data/minimal-output.json +9 -9
- package/.claude/skills/.validation/test-data/sample-output.json +73 -73
- package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/.claude/skills/a11y-ally/schemas/output.json +549 -549
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/.claude/skills/accessibility-testing/schemas/output.json +776 -776
- package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/.claude/skills/api-testing-patterns/schemas/output.json +845 -845
- package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/.claude/skills/code-review-quality/schemas/output.json +264 -264
- package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/.claude/skills/compatibility-testing/schemas/output.json +551 -551
- package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/.claude/skills/compliance-testing/schemas/output.json +845 -845
- package/.claude/skills/consultancy-practices/schemas/output.json +282 -282
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/.claude/skills/contract-testing/schemas/output.json +638 -638
- package/.claude/skills/database-testing/evals/database-testing.yaml +968 -968
- package/.claude/skills/database-testing/schemas/output.json +1446 -1446
- package/.claude/skills/debug-loop/SKILL.md +61 -61
- package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/.claude/skills/iterative-loop/SKILL.md +371 -371
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/.claude/skills/localization-testing/schemas/output.json +325 -325
- package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/.claude/skills/mobile-testing/schemas/output.json +318 -318
- package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/.claude/skills/mutation-testing/schemas/output.json +707 -707
- package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/.claude/skills/n8n-security-testing/schemas/output.json +293 -293
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/.claude/skills/observability-testing-patterns/SKILL.md +930 -930
- package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/pentest-validation/SKILL.md +268 -268
- package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/.claude/skills/pentest-validation/schemas/output.json +281 -281
- package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -144
- package/.claude/skills/performance-analysis/schemas/output.json +588 -588
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/.claude/skills/performance-testing/schemas/output.json +1184 -1184
- package/.claude/skills/pr-review/SKILL.md +61 -61
- package/.claude/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/.claude/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/.claude/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/.claude/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/.claude/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/.claude/skills/qe-contract-testing/schemas/output.json +295 -295
- package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/.claude/skills/qe-security-compliance/schemas/output.json +498 -498
- package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/.claude/skills/qe-test-execution/schemas/output.json +529 -529
- package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/.claude/skills/qe-test-generation/schemas/output.json +439 -439
- package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/.claude/skills/quality-metrics/schemas/output.json +403 -403
- package/.claude/skills/refactoring-patterns/schemas/output.json +475 -475
- package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/.claude/skills/regression-testing/schemas/output.json +311 -311
- package/.claude/skills/release/SKILL.md +347 -347
- package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/.claude/skills/risk-based-testing/schemas/output.json +480 -480
- package/.claude/skills/security-testing/evals/security-testing.yaml +789 -789
- package/.claude/skills/security-testing/schemas/output.json +879 -879
- package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/.claude/skills/security-visual-testing/schemas/output.json +486 -486
- package/.claude/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/.claude/skills/sherlock-review/schemas/output.json +297 -297
- package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/.claude/skills/shift-left-testing/schemas/output.json +459 -459
- package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/.claude/skills/shift-right-testing/schemas/output.json +418 -418
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/.claude/skills/technical-writing/schemas/output.json +268 -268
- package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/.claude/skills/test-automation-strategy/schemas/output.json +444 -444
- package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/.claude/skills/test-data-management/schemas/output.json +284 -284
- package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/.claude/skills/test-design-techniques/schemas/output.json +295 -295
- package/.claude/skills/test-environment-management/schemas/output.json +310 -310
- package/.claude/skills/test-idea-rewriting/SKILL.md +229 -229
- package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/.claude/skills/testability-scoring/schemas/output.json +606 -606
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/.claude/skills/verification-quality/schemas/output.json +432 -432
- package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/CHANGELOG.md +14 -0
- package/README.md +169 -900
- package/assets/agents/v3/helpers/quality-criteria/evidence-classification.md +116 -116
- package/assets/agents/v3/helpers/quality-criteria/htsm-categories.md +139 -139
- package/assets/governance/constitution.md +202 -202
- package/assets/governance/shards/chaos-resilience.shard.md +221 -221
- package/assets/governance/shards/code-intelligence.shard.md +178 -178
- package/assets/governance/shards/contract-testing.shard.md +206 -206
- package/assets/governance/shards/coverage-analysis.shard.md +146 -146
- package/assets/governance/shards/defect-intelligence.shard.md +182 -182
- package/assets/governance/shards/learning-optimization.shard.md +248 -248
- package/assets/governance/shards/quality-assessment.shard.md +165 -165
- package/assets/governance/shards/requirements-validation.shard.md +177 -177
- package/assets/governance/shards/security-compliance.shard.md +196 -196
- package/assets/governance/shards/test-execution.shard.md +156 -156
- package/assets/governance/shards/test-generation.shard.md +128 -128
- package/assets/governance/shards/visual-accessibility.shard.md +209 -209
- package/assets/hooks/cross-phase-memory.yaml +253 -253
- package/assets/patterns/adr-051-booster-patterns.json +78 -78
- package/assets/patterns/adr-051-embedding-patterns.json +147 -147
- package/assets/patterns/adr-051-integration-summary.json +62 -62
- package/assets/patterns/adr-051-reasoning-patterns.json +166 -166
- package/assets/patterns/adr-051-router-patterns.json +113 -113
- package/assets/patterns/index.json +136 -136
- package/assets/skills/.validation/README.md +111 -111
- package/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/assets/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/assets/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/assets/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/assets/skills/.validation/schemas/skill-output.template.json +610 -610
- package/assets/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/assets/skills/.validation/templates/eval.template.yaml +366 -366
- package/assets/skills/.validation/templates/schemas/output.json +145 -145
- package/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/assets/skills/.validation/test-data/invalid-output.json +5 -5
- package/assets/skills/.validation/test-data/minimal-output.json +9 -9
- package/assets/skills/.validation/test-data/sample-output.json +73 -73
- package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/assets/skills/a11y-ally/schemas/output.json +549 -549
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/assets/skills/accessibility-testing/schemas/output.json +776 -776
- package/assets/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/assets/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/assets/skills/api-testing-patterns/schemas/output.json +845 -845
- package/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/assets/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/assets/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/assets/skills/code-review-quality/schemas/output.json +264 -264
- package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/assets/skills/compatibility-testing/schemas/output.json +551 -551
- package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/assets/skills/compliance-testing/schemas/output.json +845 -845
- package/assets/skills/consultancy-practices/schemas/output.json +282 -282
- package/assets/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/assets/skills/contract-testing/schemas/output.json +638 -638
- package/assets/skills/database-testing/evals/database-testing.yaml +968 -968
- package/assets/skills/database-testing/schemas/output.json +1446 -1446
- package/assets/skills/debug-loop/SKILL.md +61 -61
- package/assets/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/assets/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/assets/skills/localization-testing/schemas/output.json +325 -325
- package/assets/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/assets/skills/mobile-testing/schemas/output.json +318 -318
- package/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/assets/skills/mutation-testing/schemas/output.json +707 -707
- package/assets/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/assets/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/assets/skills/n8n-security-testing/schemas/output.json +293 -293
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/assets/skills/observability-testing-patterns/SKILL.md +930 -930
- package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/assets/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/pentest-validation/SKILL.md +268 -268
- package/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/assets/skills/pentest-validation/schemas/output.json +281 -281
- package/assets/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/assets/skills/performance-testing/schemas/output.json +1184 -1184
- package/assets/skills/pr-review/SKILL.md +61 -61
- package/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/assets/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/assets/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/assets/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/assets/skills/qe-contract-testing/schemas/output.json +295 -295
- package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/assets/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/assets/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/assets/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/assets/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/assets/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/assets/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/assets/skills/qe-security-compliance/schemas/output.json +498 -498
- package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/assets/skills/qe-test-execution/schemas/output.json +529 -529
- package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/assets/skills/qe-test-generation/schemas/output.json +439 -439
- package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/assets/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/assets/skills/quality-metrics/schemas/output.json +403 -403
- package/assets/skills/refactoring-patterns/schemas/output.json +475 -475
- package/assets/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/assets/skills/regression-testing/schemas/output.json +311 -311
- package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/assets/skills/risk-based-testing/schemas/output.json +480 -480
- package/assets/skills/security-testing/evals/security-testing.yaml +789 -789
- package/assets/skills/security-testing/schemas/output.json +879 -879
- package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/assets/skills/security-visual-testing/schemas/output.json +486 -486
- package/assets/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/assets/skills/sherlock-review/schemas/output.json +297 -297
- package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/assets/skills/shift-left-testing/schemas/output.json +459 -459
- package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/assets/skills/shift-right-testing/schemas/output.json +418 -418
- package/assets/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/assets/skills/technical-writing/schemas/output.json +268 -268
- package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/assets/skills/test-automation-strategy/schemas/output.json +444 -444
- package/assets/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/assets/skills/test-data-management/schemas/output.json +284 -284
- package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/assets/skills/test-design-techniques/schemas/output.json +295 -295
- package/assets/skills/test-environment-management/schemas/output.json +310 -310
- package/assets/skills/test-idea-rewriting/SKILL.md +229 -229
- package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/assets/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/assets/skills/testability-scoring/schemas/output.json +606 -606
- package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/assets/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/assets/skills/verification-quality/schemas/output.json +432 -432
- package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/assets/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/assets/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/assets/templates/validation-summary.json +56 -56
- package/dist/cli/bundle.js +54 -31
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -9
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/init/phases/10-workers.js +2 -2
- package/dist/init/phases/10-workers.js.map +1 -1
- package/dist/mcp/bundle.js +42 -19
- package/dist/shared/language-detector.js +1 -1
- package/dist/shared/language-detector.js.map +1 -1
- package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -1
- package/dist/shared/parsers/multi-language-parser.js +55 -16
- package/dist/shared/parsers/multi-language-parser.js.map +1 -1
- package/package.json +1 -1
- package/scripts/prepare-assets.sh +8 -0
package/dist/mcp/bundle.js
CHANGED
|
@@ -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*([^:]
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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\))
|
|
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
|
-
|
|
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
|
|
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+(?:<[^{]
|
|
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
|
|
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
|
|
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.
|
|
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EAKX,MAAM,iBAAiB,CAAC;
|
|
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*([^:]
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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\))
|
|
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
|
-
|
|
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
|
|
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+(?:<[^{]
|
|
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
|
|
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
|
|
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];
|