qa360 2.2.1 → 2.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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 +309 -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 +245 -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 +330 -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 +62 -0
- package/cli/dist/core/pack-v2/migrator.js +505 -0
- package/cli/dist/core/pack-v2/validator.d.ts +65 -0
- package/cli/dist/core/pack-v2/validator.js +629 -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 +1323 -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 +26 -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/proofs.md
DELETED
|
@@ -1,670 +0,0 @@
|
|
|
1
|
-
# QA360 Cryptographic Proofs
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
QA360 generates cryptographically signed proofs of test execution, providing tamper-evident evidence of quality assurance activities. These proofs combine comprehensive test results with Ed25519 digital signatures to ensure authenticity and integrity.
|
|
6
|
-
|
|
7
|
-
## Proof Architecture
|
|
8
|
-
|
|
9
|
-
### Components
|
|
10
|
-
|
|
11
|
-
1. **Proof Document (PDF)**: Human-readable test report with visual evidence
|
|
12
|
-
2. **Proof Metadata (JSON)**: Machine-readable test data and metrics
|
|
13
|
-
3. **Digital Signature**: Ed25519 cryptographic signature ensuring integrity
|
|
14
|
-
4. **Evidence Vault Link**: Connection to detailed execution data in the vault
|
|
15
|
-
|
|
16
|
-
### Trust Chain
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
Pack Configuration → Test Execution → Results Collection → Proof Generation → Digital Signing → Vault Storage
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Proof Generation Process
|
|
23
|
-
|
|
24
|
-
### 1. Test Execution
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
// During test execution
|
|
28
|
-
const { runId } = await vault.beginRun({
|
|
29
|
-
run_key: 'release-v2.1.0',
|
|
30
|
-
pack_path: './qa360-pack.yml',
|
|
31
|
-
pack_hash: EvidenceVault.calculatePackHash(packContent)
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Record test results
|
|
35
|
-
await vault.recordGate(runId, {
|
|
36
|
-
name: 'ui',
|
|
37
|
-
status: 'passed',
|
|
38
|
-
duration_ms: 2500,
|
|
39
|
-
metrics_json: JSON.stringify({ coverage: 85, interactions: 12 })
|
|
40
|
-
});
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 2. Proof Document Creation
|
|
44
|
-
|
|
45
|
-
```typescript
|
|
46
|
-
// Generate comprehensive proof
|
|
47
|
-
const proofData = {
|
|
48
|
-
run_id: runId,
|
|
49
|
-
timestamp: Date.now(),
|
|
50
|
-
pack_hash: packHash,
|
|
51
|
-
gates: await vault.getGates(runId),
|
|
52
|
-
findings: await vault.getFindings(runId),
|
|
53
|
-
artifacts: await vault.getRunArtifacts(runId),
|
|
54
|
-
trust_score: calculateTrustScore(gates, findings),
|
|
55
|
-
metadata: {
|
|
56
|
-
version: '1.0.0',
|
|
57
|
-
generator: 'qa360-core',
|
|
58
|
-
environment: process.env.NODE_ENV
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
// Create PDF proof document
|
|
63
|
-
const proofPdf = await generateProofPDF(proofData);
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 3. Digital Signing
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
import { sign } from 'crypto';
|
|
70
|
-
|
|
71
|
-
// Load Ed25519 private key
|
|
72
|
-
const privateKey = await loadPrivateKey('.qa360/keys/private.pem');
|
|
73
|
-
|
|
74
|
-
// Create signature of proof JSON
|
|
75
|
-
const proofJson = JSON.stringify(proofData, null, 2);
|
|
76
|
-
const signature = sign('ed25519', Buffer.from(proofJson), privateKey);
|
|
77
|
-
|
|
78
|
-
// Store signed proof
|
|
79
|
-
await vault.finishRun(runId, {
|
|
80
|
-
status: 'passed',
|
|
81
|
-
trust_score: proofData.trust_score,
|
|
82
|
-
signature: signature.toString('hex'),
|
|
83
|
-
proof_pdf_sha: await vault.storeArtifact(
|
|
84
|
-
runId,
|
|
85
|
-
proofPdf,
|
|
86
|
-
'application/pdf',
|
|
87
|
-
'proof_pdf'
|
|
88
|
-
).then(a => a.sha256)
|
|
89
|
-
});
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Proof Structure
|
|
93
|
-
|
|
94
|
-
### JSON Proof Format
|
|
95
|
-
|
|
96
|
-
```json
|
|
97
|
-
{
|
|
98
|
-
"proof_version": "1.0.0",
|
|
99
|
-
"run_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
100
|
-
"timestamp": 1729781445000,
|
|
101
|
-
"pack": {
|
|
102
|
-
"path": "./qa360-pack.yml",
|
|
103
|
-
"hash": "sha256:abc123def456...",
|
|
104
|
-
"version": "1.2.0"
|
|
105
|
-
},
|
|
106
|
-
"execution": {
|
|
107
|
-
"started_at": 1729781445000,
|
|
108
|
-
"ended_at": 1729781490000,
|
|
109
|
-
"duration_ms": 45000,
|
|
110
|
-
"environment": {
|
|
111
|
-
"node_version": "18.20.5",
|
|
112
|
-
"platform": "darwin",
|
|
113
|
-
"ci": true,
|
|
114
|
-
"runner": "github-actions"
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"results": {
|
|
118
|
-
"status": "passed",
|
|
119
|
-
"trust_score": 87,
|
|
120
|
-
"gates": [
|
|
121
|
-
{
|
|
122
|
-
"name": "ui",
|
|
123
|
-
"status": "passed",
|
|
124
|
-
"duration_ms": 2500,
|
|
125
|
-
"metrics": {
|
|
126
|
-
"interactions": 12,
|
|
127
|
-
"coverage_percent": 85,
|
|
128
|
-
"accessibility_score": 92
|
|
129
|
-
},
|
|
130
|
-
"budgets": {
|
|
131
|
-
"max_duration_ms": 5000,
|
|
132
|
-
"min_coverage_percent": 80
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"name": "api",
|
|
137
|
-
"status": "passed",
|
|
138
|
-
"duration_ms": 1200,
|
|
139
|
-
"metrics": {
|
|
140
|
-
"endpoints_tested": 8,
|
|
141
|
-
"response_time_p95": 150,
|
|
142
|
-
"success_rate": 100
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"name": "sast",
|
|
147
|
-
"status": "warn",
|
|
148
|
-
"duration_ms": 800,
|
|
149
|
-
"metrics": {
|
|
150
|
-
"files_scanned": 156,
|
|
151
|
-
"rules_applied": 234
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
],
|
|
155
|
-
"findings": [
|
|
156
|
-
{
|
|
157
|
-
"gate": "sast",
|
|
158
|
-
"severity": "medium",
|
|
159
|
-
"rule": "semgrep:hardcoded-url",
|
|
160
|
-
"location": "/src/config.js:42",
|
|
161
|
-
"message": "Hardcoded URL detected",
|
|
162
|
-
"fingerprint": "abc123def456"
|
|
163
|
-
}
|
|
164
|
-
],
|
|
165
|
-
"coverage": {
|
|
166
|
-
"ui_interactions": 85,
|
|
167
|
-
"api_endpoints": 100,
|
|
168
|
-
"security_rules": 95,
|
|
169
|
-
"overall": 87
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
"artifacts": [
|
|
173
|
-
{
|
|
174
|
-
"label": "proof_pdf",
|
|
175
|
-
"sha256": "def456abc123...",
|
|
176
|
-
"mime_type": "application/pdf",
|
|
177
|
-
"size_bytes": 2415616
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"label": "ui_screenshot_final",
|
|
181
|
-
"sha256": "789abc123def...",
|
|
182
|
-
"mime_type": "image/png",
|
|
183
|
-
"size_bytes": 456789
|
|
184
|
-
}
|
|
185
|
-
],
|
|
186
|
-
"signature": {
|
|
187
|
-
"algorithm": "ed25519",
|
|
188
|
-
"public_key": "302a300506032b657003210012345...",
|
|
189
|
-
"signature": "abcdef123456789...",
|
|
190
|
-
"signed_data_hash": "sha256:fedcba987654321..."
|
|
191
|
-
},
|
|
192
|
-
"verification": {
|
|
193
|
-
"vault_location": ".qa360/vault.db",
|
|
194
|
-
"proof_pdf_sha256": "def456abc123...",
|
|
195
|
-
"qr_code": "https://verify.qa360.ai/proof/a1b2c3d4"
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### PDF Proof Document
|
|
201
|
-
|
|
202
|
-
The PDF proof contains:
|
|
203
|
-
|
|
204
|
-
1. **Executive Summary**
|
|
205
|
-
- Overall test status and trust score
|
|
206
|
-
- Key metrics and findings summary
|
|
207
|
-
- Execution timeline and environment
|
|
208
|
-
|
|
209
|
-
2. **Detailed Results**
|
|
210
|
-
- Gate-by-gate breakdown
|
|
211
|
-
- Performance metrics and budgets
|
|
212
|
-
- Security findings with severity levels
|
|
213
|
-
|
|
214
|
-
3. **Visual Evidence**
|
|
215
|
-
- Screenshots of test execution
|
|
216
|
-
- Charts and graphs of metrics
|
|
217
|
-
- Error highlights and annotations
|
|
218
|
-
|
|
219
|
-
4. **Technical Details**
|
|
220
|
-
- Pack configuration used
|
|
221
|
-
- Environment and tool versions
|
|
222
|
-
- Execution logs and traces
|
|
223
|
-
|
|
224
|
-
5. **Verification Information**
|
|
225
|
-
- Digital signature details
|
|
226
|
-
- QR code for online verification
|
|
227
|
-
- Instructions for proof validation
|
|
228
|
-
|
|
229
|
-
## Verification Process
|
|
230
|
-
|
|
231
|
-
### Command Line Verification
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
# Verify proof from run ID
|
|
235
|
-
qa360 verify <runId>
|
|
236
|
-
|
|
237
|
-
# Verify exported proof bundle
|
|
238
|
-
qa360 verify ./proof-bundle.zip
|
|
239
|
-
|
|
240
|
-
# Verify PDF proof directly
|
|
241
|
-
qa360 verify ./proof.pdf
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
### Programmatic Verification
|
|
245
|
-
|
|
246
|
-
```typescript
|
|
247
|
-
import { verify } from 'crypto';
|
|
248
|
-
import { EvidenceVault } from '@qa360/core';
|
|
249
|
-
|
|
250
|
-
async function verifyProof(runId: string): Promise<boolean> {
|
|
251
|
-
const vault = await EvidenceVault.open('.qa360');
|
|
252
|
-
|
|
253
|
-
// Get run and proof data
|
|
254
|
-
const run = await vault.getRun(runId);
|
|
255
|
-
if (!run || !run.signature_hex) {
|
|
256
|
-
throw new Error('Run not found or not signed');
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// Reconstruct proof JSON
|
|
260
|
-
const [gates, findings, artifacts] = await Promise.all([
|
|
261
|
-
vault.getGates(runId),
|
|
262
|
-
vault.getFindings(runId),
|
|
263
|
-
vault.getRunArtifacts(runId)
|
|
264
|
-
]);
|
|
265
|
-
|
|
266
|
-
const proofData = {
|
|
267
|
-
run_id: runId,
|
|
268
|
-
timestamp: run.started_at,
|
|
269
|
-
// ... reconstruct complete proof object
|
|
270
|
-
};
|
|
271
|
-
|
|
272
|
-
// Verify signature
|
|
273
|
-
const publicKey = await loadPublicKey('.qa360/keys/public.pem');
|
|
274
|
-
const proofJson = JSON.stringify(proofData, null, 2);
|
|
275
|
-
const signature = Buffer.from(run.signature_hex, 'hex');
|
|
276
|
-
|
|
277
|
-
return verify('ed25519', Buffer.from(proofJson), publicKey, signature);
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
### Online Verification
|
|
282
|
-
|
|
283
|
-
```bash
|
|
284
|
-
# Generate verification URL
|
|
285
|
-
qa360 verify --online <runId>
|
|
286
|
-
# Output: https://verify.qa360.ai/proof/a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
|
287
|
-
|
|
288
|
-
# Embed QR code in proof
|
|
289
|
-
qa360 generate-proof --qr-code <runId>
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
## Key Management
|
|
293
|
-
|
|
294
|
-
### Key Generation
|
|
295
|
-
|
|
296
|
-
```bash
|
|
297
|
-
# Generate Ed25519 key pair
|
|
298
|
-
qa360 keys generate --algorithm ed25519
|
|
299
|
-
|
|
300
|
-
# Specify custom location
|
|
301
|
-
qa360 keys generate --output ./custom-keys/
|
|
302
|
-
|
|
303
|
-
# Generate with passphrase protection
|
|
304
|
-
qa360 keys generate --passphrase
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### Key Storage
|
|
308
|
-
|
|
309
|
-
```
|
|
310
|
-
.qa360/keys/
|
|
311
|
-
├── private.pem # Ed25519 private key (600 permissions)
|
|
312
|
-
├── public.pem # Ed25519 public key
|
|
313
|
-
├── key.fingerprint # Key fingerprint for identification
|
|
314
|
-
└── key.metadata.json # Key generation metadata
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Key Rotation
|
|
318
|
-
|
|
319
|
-
```bash
|
|
320
|
-
# Generate new key pair
|
|
321
|
-
qa360 keys rotate
|
|
322
|
-
|
|
323
|
-
# Backup old keys
|
|
324
|
-
qa360 keys backup --output ./key-backup/
|
|
325
|
-
|
|
326
|
-
# Update vault with new key
|
|
327
|
-
qa360 keys update-vault
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
## Trust Score Calculation
|
|
331
|
-
|
|
332
|
-
### Algorithm
|
|
333
|
-
|
|
334
|
-
```typescript
|
|
335
|
-
function calculateTrustScore(gates: GateRecord[], findings: FindingRecord[]): number {
|
|
336
|
-
let score = 100;
|
|
337
|
-
|
|
338
|
-
// Gate failures reduce trust
|
|
339
|
-
gates.forEach(gate => {
|
|
340
|
-
switch (gate.status) {
|
|
341
|
-
case 'failed':
|
|
342
|
-
score -= 20;
|
|
343
|
-
break;
|
|
344
|
-
case 'warn':
|
|
345
|
-
score -= 5;
|
|
346
|
-
break;
|
|
347
|
-
case 'skipped':
|
|
348
|
-
score -= 2;
|
|
349
|
-
break;
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
|
|
353
|
-
// Security findings reduce trust
|
|
354
|
-
findings.forEach(finding => {
|
|
355
|
-
switch (finding.severity) {
|
|
356
|
-
case 'critical':
|
|
357
|
-
score -= 25;
|
|
358
|
-
break;
|
|
359
|
-
case 'high':
|
|
360
|
-
score -= 15;
|
|
361
|
-
break;
|
|
362
|
-
case 'medium':
|
|
363
|
-
score -= 5;
|
|
364
|
-
break;
|
|
365
|
-
case 'low':
|
|
366
|
-
score -= 1;
|
|
367
|
-
break;
|
|
368
|
-
}
|
|
369
|
-
});
|
|
370
|
-
|
|
371
|
-
// Performance budget violations
|
|
372
|
-
gates.forEach(gate => {
|
|
373
|
-
if (gate.budgets_json) {
|
|
374
|
-
const budgets = JSON.parse(gate.budgets_json);
|
|
375
|
-
const metrics = JSON.parse(gate.metrics_json || '{}');
|
|
376
|
-
|
|
377
|
-
// Check budget violations
|
|
378
|
-
if (budgets.max_duration_ms && metrics.duration_ms > budgets.max_duration_ms) {
|
|
379
|
-
score -= 10;
|
|
380
|
-
}
|
|
381
|
-
if (budgets.min_coverage_percent && metrics.coverage_percent < budgets.min_coverage_percent) {
|
|
382
|
-
score -= 15;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
});
|
|
386
|
-
|
|
387
|
-
return Math.max(0, Math.min(100, score));
|
|
388
|
-
}
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
### Trust Levels
|
|
392
|
-
|
|
393
|
-
- **90-100%**: Excellent - Production ready
|
|
394
|
-
- **80-89%**: Good - Minor issues, acceptable for release
|
|
395
|
-
- **70-79%**: Fair - Some concerns, review required
|
|
396
|
-
- **60-69%**: Poor - Significant issues, not recommended
|
|
397
|
-
- **0-59%**: Critical - Major problems, do not release
|
|
398
|
-
|
|
399
|
-
## Compliance & Auditing
|
|
400
|
-
|
|
401
|
-
### Regulatory Requirements
|
|
402
|
-
|
|
403
|
-
QA360 proofs support various compliance frameworks:
|
|
404
|
-
|
|
405
|
-
- **SOC 2**: Evidence of security controls testing
|
|
406
|
-
- **ISO 27001**: Information security management validation
|
|
407
|
-
- **GDPR**: Data protection impact assessments
|
|
408
|
-
- **HIPAA**: Healthcare application security verification
|
|
409
|
-
- **PCI DSS**: Payment system security compliance
|
|
410
|
-
|
|
411
|
-
### Audit Trail
|
|
412
|
-
|
|
413
|
-
```bash
|
|
414
|
-
# Generate audit report
|
|
415
|
-
qa360 audit generate --from "2025-01-01" --to "2025-12-31"
|
|
416
|
-
|
|
417
|
-
# Export compliance evidence
|
|
418
|
-
qa360 audit export --standard soc2 --output ./compliance/
|
|
419
|
-
|
|
420
|
-
# Verify audit trail integrity
|
|
421
|
-
qa360 audit verify --all
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### Evidence Package
|
|
425
|
-
|
|
426
|
-
```
|
|
427
|
-
compliance-package.zip
|
|
428
|
-
├── executive-summary.pdf
|
|
429
|
-
├── detailed-results/
|
|
430
|
-
│ ├── security-testing.pdf
|
|
431
|
-
│ ├── performance-testing.pdf
|
|
432
|
-
│ └── accessibility-testing.pdf
|
|
433
|
-
├── proofs/
|
|
434
|
-
│ ├── proof-run-1.pdf
|
|
435
|
-
│ ├── proof-run-2.pdf
|
|
436
|
-
│ └── ...
|
|
437
|
-
├── verification/
|
|
438
|
-
│ ├── public-keys.pem
|
|
439
|
-
│ ├── signatures.txt
|
|
440
|
-
│ └── verification-instructions.md
|
|
441
|
-
└── metadata/
|
|
442
|
-
├── test-configurations.json
|
|
443
|
-
├── environment-details.json
|
|
444
|
-
└── compliance-mapping.json
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
## Integration Examples
|
|
448
|
-
|
|
449
|
-
### CI/CD Pipeline
|
|
450
|
-
|
|
451
|
-
```yaml
|
|
452
|
-
# GitHub Actions
|
|
453
|
-
name: QA360 Testing with Proof Generation
|
|
454
|
-
|
|
455
|
-
on: [push, pull_request]
|
|
456
|
-
|
|
457
|
-
jobs:
|
|
458
|
-
qa360-test:
|
|
459
|
-
runs-on: ubuntu-latest
|
|
460
|
-
steps:
|
|
461
|
-
- uses: actions/checkout@v3
|
|
462
|
-
|
|
463
|
-
- name: Setup QA360
|
|
464
|
-
run: |
|
|
465
|
-
npm install -g @qa360/cli
|
|
466
|
-
qa360 doctor --fix
|
|
467
|
-
|
|
468
|
-
- name: Run Tests with Proof
|
|
469
|
-
run: |
|
|
470
|
-
qa360 run --pack ./qa360-pack.yml \
|
|
471
|
-
--run-key "ci-${{ github.run_id }}" \
|
|
472
|
-
--sign
|
|
473
|
-
env:
|
|
474
|
-
QA360_SIGNING_KEY: ${{ secrets.QA360_SIGNING_KEY }}
|
|
475
|
-
|
|
476
|
-
- name: Export Proof
|
|
477
|
-
if: always()
|
|
478
|
-
run: |
|
|
479
|
-
RUN_ID=$(qa360 history list --json --limit 1 | jq -r '.[0].id')
|
|
480
|
-
qa360 history export $RUN_ID --bundle ./proof-bundle.zip
|
|
481
|
-
|
|
482
|
-
- name: Upload Proof
|
|
483
|
-
if: always()
|
|
484
|
-
uses: actions/upload-artifact@v3
|
|
485
|
-
with:
|
|
486
|
-
name: qa360-proof
|
|
487
|
-
path: proof-bundle.zip
|
|
488
|
-
|
|
489
|
-
- name: Verify Proof
|
|
490
|
-
run: |
|
|
491
|
-
RUN_ID=$(qa360 history list --json --limit 1 | jq -r '.[0].id')
|
|
492
|
-
qa360 verify $RUN_ID
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
### Release Process
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
#!/bin/bash
|
|
499
|
-
# release-with-proof.sh
|
|
500
|
-
|
|
501
|
-
VERSION=$1
|
|
502
|
-
RUN_KEY="release-$VERSION"
|
|
503
|
-
|
|
504
|
-
echo "🚀 Starting QA360 testing for release $VERSION"
|
|
505
|
-
|
|
506
|
-
# Run comprehensive tests
|
|
507
|
-
qa360 run --pack ./release-pack.yml \
|
|
508
|
-
--run-key "$RUN_KEY" \
|
|
509
|
-
--sign
|
|
510
|
-
|
|
511
|
-
# Get run ID
|
|
512
|
-
RUN_ID=$(qa360 history list --json --limit 1 | jq -r '.[0].id')
|
|
513
|
-
|
|
514
|
-
# Verify proof
|
|
515
|
-
if qa360 verify $RUN_ID; then
|
|
516
|
-
echo "✅ Proof verified successfully"
|
|
517
|
-
else
|
|
518
|
-
echo "❌ Proof verification failed"
|
|
519
|
-
exit 1
|
|
520
|
-
fi
|
|
521
|
-
|
|
522
|
-
# Pin release run
|
|
523
|
-
qa360 history pin $RUN_ID
|
|
524
|
-
|
|
525
|
-
# Export release evidence
|
|
526
|
-
qa360 history export $RUN_ID --bundle "./releases/$VERSION-evidence.zip"
|
|
527
|
-
|
|
528
|
-
echo "📦 Release $VERSION evidence package created"
|
|
529
|
-
echo "🔗 Run ID: $RUN_ID"
|
|
530
|
-
echo "📄 Proof bundle: ./releases/$VERSION-evidence.zip"
|
|
531
|
-
```
|
|
532
|
-
|
|
533
|
-
### Compliance Automation
|
|
534
|
-
|
|
535
|
-
```bash
|
|
536
|
-
#!/bin/bash
|
|
537
|
-
# compliance-check.sh
|
|
538
|
-
|
|
539
|
-
COMPLIANCE_STANDARD=$1 # soc2, iso27001, etc.
|
|
540
|
-
PERIOD_START=$2
|
|
541
|
-
PERIOD_END=$3
|
|
542
|
-
|
|
543
|
-
echo "📋 Generating compliance report for $COMPLIANCE_STANDARD"
|
|
544
|
-
|
|
545
|
-
# Get all runs in period
|
|
546
|
-
qa360 history list --since "$PERIOD_START" \
|
|
547
|
-
--json > runs-$PERIOD_START-$PERIOD_END.json
|
|
548
|
-
|
|
549
|
-
# Verify all proofs
|
|
550
|
-
FAILED_VERIFICATIONS=0
|
|
551
|
-
while read -r run_id; do
|
|
552
|
-
if ! qa360 verify "$run_id"; then
|
|
553
|
-
echo "❌ Verification failed for run: $run_id"
|
|
554
|
-
((FAILED_VERIFICATIONS++))
|
|
555
|
-
fi
|
|
556
|
-
done < <(jq -r '.[].id' runs-$PERIOD_START-$PERIOD_END.json)
|
|
557
|
-
|
|
558
|
-
if [ $FAILED_VERIFICATIONS -eq 0 ]; then
|
|
559
|
-
echo "✅ All proofs verified successfully"
|
|
560
|
-
|
|
561
|
-
# Generate compliance package
|
|
562
|
-
qa360 audit generate --standard "$COMPLIANCE_STANDARD" \
|
|
563
|
-
--from "$PERIOD_START" \
|
|
564
|
-
--to "$PERIOD_END" \
|
|
565
|
-
--output "./compliance/$COMPLIANCE_STANDARD-$(date +%Y%m%d).zip"
|
|
566
|
-
|
|
567
|
-
echo "📦 Compliance package generated"
|
|
568
|
-
else
|
|
569
|
-
echo "❌ $FAILED_VERIFICATIONS proof verification failures"
|
|
570
|
-
exit 1
|
|
571
|
-
fi
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
## Security Considerations
|
|
575
|
-
|
|
576
|
-
### Key Security
|
|
577
|
-
|
|
578
|
-
- Store private keys with restricted permissions (600)
|
|
579
|
-
- Use hardware security modules (HSM) for production
|
|
580
|
-
- Implement key rotation policies
|
|
581
|
-
- Backup keys securely and separately from proofs
|
|
582
|
-
|
|
583
|
-
### Proof Integrity
|
|
584
|
-
|
|
585
|
-
- Verify signatures before trusting proof data
|
|
586
|
-
- Check proof timestamps for replay attacks
|
|
587
|
-
- Validate pack hashes for configuration integrity
|
|
588
|
-
- Cross-reference vault data with proof claims
|
|
589
|
-
|
|
590
|
-
### Distribution Security
|
|
591
|
-
|
|
592
|
-
- Use secure channels for proof distribution
|
|
593
|
-
- Implement access controls for proof archives
|
|
594
|
-
- Log all proof access and verification attempts
|
|
595
|
-
- Consider proof encryption for sensitive environments
|
|
596
|
-
|
|
597
|
-
## Troubleshooting
|
|
598
|
-
|
|
599
|
-
### Common Issues
|
|
600
|
-
|
|
601
|
-
1. **Signature verification fails**
|
|
602
|
-
- Check key pair consistency
|
|
603
|
-
- Verify proof data integrity
|
|
604
|
-
- Ensure correct algorithm (Ed25519)
|
|
605
|
-
|
|
606
|
-
2. **Missing proof artifacts**
|
|
607
|
-
- Check vault integrity
|
|
608
|
-
- Verify CAS file existence
|
|
609
|
-
- Run garbage collection analysis
|
|
610
|
-
|
|
611
|
-
3. **Invalid trust scores**
|
|
612
|
-
- Review gate results and findings
|
|
613
|
-
- Check budget configurations
|
|
614
|
-
- Validate scoring algorithm
|
|
615
|
-
|
|
616
|
-
### Diagnostic Commands
|
|
617
|
-
|
|
618
|
-
```bash
|
|
619
|
-
# Check key integrity
|
|
620
|
-
qa360 keys verify
|
|
621
|
-
|
|
622
|
-
# Validate proof structure
|
|
623
|
-
qa360 verify --validate-only <runId>
|
|
624
|
-
|
|
625
|
-
# Debug signature process
|
|
626
|
-
qa360 verify --debug <runId>
|
|
627
|
-
|
|
628
|
-
# Check vault consistency
|
|
629
|
-
qa360 doctor --vault --proofs
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
## Best Practices
|
|
633
|
-
|
|
634
|
-
### Proof Generation
|
|
635
|
-
|
|
636
|
-
1. **Consistent environments**: Use reproducible test environments
|
|
637
|
-
2. **Comprehensive coverage**: Include all relevant test gates
|
|
638
|
-
3. **Meaningful run keys**: Use descriptive, unique identifiers
|
|
639
|
-
4. **Regular verification**: Verify proofs immediately after generation
|
|
640
|
-
|
|
641
|
-
### Key Management
|
|
642
|
-
|
|
643
|
-
1. **Secure storage**: Protect private keys with appropriate access controls
|
|
644
|
-
2. **Regular rotation**: Implement key rotation schedules
|
|
645
|
-
3. **Backup strategy**: Maintain secure key backups
|
|
646
|
-
4. **Access logging**: Log all key usage and access
|
|
647
|
-
|
|
648
|
-
### Compliance
|
|
649
|
-
|
|
650
|
-
1. **Documentation**: Maintain clear proof generation procedures
|
|
651
|
-
2. **Retention policies**: Define proof retention and disposal policies
|
|
652
|
-
3. **Regular audits**: Verify proof integrity and compliance
|
|
653
|
-
4. **Training**: Ensure team understands proof verification process
|
|
654
|
-
|
|
655
|
-
## Future Enhancements
|
|
656
|
-
|
|
657
|
-
### Planned Features
|
|
658
|
-
|
|
659
|
-
- **Multi-signature support**: Require multiple signatures for critical proofs
|
|
660
|
-
- **Timestamping service**: RFC 3161 timestamp integration
|
|
661
|
-
- **Blockchain anchoring**: Immutable proof registration
|
|
662
|
-
- **Hardware security**: HSM and smart card integration
|
|
663
|
-
- **Zero-knowledge proofs**: Privacy-preserving verification
|
|
664
|
-
|
|
665
|
-
### Integration Roadmap
|
|
666
|
-
|
|
667
|
-
- **PKI integration**: Enterprise certificate authority support
|
|
668
|
-
- **Cloud KMS**: AWS KMS, Azure Key Vault, Google Cloud KMS
|
|
669
|
-
- **Compliance frameworks**: Additional standards support
|
|
670
|
-
- **Verification services**: Hosted verification endpoints
|