agentic-qe 3.7.9 → 3.7.11
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 +36 -0
- package/README.md +171 -901
- 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/agents/claim-verifier/verifiers/output-verifier.d.ts +1 -0
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts.map +1 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.js +16 -3
- package/dist/agents/claim-verifier/verifiers/output-verifier.js.map +1 -1
- package/dist/cli/bundle.js +488 -75
- 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/governance/adversarial-defense-integration.d.ts +29 -0
- package/dist/governance/adversarial-defense-integration.d.ts.map +1 -1
- package/dist/governance/adversarial-defense-integration.js +85 -1
- package/dist/governance/adversarial-defense-integration.js.map +1 -1
- package/dist/governance/continue-gate-integration.d.ts +7 -5
- package/dist/governance/continue-gate-integration.d.ts.map +1 -1
- package/dist/governance/continue-gate-integration.js +72 -15
- package/dist/governance/continue-gate-integration.js.map +1 -1
- package/dist/governance/deterministic-gateway-integration.d.ts +5 -0
- package/dist/governance/deterministic-gateway-integration.d.ts.map +1 -1
- package/dist/governance/deterministic-gateway-integration.js +35 -1
- package/dist/governance/deterministic-gateway-integration.js.map +1 -1
- package/dist/governance/evolution-pipeline-integration.d.ts +5 -0
- package/dist/governance/evolution-pipeline-integration.d.ts.map +1 -1
- package/dist/governance/evolution-pipeline-integration.js +57 -1
- package/dist/governance/evolution-pipeline-integration.js.map +1 -1
- package/dist/governance/memory-write-gate-integration.d.ts +6 -3
- package/dist/governance/memory-write-gate-integration.d.ts.map +1 -1
- package/dist/governance/memory-write-gate-integration.js +48 -10
- package/dist/governance/memory-write-gate-integration.js.map +1 -1
- package/dist/governance/proof-envelope-integration.d.ts +1 -0
- package/dist/governance/proof-envelope-integration.d.ts.map +1 -1
- package/dist/governance/proof-envelope-integration.js +37 -0
- package/dist/governance/proof-envelope-integration.js.map +1 -1
- package/dist/governance/shard-retriever-integration.d.ts +10 -0
- package/dist/governance/shard-retriever-integration.d.ts.map +1 -1
- package/dist/governance/shard-retriever-integration.js +50 -1
- package/dist/governance/shard-retriever-integration.js.map +1 -1
- package/dist/governance/trust-accumulator-integration.d.ts +5 -0
- package/dist/governance/trust-accumulator-integration.d.ts.map +1 -1
- package/dist/governance/trust-accumulator-integration.js +35 -2
- package/dist/governance/trust-accumulator-integration.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 +478 -62
- package/dist/mcp/protocol-server.js +2 -2
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +1 -0
- package/dist/mcp/tool-registry.js.map +1 -1
- 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/dist/shared/sql-safety.d.ts.map +1 -1
- package/dist/shared/sql-safety.js +7 -1
- package/dist/shared/sql-safety.js.map +1 -1
- package/package.json +6 -2
- package/scripts/prepare-assets.sh +8 -0
package/dist/mcp/bundle.js
CHANGED
|
@@ -5956,12 +5956,20 @@ var init_sql_safety = __esm({
|
|
|
5956
5956
|
"coverage_sessions",
|
|
5957
5957
|
// Sync tables
|
|
5958
5958
|
"patterns",
|
|
5959
|
-
// Hypergraph tables
|
|
5959
|
+
// Hypergraph tables (actual table names from migration 20260120)
|
|
5960
|
+
"hypergraph_nodes",
|
|
5961
|
+
"hypergraph_edges",
|
|
5962
|
+
// Legacy allowlist aliases (hypergraph-schema.ts compat)
|
|
5960
5963
|
"hypergraph_vertices",
|
|
5961
5964
|
"hypergraph_hyperedges",
|
|
5962
5965
|
"hypergraph_edge_vertices",
|
|
5963
5966
|
"hypergraph_vertex_properties",
|
|
5964
|
-
"hypergraph_edge_properties"
|
|
5967
|
+
"hypergraph_edge_properties",
|
|
5968
|
+
// Learning experience tables
|
|
5969
|
+
"captured_experiences",
|
|
5970
|
+
"experience_applications",
|
|
5971
|
+
// Audit trail
|
|
5972
|
+
"witness_chain"
|
|
5965
5973
|
]);
|
|
5966
5974
|
}
|
|
5967
5975
|
});
|
|
@@ -24927,10 +24935,11 @@ function countBraceDelta(line) {
|
|
|
24927
24935
|
}
|
|
24928
24936
|
return delta;
|
|
24929
24937
|
}
|
|
24930
|
-
var PythonParser, JavaParser, CSharpParser, GoParser, RustParser, SwiftParser, KotlinParser, DartParser, TreeSitterParserRegistry, treeSitterRegistry;
|
|
24938
|
+
var MAX_REGEX_LINE_LEN, PythonParser, JavaParser, CSharpParser, GoParser, RustParser, SwiftParser, KotlinParser, DartParser, TreeSitterParserRegistry, treeSitterRegistry;
|
|
24931
24939
|
var init_multi_language_parser = __esm({
|
|
24932
24940
|
"src/shared/parsers/multi-language-parser.ts"() {
|
|
24933
24941
|
"use strict";
|
|
24942
|
+
MAX_REGEX_LINE_LEN = 1e3;
|
|
24934
24943
|
PythonParser = class {
|
|
24935
24944
|
language = "python";
|
|
24936
24945
|
supportedExtensions = [".py"];
|
|
@@ -24947,8 +24956,9 @@ var init_multi_language_parser = __esm({
|
|
|
24947
24956
|
const functions = [];
|
|
24948
24957
|
const rawLines = content.split("\n");
|
|
24949
24958
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
24950
|
-
const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]
|
|
24959
|
+
const funcRegex = /^(\s*)(async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*([^:]*\S))?\s*:/;
|
|
24951
24960
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
24961
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
24952
24962
|
const match = logicalLines[i58].match(funcRegex);
|
|
24953
24963
|
if (match) {
|
|
24954
24964
|
const indent = match[1].length;
|
|
@@ -25034,9 +25044,10 @@ var init_multi_language_parser = __esm({
|
|
|
25034
25044
|
const imports = [];
|
|
25035
25045
|
const lines = content.split("\n");
|
|
25036
25046
|
for (const line of lines) {
|
|
25047
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25037
25048
|
const fromMatch = line.match(/^\s*from\s+(\S+)\s+import\s+(.+)/);
|
|
25038
25049
|
if (fromMatch) {
|
|
25039
|
-
const names = fromMatch[2].split(",").map((n61) => n61.trim().split(
|
|
25050
|
+
const names = fromMatch[2].split(",").map((n61) => n61.trim().split(" as ")[0]);
|
|
25040
25051
|
imports.push({
|
|
25041
25052
|
module: fromMatch[1],
|
|
25042
25053
|
namedImports: names,
|
|
@@ -25085,10 +25096,11 @@ var init_multi_language_parser = __esm({
|
|
|
25085
25096
|
const functions = [];
|
|
25086
25097
|
const rawLines = content.split("\n");
|
|
25087
25098
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25088
|
-
const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w
|
|
25099
|
+
const methodRegex = /^\s*(public|private|protected)?\s*(static)?\s*(async)?\s*(?:<\S+>\s+)?([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
|
|
25089
25100
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25090
25101
|
const line = logicalLines[i58];
|
|
25091
25102
|
if (line.includes(" class ") || line.includes(" interface ")) continue;
|
|
25103
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25092
25104
|
const match = line.match(methodRegex);
|
|
25093
25105
|
if (match) {
|
|
25094
25106
|
const visibility = match[1] || "default";
|
|
@@ -25125,8 +25137,9 @@ var init_multi_language_parser = __esm({
|
|
|
25125
25137
|
const classes = [];
|
|
25126
25138
|
const rawLines = content.split("\n");
|
|
25127
25139
|
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*\{?/;
|
|
25140
|
+
const classRegex = /^\s*(public|private|protected)?\s*(abstract)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+implements\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
|
|
25129
25141
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25142
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25130
25143
|
const match = logicalLines[i58].match(classRegex);
|
|
25131
25144
|
if (match) {
|
|
25132
25145
|
const name = match[3];
|
|
@@ -25153,7 +25166,8 @@ var init_multi_language_parser = __esm({
|
|
|
25153
25166
|
const imports = [];
|
|
25154
25167
|
const lines = content.split("\n");
|
|
25155
25168
|
for (const line of lines) {
|
|
25156
|
-
|
|
25169
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25170
|
+
const match = line.match(/^\s*import +(static +)?(\S[^;]*);/);
|
|
25157
25171
|
if (match) {
|
|
25158
25172
|
const module = match[2].trim();
|
|
25159
25173
|
const parts = module.split(".");
|
|
@@ -25194,10 +25208,11 @@ var init_multi_language_parser = __esm({
|
|
|
25194
25208
|
const functions = [];
|
|
25195
25209
|
const rawLines = content.split("\n");
|
|
25196
25210
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25197
|
-
const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w
|
|
25211
|
+
const methodRegex = /^\s*(public|private|protected|internal)?\s*(static)?\s*(async)?\s*([\w<>,.[\]?]+(?:\s+[\w<>,.[\]?]+)*)\s+(\w+)\s*\(([^)]*)\)/;
|
|
25198
25212
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25199
25213
|
const line = logicalLines[i58];
|
|
25200
25214
|
if (line.includes(" class ") || line.includes(" interface ") || line.includes(" namespace ")) continue;
|
|
25215
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25201
25216
|
const match = line.match(methodRegex);
|
|
25202
25217
|
if (match) {
|
|
25203
25218
|
const visibility = match[1] || "private";
|
|
@@ -25235,8 +25250,9 @@ var init_multi_language_parser = __esm({
|
|
|
25235
25250
|
const classes = [];
|
|
25236
25251
|
const rawLines = content.split("\n");
|
|
25237
25252
|
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*\{?/;
|
|
25253
|
+
const classRegex = /^\s*(public|private|protected|internal)?\s*(abstract|sealed|static|partial)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
|
|
25239
25254
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25255
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25240
25256
|
const match = logicalLines[i58].match(classRegex);
|
|
25241
25257
|
if (match) {
|
|
25242
25258
|
const name = match[3];
|
|
@@ -25262,7 +25278,8 @@ var init_multi_language_parser = __esm({
|
|
|
25262
25278
|
const imports = [];
|
|
25263
25279
|
const lines = content.split("\n");
|
|
25264
25280
|
for (const line of lines) {
|
|
25265
|
-
|
|
25281
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25282
|
+
const match = line.match(/^\s*using +(static +)?(\S[^;]*);/);
|
|
25266
25283
|
if (match) {
|
|
25267
25284
|
imports.push({
|
|
25268
25285
|
module: match[2].trim(),
|
|
@@ -25308,6 +25325,10 @@ var init_multi_language_parser = __esm({
|
|
|
25308
25325
|
let braceDepth = 0;
|
|
25309
25326
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25310
25327
|
const line = logicalLines[i58];
|
|
25328
|
+
if (line.length > MAX_REGEX_LINE_LEN) {
|
|
25329
|
+
braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
|
|
25330
|
+
continue;
|
|
25331
|
+
}
|
|
25311
25332
|
const match = line.match(funcRegex);
|
|
25312
25333
|
if (match && braceDepth === 0) {
|
|
25313
25334
|
const name = match[3];
|
|
@@ -25415,7 +25436,7 @@ var init_multi_language_parser = __esm({
|
|
|
25415
25436
|
const functions = [];
|
|
25416
25437
|
const rawLines = content.split("\n");
|
|
25417
25438
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25418
|
-
const fnRegex = /^\s*(pub(?:\(crate\))
|
|
25439
|
+
const fnRegex = /^\s*(pub(?:\(crate\))? +)?(async +)?fn\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*(?:where\s+[^{\s]+(?:\s+[^{\s]+)*)?\s*\{?/;
|
|
25419
25440
|
let braceDepth = 0;
|
|
25420
25441
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25421
25442
|
const line = logicalLines[i58];
|
|
@@ -25475,7 +25496,8 @@ var init_multi_language_parser = __esm({
|
|
|
25475
25496
|
const imports = [];
|
|
25476
25497
|
const lines = content.split("\n");
|
|
25477
25498
|
for (const line of lines) {
|
|
25478
|
-
|
|
25499
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25500
|
+
const match = line.match(/^\s*use +(\S[^;]*);/);
|
|
25479
25501
|
if (match) {
|
|
25480
25502
|
imports.push({
|
|
25481
25503
|
module: match[1].trim(),
|
|
@@ -25520,8 +25542,9 @@ var init_multi_language_parser = __esm({
|
|
|
25520
25542
|
extractFunctions(content) {
|
|
25521
25543
|
const functions = [];
|
|
25522
25544
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25523
|
-
const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws
|
|
25545
|
+
const funcRegex = /^\s*(public|private|internal|open)?\s*(static)?\s*func\s+(\w+)(?:<[^{]*>)?\s*\(([^)]*)\)(?:\s*(async))?\s*(?:throws +)?(?:->\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
|
|
25524
25546
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25547
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25525
25548
|
const match = logicalLines[i58].match(funcRegex);
|
|
25526
25549
|
if (match) {
|
|
25527
25550
|
const visibility = match[1] || "internal";
|
|
@@ -25548,8 +25571,9 @@ var init_multi_language_parser = __esm({
|
|
|
25548
25571
|
extractClasses(content) {
|
|
25549
25572
|
const classes = [];
|
|
25550
25573
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25551
|
-
const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{]+))?\s*\{?/;
|
|
25574
|
+
const classRegex = /^\s*(public|private|internal|open)?\s*(class|struct|protocol)\s+(\w+)(?:<[^{]*>)?(?:\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
|
|
25552
25575
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25576
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25553
25577
|
const match = logicalLines[i58].match(classRegex);
|
|
25554
25578
|
if (match) {
|
|
25555
25579
|
const name = match[3];
|
|
@@ -25615,10 +25639,14 @@ var init_multi_language_parser = __esm({
|
|
|
25615
25639
|
const functions = [];
|
|
25616
25640
|
const rawLines = content.split("\n");
|
|
25617
25641
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25618
|
-
const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]
|
|
25642
|
+
const funcRegex = /^\s*(public|private|protected|internal)?\s*(suspend)?\s*fun\s+(?:<[^{]*> +)?(\w+)\s*\(([^)]*)\)(?:\s*:\s*([^{=\s]+(?:\s+[^{=\s]+)*))?\s*/;
|
|
25619
25643
|
let braceDepth = 0;
|
|
25620
25644
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25621
25645
|
const line = logicalLines[i58];
|
|
25646
|
+
if (line.length > MAX_REGEX_LINE_LEN) {
|
|
25647
|
+
braceDepth += (line.match(/\{/g)?.length ?? 0) - (line.match(/\}/g)?.length ?? 0);
|
|
25648
|
+
continue;
|
|
25649
|
+
}
|
|
25622
25650
|
const match = line.match(funcRegex);
|
|
25623
25651
|
if (match && braceDepth <= 1) {
|
|
25624
25652
|
const visibility = match[1] || "public";
|
|
@@ -25657,8 +25685,9 @@ var init_multi_language_parser = __esm({
|
|
|
25657
25685
|
const classes = [];
|
|
25658
25686
|
const rawLines = content.split("\n");
|
|
25659
25687
|
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*\{?/;
|
|
25688
|
+
const classRegex = /^\s*(public|private|protected|internal)?\s*(data|sealed|abstract|open)?\s*class\s+(\w+)(?:<[^{]*>)?(?:\s*(?:\([^)]*\))?\s*:\s*([^{\s]+(?:\s+[^{\s]+)*))?\s*\{?/;
|
|
25661
25689
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25690
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25662
25691
|
const match = logicalLines[i58].match(classRegex);
|
|
25663
25692
|
if (match) {
|
|
25664
25693
|
const name = match[3];
|
|
@@ -25731,10 +25760,11 @@ var init_multi_language_parser = __esm({
|
|
|
25731
25760
|
extractFunctions(content) {
|
|
25732
25761
|
const functions = [];
|
|
25733
25762
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25734
|
-
const funcRegex = /^\s*([\w
|
|
25763
|
+
const funcRegex = /^\s*([\w<>,.?]+(?:\s+[\w<>,.?]+)*)\s+(\w+)\s*\(([^)]*)\)(?:\s*(async))?\s*\{/;
|
|
25735
25764
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25736
25765
|
const line = logicalLines[i58];
|
|
25737
25766
|
if (line.includes(" class ")) continue;
|
|
25767
|
+
if (line.length > MAX_REGEX_LINE_LEN) continue;
|
|
25738
25768
|
const match = line.match(funcRegex);
|
|
25739
25769
|
if (match) {
|
|
25740
25770
|
const returnTypeRaw = match[1].trim();
|
|
@@ -25768,8 +25798,9 @@ var init_multi_language_parser = __esm({
|
|
|
25768
25798
|
extractClasses(content) {
|
|
25769
25799
|
const classes = [];
|
|
25770
25800
|
const { logicalLines, lineMap } = joinMultiLineSignatures(content);
|
|
25771
|
-
const classRegex = /^\s*(abstract
|
|
25801
|
+
const classRegex = /^\s*(abstract +)?class\s+(\w+)(?:<[^{]*>)?(?:\s+extends\s+(\w+))?(?:\s+(?:with|implements)\s+([^{\s]+(?:\s+[^{\s]+)*))?\s*\{/;
|
|
25772
25802
|
for (let i58 = 0; i58 < logicalLines.length; i58++) {
|
|
25803
|
+
if (logicalLines[i58].length > MAX_REGEX_LINE_LEN) continue;
|
|
25773
25804
|
const match = logicalLines[i58].match(classRegex);
|
|
25774
25805
|
if (match) {
|
|
25775
25806
|
const name = match[2];
|
|
@@ -25938,7 +25969,7 @@ function detectFrameworkFromProject(language, projectRoot) {
|
|
|
25938
25969
|
}
|
|
25939
25970
|
function findFiles(dir, pattern) {
|
|
25940
25971
|
try {
|
|
25941
|
-
const ext = pattern.replace(
|
|
25972
|
+
const ext = pattern.replace(/\*/g, "");
|
|
25942
25973
|
return fs2.readdirSync(dir).filter((f74) => f74.endsWith(ext)).map((f74) => path2.join(dir, f74));
|
|
25943
25974
|
} catch {
|
|
25944
25975
|
return [];
|
|
@@ -33208,13 +33239,30 @@ var init_continue_gate_integration = __esm({
|
|
|
33208
33239
|
/**
|
|
33209
33240
|
* Initialize the ContinueGate integration
|
|
33210
33241
|
*
|
|
33211
|
-
*
|
|
33212
|
-
*
|
|
33213
|
-
*
|
|
33214
|
-
* which tracks action-level loop detection and rework ratios.
|
|
33242
|
+
* Attempts to load @claude-flow/guidance ContinueGate for step-level
|
|
33243
|
+
* evaluation with coherence/uncertainty scoring. Falls back to local
|
|
33244
|
+
* loop detection if the guidance package is unavailable.
|
|
33215
33245
|
*/
|
|
33216
33246
|
async initialize() {
|
|
33217
33247
|
if (this.initialized) return;
|
|
33248
|
+
try {
|
|
33249
|
+
const modulePath = "@claude-flow/guidance/continue-gate";
|
|
33250
|
+
const mod = await import(
|
|
33251
|
+
/* @vite-ignore */
|
|
33252
|
+
modulePath
|
|
33253
|
+
);
|
|
33254
|
+
if (mod && typeof mod.createContinueGate === "function") {
|
|
33255
|
+
const flags = governanceFlags.getFlags().continueGate;
|
|
33256
|
+
this.guidanceContinueGate = mod.createContinueGate({
|
|
33257
|
+
maxConsecutiveSteps: flags.maxConsecutiveRetries * 10,
|
|
33258
|
+
maxReworkRatio: flags.reworkRatioThreshold,
|
|
33259
|
+
checkpointIntervalSteps: 25
|
|
33260
|
+
});
|
|
33261
|
+
console.log("[ContinueGateIntegration] Guidance ContinueGate loaded");
|
|
33262
|
+
}
|
|
33263
|
+
} catch {
|
|
33264
|
+
this.guidanceContinueGate = null;
|
|
33265
|
+
}
|
|
33218
33266
|
try {
|
|
33219
33267
|
this.db = getUnifiedMemory();
|
|
33220
33268
|
if (!this.db.isInitialized()) await this.db.initialize();
|
|
@@ -33295,7 +33343,35 @@ var init_continue_gate_integration = __esm({
|
|
|
33295
33343
|
escalate: false
|
|
33296
33344
|
};
|
|
33297
33345
|
}
|
|
33298
|
-
|
|
33346
|
+
const localDecision = this.localEvaluation(agentId, history, flags);
|
|
33347
|
+
if (this.guidanceContinueGate && localDecision.shouldContinue && !localDecision.reason) {
|
|
33348
|
+
try {
|
|
33349
|
+
const reworkRatio = this.calculateReworkRatio(history.slice(-10));
|
|
33350
|
+
const stepContext = {
|
|
33351
|
+
stepNumber: history.length,
|
|
33352
|
+
totalToolCalls: history.length,
|
|
33353
|
+
reworkCount: history.filter((a37) => !a37.success).length,
|
|
33354
|
+
coherenceScore: 1 - reworkRatio,
|
|
33355
|
+
uncertaintyScore: reworkRatio,
|
|
33356
|
+
elapsedMs: history.length > 0 ? Date.now() - history[0].timestamp : 0,
|
|
33357
|
+
lastCheckpointStep: 0,
|
|
33358
|
+
totalTokensUsed: history.length * 500,
|
|
33359
|
+
// Estimate ~500 tokens per action
|
|
33360
|
+
budgetRemaining: {
|
|
33361
|
+
tokens: Math.max(0, flags.maxConsecutiveRetries * 10 * 500 - history.length * 500),
|
|
33362
|
+
toolCalls: Math.max(0, flags.maxConsecutiveRetries * 10 - history.length),
|
|
33363
|
+
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[0].timestamp : 0))
|
|
33364
|
+
},
|
|
33365
|
+
recentDecisions: []
|
|
33366
|
+
};
|
|
33367
|
+
const decision = this.guidanceContinueGate.evaluateWithHistory(stepContext);
|
|
33368
|
+
if (decision.decision !== "continue") {
|
|
33369
|
+
return this.mapGuidanceDecision(decision, agentId);
|
|
33370
|
+
}
|
|
33371
|
+
} catch {
|
|
33372
|
+
}
|
|
33373
|
+
}
|
|
33374
|
+
return localDecision;
|
|
33299
33375
|
}
|
|
33300
33376
|
/**
|
|
33301
33377
|
* Local loop detection implementation
|
|
@@ -33372,21 +33448,25 @@ var init_continue_gate_integration = __esm({
|
|
|
33372
33448
|
return failedCount / actions.length;
|
|
33373
33449
|
}
|
|
33374
33450
|
/**
|
|
33375
|
-
* Map guidance
|
|
33451
|
+
* Map guidance ContinueDecision to our ContinueGateDecision format.
|
|
33452
|
+
*
|
|
33453
|
+
* ContinueDecision has: { decision, reasons, metrics, recommendedAction }
|
|
33454
|
+
* We map to: { shouldContinue, reason, throttleMs, escalate, reworkRatio }
|
|
33376
33455
|
*/
|
|
33377
33456
|
mapGuidanceDecision(decision, agentId) {
|
|
33378
33457
|
const flags = governanceFlags.getFlags().continueGate;
|
|
33379
|
-
|
|
33380
|
-
|
|
33458
|
+
const shouldContinue = decision.decision === "continue" || decision.decision === "checkpoint";
|
|
33459
|
+
const reason = decision.reasons.length > 0 ? decision.reasons.join("; ") : void 0;
|
|
33460
|
+
if (!shouldContinue && flags.throttleOnExceed) {
|
|
33461
|
+
const throttleMs = decision.decision === "stop" ? 3e4 : decision.decision === "pause" ? 15e3 : 5e3;
|
|
33381
33462
|
this.throttledAgents.set(agentId, Date.now() + throttleMs);
|
|
33382
33463
|
}
|
|
33383
33464
|
return {
|
|
33384
|
-
shouldContinue
|
|
33385
|
-
reason
|
|
33386
|
-
throttleMs: decision.
|
|
33387
|
-
escalate: decision.
|
|
33388
|
-
reworkRatio: decision.reworkRatio
|
|
33389
|
-
consecutiveCount: decision.consecutiveCount
|
|
33465
|
+
shouldContinue,
|
|
33466
|
+
reason,
|
|
33467
|
+
throttleMs: decision.decision === "throttle" ? 5e3 : decision.decision === "pause" ? 15e3 : decision.decision === "stop" ? 3e4 : void 0,
|
|
33468
|
+
escalate: decision.decision === "stop" || decision.decision === "pause",
|
|
33469
|
+
reworkRatio: decision.metrics.reworkRatio
|
|
33390
33470
|
};
|
|
33391
33471
|
}
|
|
33392
33472
|
/**
|
|
@@ -33464,12 +33544,27 @@ var init_memory_write_gate_integration = __esm({
|
|
|
33464
33544
|
/**
|
|
33465
33545
|
* Initialize the MemoryWriteGate integration
|
|
33466
33546
|
*
|
|
33467
|
-
*
|
|
33468
|
-
*
|
|
33547
|
+
* Attempts to load @claude-flow/guidance MemoryWriteGate for authority-scoped
|
|
33548
|
+
* writes and rate limiting. Falls back to local contradiction detection
|
|
33469
33549
|
* optimized for AQE's ReasoningBank pattern storage.
|
|
33470
33550
|
*/
|
|
33471
33551
|
async initialize() {
|
|
33472
33552
|
if (this.initialized) return;
|
|
33553
|
+
try {
|
|
33554
|
+
const modulePath = "@claude-flow/guidance/memory-gate";
|
|
33555
|
+
const mod = await import(
|
|
33556
|
+
/* @vite-ignore */
|
|
33557
|
+
modulePath
|
|
33558
|
+
);
|
|
33559
|
+
if (mod && typeof mod.createMemoryWriteGate === "function") {
|
|
33560
|
+
this.guidanceMemoryGate = mod.createMemoryWriteGate({
|
|
33561
|
+
enableContradictionTracking: true
|
|
33562
|
+
});
|
|
33563
|
+
console.log("[MemoryWriteGateIntegration] Guidance MemoryWriteGate loaded");
|
|
33564
|
+
}
|
|
33565
|
+
} catch {
|
|
33566
|
+
this.guidanceMemoryGate = null;
|
|
33567
|
+
}
|
|
33473
33568
|
this.initialized = true;
|
|
33474
33569
|
}
|
|
33475
33570
|
/**
|
|
@@ -33483,7 +33578,31 @@ var init_memory_write_gate_integration = __esm({
|
|
|
33483
33578
|
const flags = governanceFlags.getFlags().memoryWriteGate;
|
|
33484
33579
|
pattern.timestamp = pattern.timestamp || Date.now();
|
|
33485
33580
|
pattern.useCount = pattern.useCount || 0;
|
|
33486
|
-
|
|
33581
|
+
const localDecision = this.localEvaluation(pattern, flags);
|
|
33582
|
+
if (this.guidanceMemoryGate && localDecision.allowed && !localDecision.reason) {
|
|
33583
|
+
try {
|
|
33584
|
+
const authority = {
|
|
33585
|
+
agentId: pattern.agentId || "unknown",
|
|
33586
|
+
role: "worker",
|
|
33587
|
+
namespaces: [pattern.domain],
|
|
33588
|
+
maxWritesPerMinute: 60,
|
|
33589
|
+
canDelete: false,
|
|
33590
|
+
canOverwrite: true,
|
|
33591
|
+
trustLevel: 0.7
|
|
33592
|
+
};
|
|
33593
|
+
const decision = this.guidanceMemoryGate.evaluateWrite(
|
|
33594
|
+
authority,
|
|
33595
|
+
pattern.key,
|
|
33596
|
+
pattern.domain,
|
|
33597
|
+
pattern.value
|
|
33598
|
+
);
|
|
33599
|
+
if (!decision.allowed) {
|
|
33600
|
+
return this.mapGuidanceDecision(decision);
|
|
33601
|
+
}
|
|
33602
|
+
} catch {
|
|
33603
|
+
}
|
|
33604
|
+
}
|
|
33605
|
+
return localDecision;
|
|
33487
33606
|
}
|
|
33488
33607
|
/**
|
|
33489
33608
|
* Local contradiction detection implementation
|
|
@@ -33619,15 +33738,17 @@ var init_memory_write_gate_integration = __esm({
|
|
|
33619
33738
|
return [...keys].map((key) => this.patternIndex.get(key)).filter((p74) => p74 !== void 0);
|
|
33620
33739
|
}
|
|
33621
33740
|
/**
|
|
33622
|
-
* Map guidance
|
|
33741
|
+
* Map guidance WriteDecision to our MemoryWriteGateDecision format.
|
|
33742
|
+
*
|
|
33743
|
+
* WriteDecision has: { allowed, reason, contradictions, authorityCheck, rateCheck, overwriteCheck }
|
|
33744
|
+
* We map to: { allowed, reason, conflictingPatterns, suggestedResolution, requiresManualReview }
|
|
33623
33745
|
*/
|
|
33624
33746
|
mapGuidanceDecision(decision) {
|
|
33625
33747
|
return {
|
|
33626
|
-
allowed: decision.allowed
|
|
33748
|
+
allowed: decision.allowed,
|
|
33627
33749
|
reason: decision.reason,
|
|
33628
|
-
|
|
33629
|
-
suggestedResolution: decision.
|
|
33630
|
-
requiresManualReview: decision.requiresManualReview
|
|
33750
|
+
requiresManualReview: !decision.authorityCheck.passed || decision.contradictions.length > 0,
|
|
33751
|
+
suggestedResolution: decision.contradictions.length > 0 ? "reject" : void 0
|
|
33631
33752
|
};
|
|
33632
33753
|
}
|
|
33633
33754
|
/**
|
|
@@ -33744,12 +33865,38 @@ var init_trust_accumulator_integration = __esm({
|
|
|
33744
33865
|
agentMetrics = /* @__PURE__ */ new Map();
|
|
33745
33866
|
taskHistory = /* @__PURE__ */ new Map();
|
|
33746
33867
|
tierThresholds = { ...DEFAULT_TIER_THRESHOLDS };
|
|
33868
|
+
guidanceTrustSystem = null;
|
|
33747
33869
|
initialized = false;
|
|
33748
33870
|
/**
|
|
33749
33871
|
* Initialize the TrustAccumulator integration
|
|
33872
|
+
*
|
|
33873
|
+
* Attempts to load @claude-flow/guidance TrustSystem for gate-outcome-based
|
|
33874
|
+
* trust accumulation with exponential decay. Falls back to local
|
|
33875
|
+
* implementation optimized for AQE agent routing.
|
|
33750
33876
|
*/
|
|
33751
33877
|
async initialize() {
|
|
33752
33878
|
if (this.initialized) return;
|
|
33879
|
+
try {
|
|
33880
|
+
const modulePath = "@claude-flow/guidance/trust";
|
|
33881
|
+
const mod = await import(
|
|
33882
|
+
/* @vite-ignore */
|
|
33883
|
+
modulePath
|
|
33884
|
+
);
|
|
33885
|
+
if (mod && typeof mod.createTrustSystem === "function") {
|
|
33886
|
+
this.guidanceTrustSystem = mod.createTrustSystem({
|
|
33887
|
+
initialTrust: 0.7,
|
|
33888
|
+
allowDelta: 0.02,
|
|
33889
|
+
denyDelta: 0.05,
|
|
33890
|
+
warnDelta: 0.01,
|
|
33891
|
+
decayRate: 0.05,
|
|
33892
|
+
decayIntervalMs: 3e5
|
|
33893
|
+
// 5 minutes
|
|
33894
|
+
});
|
|
33895
|
+
console.log("[TrustAccumulatorIntegration] Guidance TrustSystem loaded");
|
|
33896
|
+
}
|
|
33897
|
+
} catch {
|
|
33898
|
+
this.guidanceTrustSystem = null;
|
|
33899
|
+
}
|
|
33753
33900
|
this.initialized = true;
|
|
33754
33901
|
}
|
|
33755
33902
|
/**
|
|
@@ -33773,6 +33920,13 @@ var init_trust_accumulator_integration = __esm({
|
|
|
33773
33920
|
}
|
|
33774
33921
|
this.taskHistory.set(agentId, history);
|
|
33775
33922
|
this.updateAgentMetrics(agentId, outcome);
|
|
33923
|
+
if (this.guidanceTrustSystem) {
|
|
33924
|
+
try {
|
|
33925
|
+
const gateOutcome = success ? "allow" : "deny";
|
|
33926
|
+
this.guidanceTrustSystem.recordOutcome(agentId, gateOutcome, `Task ${taskType}: ${success ? "success" : "failure"}`);
|
|
33927
|
+
} catch {
|
|
33928
|
+
}
|
|
33929
|
+
}
|
|
33776
33930
|
const flags = governanceFlags.getFlags().trustAccumulator;
|
|
33777
33931
|
if (flags.autoTierAdjustment) {
|
|
33778
33932
|
this.adjustTier(agentId);
|
|
@@ -34141,14 +34295,32 @@ var init_deterministic_gateway_integration = __esm({
|
|
|
34141
34295
|
requestHistory = /* @__PURE__ */ new Map();
|
|
34142
34296
|
resultCache = /* @__PURE__ */ new Map();
|
|
34143
34297
|
toolSchemas = /* @__PURE__ */ new Map();
|
|
34298
|
+
guidanceGateway = null;
|
|
34144
34299
|
initialized = false;
|
|
34145
34300
|
/**
|
|
34146
34301
|
* Initialize the DeterministicGateway integration
|
|
34302
|
+
*
|
|
34303
|
+
* Attempts to load @claude-flow/guidance DeterministicToolGateway for
|
|
34304
|
+
* idempotency keys, schema validation, and budget metering. Falls back
|
|
34305
|
+
* to local implementation.
|
|
34147
34306
|
*/
|
|
34148
34307
|
async initialize() {
|
|
34149
34308
|
if (this.initialized) return;
|
|
34150
34309
|
this.registerDefaultSchemas();
|
|
34151
34310
|
this.initialized = true;
|
|
34311
|
+
try {
|
|
34312
|
+
const modulePath = "@claude-flow/guidance/gateway";
|
|
34313
|
+
const mod = await import(
|
|
34314
|
+
/* @vite-ignore */
|
|
34315
|
+
modulePath
|
|
34316
|
+
);
|
|
34317
|
+
if (mod && typeof mod.createToolGateway === "function") {
|
|
34318
|
+
this.guidanceGateway = mod.createToolGateway();
|
|
34319
|
+
console.log("[DeterministicGateway] Guidance ToolGateway loaded");
|
|
34320
|
+
}
|
|
34321
|
+
} catch {
|
|
34322
|
+
this.guidanceGateway = null;
|
|
34323
|
+
}
|
|
34152
34324
|
}
|
|
34153
34325
|
/**
|
|
34154
34326
|
* Register default schemas for AQE tools
|
|
@@ -34273,6 +34445,23 @@ var init_deterministic_gateway_integration = __esm({
|
|
|
34273
34445
|
};
|
|
34274
34446
|
}
|
|
34275
34447
|
}
|
|
34448
|
+
if (this.guidanceGateway && typeof params === "object" && params !== null) {
|
|
34449
|
+
try {
|
|
34450
|
+
const guidanceDecision = this.guidanceGateway.evaluate(
|
|
34451
|
+
toolName,
|
|
34452
|
+
params
|
|
34453
|
+
);
|
|
34454
|
+
if (!guidanceDecision.allowed) {
|
|
34455
|
+
this.logEvent(toolName, "guidance_denied", key);
|
|
34456
|
+
return {
|
|
34457
|
+
allowed: !isStrictMode(),
|
|
34458
|
+
reason: `Guidance gateway: ${guidanceDecision.reason}`,
|
|
34459
|
+
idempotencyKey: key
|
|
34460
|
+
};
|
|
34461
|
+
}
|
|
34462
|
+
} catch {
|
|
34463
|
+
}
|
|
34464
|
+
}
|
|
34276
34465
|
return {
|
|
34277
34466
|
allowed: true,
|
|
34278
34467
|
idempotencyKey: key
|
|
@@ -34582,6 +34771,7 @@ var init_evolution_pipeline_integration = __esm({
|
|
|
34582
34771
|
rules = /* @__PURE__ */ new Map();
|
|
34583
34772
|
variantTests = /* @__PURE__ */ new Map();
|
|
34584
34773
|
taskOutcomes = /* @__PURE__ */ new Map();
|
|
34774
|
+
guidanceEvolution = null;
|
|
34585
34775
|
initialized = false;
|
|
34586
34776
|
// KV persistence
|
|
34587
34777
|
db = null;
|
|
@@ -34604,6 +34794,10 @@ var init_evolution_pipeline_integration = __esm({
|
|
|
34604
34794
|
};
|
|
34605
34795
|
/**
|
|
34606
34796
|
* Initialize the Evolution Pipeline integration
|
|
34797
|
+
*
|
|
34798
|
+
* Attempts to load @claude-flow/guidance EvolutionPipeline for
|
|
34799
|
+
* signed change proposals and staged rollout. Falls back to local
|
|
34800
|
+
* rule effectiveness tracking.
|
|
34607
34801
|
*/
|
|
34608
34802
|
async initialize() {
|
|
34609
34803
|
if (this.initialized) return;
|
|
@@ -34615,6 +34809,19 @@ var init_evolution_pipeline_integration = __esm({
|
|
|
34615
34809
|
console.warn("[EvolutionPipeline] DB init failed, using memory-only:", toErrorMessage(error));
|
|
34616
34810
|
this.db = null;
|
|
34617
34811
|
}
|
|
34812
|
+
try {
|
|
34813
|
+
const modulePath = "@claude-flow/guidance/evolution";
|
|
34814
|
+
const mod = await import(
|
|
34815
|
+
/* @vite-ignore */
|
|
34816
|
+
modulePath
|
|
34817
|
+
);
|
|
34818
|
+
if (mod && typeof mod.createEvolutionPipeline === "function") {
|
|
34819
|
+
this.guidanceEvolution = mod.createEvolutionPipeline();
|
|
34820
|
+
console.log("[EvolutionPipeline] Guidance EvolutionPipeline loaded");
|
|
34821
|
+
}
|
|
34822
|
+
} catch {
|
|
34823
|
+
this.guidanceEvolution = null;
|
|
34824
|
+
}
|
|
34618
34825
|
this.initialized = true;
|
|
34619
34826
|
this.logEvent("initialize", "Evolution Pipeline initialized");
|
|
34620
34827
|
}
|
|
@@ -34729,6 +34936,21 @@ var init_evolution_pipeline_integration = __esm({
|
|
|
34729
34936
|
timestamp: Date.now(),
|
|
34730
34937
|
reason
|
|
34731
34938
|
});
|
|
34939
|
+
if (this.guidanceEvolution) {
|
|
34940
|
+
try {
|
|
34941
|
+
this.guidanceEvolution.propose({
|
|
34942
|
+
kind: "rule-promote",
|
|
34943
|
+
title: `Promote rule ${ruleId}`,
|
|
34944
|
+
description: reason,
|
|
34945
|
+
author: "aqe-evolution-pipeline",
|
|
34946
|
+
targetPath: `rules/${ruleId}`,
|
|
34947
|
+
diff: { before: oldStatus, after: newStatus },
|
|
34948
|
+
rationale: reason,
|
|
34949
|
+
riskAssessment: { level: "low", factors: ["automated-promotion"] }
|
|
34950
|
+
});
|
|
34951
|
+
} catch {
|
|
34952
|
+
}
|
|
34953
|
+
}
|
|
34732
34954
|
this.logEvent("rule_promotion", `Rule ${ruleId} promoted: ${oldStatus} -> ${newStatus}. Reason: ${reason}`);
|
|
34733
34955
|
}
|
|
34734
34956
|
}
|
|
@@ -34758,6 +34980,24 @@ var init_evolution_pipeline_integration = __esm({
|
|
|
34758
34980
|
timestamp: Date.now(),
|
|
34759
34981
|
reason
|
|
34760
34982
|
});
|
|
34983
|
+
if (this.guidanceEvolution) {
|
|
34984
|
+
try {
|
|
34985
|
+
this.guidanceEvolution.propose({
|
|
34986
|
+
kind: "rule-remove",
|
|
34987
|
+
title: `Demote rule ${ruleId}`,
|
|
34988
|
+
description: reason,
|
|
34989
|
+
author: "aqe-evolution-pipeline",
|
|
34990
|
+
targetPath: `rules/${ruleId}`,
|
|
34991
|
+
diff: { before: oldStatus, after: newStatus },
|
|
34992
|
+
rationale: reason,
|
|
34993
|
+
riskAssessment: {
|
|
34994
|
+
level: newStatus === "deprecated" ? "medium" : "low",
|
|
34995
|
+
factors: ["automated-demotion"]
|
|
34996
|
+
}
|
|
34997
|
+
});
|
|
34998
|
+
} catch {
|
|
34999
|
+
}
|
|
35000
|
+
}
|
|
34761
35001
|
this.logEvent("rule_demotion", `Rule ${ruleId} demoted: ${oldStatus} -> ${newStatus}. Reason: ${reason}`);
|
|
34762
35002
|
}
|
|
34763
35003
|
}
|
|
@@ -35500,9 +35740,15 @@ var init_adversarial_defense_integration = __esm({
|
|
|
35500
35740
|
blocklist = /* @__PURE__ */ new Map();
|
|
35501
35741
|
stats = this.createEmptyStats();
|
|
35502
35742
|
assessmentHistory = [];
|
|
35743
|
+
guidanceThreatDetector = null;
|
|
35744
|
+
guidanceCollusionDetector = null;
|
|
35503
35745
|
initialized = false;
|
|
35504
35746
|
/**
|
|
35505
35747
|
* Initialize the AdversarialDefense integration
|
|
35748
|
+
*
|
|
35749
|
+
* Attempts to load @claude-flow/guidance adversarial defense for
|
|
35750
|
+
* ThreatDetector and CollusionDetector. Falls back to local
|
|
35751
|
+
* pattern-based detection.
|
|
35506
35752
|
*/
|
|
35507
35753
|
async initialize() {
|
|
35508
35754
|
if (this.initialized) return;
|
|
@@ -35510,6 +35756,24 @@ var init_adversarial_defense_integration = __esm({
|
|
|
35510
35756
|
this.patterns.set(pattern.name, pattern);
|
|
35511
35757
|
}
|
|
35512
35758
|
this.initialized = true;
|
|
35759
|
+
try {
|
|
35760
|
+
const modulePath = "@claude-flow/guidance/adversarial";
|
|
35761
|
+
const mod = await import(
|
|
35762
|
+
/* @vite-ignore */
|
|
35763
|
+
modulePath
|
|
35764
|
+
);
|
|
35765
|
+
if (mod && typeof mod.createThreatDetector === "function") {
|
|
35766
|
+
this.guidanceThreatDetector = mod.createThreatDetector();
|
|
35767
|
+
console.log("[AdversarialDefense] Guidance ThreatDetector loaded");
|
|
35768
|
+
}
|
|
35769
|
+
if (mod && typeof mod.createCollusionDetector === "function") {
|
|
35770
|
+
this.guidanceCollusionDetector = mod.createCollusionDetector();
|
|
35771
|
+
console.log("[AdversarialDefense] Guidance CollusionDetector loaded");
|
|
35772
|
+
}
|
|
35773
|
+
} catch {
|
|
35774
|
+
this.guidanceThreatDetector = null;
|
|
35775
|
+
this.guidanceCollusionDetector = null;
|
|
35776
|
+
}
|
|
35513
35777
|
}
|
|
35514
35778
|
/**
|
|
35515
35779
|
* Assess threat level of an input
|
|
@@ -35521,6 +35785,25 @@ var init_adversarial_defense_integration = __esm({
|
|
|
35521
35785
|
const flags = governanceFlags.getFlags().adversarialDefense;
|
|
35522
35786
|
const detectedPatterns = this.detectInjectionPatterns(input);
|
|
35523
35787
|
const blocklistMatches = this.checkBlocklist(input);
|
|
35788
|
+
if (this.guidanceThreatDetector && detectedPatterns.length === 0) {
|
|
35789
|
+
try {
|
|
35790
|
+
const guidanceContext = { agentId: context?.agentId || "", toolName: context?.taskType || "" };
|
|
35791
|
+
const signals = this.guidanceThreatDetector.analyzeInput(input, guidanceContext);
|
|
35792
|
+
if (signals && Array.isArray(signals) && signals.length > 0) {
|
|
35793
|
+
for (const signal of signals) {
|
|
35794
|
+
detectedPatterns.push({
|
|
35795
|
+
name: `guidance:${signal.category || "unknown"}`,
|
|
35796
|
+
category: signal.category || "custom",
|
|
35797
|
+
matched: signal.description || "",
|
|
35798
|
+
position: 0,
|
|
35799
|
+
severity: signal.severity || 0.5,
|
|
35800
|
+
description: signal.description || "Detected by guidance ThreatDetector"
|
|
35801
|
+
});
|
|
35802
|
+
}
|
|
35803
|
+
}
|
|
35804
|
+
} catch {
|
|
35805
|
+
}
|
|
35806
|
+
}
|
|
35524
35807
|
let threatScore = 0;
|
|
35525
35808
|
if (detectedPatterns.length > 0) {
|
|
35526
35809
|
const severities = detectedPatterns.map((p74) => p74.severity).sort((a37, b68) => b68 - a37);
|
|
@@ -35664,6 +35947,37 @@ var init_adversarial_defense_integration = __esm({
|
|
|
35664
35947
|
}
|
|
35665
35948
|
return matches;
|
|
35666
35949
|
}
|
|
35950
|
+
/**
|
|
35951
|
+
* Record an agent interaction for collusion detection
|
|
35952
|
+
*
|
|
35953
|
+
* Forwards to guidance CollusionDetector when available.
|
|
35954
|
+
* Call this whenever two agents interact during task execution.
|
|
35955
|
+
*/
|
|
35956
|
+
recordAgentInteraction(fromAgent, toAgent, contentHash) {
|
|
35957
|
+
if (!isAdversarialDefenseEnabled()) return;
|
|
35958
|
+
if (this.guidanceCollusionDetector) {
|
|
35959
|
+
try {
|
|
35960
|
+
this.guidanceCollusionDetector.recordInteraction(fromAgent, toAgent, contentHash);
|
|
35961
|
+
} catch {
|
|
35962
|
+
}
|
|
35963
|
+
}
|
|
35964
|
+
}
|
|
35965
|
+
/**
|
|
35966
|
+
* Check for collusion patterns among agents
|
|
35967
|
+
*
|
|
35968
|
+
* Delegates to guidance CollusionDetector when available.
|
|
35969
|
+
* Returns null if collusion detection is not available.
|
|
35970
|
+
*/
|
|
35971
|
+
detectCollusion() {
|
|
35972
|
+
if (!isAdversarialDefenseEnabled()) return null;
|
|
35973
|
+
if (this.guidanceCollusionDetector) {
|
|
35974
|
+
try {
|
|
35975
|
+
return this.guidanceCollusionDetector.detectCollusion();
|
|
35976
|
+
} catch {
|
|
35977
|
+
}
|
|
35978
|
+
}
|
|
35979
|
+
return null;
|
|
35980
|
+
}
|
|
35667
35981
|
/**
|
|
35668
35982
|
* Penalize an agent's trust score based on threat assessment
|
|
35669
35983
|
*/
|
|
@@ -36936,6 +37250,7 @@ var init_proof_envelope_integration = __esm({
|
|
|
36936
37250
|
kernel;
|
|
36937
37251
|
chain = [];
|
|
36938
37252
|
signingKey = "";
|
|
37253
|
+
guidanceProofChain = null;
|
|
36939
37254
|
initialized = false;
|
|
36940
37255
|
envelopeIndex = /* @__PURE__ */ new Map();
|
|
36941
37256
|
/**
|
|
@@ -36955,6 +37270,19 @@ var init_proof_envelope_integration = __esm({
|
|
|
36955
37270
|
if (this.initialized) return;
|
|
36956
37271
|
await this.kernel.initialize();
|
|
36957
37272
|
this.signingKey = signingKey;
|
|
37273
|
+
try {
|
|
37274
|
+
const modulePath = "@claude-flow/guidance/proof";
|
|
37275
|
+
const mod = await import(
|
|
37276
|
+
/* @vite-ignore */
|
|
37277
|
+
modulePath
|
|
37278
|
+
);
|
|
37279
|
+
if (mod && typeof mod.createProofChain === "function") {
|
|
37280
|
+
this.guidanceProofChain = mod.createProofChain({ signingKey });
|
|
37281
|
+
console.log("[ProofEnvelopeIntegration] Guidance ProofChain loaded");
|
|
37282
|
+
}
|
|
37283
|
+
} catch {
|
|
37284
|
+
this.guidanceProofChain = null;
|
|
37285
|
+
}
|
|
36958
37286
|
this.initialized = true;
|
|
36959
37287
|
}
|
|
36960
37288
|
/**
|
|
@@ -37058,6 +37386,31 @@ var init_proof_envelope_integration = __esm({
|
|
|
37058
37386
|
const index = this.chain.length;
|
|
37059
37387
|
this.chain.push(envelope);
|
|
37060
37388
|
this.envelopeIndex.set(envelope.id, index);
|
|
37389
|
+
if (this.guidanceProofChain) {
|
|
37390
|
+
try {
|
|
37391
|
+
const runEvent = {
|
|
37392
|
+
eventId: envelope.id,
|
|
37393
|
+
taskId: envelope.metadata?.taskId ? String(envelope.metadata.taskId) : envelope.id,
|
|
37394
|
+
guidanceHash: envelope.contentHash,
|
|
37395
|
+
retrievedRuleIds: [],
|
|
37396
|
+
toolsUsed: envelope.action ? [envelope.action] : [],
|
|
37397
|
+
filesTouched: [],
|
|
37398
|
+
diffSummary: { linesAdded: 0, linesRemoved: 0, filesChanged: 0 },
|
|
37399
|
+
testResults: { passed: 0, failed: 0, skipped: 0 },
|
|
37400
|
+
metrics: {},
|
|
37401
|
+
timestamp: new Date(envelope.timestamp).toISOString()
|
|
37402
|
+
};
|
|
37403
|
+
this.guidanceProofChain.append(
|
|
37404
|
+
runEvent,
|
|
37405
|
+
[],
|
|
37406
|
+
// toolCalls
|
|
37407
|
+
[],
|
|
37408
|
+
// memoryOps
|
|
37409
|
+
{ agentId: envelope.agentId, sessionId: envelope.metadata?.sessionId ? String(envelope.metadata.sessionId) : "aqe" }
|
|
37410
|
+
);
|
|
37411
|
+
} catch {
|
|
37412
|
+
}
|
|
37413
|
+
}
|
|
37061
37414
|
}
|
|
37062
37415
|
/**
|
|
37063
37416
|
* Get the current chain
|
|
@@ -39085,6 +39438,7 @@ var init_shard_retriever_integration = __esm({
|
|
|
39085
39438
|
cacheMisses = 0;
|
|
39086
39439
|
lastCacheCleanup = null;
|
|
39087
39440
|
parseErrors = [];
|
|
39441
|
+
guidanceRetriever = null;
|
|
39088
39442
|
initialized = false;
|
|
39089
39443
|
basePath;
|
|
39090
39444
|
constructor(basePath) {
|
|
@@ -39092,6 +39446,10 @@ var init_shard_retriever_integration = __esm({
|
|
|
39092
39446
|
}
|
|
39093
39447
|
/**
|
|
39094
39448
|
* Initialize the ShardRetrieverIntegration
|
|
39449
|
+
*
|
|
39450
|
+
* Attempts to load @claude-flow/guidance ShardRetriever for
|
|
39451
|
+
* embedding-based semantic shard matching. Falls back to local
|
|
39452
|
+
* filesystem-based loading with keyword matching.
|
|
39095
39453
|
*/
|
|
39096
39454
|
async initialize() {
|
|
39097
39455
|
if (this.initialized) return;
|
|
@@ -39099,6 +39457,19 @@ var init_shard_retriever_integration = __esm({
|
|
|
39099
39457
|
this.initialized = true;
|
|
39100
39458
|
return;
|
|
39101
39459
|
}
|
|
39460
|
+
try {
|
|
39461
|
+
const modulePath = "@claude-flow/guidance/retriever";
|
|
39462
|
+
const mod = await import(
|
|
39463
|
+
/* @vite-ignore */
|
|
39464
|
+
modulePath
|
|
39465
|
+
);
|
|
39466
|
+
if (mod && typeof mod.createRetriever === "function") {
|
|
39467
|
+
this.guidanceRetriever = mod.createRetriever();
|
|
39468
|
+
console.log("[ShardRetrieverIntegration] Guidance ShardRetriever loaded");
|
|
39469
|
+
}
|
|
39470
|
+
} catch {
|
|
39471
|
+
this.guidanceRetriever = null;
|
|
39472
|
+
}
|
|
39102
39473
|
await this.loadAllShards();
|
|
39103
39474
|
this.initialized = true;
|
|
39104
39475
|
}
|
|
@@ -39165,6 +39536,11 @@ var init_shard_retriever_integration = __esm({
|
|
|
39165
39536
|
}
|
|
39166
39537
|
/**
|
|
39167
39538
|
* Retrieve shards relevant to a task
|
|
39539
|
+
*
|
|
39540
|
+
* Local filesystem-based retrieval is authoritative. When guidance
|
|
39541
|
+
* ShardRetriever is available, its embedding-based results supplement
|
|
39542
|
+
* the local results by boosting relevance scores for shards that
|
|
39543
|
+
* guidance also considers relevant.
|
|
39168
39544
|
*/
|
|
39169
39545
|
async retrieveForTask(taskType, context) {
|
|
39170
39546
|
if (!isShardRetrieverEnabled()) {
|
|
@@ -39173,9 +39549,31 @@ var init_shard_retriever_integration = __esm({
|
|
|
39173
39549
|
await this.initialize();
|
|
39174
39550
|
const flags = getShardRetrieverFlags();
|
|
39175
39551
|
const allShards = await this.getAllCachedOrLoadedShards();
|
|
39552
|
+
const guidanceRelevantDomains = /* @__PURE__ */ new Set();
|
|
39553
|
+
if (this.guidanceRetriever) {
|
|
39554
|
+
try {
|
|
39555
|
+
const result = await this.guidanceRetriever.retrieve({
|
|
39556
|
+
taskDescription: `${taskType}: ${context.intent || ""} ${(context.keywords || []).join(" ")}`,
|
|
39557
|
+
maxShards: flags.maxShardsPerQuery
|
|
39558
|
+
});
|
|
39559
|
+
if (result && result.shards) {
|
|
39560
|
+
for (const s70 of result.shards) {
|
|
39561
|
+
if (s70.shard?.rule?.domains) {
|
|
39562
|
+
for (const d74 of s70.shard.rule.domains) {
|
|
39563
|
+
guidanceRelevantDomains.add(d74);
|
|
39564
|
+
}
|
|
39565
|
+
}
|
|
39566
|
+
}
|
|
39567
|
+
}
|
|
39568
|
+
} catch {
|
|
39569
|
+
}
|
|
39570
|
+
}
|
|
39176
39571
|
const scoredShards = [];
|
|
39177
39572
|
for (const shard of allShards.values()) {
|
|
39178
|
-
|
|
39573
|
+
let score = this.calculateRelevance(shard, { ...context, taskType });
|
|
39574
|
+
if (guidanceRelevantDomains.has(shard.domain)) {
|
|
39575
|
+
score = Math.min(1, score + 0.1);
|
|
39576
|
+
}
|
|
39179
39577
|
if (score >= flags.relevanceThreshold) {
|
|
39180
39578
|
scoredShards.push({ shard, score });
|
|
39181
39579
|
}
|
|
@@ -66598,14 +66996,22 @@ var init_test_verifier = __esm({
|
|
|
66598
66996
|
});
|
|
66599
66997
|
|
|
66600
66998
|
// src/agents/claim-verifier/verifiers/output-verifier.ts
|
|
66601
|
-
import {
|
|
66999
|
+
import { execFile } from "node:child_process";
|
|
66602
67000
|
import { promisify as promisify3 } from "node:util";
|
|
66603
|
-
var
|
|
67001
|
+
var execFileAsync, ALLOWED_COMMANDS, OutputBasedVerifier;
|
|
66604
67002
|
var init_output_verifier = __esm({
|
|
66605
67003
|
"src/agents/claim-verifier/verifiers/output-verifier.ts"() {
|
|
66606
67004
|
"use strict";
|
|
66607
67005
|
init_claim_verifier();
|
|
66608
|
-
|
|
67006
|
+
execFileAsync = promisify3(execFile);
|
|
67007
|
+
ALLOWED_COMMANDS = /* @__PURE__ */ new Map([
|
|
67008
|
+
["npm run build", { bin: "npm", args: ["run", "build"] }],
|
|
67009
|
+
["npm run lint", { bin: "npm", args: ["run", "lint"] }],
|
|
67010
|
+
["npm test", { bin: "npm", args: ["test"] }],
|
|
67011
|
+
["npm run typecheck", { bin: "npm", args: ["run", "typecheck"] }],
|
|
67012
|
+
["npm run test:unit", { bin: "npm", args: ["run", "test:unit"] }],
|
|
67013
|
+
["npm run test:ci", { bin: "npm", args: ["run", "test:ci"] }]
|
|
67014
|
+
]);
|
|
66609
67015
|
OutputBasedVerifier = class {
|
|
66610
67016
|
config;
|
|
66611
67017
|
/**
|
|
@@ -66730,11 +67136,18 @@ var init_output_verifier = __esm({
|
|
|
66730
67136
|
}
|
|
66731
67137
|
/**
|
|
66732
67138
|
* Execute a command and capture output.
|
|
67139
|
+
* Uses execFile with an allowlist to prevent command injection (CWE-78).
|
|
66733
67140
|
*/
|
|
66734
67141
|
async executeCommand(command) {
|
|
66735
67142
|
const startTime = Date.now();
|
|
67143
|
+
const allowed = ALLOWED_COMMANDS.get(command);
|
|
67144
|
+
if (!allowed) {
|
|
67145
|
+
throw new Error(
|
|
67146
|
+
`Command not in allowlist: "${command}". Allowed: ${[...ALLOWED_COMMANDS.keys()].join(", ")}`
|
|
67147
|
+
);
|
|
67148
|
+
}
|
|
66736
67149
|
try {
|
|
66737
|
-
const { stdout, stderr } = await
|
|
67150
|
+
const { stdout, stderr } = await execFileAsync(allowed.bin, [...allowed.args], {
|
|
66738
67151
|
cwd: this.config.rootDir,
|
|
66739
67152
|
timeout: this.config.timeout,
|
|
66740
67153
|
maxBuffer: this.config.maxOutputSize,
|
|
@@ -100288,7 +100701,7 @@ var init_plugin10 = __esm({
|
|
|
100288
100701
|
|
|
100289
100702
|
// src/domains/chaos-resilience/services/chaos-engineer.ts
|
|
100290
100703
|
import * as net from "net";
|
|
100291
|
-
import { execFile } from "child_process";
|
|
100704
|
+
import { execFile as execFile2 } from "child_process";
|
|
100292
100705
|
var DEFAULT_CONFIG55, ChaosEngineerService;
|
|
100293
100706
|
var init_chaos_engineer = __esm({
|
|
100294
100707
|
"src/domains/chaos-resilience/services/chaos-engineer.ts"() {
|
|
@@ -100798,7 +101211,7 @@ Provide:
|
|
|
100798
101211
|
const parts = sanitizedCommand.trim().split(/\s+/);
|
|
100799
101212
|
const executable = parts[0];
|
|
100800
101213
|
const args = parts.slice(1);
|
|
100801
|
-
|
|
101214
|
+
execFile2(executable, args, { timeout }, (error, stdout, _stderr) => {
|
|
100802
101215
|
if (error) {
|
|
100803
101216
|
console.log(`Command probe failed: ${probe.name} -> ${error.message}`);
|
|
100804
101217
|
resolve10(false);
|
|
@@ -101142,7 +101555,7 @@ Provide:
|
|
|
101142
101555
|
const parts = sanitizedCommand.trim().split(/\s+/);
|
|
101143
101556
|
const executable = parts[0];
|
|
101144
101557
|
const args = parts.slice(1);
|
|
101145
|
-
|
|
101558
|
+
execFile2(executable, args, { timeout }, (error, _stdout, stderr) => {
|
|
101146
101559
|
if (error) {
|
|
101147
101560
|
reject(new Error(`Command rollback failed: ${error.message}. ${stderr}`));
|
|
101148
101561
|
} else {
|
|
@@ -113811,12 +114224,12 @@ var init_coverage_analysis = __esm({
|
|
|
113811
114224
|
});
|
|
113812
114225
|
|
|
113813
114226
|
// src/domains/security-compliance/services/semgrep-integration.ts
|
|
113814
|
-
import { execFile as
|
|
114227
|
+
import { execFile as execFile3 } from "child_process";
|
|
113815
114228
|
import { promisify as promisify4 } from "util";
|
|
113816
114229
|
import * as path16 from "path";
|
|
113817
114230
|
async function isSemgrepAvailable() {
|
|
113818
114231
|
try {
|
|
113819
|
-
await
|
|
114232
|
+
await execFileAsync2("semgrep", ["--version"], { timeout: 5e3 });
|
|
113820
114233
|
return true;
|
|
113821
114234
|
} catch {
|
|
113822
114235
|
return false;
|
|
@@ -113824,7 +114237,7 @@ async function isSemgrepAvailable() {
|
|
|
113824
114237
|
}
|
|
113825
114238
|
async function getSemgrepVersion() {
|
|
113826
114239
|
try {
|
|
113827
|
-
const { stdout } = await
|
|
114240
|
+
const { stdout } = await execFileAsync2("semgrep", ["--version"], { timeout: 5e3 });
|
|
113828
114241
|
return stdout.trim();
|
|
113829
114242
|
} catch {
|
|
113830
114243
|
return null;
|
|
@@ -113861,7 +114274,7 @@ async function runSemgrep(config) {
|
|
|
113861
114274
|
}
|
|
113862
114275
|
args.push(fullConfig.target);
|
|
113863
114276
|
const timeoutMs = (fullConfig.timeout ?? 300) * 1e3;
|
|
113864
|
-
const { stdout, stderr } = await
|
|
114277
|
+
const { stdout, stderr } = await execFileAsync2("semgrep", args, {
|
|
113865
114278
|
timeout: timeoutMs,
|
|
113866
114279
|
maxBuffer: 50 * 1024 * 1024,
|
|
113867
114280
|
// 50MB buffer for large results
|
|
@@ -113973,13 +114386,13 @@ function convertSemgrepFindings(findings) {
|
|
|
113973
114386
|
references: f74.extra.metadata?.references || []
|
|
113974
114387
|
}));
|
|
113975
114388
|
}
|
|
113976
|
-
var
|
|
114389
|
+
var execFileAsync2;
|
|
113977
114390
|
var init_semgrep_integration = __esm({
|
|
113978
114391
|
"src/domains/security-compliance/services/semgrep-integration.ts"() {
|
|
113979
114392
|
"use strict";
|
|
113980
114393
|
init_error_utils();
|
|
113981
114394
|
init_safe_json();
|
|
113982
|
-
|
|
114395
|
+
execFileAsync2 = promisify4(execFile3);
|
|
113983
114396
|
}
|
|
113984
114397
|
});
|
|
113985
114398
|
|
|
@@ -172064,7 +172477,7 @@ async function handleAQEHealth() {
|
|
|
172064
172477
|
success: true,
|
|
172065
172478
|
data: {
|
|
172066
172479
|
status: healthStatus,
|
|
172067
|
-
version: true ? "3.7.
|
|
172480
|
+
version: true ? "3.7.11" : "3.7.2",
|
|
172068
172481
|
loadedDomains: domainCount,
|
|
172069
172482
|
memory: memoryStats,
|
|
172070
172483
|
hnsw: hnswStats,
|
|
@@ -174418,7 +174831,10 @@ var ToolRegistry = class {
|
|
|
174418
174831
|
"domain",
|
|
174419
174832
|
"coordination",
|
|
174420
174833
|
"memory",
|
|
174421
|
-
"learning"
|
|
174834
|
+
"learning",
|
|
174835
|
+
"routing",
|
|
174836
|
+
"cross-phase",
|
|
174837
|
+
"infra-healing"
|
|
174422
174838
|
];
|
|
174423
174839
|
for (const category of categories) {
|
|
174424
174840
|
this.categoryTools.set(category, /* @__PURE__ */ new Set());
|
|
@@ -178184,7 +178600,7 @@ var MCPProtocolServer = class {
|
|
|
178184
178600
|
return {
|
|
178185
178601
|
name: this.config.name,
|
|
178186
178602
|
version: this.config.version,
|
|
178187
|
-
protocolVersion: "
|
|
178603
|
+
protocolVersion: "2025-11-25"
|
|
178188
178604
|
// MCP protocol version
|
|
178189
178605
|
};
|
|
178190
178606
|
}
|
|
@@ -178260,7 +178676,7 @@ var MCPProtocolServer = class {
|
|
|
178260
178676
|
}
|
|
178261
178677
|
this.initialized = true;
|
|
178262
178678
|
return {
|
|
178263
|
-
protocolVersion: "
|
|
178679
|
+
protocolVersion: "2025-11-25",
|
|
178264
178680
|
capabilities: this.getCapabilities(),
|
|
178265
178681
|
serverInfo: this.getServerInfo()
|
|
178266
178682
|
};
|
|
@@ -185279,10 +185695,10 @@ function createCoordinationLock(defaultTtlMs) {
|
|
|
185279
185695
|
// src/strange-loop/infra-healing/infra-action-executor.ts
|
|
185280
185696
|
var ShellCommandRunner = class {
|
|
185281
185697
|
async run(command, timeoutMs) {
|
|
185282
|
-
const { execFile:
|
|
185698
|
+
const { execFile: execFile4 } = await import("node:child_process");
|
|
185283
185699
|
const startTime = Date.now();
|
|
185284
185700
|
return new Promise((resolve10) => {
|
|
185285
|
-
const child =
|
|
185701
|
+
const child = execFile4(
|
|
185286
185702
|
"/bin/sh",
|
|
185287
185703
|
["-c", command],
|
|
185288
185704
|
{ timeout: timeoutMs, maxBuffer: 1024 * 1024 },
|