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
package/docs/ARCHITECTURE.md
DELETED
|
@@ -1,901 +0,0 @@
|
|
|
1
|
-
# QA360 Architecture Documentation
|
|
2
|
-
|
|
3
|
-
**Version:** 1.4.5
|
|
4
|
-
**Status:** Active (Phases 1-3 AI Integration Complete, F8 Smart Retry Complete)
|
|
5
|
-
**Last Updated:** January 3, 2025
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
QA360 is an industrial-grade, **AI-native** testing platform that transforms software quality assurance into **verifiable, signed, and traceable proofs**. The architecture prioritizes:
|
|
12
|
-
|
|
13
|
-
- **Local-First Execution**: No cloud dependencies, full data sovereignty
|
|
14
|
-
- **Cryptographic Verification**: Ed25519 signatures on all test results
|
|
15
|
-
- **Evidence Preservation**: Immutable audit trails with SQLite WAL
|
|
16
|
-
- **Conversational Testing**: Model Context Protocol (MCP) integration for LLM-native workflows
|
|
17
|
-
- **Framework Agnostic**: Adapter-based design supporting any testing tool
|
|
18
|
-
- **AI-Native**: Local test generation with Ollama (100% free, no API costs)
|
|
19
|
-
|
|
20
|
-
### Architecture Philosophy
|
|
21
|
-
|
|
22
|
-
**"Build once, trust forever, share everywhere."**
|
|
23
|
-
|
|
24
|
-
QA360 follows a monorepo architecture with clear separation of concerns:
|
|
25
|
-
- **Core**: Pure business logic, framework-agnostic
|
|
26
|
-
- **CLI**: Human-friendly command-line interface
|
|
27
|
-
- **MCP**: AI-friendly conversational interface
|
|
28
|
-
- **Adapters**: Framework-specific integrations (Playwright, k6, ZAP, etc.)
|
|
29
|
-
- **UI**: Future web/desktop interfaces (Phase 3)
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Version Status
|
|
34
|
-
|
|
35
|
-
| Component | Version | Status |
|
|
36
|
-
|-----------|---------|--------|
|
|
37
|
-
| **QA360 Platform** | 1.4.5 | Beta (AI Phases 1-3 complete) |
|
|
38
|
-
| **Target Release** | 2.0.0 | Q1 2025 (AI-native) |
|
|
39
|
-
| **CLI** | 1.4.5 | Stable |
|
|
40
|
-
| **Core** | 1.4.5 | Stable |
|
|
41
|
-
| **MCP** | 1.2.0 | Unified |
|
|
42
|
-
|
|
43
|
-
### Stability Guarantees
|
|
44
|
-
|
|
45
|
-
- ✅ **Core API**: Stable, breaking changes only in major versions
|
|
46
|
-
- ✅ **CLI Commands**: Stable, backward-compatible additions
|
|
47
|
-
- ✅ **MCP Tools**: 23 tools stable, protocol MCP 0.4.0
|
|
48
|
-
- ⚠️ **Adapters**: Evolving, minor breaking changes possible
|
|
49
|
-
- 🔮 **UI/API**: Future (Phase 3), no stability guarantees yet
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Monorepo Structure
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
QA360/
|
|
57
|
-
├── cli/ # Command-line interface
|
|
58
|
-
│ ├── src/
|
|
59
|
-
│ │ ├── commands/ # Run, report, verify, serve, etc.
|
|
60
|
-
│ │ └── index.ts # CLI entrypoint
|
|
61
|
-
│ └── package.json # @qa360/cli v1.1.0
|
|
62
|
-
│
|
|
63
|
-
├── core/ # Core business logic
|
|
64
|
-
│ ├── src/
|
|
65
|
-
│ │ ├── adapters/ # Framework adapters (Playwright, k6, ZAP, etc.)
|
|
66
|
-
│ │ ├── ai/ # AI integration (OllamaProvider, TestDiscoverer)
|
|
67
|
-
│ │ ├── auth/ # Authentication providers (9 providers)
|
|
68
|
-
│ │ ├── pack-v2/ # Pack v2 validation & migration
|
|
69
|
-
│ │ ├── proof/ # Proof generation & verification
|
|
70
|
-
│ │ ├── vault/ # Evidence persistence (SQLite)
|
|
71
|
-
│ │ ├── retry/ # F8 Smart Retry Module (Vision 2.0)
|
|
72
|
-
│ │ ├── flakiness/ # Flakiness detection & scoring
|
|
73
|
-
│ │ ├── security/ # Redaction, secrets management
|
|
74
|
-
│ │ └── index.ts # Public API
|
|
75
|
-
│ └── package.json # @qa360/core v1.4.5
|
|
76
|
-
│
|
|
77
|
-
├── packages/
|
|
78
|
-
│ └── mcp/ # Model Context Protocol integration
|
|
79
|
-
│ ├── src/
|
|
80
|
-
│ │ ├── cli/ # MCP CLI (init, up, doctor, fix, etc.)
|
|
81
|
-
│ │ ├── server/ # Full MCP server (23 tools)
|
|
82
|
-
│ │ ├── tools/ # Tool implementations
|
|
83
|
-
│ │ └── security/ # Audit logging, permission system
|
|
84
|
-
│ └── package.json # @qa360/mcp v1.2.0 (UNIFIED)
|
|
85
|
-
│
|
|
86
|
-
├── adapters/ # Standalone adapter implementations
|
|
87
|
-
│ ├── playwright/ # Playwright E2E adapter
|
|
88
|
-
│ ├── k6/ # k6 performance adapter
|
|
89
|
-
│ ├── semgrep/ # Semgrep SAST adapter
|
|
90
|
-
│ ├── zap/ # OWASP ZAP DAST adapter
|
|
91
|
-
│ ├── trufflehog/ # TruffleHog secrets adapter
|
|
92
|
-
│ └── gitleaks/ # Gitleaks secrets adapter
|
|
93
|
-
│
|
|
94
|
-
├── examples/
|
|
95
|
-
│ ├── packs/ # Example test pack configurations
|
|
96
|
-
│ ├── lovable/ # Lovable.dev integration (Supabase SSE)
|
|
97
|
-
│ └── future-api/ # Phase 3 API placeholder (moved from /api)
|
|
98
|
-
│
|
|
99
|
-
├── ui/ # Future UI components (Phase 3)
|
|
100
|
-
│ └── web/ # Web dashboard (planned)
|
|
101
|
-
│
|
|
102
|
-
├── tests/ # Integration tests
|
|
103
|
-
│ └── e2e/ # End-to-end test suites
|
|
104
|
-
│
|
|
105
|
-
├── docs/ # Documentation
|
|
106
|
-
│ ├── ARCHITECTURE.md # This file
|
|
107
|
-
│ ├── api/ # API documentation
|
|
108
|
-
│ └── guides/ # User guides
|
|
109
|
-
│
|
|
110
|
-
├── package.json # Root workspace config
|
|
111
|
-
├── pnpm-workspace.yaml # pnpm workspace definition
|
|
112
|
-
└── tsconfig.json # TypeScript configuration
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Total Packages:** 3 core + 6 adapters + 1 UI = **10 packages**
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Core Packages
|
|
120
|
-
|
|
121
|
-
### 1. CLI Package (`@qa360/cli`)
|
|
122
|
-
|
|
123
|
-
**Version:** 1.1.0
|
|
124
|
-
**Path:** `/cli`
|
|
125
|
-
**Purpose:** Human-friendly command-line interface for QA360
|
|
126
|
-
|
|
127
|
-
#### Key Commands
|
|
128
|
-
|
|
129
|
-
| Command | Description |
|
|
130
|
-
|---------|-------------|
|
|
131
|
-
| `qa360 run` | Execute test pack with proof generation |
|
|
132
|
-
| `qa360 report` | Generate HTML/PDF reports from proofs |
|
|
133
|
-
| `qa360 verify` | Verify cryptographic signatures |
|
|
134
|
-
| `qa360 history` | Query past test runs |
|
|
135
|
-
| `qa360 serve` | Start observability HTTP server |
|
|
136
|
-
| `qa360 doctor` | Health checks and diagnostics |
|
|
137
|
-
| `qa360 pack` | Pack validation and migration |
|
|
138
|
-
| `qa360 secrets` | Secure secrets management |
|
|
139
|
-
|
|
140
|
-
#### Features
|
|
141
|
-
|
|
142
|
-
- **Zero Config**: Auto-detection of project structure
|
|
143
|
-
- **Rich Output**: Chalk-based colored terminal UI
|
|
144
|
-
- **Spinner Feedback**: Ora spinners for long operations
|
|
145
|
-
- **Error Handling**: Structured error codes (RUN###, VRF###, etc.)
|
|
146
|
-
- **CI/CD Ready**: JSON output, exit codes, non-interactive mode
|
|
147
|
-
|
|
148
|
-
#### Dependencies
|
|
149
|
-
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"commander": "^11.1.0",
|
|
153
|
-
"chalk": "^5.3.0",
|
|
154
|
-
"ora": "^8.0.1",
|
|
155
|
-
"inquirer": "^9.2.12"
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
### 2. Core Package (`@qa360/core`)
|
|
162
|
-
|
|
163
|
-
**Version:** 0.9.0-core
|
|
164
|
-
**Path:** `/core`
|
|
165
|
-
**Purpose:** Framework-agnostic business logic and proof system
|
|
166
|
-
|
|
167
|
-
#### Architecture
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
@qa360/core
|
|
171
|
-
├── QA360Core # Main orchestrator
|
|
172
|
-
├── ProofGenerator # Proof creation & signing
|
|
173
|
-
├── ProofVerifier # Signature verification
|
|
174
|
-
├── EvidenceVault # SQLite persistence (WAL mode)
|
|
175
|
-
├── AdapterRegistry # Dynamic adapter loading
|
|
176
|
-
└── SecurityRedactor # PII/credential masking
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
#### Key Responsibilities
|
|
180
|
-
|
|
181
|
-
1. **Test Orchestration**: Run packs through adapter pipeline
|
|
182
|
-
2. **Proof Generation**: Ed25519 signatures on test results
|
|
183
|
-
3. **Evidence Persistence**: Immutable SQLite storage with WAL
|
|
184
|
-
4. **Adapter Management**: Dynamic loading of framework adapters
|
|
185
|
-
5. **Security**: Redaction, secrets management, audit logging
|
|
186
|
-
|
|
187
|
-
#### Public API
|
|
188
|
-
|
|
189
|
-
```typescript
|
|
190
|
-
import { QA360Core, Proof, PackConfig } from '@qa360/core';
|
|
191
|
-
|
|
192
|
-
const core = new QA360Core();
|
|
193
|
-
const proof: Proof = await core.run(packConfig, { runId });
|
|
194
|
-
const valid: boolean = await core.verify(proof);
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
#### Database Schema
|
|
198
|
-
|
|
199
|
-
- **runs**: Test execution metadata
|
|
200
|
-
- **gates**: Gate results (api, ui, perf, a11y, sast, deps, secrets, dast)
|
|
201
|
-
- **evidence**: Artifacts (screenshots, traces, logs)
|
|
202
|
-
- **signatures**: Ed25519 signatures
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
### AI Integration Modules
|
|
207
|
-
|
|
208
|
-
#### 1. AI Module (`core/src/ai/`)
|
|
209
|
-
|
|
210
|
-
**Status:** ✅ Phase 1 Complete (41 tests)
|
|
211
|
-
|
|
212
|
-
**Components:**
|
|
213
|
-
|
|
214
|
-
| File | Description | Tests |
|
|
215
|
-
|------|-------------|-------|
|
|
216
|
-
| `index.ts` | OllamaProvider, LLMProvider interface | 41 tests |
|
|
217
|
-
| `OllamaProvider` | Ollama client with retry & timeout | - |
|
|
218
|
-
| `LLMProvider` | Generic LLM provider interface | - |
|
|
219
|
-
| `LLMResponse` | Type definitions for LLM responses | - |
|
|
220
|
-
|
|
221
|
-
**Features:**
|
|
222
|
-
- Local LLM inference via Ollama (100% free, no API costs)
|
|
223
|
-
- Automatic retry with exponential backoff
|
|
224
|
-
- Configurable timeout and model selection
|
|
225
|
-
- Support for streaming responses
|
|
226
|
-
|
|
227
|
-
**CLI Commands:**
|
|
228
|
-
```bash
|
|
229
|
-
qa360 ollama test # Test Ollama connection
|
|
230
|
-
qa360 ollama list # List installed models
|
|
231
|
-
qa360 ollama pull <model> # Instructions to download model
|
|
232
|
-
qa360 ollama generate <prompt> # Generate tests (preview)
|
|
233
|
-
qa360 ollama config # Show configuration
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
#### 2. Auth Module (`core/src/auth/`)
|
|
237
|
-
|
|
238
|
-
**Status:** ✅ Phase 2 Complete (92 tests)
|
|
239
|
-
|
|
240
|
-
**Providers (9 total):**
|
|
241
|
-
|
|
242
|
-
| Provider | Type | Tests |
|
|
243
|
-
|----------|------|-------|
|
|
244
|
-
| `JwtProvider` | JWT Bearer tokens | 6 tests |
|
|
245
|
-
| `OAuth2Provider` | OAuth2 Client Credentials | 6 tests |
|
|
246
|
-
| `ApiKeyProvider` | API Key in header | 6 tests |
|
|
247
|
-
| `BearerProvider` | Bearer token provider | 6 tests |
|
|
248
|
-
| `BasicAuthProvider` | Basic auth | 5 tests |
|
|
249
|
-
| `TotpProvider` | TOTP-based auth | 6 tests |
|
|
250
|
-
| `UiLoginProvider` | UI form-based login | 5 tests |
|
|
251
|
-
| `GcpAdcProvider` | GCP Application Default Credentials | 6 tests |
|
|
252
|
-
| `AwsIamProvider` | AWS IAM credentials | 5 tests |
|
|
253
|
-
| `AzureAdProvider` | Azure AD authentication | 5 tests |
|
|
254
|
-
|
|
255
|
-
**Integration Tests:** 36 tests
|
|
256
|
-
|
|
257
|
-
**Total Tests:** 92
|
|
258
|
-
|
|
259
|
-
**Features:**
|
|
260
|
-
- Support for standard authentication schemes (JWT, OAuth2, API Key, Bearer, Basic)
|
|
261
|
-
- Support for cloud provider auth (GCP ADC, AWS IAM, Azure AD)
|
|
262
|
-
- TOTP support for two-factor authentication
|
|
263
|
-
- UI login provider for browser-based tests
|
|
264
|
-
|
|
265
|
-
#### 3. Pack v2 Module (`core/src/pack-v2/`)
|
|
266
|
-
|
|
267
|
-
**Status:** ✅ Phase 3 Complete (210+ tests)
|
|
268
|
-
|
|
269
|
-
**Components:**
|
|
270
|
-
|
|
271
|
-
| File | Description | Tests |
|
|
272
|
-
|------|-------------|-------|
|
|
273
|
-
| `validator.ts` | PackValidatorV2 with 36 error codes | 100+ tests |
|
|
274
|
-
| `migrator.ts` | Migration v1 → v2 | 50+ tests |
|
|
275
|
-
| `loader.ts` | Load with auto-detection | 60+ tests |
|
|
276
|
-
|
|
277
|
-
**CLI Commands:**
|
|
278
|
-
```bash
|
|
279
|
-
qa360 pack validate [pack] --check-files # Validate pack
|
|
280
|
-
qa360 pack migrate [pack] --output <file> # Migrate v1 → v2
|
|
281
|
-
qa360 pack lint [pack] # Auto-fix
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
**Features:**
|
|
285
|
-
- Auto-detection of v1 vs v2 pack format
|
|
286
|
-
- 36 validation error codes with detailed messages
|
|
287
|
-
- Migration of gates array → gates object with adapters
|
|
288
|
-
- Migration of environment → auth profiles + variables
|
|
289
|
-
- Migration of hooks string → typed hook objects
|
|
290
|
-
|
|
291
|
-
**Total AI Integration Tests:** 343 (41 + 92 + 210)
|
|
292
|
-
|
|
293
|
-
#### 5. F8 Smart Retry Module (`core/src/retry/`)
|
|
294
|
-
|
|
295
|
-
**Status:** ✅ Phase 2 Complete (48 tests)
|
|
296
|
-
|
|
297
|
-
**Components:**
|
|
298
|
-
|
|
299
|
-
| File | Description | Tests |
|
|
300
|
-
|------|-------------|-------|
|
|
301
|
-
| `types.ts` | RetryStrategy enum, RetryConfig, RetryResult types | - |
|
|
302
|
-
| `retry-engine.ts` | SmartRetryEngine with 6 strategies | 30 tests |
|
|
303
|
-
| `flakiness-integration.ts` | FlakinessAwareRetryEngine for intelligent retry | 18 tests |
|
|
304
|
-
| `vault.ts` | SQLite persistence for retry history | - |
|
|
305
|
-
|
|
306
|
-
**Retry Strategies:**
|
|
307
|
-
- `NONE` - No retry, fail immediately
|
|
308
|
-
- `FIXED` - Fixed delay between retries
|
|
309
|
-
- `LINEAR` - Linear backoff (delay increases linearly)
|
|
310
|
-
- `EXPONENTIAL` - Exponential backoff (delay doubles each retry)
|
|
311
|
-
- `ADAPTIVE` - Adaptive retry based on flakiness score
|
|
312
|
-
- `INTELLIGENT` - Pattern-based retry (timing, race conditions, selectors)
|
|
313
|
-
|
|
314
|
-
**Features:**
|
|
315
|
-
- Flakiness-aware retry decisions based on historical test data
|
|
316
|
-
- Non-retriable error detection (OutOfMemoryError, PermissionDenied, SyntaxError, etc.)
|
|
317
|
-
- Configurable jitter to avoid thundering herd problem
|
|
318
|
-
- Pattern-based retry adjustments (timing, external_dependency, race_condition, selector_issue)
|
|
319
|
-
- Retry history tracking in SQLite vault
|
|
320
|
-
|
|
321
|
-
**Public API:**
|
|
322
|
-
```typescript
|
|
323
|
-
import { SmartRetryEngine, RetryStrategy, createSmartRetryEngine } from '@qa360/core/retry';
|
|
324
|
-
|
|
325
|
-
const engine = createSmartRetryEngine({
|
|
326
|
-
maxRetries: 3,
|
|
327
|
-
initialDelayMs: 1000,
|
|
328
|
-
strategy: RetryStrategy.ADAPTIVE,
|
|
329
|
-
jitterFactor: 0.1
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
const result = await engine.executeWithRetry('test-1', async () => {
|
|
333
|
-
// Test execution
|
|
334
|
-
});
|
|
335
|
-
// → { success: true, totalAttempts: 2, stopReason: 'success', ... }
|
|
336
|
-
|
|
337
|
-
// Get retry recommendation based on flakiness
|
|
338
|
-
const rec = engine.getRetryRecommendation({ flakinessScore: 60 });
|
|
339
|
-
// → { shouldRetry: true, strategy: RetryStrategy.ADAPTIVE, maxRetries: 3, ... }
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Total Tests:** 48 (30 + 18)
|
|
343
|
-
|
|
344
|
-
---
|
|
345
|
-
|
|
346
|
-
### 4. MCP Package (`@qa360/mcp`)
|
|
347
|
-
|
|
348
|
-
**Version:** 1.2.0 (Unified)
|
|
349
|
-
**Path:** `/packages/mcp`
|
|
350
|
-
**Purpose:** AI-friendly conversational testing interface
|
|
351
|
-
|
|
352
|
-
#### History & Merge
|
|
353
|
-
|
|
354
|
-
**December 23, 2024**: Merged two separate packages into one unified package:
|
|
355
|
-
- ❌ `@qa360/mcp-server` (0.9.0-mcp) - Full MCP server, 23 tools
|
|
356
|
-
- ❌ `@qa360/mcp-cli` (1.1.0) - Zero-friction CLI
|
|
357
|
-
- ✅ `@qa360/mcp` (1.2.0) - **Unified package** combining both
|
|
358
|
-
|
|
359
|
-
**Merge Impact:**
|
|
360
|
-
- Eliminated package conflicts
|
|
361
|
-
- Single binary: `qa360-mcp` (CLI + Server)
|
|
362
|
-
- Reduced complexity: -10,503 lines of duplicate code
|
|
363
|
-
- Improved build speed: +50%
|
|
364
|
-
|
|
365
|
-
#### MCP Tools (23 Total)
|
|
366
|
-
|
|
367
|
-
**Core Execution (3 tools):**
|
|
368
|
-
- `qa360.run` - Execute test packs
|
|
369
|
-
- `qa360.verify` - Verify signatures
|
|
370
|
-
- `qa360.report.sign` - Sign reports
|
|
371
|
-
|
|
372
|
-
**History & Analytics (8 tools):**
|
|
373
|
-
- `qa360.history.list|get|diff|trend|export|gc|pin|unpin`
|
|
374
|
-
|
|
375
|
-
**Pack Management (4 tools):**
|
|
376
|
-
- `qa360.pack.ask|validate|lint|migrate`
|
|
377
|
-
|
|
378
|
-
**Secrets Management (2 tools):**
|
|
379
|
-
- `qa360.secrets.add|list` (requires `--allow-secrets`)
|
|
380
|
-
|
|
381
|
-
**Server & Diagnostics (6 tools):**
|
|
382
|
-
- `qa360.serve.health|diag|metrics`
|
|
383
|
-
- `qa360.vault.get_run|get_artifacts`
|
|
384
|
-
- `qa360.triage.explain_code`
|
|
385
|
-
|
|
386
|
-
#### CLI Commands (9 Total)
|
|
387
|
-
|
|
388
|
-
| Command | Description |
|
|
389
|
-
|---------|-------------|
|
|
390
|
-
| `qa360-mcp init` | Auto-configure VS Code + |
|
|
391
|
-
| `qa360-mcp up` | Start MCP server with auto-recovery |
|
|
392
|
-
| `qa360-mcp doctor` | Health checks (Node, VS Code, Claude) |
|
|
393
|
-
| `qa360-mcp fix` | Auto-repair configuration |
|
|
394
|
-
| `qa360-mcp reset` | Clean slate restart |
|
|
395
|
-
| `qa360-mcp uninstall` | Complete removal |
|
|
396
|
-
| `qa360-mcp test:dx` | DX compliance tests (CI/CD) |
|
|
397
|
-
| `qa360-mcp telemetry` | Opt-in telemetry management |
|
|
398
|
-
|
|
399
|
-
#### Security Features
|
|
400
|
-
|
|
401
|
-
- **Permission System**: `--allow-run`, `--allow-secrets` opt-in flags
|
|
402
|
-
- **Rate Limiting**: Configurable requests/second
|
|
403
|
-
- **Audit Logging**: Full trail in `~/.qa360/mcp-audit.log`
|
|
404
|
-
- **Data Redaction**: Automatic PII/credential masking
|
|
405
|
-
- **Concurrency Control**: Limit parallel operations
|
|
406
|
-
|
|
407
|
-
#### Integration
|
|
408
|
-
|
|
409
|
-
**Claude Desktop:**
|
|
410
|
-
```json
|
|
411
|
-
{
|
|
412
|
-
"mcpServers": {
|
|
413
|
-
"qa360": {
|
|
414
|
-
"command": "qa360-mcp-server",
|
|
415
|
-
"args": ["--allow-run", "--allow-secrets"]
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
**VS Code MCP Extension:**
|
|
422
|
-
Auto-configured via `qa360-mcp init` command.
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## Adapters
|
|
427
|
-
|
|
428
|
-
QA360 uses an **adapter pattern** to integrate with various testing frameworks. Each adapter implements the `TestAdapter` interface.
|
|
429
|
-
|
|
430
|
-
### Adapter List
|
|
431
|
-
|
|
432
|
-
| Adapter | Framework | Gate | Status |
|
|
433
|
-
|---------|-----------|------|--------|
|
|
434
|
-
| **playwright** | Playwright | UI | ✅ Stable |
|
|
435
|
-
| **k6** | k6 | Performance | ✅ Stable |
|
|
436
|
-
| **semgrep** | Semgrep | SAST | ✅ Stable |
|
|
437
|
-
| **zap** | OWASP ZAP | DAST | ⚠️ Beta |
|
|
438
|
-
| **trufflehog** | TruffleHog | Secrets | ✅ Stable |
|
|
439
|
-
| **gitleaks** | Gitleaks | Secrets | ✅ Stable |
|
|
440
|
-
|
|
441
|
-
### Adapter Interface
|
|
442
|
-
|
|
443
|
-
```typescript
|
|
444
|
-
interface TestAdapter {
|
|
445
|
-
name: string;
|
|
446
|
-
version: string;
|
|
447
|
-
isAvailable(): Promise<boolean>;
|
|
448
|
-
run(config: AdapterConfig): Promise<AdapterResult>;
|
|
449
|
-
cleanup(): Promise<void>;
|
|
450
|
-
}
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
### Adding Custom Adapters
|
|
454
|
-
|
|
455
|
-
1. Implement `TestAdapter` interface
|
|
456
|
-
2. Register in `AdapterRegistry`
|
|
457
|
-
3. Configure in pack YAML:
|
|
458
|
-
```yaml
|
|
459
|
-
gates:
|
|
460
|
-
custom:
|
|
461
|
-
adapter: my-custom-adapter
|
|
462
|
-
config: { ... }
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
---
|
|
466
|
-
|
|
467
|
-
## Architecture Decisions (Week 1 Cleanup)
|
|
468
|
-
|
|
469
|
-
### Context: December 18-23, 2024
|
|
470
|
-
|
|
471
|
-
Week 1 focused on **monorepo cleanup and MCP unification** to eliminate technical debt and simplify the architecture.
|
|
472
|
-
|
|
473
|
-
### Major Changes
|
|
474
|
-
|
|
475
|
-
#### 1. Empty Package Deletion ✅
|
|
476
|
-
|
|
477
|
-
**Removed 4 empty/stub packages:**
|
|
478
|
-
- `packages/shared/` - Empty placeholder
|
|
479
|
-
- `packages/types/` - Unused type definitions
|
|
480
|
-
- `packages/utils/` - Duplicate utilities
|
|
481
|
-
- `packages/config/` - Empty config package
|
|
482
|
-
|
|
483
|
-
**Rationale:**
|
|
484
|
-
- Reduced cognitive overhead (fewer directories to navigate)
|
|
485
|
-
- Eliminated confusion about package responsibilities
|
|
486
|
-
- Simplified dependency graph
|
|
487
|
-
|
|
488
|
-
**Impact:**
|
|
489
|
-
- -2,156 lines of boilerplate
|
|
490
|
-
- Faster `pnpm install` (fewer workspace links)
|
|
491
|
-
- Clearer project structure
|
|
492
|
-
|
|
493
|
-
---
|
|
494
|
-
|
|
495
|
-
#### 2. MCP Package Merge ✅
|
|
496
|
-
|
|
497
|
-
**Unified 2 MCP packages into 1:**
|
|
498
|
-
|
|
499
|
-
| Before | After |
|
|
500
|
-
|--------|-------|
|
|
501
|
-
| `@qa360/mcp-server` (0.9.0-mcp) | ✅ `@qa360/mcp` (1.2.0) |
|
|
502
|
-
| `@qa360/mcp-cli` (1.1.0) | ❌ Merged |
|
|
503
|
-
| **2 packages, 1 binary conflict** | **1 package, 1 unified binary** |
|
|
504
|
-
|
|
505
|
-
**Problem Solved:**
|
|
506
|
-
- Binary name conflict (`qa360-mcp` in both packages)
|
|
507
|
-
- Duplicate code (tools, security, types duplicated)
|
|
508
|
-
- Confusion about which package to use
|
|
509
|
-
- Maintenance burden (updating 2 packages)
|
|
510
|
-
|
|
511
|
-
**Merge Details:**
|
|
512
|
-
- Copied `tools/` (23 production tools vs 3 stubs)
|
|
513
|
-
- Copied `security/` (audit + manager)
|
|
514
|
-
- Replaced minimal server with full server
|
|
515
|
-
- Merged dependencies (`@qa360/core`, `ajv`)
|
|
516
|
-
- Updated bin entries to point to full server
|
|
517
|
-
|
|
518
|
-
**Result:**
|
|
519
|
-
- Single source of truth for MCP functionality
|
|
520
|
-
- Eliminated 10,503 lines of duplicate code
|
|
521
|
-
- Unified documentation and examples
|
|
522
|
-
- +50% faster build (no duplicate TypeScript compilation)
|
|
523
|
-
|
|
524
|
-
**Git History:**
|
|
525
|
-
```bash
|
|
526
|
-
d65d8a1c - refactor(mcp): merge core functionality from mcp-server
|
|
527
|
-
d2ba795e - chore(architecture): finalize monorepo cleanup
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
---
|
|
531
|
-
|
|
532
|
-
#### 3. API Directory Relocation ✅
|
|
533
|
-
|
|
534
|
-
**Moved `/api` to `examples/future-api`**
|
|
535
|
-
|
|
536
|
-
**Rationale:**
|
|
537
|
-
- `/api` contained placeholder code for Phase 3 REST API
|
|
538
|
-
- Having it at root implied it was production-ready
|
|
539
|
-
- Caused confusion ("Is QA360 a REST API?")
|
|
540
|
-
|
|
541
|
-
**Action:**
|
|
542
|
-
- Moved 4 placeholder files to `examples/future-api/`
|
|
543
|
-
- Created `README.md` documenting Phase 3 timeline
|
|
544
|
-
- Updated workspace configuration
|
|
545
|
-
|
|
546
|
-
**Benefit:**
|
|
547
|
-
- Clear signal: API is future work, not current feature
|
|
548
|
-
- Cleaner root directory structure
|
|
549
|
-
- Examples directory as home for future integrations
|
|
550
|
-
|
|
551
|
-
---
|
|
552
|
-
|
|
553
|
-
#### 4. Node Requirement Adjustment ✅
|
|
554
|
-
|
|
555
|
-
**Changed:** `node: ">=20.18.1"` → `">=18.20.0"`
|
|
556
|
-
|
|
557
|
-
**Rationale:**
|
|
558
|
-
- Original requirement too strict (20.18.1 very recent)
|
|
559
|
-
- Build system works fine on Node 18.x
|
|
560
|
-
- `undici` dependency had strict requirement, downgraded to v6
|
|
561
|
-
- Improves compatibility with existing CI/CD pipelines
|
|
562
|
-
|
|
563
|
-
**Impact:**
|
|
564
|
-
- Broader Node.js version support
|
|
565
|
-
- Better developer experience (no forced Node upgrade)
|
|
566
|
-
- Still modern (18.20.0 is LTS)
|
|
567
|
-
|
|
568
|
-
---
|
|
569
|
-
|
|
570
|
-
### Overall Impact
|
|
571
|
-
|
|
572
|
-
| Metric | Before | After | Change |
|
|
573
|
-
|--------|--------|-------|--------|
|
|
574
|
-
| **Packages** | 13 | 10 | -23% |
|
|
575
|
-
| **Empty Packages** | 4 | 0 | -100% |
|
|
576
|
-
| **MCP Packages** | 2 | 1 | -50% |
|
|
577
|
-
| **Lines of Code** | ~45,000 | ~34,500 | **-10,503** |
|
|
578
|
-
| **Build Time** | ~12s | ~6s | **+50% faster** |
|
|
579
|
-
| **Workspace Links** | 15 | 10 | -33% |
|
|
580
|
-
| **Binary Conflicts** | 1 | 0 | Resolved |
|
|
581
|
-
|
|
582
|
-
### Decision Log
|
|
583
|
-
|
|
584
|
-
All architectural decisions are tracked in:
|
|
585
|
-
- `ARCH-01_MCP_MERGE_ANALYSIS.md` - Detailed merge analysis
|
|
586
|
-
- Git commit messages - Rationale and implementation details
|
|
587
|
-
- This document - High-level summaries
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
## Build System
|
|
592
|
-
|
|
593
|
-
### Package Manager
|
|
594
|
-
|
|
595
|
-
**pnpm 9.12.2** - Fast, efficient, strict workspace management
|
|
596
|
-
|
|
597
|
-
```yaml
|
|
598
|
-
# pnpm-workspace.yaml
|
|
599
|
-
packages:
|
|
600
|
-
- cli
|
|
601
|
-
- core
|
|
602
|
-
- adapters/*
|
|
603
|
-
- ui/*
|
|
604
|
-
- examples/*
|
|
605
|
-
- packages/*
|
|
606
|
-
- tests
|
|
607
|
-
```
|
|
608
|
-
|
|
609
|
-
### TypeScript Configuration
|
|
610
|
-
|
|
611
|
-
**Version:** TypeScript 5.0+
|
|
612
|
-
|
|
613
|
-
**tsconfig.json (root):**
|
|
614
|
-
```json
|
|
615
|
-
{
|
|
616
|
-
"compilerOptions": {
|
|
617
|
-
"target": "ES2022",
|
|
618
|
-
"module": "ESNext",
|
|
619
|
-
"moduleResolution": "node",
|
|
620
|
-
"strict": true,
|
|
621
|
-
"esModuleInterop": true,
|
|
622
|
-
"skipLibCheck": true
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
**Build Commands:**
|
|
628
|
-
```bash
|
|
629
|
-
pnpm install # Install all workspace dependencies
|
|
630
|
-
pnpm run build # Compile all TypeScript packages
|
|
631
|
-
pnpm run test # Run Jest tests
|
|
632
|
-
pnpm run lint # ESLint checks
|
|
633
|
-
pnpm run type-check # TypeScript type checking
|
|
634
|
-
```
|
|
635
|
-
|
|
636
|
-
### CI/CD
|
|
637
|
-
|
|
638
|
-
**GitHub Actions:**
|
|
639
|
-
- Multi-OS testing (Ubuntu, macOS, Windows)
|
|
640
|
-
- Multi-Node testing (18.x, 20.x, 22.x)
|
|
641
|
-
- Automated build + test + lint
|
|
642
|
-
- Playwright browser installation
|
|
643
|
-
- Artifact collection
|
|
644
|
-
|
|
645
|
-
**Workflow:** `.github/workflows/qa360-ci.yml`
|
|
646
|
-
|
|
647
|
-
---
|
|
648
|
-
|
|
649
|
-
## Security
|
|
650
|
-
|
|
651
|
-
QA360 implements defense-in-depth security:
|
|
652
|
-
|
|
653
|
-
### 1. Cryptographic Signatures
|
|
654
|
-
|
|
655
|
-
**Algorithm:** Ed25519 (Curve25519-based)
|
|
656
|
-
|
|
657
|
-
- **Key Generation**: Automatic on first run
|
|
658
|
-
- **Storage**: `~/.qa360/keys/` (0600 permissions)
|
|
659
|
-
- **Signing**: All test results signed with private key
|
|
660
|
-
- **Verification**: Public key included in proof for validation
|
|
661
|
-
|
|
662
|
-
**Proof Structure:**
|
|
663
|
-
```json
|
|
664
|
-
{
|
|
665
|
-
"proof_version": "1.0.0",
|
|
666
|
-
"run_id": "uuid-v4",
|
|
667
|
-
"timestamp": "ISO-8601",
|
|
668
|
-
"gates": [...],
|
|
669
|
-
"signature": {
|
|
670
|
-
"algorithm": "ed25519",
|
|
671
|
-
"public_key": "base64",
|
|
672
|
-
"signature": "base64"
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
### 2. Evidence Vault
|
|
678
|
-
|
|
679
|
-
**Technology:** SQLite with WAL (Write-Ahead Logging)
|
|
680
|
-
|
|
681
|
-
- **Immutability**: Append-only writes
|
|
682
|
-
- **Atomicity**: WAL ensures crash recovery
|
|
683
|
-
- **Performance**: Up to 100x faster than journal mode
|
|
684
|
-
- **Location**: `~/.qa360/vault/evidence.db`
|
|
685
|
-
|
|
686
|
-
**Integrity Checks:**
|
|
687
|
-
- SHA256 hashes on all artifacts
|
|
688
|
-
- Foreign key constraints
|
|
689
|
-
- CHECK constraints on enums
|
|
690
|
-
- Timestamp validation
|
|
691
|
-
|
|
692
|
-
### 3. Secrets Management
|
|
693
|
-
|
|
694
|
-
**Storage:** Encrypted with AES-256
|
|
695
|
-
|
|
696
|
-
- **Master Key**: Derived from system entropy
|
|
697
|
-
- **Per-Secret Encryption**: Unique IV per secret
|
|
698
|
-
- **Audit Trail**: All access logged
|
|
699
|
-
- **Redaction**: Automatic masking in logs/reports
|
|
700
|
-
|
|
701
|
-
**Secret Operations:**
|
|
702
|
-
```bash
|
|
703
|
-
qa360 secrets add DB_PASSWORD
|
|
704
|
-
qa360 secrets list --show-values # Requires confirmation
|
|
705
|
-
qa360 secrets remove DB_PASSWORD
|
|
706
|
-
qa360 secrets doctor # Audit check
|
|
707
|
-
```
|
|
708
|
-
|
|
709
|
-
### 4. MCP Security
|
|
710
|
-
|
|
711
|
-
**Permission System:**
|
|
712
|
-
- `--allow-run`: Explicit opt-in for test execution
|
|
713
|
-
- `--allow-secrets`: Explicit opt-in for secrets access
|
|
714
|
-
- **Default**: Read-only (history, diagnostics, vault queries)
|
|
715
|
-
|
|
716
|
-
**Rate Limiting:**
|
|
717
|
-
- Configurable requests/second (default: 5 req/s)
|
|
718
|
-
- Per-tool limits
|
|
719
|
-
- DDoS protection
|
|
720
|
-
|
|
721
|
-
**Audit Logging:**
|
|
722
|
-
- Every MCP tool call logged
|
|
723
|
-
- Timestamp, tool name, arguments (redacted)
|
|
724
|
-
- Success/failure status
|
|
725
|
-
- Log file: `~/.qa360/mcp-audit.log`
|
|
726
|
-
|
|
727
|
-
### 5. Data Redaction
|
|
728
|
-
|
|
729
|
-
**Automatic Redaction Patterns:**
|
|
730
|
-
- Bearer tokens
|
|
731
|
-
- Basic auth credentials
|
|
732
|
-
- API keys
|
|
733
|
-
- Database connection strings
|
|
734
|
-
- Private keys / certificates
|
|
735
|
-
- Email addresses (optional)
|
|
736
|
-
|
|
737
|
-
**Redaction API:**
|
|
738
|
-
```typescript
|
|
739
|
-
import { SecurityRedactor } from '@qa360/core';
|
|
740
|
-
|
|
741
|
-
const redactor = new SecurityRedactor();
|
|
742
|
-
const safe = redactor.redact(text);
|
|
743
|
-
// "Bearer abc123" → "Bearer [REDACTED]"
|
|
744
|
-
```
|
|
745
|
-
|
|
746
|
-
---
|
|
747
|
-
|
|
748
|
-
## Future Phases
|
|
749
|
-
|
|
750
|
-
QA360 follows a phased roadmap:
|
|
751
|
-
|
|
752
|
-
### Core Platform Phases
|
|
753
|
-
|
|
754
|
-
### Phase 1: Core Platform ✅ (Complete)
|
|
755
|
-
- Local-first testing engine
|
|
756
|
-
- Proof generation & verification
|
|
757
|
-
- CLI interface
|
|
758
|
-
- 7 adapters (Playwright, k6, Semgrep, ZAP, Gitleaks, OSV)
|
|
759
|
-
- Evidence vault
|
|
760
|
-
- **Status:** Done (1.4.5)
|
|
761
|
-
|
|
762
|
-
### Phase 2: MCP Integration ✅ (Complete)
|
|
763
|
-
- Model Context Protocol server
|
|
764
|
-
- 23 conversational tools
|
|
765
|
-
- Claude Desktop / VS Code integration
|
|
766
|
-
- Zero-friction DX CLI
|
|
767
|
-
- **Status:** Done (1.2.0 unified)
|
|
768
|
-
|
|
769
|
-
### AI Integration Phases (Ollama)
|
|
770
|
-
|
|
771
|
-
#### AI Phase 1: Ollama Provider ✅ (Complete - Dec 31, 2024)
|
|
772
|
-
- OllamaProvider with retry & timeout
|
|
773
|
-
- TestDiscoverer for auto-detection
|
|
774
|
-
- PackConfigV2 types
|
|
775
|
-
- CLI commands: `ollama test|list|pull|generate|config`
|
|
776
|
-
- **Tests:** 96 passing
|
|
777
|
-
|
|
778
|
-
#### AI Phase 2: Auth Module ✅ (Complete - Dec 31, 2024)
|
|
779
|
-
- 9 authentication providers
|
|
780
|
-
- JWT, OAuth2, API Key, Bearer, Basic, TOTP
|
|
781
|
-
- Cloud providers: GCP ADC, AWS IAM, Azure AD
|
|
782
|
-
- UI Login provider for browser tests
|
|
783
|
-
- **Tests:** 92 passing
|
|
784
|
-
|
|
785
|
-
#### AI Phase 3: Pack v2 Validation ✅ (Complete - Dec 31, 2024)
|
|
786
|
-
- PackValidatorV2 (36 error codes)
|
|
787
|
-
- PackMigrator (v1 → v2)
|
|
788
|
-
- PackLoaderV2 (auto-detection)
|
|
789
|
-
- CLI commands: `pack validate|migrate|lint`
|
|
790
|
-
- **Tests:** 210+ passing
|
|
791
|
-
|
|
792
|
-
#### AI Phase 4: AI Test Generation ⏳ (Planned)
|
|
793
|
-
- CodeGenerator module
|
|
794
|
-
- PromptBuilder for LLM prompts
|
|
795
|
-
- Test generation from OpenAPI/Swagger
|
|
796
|
-
- Interactive test generation CLI
|
|
797
|
-
|
|
798
|
-
#### AI Phase 5: Integration & Polish ⏳ (Planned)
|
|
799
|
-
- Phase3Runner integration for Pack v2
|
|
800
|
-
- Adapters updated for Auth profiles
|
|
801
|
-
- Complete documentation
|
|
802
|
-
- Example packs v2
|
|
803
|
-
- E2E tests
|
|
804
|
-
|
|
805
|
-
**Total AI Integration Tests:** 398 (Phases 1-3)
|
|
806
|
-
|
|
807
|
-
### Vision 2.0 - Flakiness Detection & Smart Retry
|
|
808
|
-
|
|
809
|
-
#### F1-F7: Flakiness System ✅ (Complete - January 2025)
|
|
810
|
-
- Flakiness Detection Engine
|
|
811
|
-
- Flakiness Scoring (Legendary, Solid, Good, Shaky, Unstable)
|
|
812
|
-
- Quarantine System
|
|
813
|
-
- Self-Healing Module
|
|
814
|
-
- Coverage Analytics
|
|
815
|
-
- SLO/SLI Management
|
|
816
|
-
- Regression Detection
|
|
817
|
-
|
|
818
|
-
#### F8: Smart Retry Module ✅ (Complete - January 3, 2025)
|
|
819
|
-
- Smart Retry Engine with 6 strategies (NONE, FIXED, LINEAR, EXPONENTIAL, ADAPTIVE, INTELLIGENT)
|
|
820
|
-
- Flakiness-Aware Retry: Integrates with flakiness scoring for intelligent retry decisions
|
|
821
|
-
- Pattern-Based Retry: Adjusts strategy based on failure patterns (timing, race conditions, selectors)
|
|
822
|
-
- Non-Retriable Error Detection: Automatically identifies unrecoverable errors
|
|
823
|
-
- Jitter Support: Avoids thundering herd problem with configurable jitter
|
|
824
|
-
- **Tests:** 48 passing
|
|
825
|
-
|
|
826
|
-
**Complete Flakiness System:** Detection → Scoring → Quarantine → Smart Retry
|
|
827
|
-
|
|
828
|
-
### Future Platform Phases
|
|
829
|
-
|
|
830
|
-
### Phase 3: Cloud & API 🔮 (Q1 2025)
|
|
831
|
-
- REST API for remote execution
|
|
832
|
-
- Web dashboard (real-time)
|
|
833
|
-
- Multi-user authentication
|
|
834
|
-
- Cloud pack registry
|
|
835
|
-
- **Status:** Planned, code in `examples/future-api/`
|
|
836
|
-
|
|
837
|
-
### Phase 4: Enterprise 🔮 (Q2 2025)
|
|
838
|
-
- SAML/OIDC authentication
|
|
839
|
-
- RBAC (Role-Based Access Control)
|
|
840
|
-
- Compliance reports (SOC2, ISO27001)
|
|
841
|
-
- On-premise deployment
|
|
842
|
-
- **Status:** Planned
|
|
843
|
-
|
|
844
|
-
---
|
|
845
|
-
|
|
846
|
-
## References
|
|
847
|
-
|
|
848
|
-
### Documentation
|
|
849
|
-
|
|
850
|
-
- **API Reference**: `/docs/api/`
|
|
851
|
-
- **User Guides**: `/docs/guides/`
|
|
852
|
-
- **MCP Server**: `/packages/mcp/README.md`
|
|
853
|
-
- **Core Package**: `/core/README.md`
|
|
854
|
-
- **CLI Package**: `/cli/README.md`
|
|
855
|
-
|
|
856
|
-
### Key Documents
|
|
857
|
-
|
|
858
|
-
- **ARCH-01 Analysis**: `ARCH-01_MCP_MERGE_ANALYSIS.md` - Detailed merge analysis
|
|
859
|
-
- **Migration Guide**: `docs/MIGRATION.md` - Upgrade path from pre-1.2.0
|
|
860
|
-
- **Week 1 Summary**: `docs/WEEK1_SUMMARY.md` - Cleanup accomplishments
|
|
861
|
-
- **Ollama Roadmap**: `docs/OLLAMA_REFACTORING_ROADMAP.md` - AI integration roadmap
|
|
862
|
-
- **Status**: `docs/STATUS.md` - Current project status
|
|
863
|
-
|
|
864
|
-
### External Links
|
|
865
|
-
|
|
866
|
-
- **Website**: https://qa360.ai
|
|
867
|
-
- **GitHub**: https://github.com/xyqotech/qa360
|
|
868
|
-
- **MCP Protocol**: https://modelcontextprotocol.io
|
|
869
|
-
- **Playwright**: https://playwright.dev
|
|
870
|
-
- **k6**: https://k6.io
|
|
871
|
-
|
|
872
|
-
---
|
|
873
|
-
|
|
874
|
-
## Contributing
|
|
875
|
-
|
|
876
|
-
QA360 follows trunk-based development:
|
|
877
|
-
|
|
878
|
-
1. **Main Branch**: `develop` (stable, deployable)
|
|
879
|
-
2. **Feature Branches**: Short-lived, merged via PR
|
|
880
|
-
3. **Commit Convention**: Conventional Commits (feat, fix, chore, docs, refactor)
|
|
881
|
-
4. **Testing**: All PRs require passing CI/CD
|
|
882
|
-
|
|
883
|
-
**Pull Request Checklist:**
|
|
884
|
-
- [ ] Tests pass (`pnpm test`)
|
|
885
|
-
- [ ] Lint passes (`pnpm lint`)
|
|
886
|
-
- [ ] Type check passes (`pnpm type-check`)
|
|
887
|
-
- [ ] Build succeeds (`pnpm build`)
|
|
888
|
-
- [ ] Documentation updated
|
|
889
|
-
- [ ] Commit messages follow convention
|
|
890
|
-
|
|
891
|
-
---
|
|
892
|
-
|
|
893
|
-
## License
|
|
894
|
-
|
|
895
|
-
MIT License - See `LICENSE` file for details.
|
|
896
|
-
|
|
897
|
-
---
|
|
898
|
-
|
|
899
|
-
**Architecture Document Version:** 1.1.0
|
|
900
|
-
**Last Review:** January 3, 2025
|
|
901
|
-
**Next Review:** January 2025 (AI Phase 4)
|