qa360 2.2.1 → 2.2.7
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.
Potentially problematic release.
This version of qa360 might be problematic. Click here for more details.
- package/CHANGELOG.md +28 -0
- package/README.md +79 -0
- package/cli/dist/cli-minimal.d.ts +6 -0
- package/cli/dist/cli-minimal.js +36 -0
- package/cli/dist/commands/ai.d.ts +43 -0
- package/cli/dist/commands/ai.js +616 -0
- package/cli/dist/commands/ask.d.ts +94 -0
- package/cli/dist/commands/ask.js +582 -0
- package/cli/dist/commands/coverage.d.ts +8 -0
- package/cli/dist/commands/coverage.js +252 -0
- package/cli/dist/commands/crawl.d.ts +24 -0
- package/cli/dist/commands/crawl.js +121 -0
- package/cli/dist/commands/doctor.d.ts +54 -0
- package/cli/dist/commands/doctor.js +513 -0
- package/cli/dist/commands/examples.d.ts +33 -0
- package/cli/dist/commands/examples.js +193 -0
- package/cli/dist/commands/explain.d.ts +27 -0
- package/cli/dist/commands/explain.js +630 -0
- package/cli/dist/commands/flakiness.d.ts +73 -0
- package/cli/dist/commands/flakiness.js +435 -0
- package/cli/dist/commands/generate.d.ts +66 -0
- package/cli/dist/commands/generate.js +438 -0
- package/cli/dist/commands/history.d.ts +76 -0
- package/cli/dist/commands/history.js +755 -0
- package/cli/dist/commands/init.d.ts +106 -0
- package/cli/dist/commands/init.js +616 -0
- package/cli/dist/commands/monitor.d.ts +27 -0
- package/cli/dist/commands/monitor.js +225 -0
- package/cli/dist/commands/ollama.d.ts +40 -0
- package/cli/dist/commands/ollama.js +346 -0
- package/cli/dist/commands/pack.d.ts +70 -0
- package/cli/dist/commands/pack.js +413 -0
- package/cli/dist/commands/regression.d.ts +8 -0
- package/cli/dist/commands/regression.js +340 -0
- package/cli/dist/commands/repair.d.ts +26 -0
- package/cli/dist/commands/repair.js +307 -0
- package/cli/dist/commands/report.d.ts +62 -0
- package/cli/dist/commands/report.js +378 -0
- package/cli/dist/commands/retry.d.ts +43 -0
- package/cli/dist/commands/retry.js +275 -0
- package/cli/dist/commands/run.d.ts +41 -0
- package/cli/dist/commands/run.js +171 -0
- package/cli/dist/commands/scan.d.ts +5 -0
- package/cli/dist/commands/scan.js +155 -0
- package/cli/dist/commands/secrets.d.ts +58 -0
- package/cli/dist/commands/secrets.js +289 -0
- package/cli/dist/commands/serve.d.ts +13 -0
- package/cli/dist/commands/serve.js +156 -0
- package/cli/dist/commands/slo.d.ts +8 -0
- package/cli/dist/commands/slo.js +327 -0
- package/cli/dist/commands/verify.d.ts +32 -0
- package/cli/dist/commands/verify.js +278 -0
- package/cli/dist/core/adapters/gitleaks-secrets.d.ts +114 -0
- package/cli/dist/core/adapters/gitleaks-secrets.js +410 -0
- package/cli/dist/core/adapters/jest-adapter.d.ts +44 -0
- package/cli/dist/core/adapters/jest-adapter.js +261 -0
- package/cli/dist/core/adapters/k6-perf.d.ts +85 -0
- package/cli/dist/core/adapters/k6-perf.js +398 -0
- package/cli/dist/core/adapters/osv-deps.d.ts +123 -0
- package/cli/dist/core/adapters/osv-deps.js +372 -0
- package/cli/dist/core/adapters/playwright-native-adapter.d.ts +121 -0
- package/cli/dist/core/adapters/playwright-native-adapter.js +339 -0
- package/cli/dist/core/adapters/playwright-native-api.d.ts +183 -0
- package/cli/dist/core/adapters/playwright-native-api.js +465 -0
- package/cli/dist/core/adapters/playwright-ui.d.ts +197 -0
- package/cli/dist/core/adapters/playwright-ui.js +864 -0
- package/cli/dist/core/adapters/pytest-adapter.d.ts +49 -0
- package/cli/dist/core/adapters/pytest-adapter.js +324 -0
- package/cli/dist/core/adapters/semgrep-sast.d.ts +99 -0
- package/cli/dist/core/adapters/semgrep-sast.js +322 -0
- package/cli/dist/core/adapters/unit-test-types.d.ts +119 -0
- package/cli/dist/core/adapters/unit-test-types.js +6 -0
- package/cli/dist/core/adapters/vitest-adapter.d.ts +46 -0
- package/cli/dist/core/adapters/vitest-adapter.js +272 -0
- package/cli/dist/core/adapters/zap-dast.d.ts +133 -0
- package/cli/dist/core/adapters/zap-dast.js +424 -0
- package/cli/dist/core/ai/anthropic-provider.d.ts +50 -0
- package/cli/dist/core/ai/anthropic-provider.js +223 -0
- package/cli/dist/core/ai/deepseek-provider.d.ts +81 -0
- package/cli/dist/core/ai/deepseek-provider.js +266 -0
- package/cli/dist/core/ai/index.d.ts +60 -0
- package/cli/dist/core/ai/index.js +18 -0
- package/cli/dist/core/ai/llm-client.d.ts +45 -0
- package/cli/dist/core/ai/llm-client.js +7 -0
- package/cli/dist/core/ai/mock-provider.d.ts +49 -0
- package/cli/dist/core/ai/mock-provider.js +121 -0
- package/cli/dist/core/ai/ollama-provider.d.ts +78 -0
- package/cli/dist/core/ai/ollama-provider.js +216 -0
- package/cli/dist/core/ai/openai-provider.d.ts +48 -0
- package/cli/dist/core/ai/openai-provider.js +200 -0
- package/cli/dist/core/ai/provider-factory.d.ts +160 -0
- package/cli/dist/core/ai/provider-factory.js +269 -0
- package/cli/dist/core/artifacts/index.d.ts +6 -0
- package/cli/dist/core/artifacts/index.js +6 -0
- package/cli/dist/core/artifacts/ui-artifacts.d.ts +133 -0
- package/cli/dist/core/artifacts/ui-artifacts.js +304 -0
- package/cli/dist/core/assertions/engine.d.ts +51 -0
- package/cli/dist/core/assertions/engine.js +530 -0
- package/cli/dist/core/assertions/index.d.ts +11 -0
- package/cli/dist/core/assertions/index.js +11 -0
- package/cli/dist/core/assertions/types.d.ts +121 -0
- package/cli/dist/core/assertions/types.js +37 -0
- package/cli/dist/core/auth/api-key-provider.d.ts +16 -0
- package/cli/dist/core/auth/api-key-provider.js +63 -0
- package/cli/dist/core/auth/aws-iam-provider.d.ts +35 -0
- package/cli/dist/core/auth/aws-iam-provider.js +177 -0
- package/cli/dist/core/auth/azure-ad-provider.d.ts +15 -0
- package/cli/dist/core/auth/azure-ad-provider.js +99 -0
- package/cli/dist/core/auth/basic-auth-provider.d.ts +26 -0
- package/cli/dist/core/auth/basic-auth-provider.js +111 -0
- package/cli/dist/core/auth/gcp-adc-provider.d.ts +27 -0
- package/cli/dist/core/auth/gcp-adc-provider.js +126 -0
- package/cli/dist/core/auth/index.d.ts +238 -0
- package/cli/dist/core/auth/index.js +82 -0
- package/cli/dist/core/auth/jwt-provider.d.ts +19 -0
- package/cli/dist/core/auth/jwt-provider.js +160 -0
- package/cli/dist/core/auth/manager.d.ts +84 -0
- package/cli/dist/core/auth/manager.js +230 -0
- package/cli/dist/core/auth/oauth2-provider.d.ts +17 -0
- package/cli/dist/core/auth/oauth2-provider.js +114 -0
- package/cli/dist/core/auth/totp-provider.d.ts +31 -0
- package/cli/dist/core/auth/totp-provider.js +134 -0
- package/cli/dist/core/auth/ui-login-provider.d.ts +26 -0
- package/cli/dist/core/auth/ui-login-provider.js +198 -0
- package/cli/dist/core/cache/index.d.ts +7 -0
- package/cli/dist/core/cache/index.js +6 -0
- package/cli/dist/core/cache/lru-cache.d.ts +203 -0
- package/cli/dist/core/cache/lru-cache.js +397 -0
- package/cli/dist/core/core/coverage/analyzer.d.ts +101 -0
- package/cli/dist/core/core/coverage/analyzer.js +415 -0
- package/cli/dist/core/core/coverage/collector.d.ts +74 -0
- package/cli/dist/core/core/coverage/collector.js +459 -0
- package/cli/dist/core/core/coverage/config.d.ts +37 -0
- package/cli/dist/core/core/coverage/config.js +156 -0
- package/cli/dist/core/core/coverage/index.d.ts +11 -0
- package/cli/dist/core/core/coverage/index.js +15 -0
- package/cli/dist/core/core/coverage/types.d.ts +267 -0
- package/cli/dist/core/core/coverage/types.js +6 -0
- package/cli/dist/core/core/coverage/vault.d.ts +95 -0
- package/cli/dist/core/core/coverage/vault.js +405 -0
- package/cli/dist/core/coverage/analyzer.d.ts +101 -0
- package/cli/dist/core/coverage/analyzer.js +415 -0
- package/cli/dist/core/coverage/collector.d.ts +74 -0
- package/cli/dist/core/coverage/collector.js +459 -0
- package/cli/dist/core/coverage/config.d.ts +37 -0
- package/cli/dist/core/coverage/config.js +156 -0
- package/cli/dist/core/coverage/index.d.ts +11 -0
- package/cli/dist/core/coverage/index.js +15 -0
- package/cli/dist/core/coverage/types.d.ts +267 -0
- package/cli/dist/core/coverage/types.js +6 -0
- package/cli/dist/core/coverage/vault.d.ts +95 -0
- package/cli/dist/core/coverage/vault.js +405 -0
- package/cli/dist/core/crawler/index.d.ts +57 -0
- package/cli/dist/core/crawler/index.js +281 -0
- package/cli/dist/core/crawler/journey-generator.d.ts +49 -0
- package/cli/dist/core/crawler/journey-generator.js +412 -0
- package/cli/dist/core/crawler/page-analyzer.d.ts +88 -0
- package/cli/dist/core/crawler/page-analyzer.js +709 -0
- package/cli/dist/core/crawler/selector-generator.d.ts +34 -0
- package/cli/dist/core/crawler/selector-generator.js +240 -0
- package/cli/dist/core/crawler/types.d.ts +353 -0
- package/cli/dist/core/crawler/types.js +6 -0
- package/cli/dist/core/dashboard/assets.d.ts +6 -0
- package/cli/dist/core/dashboard/assets.js +690 -0
- package/cli/dist/core/dashboard/index.d.ts +6 -0
- package/cli/dist/core/dashboard/index.js +5 -0
- package/cli/dist/core/dashboard/server.d.ts +72 -0
- package/cli/dist/core/dashboard/server.js +354 -0
- package/cli/dist/core/dashboard/types.d.ts +70 -0
- package/cli/dist/core/dashboard/types.js +5 -0
- package/cli/dist/core/discoverer/index.d.ts +115 -0
- package/cli/dist/core/discoverer/index.js +250 -0
- package/cli/dist/core/fixtures/index.d.ts +8 -0
- package/cli/dist/core/fixtures/index.js +8 -0
- package/cli/dist/core/fixtures/loader.d.ts +65 -0
- package/cli/dist/core/fixtures/loader.js +161 -0
- package/cli/dist/core/fixtures/resolver.d.ts +79 -0
- package/cli/dist/core/fixtures/resolver.js +181 -0
- package/cli/dist/core/fixtures/types.d.ts +75 -0
- package/cli/dist/core/fixtures/types.js +30 -0
- package/cli/dist/core/flakiness/index.d.ts +228 -0
- package/cli/dist/core/flakiness/index.js +384 -0
- package/cli/dist/core/generation/code-formatter.d.ts +111 -0
- package/cli/dist/core/generation/code-formatter.js +307 -0
- package/cli/dist/core/generation/code-generator.d.ts +144 -0
- package/cli/dist/core/generation/code-generator.js +293 -0
- package/cli/dist/core/generation/crawler-pack-generator.d.ts +44 -0
- package/cli/dist/core/generation/crawler-pack-generator.js +231 -0
- package/cli/dist/core/generation/generator.d.ts +40 -0
- package/cli/dist/core/generation/generator.js +76 -0
- package/cli/dist/core/generation/index.d.ts +32 -0
- package/cli/dist/core/generation/index.js +30 -0
- package/cli/dist/core/generation/pack-generator.d.ts +107 -0
- package/cli/dist/core/generation/pack-generator.js +416 -0
- package/cli/dist/core/generation/prompt-builder.d.ts +132 -0
- package/cli/dist/core/generation/prompt-builder.js +672 -0
- package/cli/dist/core/generation/source-analyzer.d.ts +213 -0
- package/cli/dist/core/generation/source-analyzer.js +657 -0
- package/cli/dist/core/generation/test-optimizer.d.ts +117 -0
- package/cli/dist/core/generation/test-optimizer.js +328 -0
- package/cli/dist/core/generation/types.d.ts +214 -0
- package/cli/dist/core/generation/types.js +4 -0
- package/cli/dist/core/hooks/compose.d.ts +61 -0
- package/cli/dist/core/hooks/compose.js +225 -0
- package/cli/dist/core/hooks/runner.d.ts +68 -0
- package/cli/dist/core/hooks/runner.js +303 -0
- package/cli/dist/core/index.d.ts +110 -0
- package/cli/dist/core/index.js +99 -0
- package/cli/dist/core/pack/migrator.d.ts +51 -0
- package/cli/dist/core/pack/migrator.js +304 -0
- package/cli/dist/core/pack/validator.d.ts +42 -0
- package/cli/dist/core/pack/validator.js +322 -0
- package/cli/dist/core/pack-v2/index.d.ts +9 -0
- package/cli/dist/core/pack-v2/index.js +8 -0
- package/cli/dist/core/pack-v2/loader.d.ts +63 -0
- package/cli/dist/core/pack-v2/loader.js +292 -0
- package/cli/dist/core/pack-v2/migrator.d.ts +61 -0
- package/cli/dist/core/pack-v2/migrator.js +480 -0
- package/cli/dist/core/pack-v2/validator.d.ts +65 -0
- package/cli/dist/core/pack-v2/validator.js +628 -0
- package/cli/dist/core/parallel/index.d.ts +6 -0
- package/cli/dist/core/parallel/index.js +6 -0
- package/cli/dist/core/parallel/parallel-runner.d.ts +107 -0
- package/cli/dist/core/parallel/parallel-runner.js +192 -0
- package/cli/dist/core/pom/base-page.d.ts +237 -0
- package/cli/dist/core/pom/base-page.js +354 -0
- package/cli/dist/core/pom/index.d.ts +22 -0
- package/cli/dist/core/pom/index.js +23 -0
- package/cli/dist/core/pom/loader.d.ts +118 -0
- package/cli/dist/core/pom/loader.js +382 -0
- package/cli/dist/core/pom/types.d.ts +112 -0
- package/cli/dist/core/pom/types.js +9 -0
- package/cli/dist/core/proof/bundle.d.ts +137 -0
- package/cli/dist/core/proof/bundle.js +160 -0
- package/cli/dist/core/proof/canonicalize.d.ts +47 -0
- package/cli/dist/core/proof/canonicalize.js +105 -0
- package/cli/dist/core/proof/index.d.ts +13 -0
- package/cli/dist/core/proof/index.js +18 -0
- package/cli/dist/core/proof/schema.d.ts +217 -0
- package/cli/dist/core/proof/schema.js +263 -0
- package/cli/dist/core/proof/signer.d.ts +111 -0
- package/cli/dist/core/proof/signer.js +226 -0
- package/cli/dist/core/proof/verifier.d.ts +97 -0
- package/cli/dist/core/proof/verifier.js +308 -0
- package/cli/dist/core/regression/detector.d.ts +107 -0
- package/cli/dist/core/regression/detector.js +497 -0
- package/cli/dist/core/regression/index.d.ts +9 -0
- package/cli/dist/core/regression/index.js +11 -0
- package/cli/dist/core/regression/trend-analyzer.d.ts +102 -0
- package/cli/dist/core/regression/trend-analyzer.js +345 -0
- package/cli/dist/core/regression/types.d.ts +222 -0
- package/cli/dist/core/regression/types.js +7 -0
- package/cli/dist/core/regression/vault.d.ts +87 -0
- package/cli/dist/core/regression/vault.js +289 -0
- package/cli/dist/core/repair/engine/fixer.d.ts +24 -0
- package/cli/dist/core/repair/engine/fixer.js +226 -0
- package/cli/dist/core/repair/engine/suggestion-engine.d.ts +18 -0
- package/cli/dist/core/repair/engine/suggestion-engine.js +187 -0
- package/cli/dist/core/repair/index.d.ts +10 -0
- package/cli/dist/core/repair/index.js +13 -0
- package/cli/dist/core/repair/repairer.d.ts +90 -0
- package/cli/dist/core/repair/repairer.js +284 -0
- package/cli/dist/core/repair/types.d.ts +91 -0
- package/cli/dist/core/repair/types.js +6 -0
- package/cli/dist/core/repair/utils/error-analyzer.d.ts +28 -0
- package/cli/dist/core/repair/utils/error-analyzer.js +264 -0
- package/cli/dist/core/reporting/html-reporter.d.ts +119 -0
- package/cli/dist/core/reporting/html-reporter.js +737 -0
- package/cli/dist/core/reporting/index.d.ts +6 -0
- package/cli/dist/core/reporting/index.js +6 -0
- package/cli/dist/core/retry/flakiness-integration.d.ts +60 -0
- package/cli/dist/core/retry/flakiness-integration.js +228 -0
- package/cli/dist/core/retry/index.d.ts +14 -0
- package/cli/dist/core/retry/index.js +16 -0
- package/cli/dist/core/retry/retry-engine.d.ts +80 -0
- package/cli/dist/core/retry/retry-engine.js +296 -0
- package/cli/dist/core/retry/types.d.ts +178 -0
- package/cli/dist/core/retry/types.js +52 -0
- package/cli/dist/core/retry/vault.d.ts +77 -0
- package/cli/dist/core/retry/vault.js +304 -0
- package/cli/dist/core/runner/e2e-helpers.d.ts +102 -0
- package/cli/dist/core/runner/e2e-helpers.js +153 -0
- package/cli/dist/core/runner/phase3-runner.d.ts +249 -0
- package/cli/dist/core/runner/phase3-runner.js +1312 -0
- package/cli/dist/core/schemas/pack.schema.json +236 -0
- package/cli/dist/core/secrets/crypto.d.ts +75 -0
- package/cli/dist/core/secrets/crypto.js +223 -0
- package/cli/dist/core/secrets/manager.d.ts +76 -0
- package/cli/dist/core/secrets/manager.js +219 -0
- package/cli/dist/core/security/redaction-patterns-extended.d.ts +27 -0
- package/cli/dist/core/security/redaction-patterns-extended.js +247 -0
- package/cli/dist/core/security/redactor.d.ts +71 -0
- package/cli/dist/core/security/redactor.js +279 -0
- package/cli/dist/core/self-healing/assertion-healer.d.ts +97 -0
- package/cli/dist/core/self-healing/assertion-healer.js +371 -0
- package/cli/dist/core/self-healing/engine.d.ts +122 -0
- package/cli/dist/core/self-healing/engine.js +538 -0
- package/cli/dist/core/self-healing/index.d.ts +10 -0
- package/cli/dist/core/self-healing/index.js +11 -0
- package/cli/dist/core/self-healing/selector-healer.d.ts +103 -0
- package/cli/dist/core/self-healing/selector-healer.js +372 -0
- package/cli/dist/core/self-healing/types.d.ts +152 -0
- package/cli/dist/core/self-healing/types.js +6 -0
- package/cli/dist/core/serve/diagnostics-collector.d.ts +32 -0
- package/cli/dist/core/serve/diagnostics-collector.js +149 -0
- package/cli/dist/core/serve/health-checker.d.ts +44 -0
- package/cli/dist/core/serve/health-checker.js +219 -0
- package/cli/dist/core/serve/index.d.ts +8 -0
- package/cli/dist/core/serve/index.js +8 -0
- package/cli/dist/core/serve/metrics-collector.d.ts +24 -0
- package/cli/dist/core/serve/metrics-collector.js +322 -0
- package/cli/dist/core/serve/process-manager.d.ts +36 -0
- package/cli/dist/core/serve/process-manager.js +213 -0
- package/cli/dist/core/serve/server.d.ts +36 -0
- package/cli/dist/core/serve/server.js +191 -0
- package/cli/dist/core/slo/config.d.ts +107 -0
- package/cli/dist/core/slo/config.js +360 -0
- package/cli/dist/core/slo/index.d.ts +11 -0
- package/cli/dist/core/slo/index.js +15 -0
- package/cli/dist/core/slo/sli-calculator.d.ts +92 -0
- package/cli/dist/core/slo/sli-calculator.js +364 -0
- package/cli/dist/core/slo/slo-tracker.d.ts +148 -0
- package/cli/dist/core/slo/slo-tracker.js +379 -0
- package/cli/dist/core/slo/types.d.ts +281 -0
- package/cli/dist/core/slo/types.js +7 -0
- package/cli/dist/core/slo/vault.d.ts +102 -0
- package/cli/dist/core/slo/vault.js +427 -0
- package/cli/dist/core/tui/index.d.ts +7 -0
- package/cli/dist/core/tui/index.js +6 -0
- package/cli/dist/core/tui/monitor.d.ts +92 -0
- package/cli/dist/core/tui/monitor.js +271 -0
- package/cli/dist/core/tui/renderer.d.ts +33 -0
- package/cli/dist/core/tui/renderer.js +218 -0
- package/cli/dist/core/tui/types.d.ts +63 -0
- package/cli/dist/core/tui/types.js +5 -0
- package/cli/dist/core/types/pack-v1.d.ts +251 -0
- package/cli/dist/core/types/pack-v1.js +5 -0
- package/cli/dist/core/types/pack-v2.d.ts +456 -0
- package/cli/dist/core/types/pack-v2.js +8 -0
- package/cli/dist/core/types/trust-score.d.ts +69 -0
- package/cli/dist/core/types/trust-score.js +191 -0
- package/cli/dist/core/vault/cas.d.ts +90 -0
- package/cli/dist/core/vault/cas.js +261 -0
- package/cli/dist/core/vault/index.d.ts +326 -0
- package/cli/dist/core/vault/index.js +1042 -0
- package/cli/dist/core/visual/index.d.ts +6 -0
- package/cli/dist/core/visual/index.js +6 -0
- package/cli/dist/core/visual/visual-regression.d.ts +113 -0
- package/cli/dist/core/visual/visual-regression.js +236 -0
- package/cli/dist/core/watch/index.d.ts +7 -0
- package/cli/dist/core/watch/index.js +6 -0
- package/cli/dist/core/watch/watch-mode.d.ts +213 -0
- package/cli/dist/core/watch/watch-mode.js +389 -0
- package/cli/dist/generators/index.d.ts +5 -0
- package/cli/dist/generators/index.js +5 -0
- package/cli/dist/generators/json-reporter.d.ts +10 -0
- package/cli/dist/generators/json-reporter.js +12 -0
- package/cli/dist/generators/test-generator.d.ts +18 -0
- package/cli/dist/generators/test-generator.js +78 -0
- package/cli/dist/index.d.ts +8 -0
- package/cli/dist/index.js +262 -0
- package/cli/dist/scanners/dom-scanner.d.ts +52 -0
- package/cli/dist/scanners/dom-scanner.js +296 -0
- package/cli/dist/scanners/index.d.ts +4 -0
- package/cli/dist/scanners/index.js +4 -0
- package/cli/dist/schemas/pack.schema.json +236 -0
- package/cli/dist/types/scan.d.ts +68 -0
- package/cli/dist/types/scan.js +4 -0
- package/cli/dist/utils/config.d.ts +35 -0
- package/cli/dist/utils/config.js +196 -0
- package/cli/package.json +1 -1
- package/package.json +25 -2
- package/.BETA_TESTING_FEEDBACK.md +0 -256
- package/.claude/settings.local.json +0 -154
- package/.editorconfig +0 -21
- package/.github/CODEOWNERS +0 -23
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -108
- package/.github/ISSUE_TEMPLATE/feedback_dx.yml +0 -121
- package/.github/dependabot.yml +0 -35
- package/.github/workflows/mcp-dx.yml +0 -106
- package/.github/workflows/release.yml +0 -26
- package/.github/workflows/test.yml +0 -93
- package/.nvmrc +0 -1
- package/.qa360/vault.db +0 -0
- package/.qa360/vault.db-shm +0 -0
- package/.qa360/vault.db-wal +0 -0
- package/.qa360-artifacts/.gitkeep +0 -0
- package/.qa360-artifacts/baselines/.gitkeep +0 -0
- package/.qa360-artifacts/cache/.gitkeep +0 -0
- package/.qa360-artifacts/reports/.gitkeep +0 -0
- package/.qa360-artifacts/screenshots/.gitkeep +0 -0
- package/.qa360-baselines/www_xyqo_ai.baseline.json +0 -33
- package/CODEOWNERS +0 -43
- package/NOVICE_USER_GUIDE.md +0 -272
- package/adapters/README.md +0 -46
- package/check-branches.sh +0 -32
- package/cli/.qa360/keys/ed25519.key +0 -1
- package/cli/.qa360/keys/ed25519.pub +0 -1
- package/cli/examples/README.md +0 -160
- package/cli/examples/accessibility.yml +0 -48
- package/cli/examples/api-basic.yml +0 -27
- package/cli/examples/complete.yml +0 -146
- package/cli/examples/crawler.yml +0 -38
- package/cli/examples/fullstack.yml +0 -78
- package/cli/examples/security.yml +0 -58
- package/cli/examples/ui-advanced.yml +0 -49
- package/cli/examples/ui-basic.yml +0 -24
- package/cli/scripts/bundle-for-npm.sh +0 -51
- package/cli/scripts/validate-package.js +0 -116
- package/cli/src/__tests__/commands/doctor.test.ts +0 -108
- package/cli/src/__tests__/index.test.ts +0 -15
- package/cli/src/cli-minimal.ts +0 -44
- package/cli/src/commands/__tests__/crawl.test.ts +0 -412
- package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +0 -156
- package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +0 -494
- package/cli/src/commands/__tests__/e2e.test.ts +0 -187
- package/cli/src/commands/__tests__/flakiness.test.ts +0 -528
- package/cli/src/commands/__tests__/generate.test.ts +0 -507
- package/cli/src/commands/__tests__/history.integration.test.ts +0 -358
- package/cli/src/commands/__tests__/history.test.ts +0 -433
- package/cli/src/commands/__tests__/monitor-realworld.test.ts +0 -199
- package/cli/src/commands/__tests__/monitor.test.ts +0 -81
- package/cli/src/commands/__tests__/ollama.test.ts +0 -529
- package/cli/src/commands/__tests__/repair.test.ts +0 -225
- package/cli/src/commands/__tests__/report.integration.test.ts +0 -167
- package/cli/src/commands/__tests__/report.test.ts +0 -294
- package/cli/src/commands/__tests__/report.vitest.ts +0 -288
- package/cli/src/commands/__tests__/retry.test.ts +0 -78
- package/cli/src/commands/__tests__/run.integration.test.ts +0 -240
- package/cli/src/commands/__tests__/run.test.ts +0 -346
- package/cli/src/commands/__tests__/run.vitest.ts +0 -301
- package/cli/src/commands/__tests__/secrets.test.ts +0 -114
- package/cli/src/commands/__tests__/serve.test.ts +0 -80
- package/cli/src/commands/__tests__/verify.test.ts +0 -103
- package/cli/src/commands/ai.ts +0 -702
- package/cli/src/commands/ask.ts +0 -678
- package/cli/src/commands/coverage.ts +0 -305
- package/cli/src/commands/crawl.ts +0 -155
- package/cli/src/commands/doctor.ts +0 -610
- package/cli/src/commands/examples.ts +0 -248
- package/cli/src/commands/explain.ts +0 -710
- package/cli/src/commands/flakiness.ts +0 -560
- package/cli/src/commands/generate.ts +0 -566
- package/cli/src/commands/history.ts +0 -914
- package/cli/src/commands/init.ts +0 -777
- package/cli/src/commands/monitor.ts +0 -270
- package/cli/src/commands/ollama.ts +0 -337
- package/cli/src/commands/pack.ts +0 -497
- package/cli/src/commands/regression.ts +0 -400
- package/cli/src/commands/repair.ts +0 -356
- package/cli/src/commands/report.ts +0 -463
- package/cli/src/commands/retry.ts +0 -380
- package/cli/src/commands/run.ts +0 -220
- package/cli/src/commands/scan.ts +0 -177
- package/cli/src/commands/secrets.ts +0 -340
- package/cli/src/commands/serve.ts +0 -194
- package/cli/src/commands/slo.ts +0 -387
- package/cli/src/commands/verify-temp-note.md +0 -11
- package/cli/src/commands/verify.ts +0 -322
- package/cli/src/generators/index.ts +0 -6
- package/cli/src/generators/json-reporter.ts +0 -15
- package/cli/src/generators/test-generator.ts +0 -90
- package/cli/src/index.ts +0 -289
- package/cli/src/scanners/dom-scanner.ts +0 -360
- package/cli/src/scanners/index.ts +0 -5
- package/cli/src/types/scan.ts +0 -84
- package/cli/src/utils/config.ts +0 -145
- package/cli/tsconfig.bundle.json +0 -12
- package/cli/tsconfig.json +0 -23
- package/cli/vitest.config.ts +0 -59
- package/core/src/__tests__/adapters-contract/adapters-contract.test.md +0 -156
- package/core/src/__tests__/index.test.ts +0 -31
- package/core/src/__tests__/integration/phase3.test.ts +0 -405
- package/core/src/__tests__/pack/validator.test.ts +0 -312
- package/core/src/__tests__/secrets/crypto.test.ts +0 -190
- package/core/src/__tests__/secrets/manager.test.ts +0 -316
- package/core/src/__tests__/security/redactor-phase3.test.ts +0 -233
- package/core/src/__tests__/serve/health-checker.test.ts +0 -155
- package/core/src/__tests__/serve/process-manager.test.ts +0 -213
- package/core/src/__tests__/serve/server.test.ts +0 -103
- package/core/src/__tests__/vault/cas.test.ts +0 -178
- package/core/src/__tests__/vault/vault.test.ts +0 -296
- package/core/src/adapters/__tests__/fixtures/jest-coverage.json +0 -8
- package/core/src/adapters/__tests__/fixtures/jest-results.json +0 -41
- package/core/src/adapters/__tests__/fixtures/pytest-junit.xml +0 -16
- package/core/src/adapters/__tests__/fixtures/vitest-coverage.json +0 -8
- package/core/src/adapters/__tests__/fixtures/vitest-results.json +0 -50
- package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +0 -452
- package/core/src/adapters/__tests__/jest-adapter.test.ts +0 -276
- package/core/src/adapters/__tests__/k6-perf.test.ts +0 -538
- package/core/src/adapters/__tests__/osv-deps.test.ts +0 -471
- package/core/src/adapters/__tests__/playwright-native-api.test.ts +0 -792
- package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +0 -431
- package/core/src/adapters/__tests__/playwright-ui.test.ts +0 -1073
- package/core/src/adapters/__tests__/pytest-adapter.test.ts +0 -207
- package/core/src/adapters/__tests__/semgrep-sast.test.ts +0 -436
- package/core/src/adapters/__tests__/vitest-adapter.test.ts +0 -208
- package/core/src/adapters/__tests__/zap-dast.test.ts +0 -453
- package/core/src/adapters/gitleaks-secrets.ts +0 -521
- package/core/src/adapters/jest-adapter.ts +0 -306
- package/core/src/adapters/k6-perf.ts +0 -479
- package/core/src/adapters/osv-deps.ts +0 -467
- package/core/src/adapters/playwright-native-adapter.ts +0 -472
- package/core/src/adapters/playwright-native-api.ts +0 -619
- package/core/src/adapters/playwright-ui.ts +0 -1088
- package/core/src/adapters/pytest-adapter.ts +0 -472
- package/core/src/adapters/semgrep-sast.ts +0 -410
- package/core/src/adapters/unit-test-types.ts +0 -106
- package/core/src/adapters/vitest-adapter.ts +0 -295
- package/core/src/adapters/zap-dast.ts +0 -551
- package/core/src/ai/__tests__/deepseek-provider.test.ts +0 -586
- package/core/src/ai/__tests__/ollama-provider.test.ts +0 -641
- package/core/src/ai/anthropic-provider.ts +0 -262
- package/core/src/ai/deepseek-provider.ts +0 -315
- package/core/src/ai/index.ts +0 -87
- package/core/src/ai/llm-client.ts +0 -52
- package/core/src/ai/mock-provider.ts +0 -146
- package/core/src/ai/ollama-provider.ts +0 -269
- package/core/src/ai/openai-provider.ts +0 -240
- package/core/src/ai/provider-factory.ts +0 -408
- package/core/src/artifacts/README.md +0 -78
- package/core/src/artifacts/index.ts +0 -16
- package/core/src/artifacts/ui-artifacts.ts +0 -412
- package/core/src/assertions/__tests__/engine.test.ts +0 -360
- package/core/src/assertions/engine.ts +0 -577
- package/core/src/assertions/index.ts +0 -13
- package/core/src/assertions/types.ts +0 -229
- package/core/src/auth/__tests__/api-key-provider.test.ts +0 -282
- package/core/src/auth/__tests__/auth-manager.test.ts +0 -430
- package/core/src/auth/__tests__/basic-auth-provider.test.ts +0 -364
- package/core/src/auth/__tests__/cloud-providers.test.ts +0 -751
- package/core/src/auth/__tests__/jwt-provider.test.ts +0 -400
- package/core/src/auth/__tests__/oauth2-provider.test.ts +0 -383
- package/core/src/auth/__tests__/totp-provider.test.ts +0 -294
- package/core/src/auth/__tests__/ui-login-provider.test.ts +0 -323
- package/core/src/auth/api-key-provider.ts +0 -75
- package/core/src/auth/aws-iam-provider.ts +0 -212
- package/core/src/auth/azure-ad-provider.ts +0 -126
- package/core/src/auth/basic-auth-provider.ts +0 -133
- package/core/src/auth/gcp-adc-provider.ts +0 -146
- package/core/src/auth/index.ts +0 -342
- package/core/src/auth/jwt-provider.ts +0 -193
- package/core/src/auth/manager.ts +0 -281
- package/core/src/auth/oauth2-provider.ts +0 -141
- package/core/src/auth/totp-provider.ts +0 -163
- package/core/src/auth/ui-login-provider.ts +0 -242
- package/core/src/cache/__tests__/lru-cache.test.ts +0 -564
- package/core/src/cache/index.ts +0 -13
- package/core/src/cache/lru-cache.ts +0 -536
- package/core/src/crawler/__tests__/journey-generator.test.ts +0 -344
- package/core/src/crawler/__tests__/selector-generator.test.ts +0 -211
- package/core/src/crawler/index.ts +0 -335
- package/core/src/crawler/journey-generator.ts +0 -471
- package/core/src/crawler/page-analyzer.ts +0 -857
- package/core/src/crawler/selector-generator.ts +0 -280
- package/core/src/crawler/types.ts +0 -475
- package/core/src/dashboard/__tests__/real-world.test.ts +0 -430
- package/core/src/dashboard/__tests__/server.test.ts +0 -283
- package/core/src/dashboard/__tests__/types.test.ts +0 -208
- package/core/src/dashboard/assets.ts +0 -692
- package/core/src/dashboard/index.ts +0 -17
- package/core/src/dashboard/server.ts +0 -401
- package/core/src/dashboard/types.ts +0 -78
- package/core/src/discoverer/__tests__/test-discoverer.test.ts +0 -444
- package/core/src/discoverer/index.ts +0 -374
- package/core/src/fixtures/__tests__/loader.test.ts +0 -246
- package/core/src/fixtures/__tests__/resolver.test.ts +0 -334
- package/core/src/fixtures/index.ts +0 -9
- package/core/src/fixtures/loader.ts +0 -200
- package/core/src/fixtures/resolver.ts +0 -221
- package/core/src/fixtures/types.ts +0 -86
- package/core/src/flakiness/__tests__/flakiness.test.ts +0 -554
- package/core/src/flakiness/index.ts +0 -536
- package/core/src/generation/__tests__/code-formatter.test.ts +0 -170
- package/core/src/generation/__tests__/code-generator-contract.test.ts +0 -207
- package/core/src/generation/__tests__/code-generator.test.ts +0 -586
- package/core/src/generation/__tests__/crawler-pack-generator.test.ts +0 -479
- package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +0 -718
- package/core/src/generation/__tests__/generation-integration.test.ts +0 -655
- package/core/src/generation/__tests__/pack-generator.test.ts +0 -408
- package/core/src/generation/__tests__/prompt-builder.test.ts +0 -200
- package/core/src/generation/__tests__/real-provider-integration.test.ts +0 -414
- package/core/src/generation/__tests__/source-analyzer.test.ts +0 -774
- package/core/src/generation/__tests__/test-optimizer.test.ts +0 -255
- package/core/src/generation/code-formatter.ts +0 -408
- package/core/src/generation/code-generator.ts +0 -470
- package/core/src/generation/crawler-pack-generator.ts +0 -289
- package/core/src/generation/generator.ts +0 -113
- package/core/src/generation/index.ts +0 -59
- package/core/src/generation/pack-generator.ts +0 -527
- package/core/src/generation/prompt-builder.ts +0 -772
- package/core/src/generation/source-analyzer.ts +0 -830
- package/core/src/generation/test-optimizer.ts +0 -474
- package/core/src/generation/types.ts +0 -217
- package/core/src/hooks/__tests__/compose.test.ts +0 -636
- package/core/src/hooks/__tests__/runner.test.ts +0 -478
- package/core/src/hooks/compose.ts +0 -268
- package/core/src/hooks/runner.ts +0 -364
- package/core/src/index.ts +0 -255
- package/core/src/pack/__tests__/migrator.test.ts +0 -594
- package/core/src/pack/__tests__/validator.test.ts +0 -759
- package/core/src/pack/migrator.ts +0 -353
- package/core/src/pack/validator.ts +0 -359
- package/core/src/pack-v2/__tests__/loader.test.ts +0 -533
- package/core/src/pack-v2/__tests__/migrator.test.ts +0 -455
- package/core/src/pack-v2/__tests__/validator.test.ts +0 -609
- package/core/src/pack-v2/index.ts +0 -41
- package/core/src/pack-v2/loader.ts +0 -358
- package/core/src/pack-v2/migrator.ts +0 -540
- package/core/src/pack-v2/validator.ts +0 -731
- package/core/src/parallel/README.md +0 -143
- package/core/src/parallel/index.ts +0 -16
- package/core/src/parallel/parallel-runner.ts +0 -282
- package/core/src/pom/__tests__/loader.test.ts +0 -378
- package/core/src/pom/base-page.ts +0 -425
- package/core/src/pom/index.ts +0 -45
- package/core/src/pom/loader.ts +0 -480
- package/core/src/pom/types.ts +0 -146
- package/core/src/proof/__tests__/proof-roundtrip.test.ts +0 -149
- package/core/src/proof/__tests__/schema-validation-manual.mjs +0 -211
- package/core/src/proof/__tests__/schema-validation.test.ts +0 -336
- package/core/src/proof/__tests__/signer.test.ts +0 -486
- package/core/src/proof/__tests__/temporal-regression.test.ts +0 -537
- package/core/src/proof/__tests__/verifier-advanced.test.ts +0 -588
- package/core/src/proof/__tests__/verifier.test.ts +0 -413
- package/core/src/proof/bundle.ts +0 -290
- package/core/src/proof/canonicalize.ts +0 -116
- package/core/src/proof/index.ts +0 -74
- package/core/src/proof/schema.ts +0 -285
- package/core/src/proof/signer.ts +0 -293
- package/core/src/proof/verifier.ts +0 -380
- package/core/src/regression/__tests__/detector.test.ts +0 -396
- package/core/src/regression/__tests__/trend-analyzer.test.ts +0 -300
- package/core/src/regression/detector.ts +0 -629
- package/core/src/regression/index.ts +0 -34
- package/core/src/regression/trend-analyzer.ts +0 -468
- package/core/src/regression/types.ts +0 -295
- package/core/src/regression/vault.ts +0 -419
- package/core/src/repair/__tests__/repairer.test.ts +0 -572
- package/core/src/repair/__tests__/types.test.ts +0 -302
- package/core/src/repair/engine/__tests__/fixer.test.ts +0 -482
- package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +0 -395
- package/core/src/repair/engine/fixer.ts +0 -271
- package/core/src/repair/engine/suggestion-engine.ts +0 -234
- package/core/src/repair/index.ts +0 -53
- package/core/src/repair/repairer.ts +0 -376
- package/core/src/repair/types.ts +0 -119
- package/core/src/repair/utils/__tests__/error-analyzer.test.ts +0 -454
- package/core/src/repair/utils/error-analyzer.ts +0 -308
- package/core/src/reporting/README.md +0 -144
- package/core/src/reporting/html-reporter.ts +0 -835
- package/core/src/reporting/index.ts +0 -16
- package/core/src/retry/README.md +0 -192
- package/core/src/retry/__tests__/flakiness-integration.test.ts +0 -475
- package/core/src/retry/__tests__/retry-engine.test.ts +0 -424
- package/core/src/retry/flakiness-integration.ts +0 -267
- package/core/src/retry/index.ts +0 -48
- package/core/src/retry/retry-engine.ts +0 -368
- package/core/src/retry/types.ts +0 -208
- package/core/src/retry/vault.ts +0 -413
- package/core/src/runner/__tests__/flakiness-integration.test.ts +0 -566
- package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +0 -218
- package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +0 -199
- package/core/src/runner/__tests__/phase3-runner.test.ts +0 -1118
- package/core/src/runner/e2e-helpers.ts +0 -216
- package/core/src/runner/phase3-runner.ts +0 -1536
- package/core/src/schemas/gherkin-report.json +0 -122
- package/core/src/secrets/__tests__/crypto.test.ts +0 -180
- package/core/src/secrets/crypto.ts +0 -289
- package/core/src/secrets/manager.ts +0 -272
- package/core/src/security/__tests__/hardening.test.ts +0 -480
- package/core/src/security/redaction-patterns-extended.ts +0 -278
- package/core/src/security/redactor.ts +0 -326
- package/core/src/self-healing/assertion-healer.ts +0 -485
- package/core/src/self-healing/engine.ts +0 -626
- package/core/src/self-healing/index.ts +0 -33
- package/core/src/self-healing/selector-healer.ts +0 -488
- package/core/src/self-healing/types.ts +0 -193
- package/core/src/serve/diagnostics-collector.ts +0 -201
- package/core/src/serve/health-checker.ts +0 -274
- package/core/src/serve/index.ts +0 -9
- package/core/src/serve/metrics-collector.ts +0 -386
- package/core/src/serve/process-manager.ts +0 -265
- package/core/src/serve/server.ts +0 -230
- package/core/src/slo/config.ts +0 -408
- package/core/src/slo/index.ts +0 -68
- package/core/src/slo/sli-calculator.ts +0 -474
- package/core/src/slo/slo-tracker.ts +0 -481
- package/core/src/slo/types.ts +0 -408
- package/core/src/slo/vault.ts +0 -600
- package/core/src/tui/__tests__/monitor.test.ts +0 -336
- package/core/src/tui/__tests__/real-world.test.ts +0 -376
- package/core/src/tui/__tests__/renderer.test.ts +0 -201
- package/core/src/tui/__tests__/types.test.ts +0 -295
- package/core/src/tui/index.ts +0 -19
- package/core/src/tui/monitor.ts +0 -331
- package/core/src/tui/renderer.ts +0 -269
- package/core/src/tui/types.ts +0 -68
- package/core/src/types/pack-v1.ts +0 -305
- package/core/src/types/pack-v2.ts +0 -525
- package/core/src/types/trust-score.ts +0 -258
- package/core/src/vault/__tests__/flakiness-vault.test.ts +0 -562
- package/core/src/vault/__tests__/vault.test.ts +0 -259
- package/core/src/vault/cas.ts +0 -323
- package/core/src/vault/index.ts +0 -1361
- package/core/src/vault/schema.sql +0 -168
- package/core/src/visual/README.md +0 -185
- package/core/src/visual/index.ts +0 -14
- package/core/src/visual/visual-regression.ts +0 -347
- package/core/src/watch/__tests__/watch-mode.test.ts +0 -192
- package/core/src/watch/index.ts +0 -14
- package/core/src/watch/watch-mode.ts +0 -565
- package/core/tsconfig.json +0 -12
- package/core/vitest.config.ts +0 -52
- package/docs/ARCHITECTURE.md +0 -901
- package/docs/AUDIT-GLOBAL-DEC2025.md +0 -271
- package/docs/BETA_TESTING.md +0 -257
- package/docs/BETA_TESTING_PLAN.md +0 -727
- package/docs/CERTIFICATION-REPORT.md +0 -142
- package/docs/COMPLETE_AUDIT_REFACTORING.md +0 -965
- package/docs/DEVELOPMENT.md +0 -545
- package/docs/DEVELOPMENT_HISTORY.md +0 -345
- package/docs/LIMITATIONS.md +0 -176
- package/docs/MIGRATION.md +0 -303
- package/docs/OPTION_3_4_EXPLORATION.md +0 -1257
- package/docs/PHASE1_PERFORMANCE.md +0 -144
- package/docs/QA360_Cloud.postman_collection.json +0 -89
- package/docs/QA360_TESTING_PHILOSOPHY.md +0 -769
- package/docs/QA_TEST_PLAN.md +0 -727
- package/docs/README.md +0 -50
- package/docs/STATUS.md +0 -198
- package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +0 -615
- package/docs/USER_GUIDE.md +0 -687
- package/docs/WORK-DONE-ADAPTER-TESTS.md +0 -136
- package/docs/adapters-security.md +0 -485
- package/docs/architecture-diagram.mmd +0 -168
- package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +0 -396
- package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +0 -324
- package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +0 -644
- package/docs/archive/ARCH-01_NEXT_STEPS.md +0 -60
- package/docs/archive/BRANCH_PROTECTION.md +0 -183
- package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +0 -222
- package/docs/archive/HANDOFF_TEST-01.md +0 -669
- package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +0 -372
- package/docs/archive/NODE_UPGRADE_GUIDE.md +0 -188
- package/docs/archive/PHASE1_COMPLETION.md +0 -386
- package/docs/archive/PHASE2_COMPLETION.md +0 -404
- package/docs/archive/PHASE3_AND_4_FINAL.md +0 -360
- package/docs/archive/PHASE3_COMPLETE.md +0 -301
- package/docs/archive/PHASE3_STATUS.md +0 -255
- package/docs/archive/PRE-WEEK2-AUDIT.md +0 -364
- package/docs/archive/README.md +0 -16
- package/docs/archive/SCHEMA_AJV_2020_FIX.md +0 -245
- package/docs/archive/TEST-01_AUDIT_REPORT.md +0 -240
- package/docs/archive/TEST-01_COVERAGE_PLAN.md +0 -423
- package/docs/archive/obsolete-proposals/dom-element-discovery-mode.md +0 -250
- package/docs/archive/obsolete-proposals/qa360-comprehensive-test-plan.md +0 -1249
- package/docs/archive/obsolete-proposals/qa360-quick-start-guide.md +0 -298
- package/docs/archive/obsolete-proposals/technical-plan-dom-discovery.md +0 -870
- package/docs/budgets-advanced.md +0 -308
- package/docs/examples/history-export-gc.md +0 -285
- package/docs/examples/pack-v2-complete.yaml +0 -158
- package/docs/examples/pack-v2-quickstart.yaml +0 -24
- package/docs/examples/pack-v2-ui-login.yaml +0 -81
- package/docs/examples/qa360-report.json +0 -50
- package/docs/history.md +0 -565
- package/docs/hooks.md +0 -304
- package/docs/llm-providers.md +0 -512
- package/docs/mcp-server.md +0 -651
- package/docs/mcp-tools.md +0 -1131
- package/docs/pack-v1.md +0 -383
- package/docs/pack-v2.md +0 -558
- package/docs/page-objects.md +0 -366
- package/docs/proofs.md +0 -670
- package/docs/quickstart-5min.md +0 -257
- package/docs/readiness-ci.md +0 -654
- package/docs/rfc/README.md +0 -20
- package/docs/rfc/proof-bundle-v1.md +0 -787
- package/docs/secrets.md +0 -392
- package/docs/serve.md +0 -494
- package/docs/unit-test-adapters.md +0 -168
- package/docs/vault.md +0 -491
- package/e2e/qa360-e2e.test.ts +0 -696
- package/e2e/vitest.config.ts +0 -18
- package/examples/README.md +0 -50
- package/examples/ci/docker-compose-serve.yml +0 -375
- package/examples/ci/github-actions-serve.yml +0 -345
- package/examples/ci/gitlab-ci-serve.yml +0 -407
- package/examples/datasets/README.md +0 -101
- package/examples/datasets/b2bshop.ts +0 -155
- package/examples/datasets/index.ts +0 -57
- package/examples/datasets/reqres.ts +0 -195
- package/examples/fixtures-demo/fixtures/users.yml +0 -39
- package/examples/fixtures-demo/pack.yml +0 -71
- package/examples/future-api/README.md +0 -16
- package/examples/future-api/diag.js +0 -7
- package/examples/future-api/health.js +0 -4
- package/examples/future-api/packs.js +0 -13
- package/examples/future-api/runpack.js +0 -10
- package/examples/generation/README.md +0 -148
- package/examples/generation/pack-generator-example.js +0 -115
- package/examples/generation/source-analyzer-example.js +0 -115
- package/examples/httpbin/pack.yml +0 -59
- package/examples/load-testing/mcp-load.yml +0 -115
- package/examples/load-testing/mcp-stdio.yml +0 -95
- package/examples/mcp/claude-desktop-config.json +0 -33
- package/examples/mcp/claude-desktop.json +0 -16
- package/examples/mcp/conversation-sample.md +0 -131
- package/examples/mcp/demo-60s.md +0 -330
- package/examples/mcp/sample-conversation.jsonl +0 -21
- package/examples/mcp/vscode-settings.json +0 -22
- package/examples/pack-v2-complete.yml +0 -242
- package/examples/pack-v2-examples.md +0 -244
- package/examples/pack-v2-quickstart.yml +0 -55
- package/examples/packs-business/ecommerce-api.yml +0 -121
- package/examples/packs-business/saas-dashboard-ui.yml +0 -133
- package/examples/packs-conformance/compose-multi.yml +0 -174
- package/examples/packs-conformance/full.yml +0 -152
- package/examples/packs-conformance/heavy-artifacts.yml +0 -152
- package/examples/packs-conformance/minimal.yml +0 -71
- package/examples/packs-conformance/secrets-missing.yml +0 -97
- package/examples/packs-conformance/timeouts.yml +0 -77
- package/examples/pom-demo/README.md +0 -104
- package/examples/pom-demo/pack.yml +0 -60
- package/examples/pom-demo/pages/DashboardPage.page.ts +0 -73
- package/examples/pom-demo/pages/LoginPage.page.ts +0 -76
- package/examples/proofs/e2e-playwright-proof.json +0 -75
- package/examples/proofs/httpbin-proof.json +0 -69
- package/examples/proofs/multi-adapter-proof.json +0 -117
- package/examples/proofs/test-proof.json +0 -26
- package/examples/restful-api-dev/README.md +0 -102
- package/examples/restful-api-dev/restful-api-advanced.yml +0 -29
- package/examples/restful-api-dev/restful-api-basic.yml +0 -29
- package/examples/web-lite/.github/workflows/qa360-phase3.yml +0 -73
- package/examples/web-lite/api-mock/server.js +0 -258
- package/examples/web-lite/pack.yml +0 -71
- package/examples/web-lite/services.yml +0 -43
- package/examples/web-lite/web-content/healthz +0 -1
- package/examples/web-lite/web-content/index.html +0 -259
- package/packages/mcp/CHANGELOG.md +0 -109
- package/packages/mcp/IMPLEMENTATION_SUMMARY.md +0 -350
- package/packages/mcp/LICENSE +0 -21
- package/packages/mcp/QUICK_START.md +0 -291
- package/packages/mcp/README.md +0 -294
- package/packages/mcp/TELEMETRY.md +0 -220
- package/packages/mcp/package.json +0 -91
- package/packages/mcp/scripts/generate-sbom-fallback.cjs +0 -84
- package/packages/mcp/scripts/safe-postinstall.cjs +0 -32
- package/packages/mcp/src/__tests__/contract.test.ts +0 -902
- package/packages/mcp/src/cli/cli.ts +0 -137
- package/packages/mcp/src/cli/doctor.ts +0 -286
- package/packages/mcp/src/cli/fix.ts +0 -99
- package/packages/mcp/src/cli/init.ts +0 -233
- package/packages/mcp/src/cli/postinstall.ts +0 -14
- package/packages/mcp/src/cli/reset.ts +0 -44
- package/packages/mcp/src/cli/telemetry.ts +0 -166
- package/packages/mcp/src/cli/test-dx.ts +0 -94
- package/packages/mcp/src/cli/uninstall.ts +0 -80
- package/packages/mcp/src/cli/up.ts +0 -178
- package/packages/mcp/src/index.ts +0 -12
- package/packages/mcp/src/scripts/e2e-local.ts +0 -337
- package/packages/mcp/src/scripts/verify-settings.ts +0 -242
- package/packages/mcp/src/security/audit.ts +0 -244
- package/packages/mcp/src/security/manager.ts +0 -242
- package/packages/mcp/src/server/full-server.ts +0 -212
- package/packages/mcp/src/server/minimal-server.ts +0 -134
- package/packages/mcp/src/tools/history.ts +0 -388
- package/packages/mcp/src/tools/pack.ts +0 -449
- package/packages/mcp/src/tools/registry.ts +0 -638
- package/packages/mcp/src/tools/report.ts +0 -100
- package/packages/mcp/src/tools/run.ts +0 -268
- package/packages/mcp/src/tools/secrets.ts +0 -198
- package/packages/mcp/src/tools/serve.ts +0 -221
- package/packages/mcp/src/tools/triage.ts +0 -532
- package/packages/mcp/src/tools/types.ts +0 -26
- package/packages/mcp/src/tools/vault.ts +0 -164
- package/packages/mcp/src/tools/verify.ts +0 -166
- package/packages/mcp/src/types/index.ts +0 -311
- package/packages/mcp/src/types/mcp-stubs.ts +0 -83
- package/packages/mcp/tsconfig.json +0 -16
- package/playwright.config.ts +0 -20
- package/pnpm-workspace.yaml +0 -4
- package/run-test-and-push.sh +0 -20
- package/scripts/build-proof-cli.sh +0 -110
- package/scripts/ci/check-windows-paths.js +0 -92
- package/scripts/ci/invariants.sh +0 -124
- package/scripts/ci/make-final-bundle.js +0 -106
- package/scripts/ci/mcp-run-multipack.js +0 -305
- package/scripts/ci/run-pack-suite.sh +0 -103
- package/scripts/ci/run-phase7-final.sh +0 -190
- package/scripts/ci/slo-assert.js +0 -158
- package/scripts/ci/test-fault-tolerance.sh +0 -301
- package/scripts/install-mcp.sh +0 -66
- package/scripts/mcp-smoke.mjs +0 -27
- package/scripts/smoke.sh +0 -26
- package/scripts/stress-test.js +0 -288
- package/scripts/sync-version.mjs +0 -50
- package/scripts/validate-examples.mjs +0 -404
- package/scripts/validation/simple-pack-check.sh +0 -51
- package/scripts/validation/validate-universal-pack.mjs +0 -77
- package/scripts/verify-persistence.js +0 -127
- package/test-pack.yaml +0 -43
- package/test-results/.last-run.json +0 -4
- package/test-runner.mjs +0 -87
- package/tests/artifacts.spec.js +0 -147
- package/tests/contracts.spec.js +0 -239
- package/tests/e2e/assertions.test.mjs +0 -370
- package/tests/e2e/crawler.test.mjs +0 -451
- package/tests/e2e/playwright-plus-plus.test.mjs +0 -604
- package/tests/e2e/proof-bundle.test.mjs +0 -258
- package/tests/e2e/real-world/saucedemo.test.mjs +0 -714
- package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +0 -760
- package/tests/e2e/ui-actions.test.mjs +0 -546
- package/tests/gherkin.e2e.spec.ts +0 -310
- package/tests/no-console-errors.spec.js +0 -136
- package/tests/pdf.spec.ts +0 -252
- package/tests/run-pack.spec.ts +0 -58
- package/tsconfig.base.json +0 -15
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -37
- package/tsconfig.test.json +0 -18
- package/typedoc.json +0 -37
- package/ui/README.md +0 -50
- package/verify-proof.mjs +0 -60
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA360 Data Fixtures Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves fixture references in configuration objects.
|
|
5
|
+
*
|
|
6
|
+
* Syntax:
|
|
7
|
+
* - $fixtures.fixtureName.key.subkey
|
|
8
|
+
* - Nested in objects: { url: "/login", email: "$fixtures.users.buyer.email" }
|
|
9
|
+
* - In arrays: ["$fixtures.users.buyer.email", "$fixtures.users.admin.email"]
|
|
10
|
+
*/
|
|
11
|
+
import { FixtureError, } from './types.js';
|
|
12
|
+
import { FixtureLoader } from './loader.js';
|
|
13
|
+
/**
|
|
14
|
+
* Fixture reference pattern: $fixtures.path.to.value
|
|
15
|
+
*/
|
|
16
|
+
const FIXTURE_REF_PATTERN = /^\$fixtures\.([\w.]+)$/;
|
|
17
|
+
/**
|
|
18
|
+
* Variable substitution pattern for strings containing fixtures:
|
|
19
|
+
* Matches the longest possible fixture path (greedy)
|
|
20
|
+
* "https://example.com?user=$fixtures.users.buyer.id"
|
|
21
|
+
*/
|
|
22
|
+
const INTERPOLATION_PATTERN = /\$fixtures\.([\w.]+)/g;
|
|
23
|
+
export class FixtureResolver {
|
|
24
|
+
loader;
|
|
25
|
+
baseDir;
|
|
26
|
+
unresolved = [];
|
|
27
|
+
constructor(loader, baseDir) {
|
|
28
|
+
this.loader = loader;
|
|
29
|
+
this.baseDir = baseDir;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve fixture references in a configuration object
|
|
33
|
+
*
|
|
34
|
+
* @param config - The configuration object to resolve
|
|
35
|
+
* @param options - Resolver options
|
|
36
|
+
* @returns The resolved configuration
|
|
37
|
+
*/
|
|
38
|
+
resolve(config, options) {
|
|
39
|
+
this.unresolved = [];
|
|
40
|
+
const hasFixtures = this.hasFixtureReferences(config);
|
|
41
|
+
if (!hasFixtures) {
|
|
42
|
+
return { value: config, hasFixtures: false };
|
|
43
|
+
}
|
|
44
|
+
const resolved = this.resolveValue(config, options);
|
|
45
|
+
return {
|
|
46
|
+
value: resolved,
|
|
47
|
+
hasFixtures: true,
|
|
48
|
+
unresolved: this.unresolved.length > 0 ? this.unresolved : undefined,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if a value contains any fixture references
|
|
53
|
+
*
|
|
54
|
+
* @param value - The value to check
|
|
55
|
+
* @returns True if fixture references are found
|
|
56
|
+
*/
|
|
57
|
+
hasFixtureReferences(value) {
|
|
58
|
+
if (typeof value === 'string') {
|
|
59
|
+
return FIXTURE_REF_PATTERN.test(value) || INTERPOLATION_PATTERN.test(value);
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(value)) {
|
|
62
|
+
return value.some(v => this.hasFixtureReferences(v));
|
|
63
|
+
}
|
|
64
|
+
if (value && typeof value === 'object') {
|
|
65
|
+
return Object.values(value).some(v => this.hasFixtureReferences(v));
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve fixture references in a value
|
|
71
|
+
*
|
|
72
|
+
* @param value - The value to resolve
|
|
73
|
+
* @param options - Resolver options
|
|
74
|
+
* @returns The resolved value
|
|
75
|
+
*/
|
|
76
|
+
resolveValue(value, options) {
|
|
77
|
+
// String with direct fixture reference
|
|
78
|
+
if (typeof value === 'string') {
|
|
79
|
+
const directMatch = value.match(FIXTURE_REF_PATTERN);
|
|
80
|
+
if (directMatch) {
|
|
81
|
+
return this.resolveFixturePath(directMatch[1], options);
|
|
82
|
+
}
|
|
83
|
+
// String with interpolation (e.g., "user=$fixtures.users.buyer.id")
|
|
84
|
+
// Check if the string contains $fixtures pattern
|
|
85
|
+
if (value.includes('$fixtures')) {
|
|
86
|
+
return value.replace(INTERPOLATION_PATTERN, (_, path) => {
|
|
87
|
+
const resolved = this.resolveFixturePath(path, options);
|
|
88
|
+
return String(resolved);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
// Array - resolve each element
|
|
94
|
+
if (Array.isArray(value)) {
|
|
95
|
+
return value.map(item => this.resolveValue(item, options));
|
|
96
|
+
}
|
|
97
|
+
// Object - resolve each value
|
|
98
|
+
if (value && typeof value === 'object') {
|
|
99
|
+
const resolved = {};
|
|
100
|
+
for (const [key, val] of Object.entries(value)) {
|
|
101
|
+
resolved[key] = this.resolveValue(val, options);
|
|
102
|
+
}
|
|
103
|
+
return resolved;
|
|
104
|
+
}
|
|
105
|
+
// Primitive value - return as is
|
|
106
|
+
return value;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Resolve a fixture path (e.g., "testUsers.buyer.email")
|
|
110
|
+
*
|
|
111
|
+
* @param path - The fixture path
|
|
112
|
+
* @param options - Resolver options
|
|
113
|
+
* @returns The resolved fixture value
|
|
114
|
+
*/
|
|
115
|
+
resolveFixturePath(path, options) {
|
|
116
|
+
try {
|
|
117
|
+
return this.loader.get(path);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
if (options.keepUnresolved) {
|
|
121
|
+
this.unresolved.push(path);
|
|
122
|
+
return '$fixtures.' + path;
|
|
123
|
+
}
|
|
124
|
+
throw new FixtureError('Failed to resolve fixture reference: $fixtures.' + path, 'FIXTURE_RESOLUTION_ERROR');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Parse a fixture reference string
|
|
129
|
+
*
|
|
130
|
+
* @param ref - The reference string (e.g., "$fixtures.testUsers.buyer")
|
|
131
|
+
* @returns The parsed reference
|
|
132
|
+
*/
|
|
133
|
+
parseReference(ref) {
|
|
134
|
+
const match = ref.match(FIXTURE_REF_PATTERN);
|
|
135
|
+
if (!match) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const path = match[1].split('.');
|
|
139
|
+
const fixtureFile = path[0];
|
|
140
|
+
const valuePath = path.slice(1);
|
|
141
|
+
return {
|
|
142
|
+
fixtureFile,
|
|
143
|
+
valuePath,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Create a fixture reference string
|
|
148
|
+
*
|
|
149
|
+
* @param fixtureFile - The fixture file name
|
|
150
|
+
* @param valuePath - The path within the fixture
|
|
151
|
+
* @returns The fixture reference string
|
|
152
|
+
*/
|
|
153
|
+
createReference(fixtureFile, ...valuePath) {
|
|
154
|
+
if (valuePath.length === 0) {
|
|
155
|
+
return '$fixtures.' + fixtureFile;
|
|
156
|
+
}
|
|
157
|
+
return '$fixtures.' + fixtureFile + '.' + valuePath.join('.');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the list of unresolved references from the last resolve() call
|
|
161
|
+
*
|
|
162
|
+
* @returns Array of unresolved paths
|
|
163
|
+
*/
|
|
164
|
+
getUnresolved() {
|
|
165
|
+
return [...this.unresolved];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Resolve fixtures in a configuration object (convenience function)
|
|
170
|
+
*
|
|
171
|
+
* @param config - The configuration object
|
|
172
|
+
* @param fixturePaths - Array of fixture file paths
|
|
173
|
+
* @param baseDir - Base directory for resolving relative paths
|
|
174
|
+
* @returns The resolved configuration
|
|
175
|
+
*/
|
|
176
|
+
export async function resolveFixtures(config, fixturePaths, baseDir) {
|
|
177
|
+
const loader = new FixtureLoader(baseDir);
|
|
178
|
+
await loader.load(fixturePaths);
|
|
179
|
+
const resolver = new FixtureResolver(loader, baseDir);
|
|
180
|
+
return resolver.resolve(config, { baseDir, keepUnresolved: false });
|
|
181
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA360 Data Fixtures System
|
|
3
|
+
*
|
|
4
|
+
* Provides separation of test data from test logic (Playwright/NFLS best practice).
|
|
5
|
+
*
|
|
6
|
+
* Syntax:
|
|
7
|
+
* ```yaml
|
|
8
|
+
* fixtures:
|
|
9
|
+
* - ./fixtures/users.yml
|
|
10
|
+
*
|
|
11
|
+
* gates:
|
|
12
|
+
* login-test:
|
|
13
|
+
* adapter: playwright-ui
|
|
14
|
+
* config:
|
|
15
|
+
* data: $fixtures.testUsers.buyer
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Fixture data structure (any JSON-serializable value)
|
|
20
|
+
*/
|
|
21
|
+
export type FixtureValue = string | number | boolean | null | undefined | FixtureValue[] | {
|
|
22
|
+
[key: string]: FixtureValue;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Fixture file containing named fixture sets
|
|
26
|
+
*/
|
|
27
|
+
export interface FixtureFile {
|
|
28
|
+
[name: string]: FixtureValue;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Loaded fixtures registry
|
|
32
|
+
*/
|
|
33
|
+
export type FixtureRegistry = Record<string, FixtureFile>;
|
|
34
|
+
/**
|
|
35
|
+
* Variable reference in the form: $fixtures.path.to.value
|
|
36
|
+
*/
|
|
37
|
+
export interface FixtureReference {
|
|
38
|
+
type: 'fixture';
|
|
39
|
+
path: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parsed fixture reference
|
|
43
|
+
*/
|
|
44
|
+
export interface ParsedReference {
|
|
45
|
+
fixtureFile: string;
|
|
46
|
+
valuePath: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fixture resolver options
|
|
50
|
+
*/
|
|
51
|
+
export interface FixtureResolverOptions {
|
|
52
|
+
/** Base directory for resolving relative fixture paths */
|
|
53
|
+
baseDir: string;
|
|
54
|
+
/** Whether to keep unresolved references (default: false) */
|
|
55
|
+
keepUnresolved?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Fixture resolver result
|
|
59
|
+
*/
|
|
60
|
+
export interface FixtureResolverResult {
|
|
61
|
+
/** The resolved value */
|
|
62
|
+
value: unknown;
|
|
63
|
+
/** Whether any fixture references were found */
|
|
64
|
+
hasFixtures: boolean;
|
|
65
|
+
/** Any unresolved references (if keepUnresolved=true) */
|
|
66
|
+
unresolved?: string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Fixture loader error
|
|
70
|
+
*/
|
|
71
|
+
export declare class FixtureError extends Error {
|
|
72
|
+
code: string;
|
|
73
|
+
filePath?: string | undefined;
|
|
74
|
+
constructor(message: string, code: string, filePath?: string | undefined);
|
|
75
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA360 Data Fixtures System
|
|
3
|
+
*
|
|
4
|
+
* Provides separation of test data from test logic (Playwright/NFLS best practice).
|
|
5
|
+
*
|
|
6
|
+
* Syntax:
|
|
7
|
+
* ```yaml
|
|
8
|
+
* fixtures:
|
|
9
|
+
* - ./fixtures/users.yml
|
|
10
|
+
*
|
|
11
|
+
* gates:
|
|
12
|
+
* login-test:
|
|
13
|
+
* adapter: playwright-ui
|
|
14
|
+
* config:
|
|
15
|
+
* data: $fixtures.testUsers.buyer
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Fixture loader error
|
|
20
|
+
*/
|
|
21
|
+
export class FixtureError extends Error {
|
|
22
|
+
code;
|
|
23
|
+
filePath;
|
|
24
|
+
constructor(message, code, filePath) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.code = code;
|
|
27
|
+
this.filePath = filePath;
|
|
28
|
+
this.name = 'FixtureError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA360 Flakiness Detection Engine
|
|
3
|
+
*
|
|
4
|
+
* Detects and scores test flakiness using consecutive runs and pattern analysis.
|
|
5
|
+
* This is the core differentiator of QA360 - measuring test reliability.
|
|
6
|
+
*
|
|
7
|
+
* Scoring Categories:
|
|
8
|
+
* - Legendary (100): Never flaky - 100% reliable
|
|
9
|
+
* - Solid (90-99): Rarely flaky
|
|
10
|
+
* - Good (75-89): Occasionally flaky
|
|
11
|
+
* - Shaky (50-74): Often flaky - attention needed
|
|
12
|
+
* - Unstable (0-49): Very flaky - quarantine recommended
|
|
13
|
+
*
|
|
14
|
+
* @module flakiness
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Flakiness score category
|
|
18
|
+
*/
|
|
19
|
+
export declare enum FlakinessCategory {
|
|
20
|
+
LEGENDARY = "legendary",// 100
|
|
21
|
+
SOLID = "solid",// 90-99
|
|
22
|
+
GOOD = "good",// 75-89
|
|
23
|
+
SHAKY = "shaky",// 50-74
|
|
24
|
+
UNSTABLE = "unstable"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Flakiness category metadata
|
|
28
|
+
*/
|
|
29
|
+
export declare const FLAKINESS_CATEGORIES: Record<FlakinessCategory, {
|
|
30
|
+
min: number;
|
|
31
|
+
max: number;
|
|
32
|
+
label: string;
|
|
33
|
+
emoji: string;
|
|
34
|
+
color: string;
|
|
35
|
+
description: string;
|
|
36
|
+
action: string;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Test result from a single run
|
|
40
|
+
*/
|
|
41
|
+
export interface TestResult {
|
|
42
|
+
/** Test identifier (unique per test) */
|
|
43
|
+
testId: string;
|
|
44
|
+
/** Test name/title */
|
|
45
|
+
testName: string;
|
|
46
|
+
/** File path */
|
|
47
|
+
filePath: string;
|
|
48
|
+
/** Gate name */
|
|
49
|
+
gate: string;
|
|
50
|
+
/** Whether the test passed */
|
|
51
|
+
success: boolean;
|
|
52
|
+
/** Duration in milliseconds */
|
|
53
|
+
durationMs: number;
|
|
54
|
+
/** Error type if failed */
|
|
55
|
+
errorType?: string;
|
|
56
|
+
/** Error message if failed */
|
|
57
|
+
errorMessage?: string;
|
|
58
|
+
/** Timestamp of run */
|
|
59
|
+
timestamp: number;
|
|
60
|
+
/** Environment (local, ci, staging) */
|
|
61
|
+
environment: string;
|
|
62
|
+
/** Git branch */
|
|
63
|
+
branch?: string;
|
|
64
|
+
/** Commit hash */
|
|
65
|
+
commitHash?: string;
|
|
66
|
+
/** CI run ID */
|
|
67
|
+
ciRunId?: string;
|
|
68
|
+
/** Tags (team, repo, etc.) */
|
|
69
|
+
tags?: Record<string, string>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Flakiness detection result for a single test
|
|
73
|
+
*/
|
|
74
|
+
export interface FlakinessResult {
|
|
75
|
+
/** Test identifier */
|
|
76
|
+
testId: string;
|
|
77
|
+
/** Test name */
|
|
78
|
+
testName: string;
|
|
79
|
+
/** File path */
|
|
80
|
+
filePath: string;
|
|
81
|
+
/** Gate name */
|
|
82
|
+
gate: string;
|
|
83
|
+
/** Flakiness score (0-100) */
|
|
84
|
+
score: number;
|
|
85
|
+
/** Flakiness category */
|
|
86
|
+
category: FlakinessCategory;
|
|
87
|
+
/** Total number of runs analyzed */
|
|
88
|
+
totalRuns: number;
|
|
89
|
+
/** Number of successful runs */
|
|
90
|
+
successfulRuns: number;
|
|
91
|
+
/** Average duration in ms */
|
|
92
|
+
avgDurationMs: number;
|
|
93
|
+
/** Detected pattern type (if any) */
|
|
94
|
+
patternType?: string;
|
|
95
|
+
/** Suggested fix */
|
|
96
|
+
suggestedFix?: string;
|
|
97
|
+
/** Confidence in pattern detection (0-1) */
|
|
98
|
+
confidence?: number;
|
|
99
|
+
/** First seen timestamp */
|
|
100
|
+
firstSeen?: number;
|
|
101
|
+
/** Last seen timestamp */
|
|
102
|
+
lastSeen?: number;
|
|
103
|
+
/** Current streak (consecutive passes or failures) */
|
|
104
|
+
currentStreak?: number;
|
|
105
|
+
/** Streak type */
|
|
106
|
+
streakType?: 'pass' | 'fail';
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Flakiness detection options
|
|
110
|
+
*/
|
|
111
|
+
export interface FlakinessDetectionOptions {
|
|
112
|
+
/** Minimum runs before calculating score */
|
|
113
|
+
minRuns?: number;
|
|
114
|
+
/** Number of consecutive runs for detection */
|
|
115
|
+
consecutiveRuns?: number;
|
|
116
|
+
/** Time window in days (only consider runs within this window) */
|
|
117
|
+
timeWindowDays?: number;
|
|
118
|
+
/** Enable pattern detection */
|
|
119
|
+
enablePatternDetection?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Default flakiness detection options
|
|
123
|
+
*/
|
|
124
|
+
export declare const DEFAULT_FLAKINESS_OPTIONS: Required<FlakinessDetectionOptions>;
|
|
125
|
+
/**
|
|
126
|
+
* Flakiness pattern types
|
|
127
|
+
*/
|
|
128
|
+
export declare enum FlakinessPattern {
|
|
129
|
+
TIMING = "timing",
|
|
130
|
+
RACE_CONDITION = "race_condition",
|
|
131
|
+
EXTERNAL_DEPENDENCY = "external_dependency",
|
|
132
|
+
ENVIRONMENT_SPECIFIC = "environment_specific",
|
|
133
|
+
SELECTOR_ISSUE = "selector_issue",
|
|
134
|
+
UNKNOWN = "unknown"
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Pattern detection result
|
|
138
|
+
*/
|
|
139
|
+
export interface PatternDetection {
|
|
140
|
+
/** Pattern type */
|
|
141
|
+
patternType: FlakinessPattern;
|
|
142
|
+
/** Pattern description */
|
|
143
|
+
description: string;
|
|
144
|
+
/** Suggested fix */
|
|
145
|
+
suggestedFix: string;
|
|
146
|
+
/** Confidence (0-1) */
|
|
147
|
+
confidence: number;
|
|
148
|
+
/** Whether auto-fix is possible */
|
|
149
|
+
autoFixPossible: boolean;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Calculate flakiness score from test results
|
|
153
|
+
* @param results Array of test results
|
|
154
|
+
* @returns Flakiness score (0-100)
|
|
155
|
+
*/
|
|
156
|
+
export declare function calculateFlakinessScore(results: TestResult[]): number;
|
|
157
|
+
/**
|
|
158
|
+
* Get flakiness category from score
|
|
159
|
+
* @param score Flakiness score (0-100)
|
|
160
|
+
* @returns Flakiness category
|
|
161
|
+
*/
|
|
162
|
+
export declare function getFlakinessCategory(score: number): FlakinessCategory;
|
|
163
|
+
/**
|
|
164
|
+
* Generate a unique test ID
|
|
165
|
+
* @param testName Test name
|
|
166
|
+
* @param filePath File path
|
|
167
|
+
* @returns Unique test ID
|
|
168
|
+
*/
|
|
169
|
+
export declare function generateTestId(testName: string, filePath: string): string;
|
|
170
|
+
/**
|
|
171
|
+
* Analyze test results for flakiness patterns
|
|
172
|
+
* @param results Array of test results for the same test
|
|
173
|
+
* @returns Pattern detection result or undefined
|
|
174
|
+
*/
|
|
175
|
+
export declare function detectFlakinessPattern(results: TestResult[]): PatternDetection | undefined;
|
|
176
|
+
/**
|
|
177
|
+
* Calculate consecutive streak (passes or failures)
|
|
178
|
+
* @param results Array of test results sorted by timestamp
|
|
179
|
+
* @returns Current streak info
|
|
180
|
+
*/
|
|
181
|
+
export declare function calculateStreak(results: TestResult[]): {
|
|
182
|
+
currentStreak: number;
|
|
183
|
+
streakType: 'pass' | 'fail';
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Format flakiness score for display
|
|
187
|
+
* @param score Flakiness score (0-100)
|
|
188
|
+
* @returns Formatted string with emoji
|
|
189
|
+
*/
|
|
190
|
+
export declare function formatFlakinessScore(score: number): string;
|
|
191
|
+
/**
|
|
192
|
+
* Flakiness Detection Engine
|
|
193
|
+
*
|
|
194
|
+
* Main class for detecting and scoring test flakiness
|
|
195
|
+
*/
|
|
196
|
+
export declare class FlakinessDetector {
|
|
197
|
+
private options;
|
|
198
|
+
constructor(options?: FlakinessDetectionOptions);
|
|
199
|
+
/**
|
|
200
|
+
* Analyze a single test's flakiness from its run history
|
|
201
|
+
* @param testId Test identifier
|
|
202
|
+
* @param results Array of test results (must be from the same test)
|
|
203
|
+
* @returns Flakiness result
|
|
204
|
+
*/
|
|
205
|
+
analyzeTest(testId: string, results: TestResult[]): FlakinessResult;
|
|
206
|
+
/**
|
|
207
|
+
* Analyze multiple tests and return flakiness results
|
|
208
|
+
* @param testResults Map of testId to array of results
|
|
209
|
+
* @returns Array of flakiness results
|
|
210
|
+
*/
|
|
211
|
+
analyzeAll(testResults: Map<string, TestResult[]>): FlakinessResult[];
|
|
212
|
+
/**
|
|
213
|
+
* Check if a test should be quarantined based on flakiness
|
|
214
|
+
* @param result Flakiness result
|
|
215
|
+
* @returns Whether to quarantine
|
|
216
|
+
*/
|
|
217
|
+
shouldQuarantine(result: FlakinessResult): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Get quarantine recommendation message
|
|
220
|
+
* @param result Flakiness result
|
|
221
|
+
* @returns Recommendation message
|
|
222
|
+
*/
|
|
223
|
+
getQuarantineRecommendation(result: FlakinessResult): string;
|
|
224
|
+
/**
|
|
225
|
+
* Calculate average duration
|
|
226
|
+
*/
|
|
227
|
+
private averageDuration;
|
|
228
|
+
}
|