qa360 2.1.2 → 2.1.4
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/.BETA_TESTING_FEEDBACK.md +256 -0
- package/.claude/settings.local.json +151 -0
- package/.editorconfig +21 -0
- package/.github/CODEOWNERS +23 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +108 -0
- package/.github/ISSUE_TEMPLATE/feedback_dx.yml +121 -0
- package/.github/dependabot.yml +35 -0
- package/.github/workflows/mcp-dx.yml +106 -0
- package/.github/workflows/release.yml +26 -0
- package/.github/workflows/test.yml +93 -0
- package/.nvmrc +1 -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 +33 -0
- package/CHANGELOG.md +234 -0
- package/CODEOWNERS +43 -0
- package/CONTRIBUTING.md +273 -0
- package/NOVICE_USER_GUIDE.md +272 -0
- package/QUICK_START.md +191 -0
- package/README.md +191 -163
- package/adapters/README.md +62 -0
- package/check-branches.sh +32 -0
- package/cli/CHANGELOG.md +84 -0
- package/cli/LICENSE +24 -0
- package/cli/README.md +222 -0
- package/cli/examples/README.md +160 -0
- package/cli/package.json +76 -0
- package/cli/scripts/bundle-for-npm.sh +51 -0
- package/cli/scripts/validate-package.js +116 -0
- package/cli/src/__tests__/commands/doctor.test.ts +97 -0
- package/cli/src/__tests__/index.test.ts +15 -0
- package/cli/src/cli-minimal.ts +44 -0
- package/cli/src/commands/__tests__/crawl.test.ts +412 -0
- package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +156 -0
- package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +494 -0
- package/cli/src/commands/__tests__/e2e.test.ts +187 -0
- package/cli/src/commands/__tests__/flakiness.test.ts +528 -0
- package/cli/src/commands/__tests__/generate.test.ts +507 -0
- package/cli/src/commands/__tests__/history.integration.test.ts +358 -0
- package/cli/src/commands/__tests__/history.test.ts +433 -0
- package/cli/src/commands/__tests__/monitor-realworld.test.ts +199 -0
- package/cli/src/commands/__tests__/monitor.test.ts +81 -0
- package/cli/src/commands/__tests__/ollama.test.ts +529 -0
- package/cli/src/commands/__tests__/repair.test.ts +225 -0
- package/cli/src/commands/__tests__/report.integration.test.ts +167 -0
- package/cli/src/commands/__tests__/report.test.ts +294 -0
- package/cli/src/commands/__tests__/report.vitest.ts +288 -0
- package/cli/src/commands/__tests__/retry.test.ts +78 -0
- package/cli/src/commands/__tests__/run.integration.test.ts +240 -0
- package/cli/src/commands/__tests__/run.test.ts +346 -0
- package/cli/src/commands/__tests__/run.vitest.ts +301 -0
- package/cli/src/commands/__tests__/secrets.test.ts +114 -0
- package/cli/src/commands/__tests__/serve.test.ts +80 -0
- package/cli/src/commands/__tests__/verify.test.ts +103 -0
- package/cli/src/commands/ai.ts +579 -0
- package/cli/src/commands/ask.ts +678 -0
- package/cli/src/commands/coverage.ts +305 -0
- package/cli/src/commands/crawl.ts +155 -0
- package/cli/src/commands/doctor.ts +610 -0
- package/cli/src/commands/examples.ts +248 -0
- package/cli/src/commands/explain.ts +710 -0
- package/cli/src/commands/flakiness.ts +560 -0
- package/cli/src/commands/generate.ts +566 -0
- package/cli/src/commands/history.ts +914 -0
- package/cli/src/commands/init.ts +763 -0
- package/cli/src/commands/monitor.ts +270 -0
- package/cli/src/commands/ollama.ts +337 -0
- package/cli/src/commands/pack.ts +497 -0
- package/cli/src/commands/regression.ts +400 -0
- package/cli/src/commands/repair.ts +356 -0
- package/cli/src/commands/report.ts +463 -0
- package/cli/src/commands/retry.ts +380 -0
- package/cli/src/commands/run.ts +218 -0
- package/cli/src/commands/scan.ts +177 -0
- package/cli/src/commands/secrets.ts +340 -0
- package/cli/src/commands/serve.ts +194 -0
- package/cli/src/commands/slo.ts +387 -0
- package/cli/src/commands/verify-temp-note.md +11 -0
- package/cli/src/commands/verify.ts +322 -0
- package/cli/src/generators/index.ts +6 -0
- package/cli/src/generators/json-reporter.ts +15 -0
- package/cli/src/generators/test-generator.ts +90 -0
- package/cli/src/index.ts +289 -0
- package/cli/src/scanners/dom-scanner.ts +360 -0
- package/cli/src/scanners/index.ts +5 -0
- package/cli/src/types/scan.ts +84 -0
- package/cli/src/utils/config.ts +145 -0
- package/cli/tsconfig.bundle.json +12 -0
- package/cli/tsconfig.json +23 -0
- package/cli/vitest.config.ts +57 -0
- package/core/LICENSE +24 -0
- package/core/README.md +64 -0
- package/core/package.json +81 -0
- package/core/src/__tests__/adapters-contract/adapters-contract.test.md +156 -0
- package/core/src/__tests__/index.test.ts +31 -0
- package/core/src/__tests__/integration/phase3.test.ts +405 -0
- package/core/src/__tests__/pack/validator.test.ts +312 -0
- package/core/src/__tests__/secrets/crypto.test.ts +190 -0
- package/core/src/__tests__/secrets/manager.test.ts +316 -0
- package/core/src/__tests__/security/redactor-phase3.test.ts +233 -0
- package/core/src/__tests__/serve/health-checker.test.ts +155 -0
- package/core/src/__tests__/serve/process-manager.test.ts +213 -0
- package/core/src/__tests__/serve/server.test.ts +103 -0
- package/core/src/__tests__/vault/cas.test.ts +178 -0
- package/core/src/__tests__/vault/vault.test.ts +296 -0
- package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +452 -0
- package/core/src/adapters/__tests__/k6-perf.test.ts +538 -0
- package/core/src/adapters/__tests__/osv-deps.test.ts +471 -0
- package/core/src/adapters/__tests__/playwright-native-api.test.ts +792 -0
- package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +431 -0
- package/core/src/adapters/__tests__/playwright-ui.test.ts +1073 -0
- package/core/src/adapters/__tests__/semgrep-sast.test.ts +436 -0
- package/core/src/adapters/__tests__/zap-dast.test.ts +453 -0
- package/core/src/adapters/gitleaks-secrets.ts +521 -0
- package/core/src/adapters/k6-perf.ts +479 -0
- package/core/src/adapters/osv-deps.ts +467 -0
- package/core/src/adapters/playwright-native-adapter.ts +472 -0
- package/core/src/adapters/playwright-native-api.ts +619 -0
- package/core/src/adapters/playwright-ui.ts +1088 -0
- package/core/src/adapters/semgrep-sast.ts +410 -0
- package/core/src/adapters/zap-dast.ts +551 -0
- package/core/src/ai/__tests__/deepseek-provider.test.ts +586 -0
- package/core/src/ai/__tests__/ollama-provider.test.ts +641 -0
- package/core/src/ai/anthropic-provider.ts +248 -0
- package/core/src/ai/deepseek-provider.ts +301 -0
- package/core/src/ai/index.ts +87 -0
- package/core/src/ai/llm-client.ts +52 -0
- package/core/src/ai/mock-provider.ts +146 -0
- package/core/src/ai/ollama-provider.ts +255 -0
- package/core/src/ai/openai-provider.ts +226 -0
- package/core/src/ai/provider-factory.ts +408 -0
- package/core/src/artifacts/README.md +78 -0
- package/core/src/artifacts/index.ts +16 -0
- package/core/src/artifacts/ui-artifacts.ts +412 -0
- package/core/src/assertions/__tests__/engine.test.ts +360 -0
- package/core/src/assertions/engine.ts +577 -0
- package/core/src/assertions/index.ts +13 -0
- package/core/src/assertions/types.ts +229 -0
- package/core/src/auth/__tests__/api-key-provider.test.ts +282 -0
- package/core/src/auth/__tests__/auth-manager.test.ts +430 -0
- package/core/src/auth/__tests__/basic-auth-provider.test.ts +364 -0
- package/core/src/auth/__tests__/cloud-providers.test.ts +751 -0
- package/core/src/auth/__tests__/jwt-provider.test.ts +400 -0
- package/core/src/auth/__tests__/oauth2-provider.test.ts +383 -0
- package/core/src/auth/__tests__/totp-provider.test.ts +294 -0
- package/core/src/auth/__tests__/ui-login-provider.test.ts +323 -0
- package/core/src/auth/api-key-provider.ts +75 -0
- package/core/src/auth/aws-iam-provider.ts +212 -0
- package/core/src/auth/azure-ad-provider.ts +126 -0
- package/core/src/auth/basic-auth-provider.ts +133 -0
- package/core/src/auth/gcp-adc-provider.ts +146 -0
- package/core/src/auth/index.ts +342 -0
- package/core/src/auth/jwt-provider.ts +193 -0
- package/core/src/auth/manager.ts +281 -0
- package/core/src/auth/oauth2-provider.ts +141 -0
- package/core/src/auth/totp-provider.ts +163 -0
- package/core/src/auth/ui-login-provider.ts +242 -0
- package/core/src/cache/__tests__/lru-cache.test.ts +564 -0
- package/core/src/cache/index.ts +13 -0
- package/core/src/cache/lru-cache.ts +536 -0
- package/core/src/crawler/__tests__/journey-generator.test.ts +344 -0
- package/core/src/crawler/__tests__/selector-generator.test.ts +211 -0
- package/core/src/crawler/index.ts +335 -0
- package/core/src/crawler/journey-generator.ts +471 -0
- package/core/src/crawler/page-analyzer.ts +857 -0
- package/core/src/crawler/selector-generator.ts +280 -0
- package/core/src/crawler/types.ts +475 -0
- package/core/src/dashboard/__tests__/real-world.test.ts +430 -0
- package/core/src/dashboard/__tests__/server.test.ts +283 -0
- package/core/src/dashboard/__tests__/types.test.ts +208 -0
- package/core/src/dashboard/assets.ts +692 -0
- package/core/src/dashboard/index.ts +17 -0
- package/core/src/dashboard/server.ts +401 -0
- package/core/src/dashboard/types.ts +78 -0
- package/core/src/discoverer/__tests__/test-discoverer.test.ts +444 -0
- package/core/src/discoverer/index.ts +374 -0
- package/core/src/flakiness/__tests__/flakiness.test.ts +554 -0
- package/core/src/flakiness/index.ts +536 -0
- package/core/src/generation/__tests__/code-formatter.test.ts +170 -0
- package/core/src/generation/__tests__/code-generator-contract.test.ts +207 -0
- package/core/src/generation/__tests__/code-generator.test.ts +586 -0
- package/core/src/generation/__tests__/crawler-pack-generator.test.ts +479 -0
- package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +718 -0
- package/core/src/generation/__tests__/generation-integration.test.ts +655 -0
- package/core/src/generation/__tests__/pack-generator.test.ts +408 -0
- package/core/src/generation/__tests__/prompt-builder.test.ts +200 -0
- package/core/src/generation/__tests__/real-provider-integration.test.ts +414 -0
- package/core/src/generation/__tests__/source-analyzer.test.ts +774 -0
- package/core/src/generation/__tests__/test-optimizer.test.ts +255 -0
- package/core/src/generation/code-formatter.ts +408 -0
- package/core/src/generation/code-generator.ts +470 -0
- package/core/src/generation/crawler-pack-generator.ts +289 -0
- package/core/src/generation/generator.ts +113 -0
- package/core/src/generation/index.ts +59 -0
- package/core/src/generation/pack-generator.ts +527 -0
- package/core/src/generation/prompt-builder.ts +772 -0
- package/core/src/generation/source-analyzer.ts +830 -0
- package/core/src/generation/test-optimizer.ts +474 -0
- package/core/src/generation/types.ts +217 -0
- package/core/src/hooks/__tests__/compose.test.ts +636 -0
- package/core/src/hooks/__tests__/runner.test.ts +478 -0
- package/core/src/hooks/compose.ts +268 -0
- package/core/src/hooks/runner.ts +364 -0
- package/core/src/index.ts +237 -0
- package/core/src/pack/__tests__/migrator.test.ts +594 -0
- package/core/src/pack/__tests__/validator.test.ts +759 -0
- package/core/src/pack/migrator.ts +353 -0
- package/core/src/pack/validator.ts +359 -0
- package/core/src/pack-v2/__tests__/loader.test.ts +533 -0
- package/core/src/pack-v2/__tests__/migrator.test.ts +455 -0
- package/core/src/pack-v2/__tests__/validator.test.ts +549 -0
- package/core/src/pack-v2/index.ts +41 -0
- package/core/src/pack-v2/loader.ts +321 -0
- package/core/src/pack-v2/migrator.ts +540 -0
- package/core/src/pack-v2/validator.ts +673 -0
- package/core/src/parallel/README.md +143 -0
- package/core/src/parallel/index.ts +16 -0
- package/core/src/parallel/parallel-runner.ts +282 -0
- package/core/src/proof/__tests__/proof-roundtrip.test.ts +149 -0
- package/core/src/proof/__tests__/schema-validation-manual.mjs +211 -0
- package/core/src/proof/__tests__/schema-validation.test.ts +336 -0
- package/core/src/proof/__tests__/signer.test.ts +486 -0
- package/core/src/proof/__tests__/temporal-regression.test.ts +537 -0
- package/core/src/proof/__tests__/verifier-advanced.test.ts +588 -0
- package/core/src/proof/__tests__/verifier.test.ts +413 -0
- package/core/src/proof/bundle.ts +290 -0
- package/core/src/proof/canonicalize.ts +116 -0
- package/core/src/proof/index.ts +74 -0
- package/core/src/proof/schema.ts +285 -0
- package/core/src/proof/signer.ts +293 -0
- package/core/src/proof/verifier.ts +380 -0
- package/core/src/regression/__tests__/detector.test.ts +396 -0
- package/core/src/regression/__tests__/trend-analyzer.test.ts +300 -0
- package/core/src/regression/detector.ts +629 -0
- package/core/src/regression/index.ts +34 -0
- package/core/src/regression/trend-analyzer.ts +468 -0
- package/core/src/regression/types.ts +295 -0
- package/core/src/regression/vault.ts +419 -0
- package/core/src/repair/__tests__/repairer.test.ts +572 -0
- package/core/src/repair/__tests__/types.test.ts +302 -0
- package/core/src/repair/engine/__tests__/fixer.test.ts +482 -0
- package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +395 -0
- package/core/src/repair/engine/fixer.ts +271 -0
- package/core/src/repair/engine/suggestion-engine.ts +234 -0
- package/core/src/repair/index.ts +53 -0
- package/core/src/repair/repairer.ts +376 -0
- package/core/src/repair/types.ts +119 -0
- package/core/src/repair/utils/__tests__/error-analyzer.test.ts +454 -0
- package/core/src/repair/utils/error-analyzer.ts +308 -0
- package/core/src/reporting/README.md +144 -0
- package/core/src/reporting/html-reporter.ts +835 -0
- package/core/src/reporting/index.ts +16 -0
- package/core/src/retry/README.md +192 -0
- package/core/src/retry/__tests__/flakiness-integration.test.ts +475 -0
- package/core/src/retry/__tests__/retry-engine.test.ts +424 -0
- package/core/src/retry/flakiness-integration.ts +267 -0
- package/core/src/retry/index.ts +48 -0
- package/core/src/retry/retry-engine.ts +368 -0
- package/core/src/retry/types.ts +208 -0
- package/core/src/retry/vault.ts +413 -0
- package/core/src/runner/__tests__/flakiness-integration.test.ts +566 -0
- package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +218 -0
- package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +199 -0
- package/core/src/runner/__tests__/phase3-runner.test.ts +1118 -0
- package/core/src/runner/e2e-helpers.ts +216 -0
- package/core/src/runner/phase3-runner.ts +1236 -0
- package/core/src/schemas/gherkin-report.json +122 -0
- package/core/src/secrets/__tests__/crypto.test.ts +180 -0
- package/core/src/secrets/crypto.ts +289 -0
- package/core/src/secrets/manager.ts +272 -0
- package/core/src/security/__tests__/hardening.test.ts +480 -0
- package/core/src/security/redaction-patterns-extended.ts +278 -0
- package/core/src/security/redactor.ts +326 -0
- package/core/src/self-healing/assertion-healer.ts +485 -0
- package/core/src/self-healing/engine.ts +626 -0
- package/core/src/self-healing/index.ts +33 -0
- package/core/src/self-healing/selector-healer.ts +488 -0
- package/core/src/self-healing/types.ts +193 -0
- package/core/src/serve/diagnostics-collector.ts +201 -0
- package/core/src/serve/health-checker.ts +274 -0
- package/core/src/serve/index.ts +9 -0
- package/core/src/serve/metrics-collector.ts +386 -0
- package/core/src/serve/process-manager.ts +265 -0
- package/core/src/serve/server.ts +230 -0
- package/core/src/slo/config.ts +408 -0
- package/core/src/slo/index.ts +68 -0
- package/core/src/slo/sli-calculator.ts +474 -0
- package/core/src/slo/slo-tracker.ts +481 -0
- package/core/src/slo/types.ts +408 -0
- package/core/src/slo/vault.ts +600 -0
- package/core/src/tui/__tests__/monitor.test.ts +336 -0
- package/core/src/tui/__tests__/real-world.test.ts +376 -0
- package/core/src/tui/__tests__/renderer.test.ts +201 -0
- package/core/src/tui/__tests__/types.test.ts +295 -0
- package/core/src/tui/index.ts +19 -0
- package/core/src/tui/monitor.ts +331 -0
- package/core/src/tui/renderer.ts +269 -0
- package/core/src/tui/types.ts +68 -0
- package/core/src/types/pack-v1.ts +305 -0
- package/core/src/types/pack-v2.ts +491 -0
- package/core/src/types/trust-score.ts +258 -0
- package/core/src/vault/__tests__/flakiness-vault.test.ts +562 -0
- package/core/src/vault/__tests__/vault.test.ts +259 -0
- package/core/src/vault/cas.ts +323 -0
- package/core/src/vault/index.ts +1361 -0
- package/core/src/vault/schema.sql +168 -0
- package/core/src/visual/README.md +185 -0
- package/core/src/visual/index.ts +14 -0
- package/core/src/visual/visual-regression.ts +347 -0
- package/core/src/watch/__tests__/watch-mode.test.ts +192 -0
- package/core/src/watch/index.ts +14 -0
- package/core/src/watch/watch-mode.ts +565 -0
- package/core/tsconfig.json +12 -0
- package/core/vitest.config.ts +52 -0
- package/docs/ARCHITECTURE.md +901 -0
- package/docs/AUDIT-GLOBAL-DEC2025.md +271 -0
- package/docs/BETA_TESTING.md +257 -0
- package/docs/BETA_TESTING_PLAN.md +727 -0
- package/docs/CERTIFICATION-REPORT.md +142 -0
- package/docs/COMPLETE_AUDIT_REFACTORING.md +965 -0
- package/docs/DEVELOPMENT.md +331 -0
- package/docs/DEVELOPMENT_HISTORY.md +345 -0
- package/docs/LIMITATIONS.md +176 -0
- package/docs/MIGRATION.md +303 -0
- package/docs/OPTION_3_4_EXPLORATION.md +1257 -0
- package/docs/PHASE1_PERFORMANCE.md +144 -0
- package/docs/QA360_Cloud.postman_collection.json +89 -0
- package/docs/README.md +50 -0
- package/docs/STATUS.md +179 -0
- package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +615 -0
- package/docs/USER_GUIDE.md +687 -0
- package/docs/WORK-DONE-ADAPTER-TESTS.md +136 -0
- package/docs/adapters-security.md +485 -0
- package/docs/architecture-diagram.mmd +168 -0
- package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +396 -0
- package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +324 -0
- package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +644 -0
- package/docs/archive/ARCH-01_NEXT_STEPS.md +60 -0
- package/docs/archive/BRANCH_PROTECTION.md +183 -0
- package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +222 -0
- package/docs/archive/HANDOFF_TEST-01.md +669 -0
- package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +372 -0
- package/docs/archive/NODE_UPGRADE_GUIDE.md +188 -0
- package/docs/archive/PHASE1_COMPLETION.md +386 -0
- package/docs/archive/PHASE2_COMPLETION.md +404 -0
- package/docs/archive/PHASE3_AND_4_FINAL.md +360 -0
- package/docs/archive/PHASE3_COMPLETE.md +301 -0
- package/docs/archive/PHASE3_STATUS.md +255 -0
- package/docs/archive/PRE-WEEK2-AUDIT.md +364 -0
- package/docs/archive/README.md +33 -0
- package/docs/archive/SCHEMA_AJV_2020_FIX.md +245 -0
- package/docs/archive/TEST-01_AUDIT_REPORT.md +240 -0
- package/docs/archive/TEST-01_COVERAGE_PLAN.md +423 -0
- package/docs/budgets-advanced.md +308 -0
- package/docs/examples/history-export-gc.md +285 -0
- package/docs/examples/pack-v2-complete.yaml +158 -0
- package/docs/examples/pack-v2-quickstart.yaml +24 -0
- package/docs/examples/pack-v2-ui-login.yaml +81 -0
- package/docs/examples/qa360-report.json +50 -0
- package/docs/history.md +565 -0
- package/docs/hooks.md +304 -0
- package/docs/llm-providers.md +419 -0
- package/docs/mcp-server.md +651 -0
- package/docs/mcp-tools.md +1131 -0
- package/docs/pack-v1.md +383 -0
- package/docs/pack-v2.md +558 -0
- package/docs/proofs.md +670 -0
- package/docs/quickstart-5min.md +257 -0
- package/docs/readiness-ci.md +654 -0
- package/docs/rfc/README.md +20 -0
- package/docs/rfc/proof-bundle-v1.md +787 -0
- package/docs/secrets.md +392 -0
- package/docs/serve.md +494 -0
- package/docs/vault.md +491 -0
- package/e2e/qa360-e2e.test.ts +696 -0
- package/e2e/vitest.config.ts +18 -0
- package/examples/README.md +30 -140
- package/examples/ci/docker-compose-serve.yml +375 -0
- package/examples/ci/github-actions-serve.yml +345 -0
- package/examples/ci/gitlab-ci-serve.yml +407 -0
- package/examples/datasets/README.md +101 -0
- package/examples/datasets/b2bshop.ts +155 -0
- package/examples/datasets/index.ts +57 -0
- package/examples/datasets/reqres.ts +195 -0
- package/examples/future-api/README.md +16 -0
- package/examples/future-api/diag.js +7 -0
- package/examples/future-api/health.js +4 -0
- package/examples/future-api/packs.js +13 -0
- package/examples/future-api/runpack.js +10 -0
- package/examples/generation/README.md +148 -0
- package/examples/generation/pack-generator-example.js +115 -0
- package/examples/generation/source-analyzer-example.js +115 -0
- package/examples/httpbin/pack.yml +59 -0
- package/examples/load-testing/mcp-load.yml +115 -0
- package/examples/load-testing/mcp-stdio.yml +95 -0
- package/examples/mcp/claude-desktop-config.json +33 -0
- package/examples/mcp/claude-desktop.json +16 -0
- package/examples/mcp/conversation-sample.md +131 -0
- package/examples/mcp/demo-60s.md +330 -0
- package/examples/mcp/sample-conversation.jsonl +21 -0
- package/examples/mcp/vscode-settings.json +22 -0
- package/examples/pack-v2-complete.yml +242 -0
- package/examples/pack-v2-examples.md +244 -0
- package/examples/pack-v2-quickstart.yml +55 -0
- package/examples/packs-business/ecommerce-api.yml +121 -0
- package/examples/packs-business/saas-dashboard-ui.yml +133 -0
- package/examples/packs-conformance/compose-multi.yml +174 -0
- package/examples/packs-conformance/full.yml +152 -0
- package/examples/packs-conformance/heavy-artifacts.yml +152 -0
- package/examples/packs-conformance/minimal.yml +71 -0
- package/examples/packs-conformance/secrets-missing.yml +97 -0
- package/examples/packs-conformance/timeouts.yml +77 -0
- package/examples/proofs/e2e-playwright-proof.json +75 -0
- package/examples/proofs/httpbin-proof.json +69 -0
- package/examples/proofs/multi-adapter-proof.json +117 -0
- package/examples/proofs/test-proof.json +26 -0
- package/examples/restful-api-dev/README.md +102 -0
- package/examples/restful-api-dev/restful-api-advanced.yml +29 -0
- package/examples/restful-api-dev/restful-api-basic.yml +29 -0
- package/examples/web-lite/.github/workflows/qa360-phase3.yml +73 -0
- package/examples/web-lite/api-mock/server.js +258 -0
- package/examples/web-lite/pack.yml +71 -0
- package/examples/web-lite/services.yml +43 -0
- package/examples/web-lite/web-content/healthz +1 -0
- package/examples/web-lite/web-content/index.html +259 -0
- package/package.json +55 -45
- package/packages/mcp/CHANGELOG.md +109 -0
- package/packages/mcp/IMPLEMENTATION_SUMMARY.md +350 -0
- package/packages/mcp/LICENSE +21 -0
- package/packages/mcp/QUICK_START.md +291 -0
- package/packages/mcp/README.md +294 -0
- package/packages/mcp/TELEMETRY.md +220 -0
- package/packages/mcp/package.json +92 -0
- package/packages/mcp/scripts/generate-sbom-fallback.cjs +84 -0
- package/packages/mcp/scripts/safe-postinstall.cjs +32 -0
- package/packages/mcp/src/__tests__/contract.test.ts +902 -0
- package/packages/mcp/src/cli/cli.ts +137 -0
- package/packages/mcp/src/cli/doctor.ts +286 -0
- package/packages/mcp/src/cli/fix.ts +99 -0
- package/packages/mcp/src/cli/init.ts +233 -0
- package/packages/mcp/src/cli/postinstall.ts +14 -0
- package/packages/mcp/src/cli/reset.ts +44 -0
- package/packages/mcp/src/cli/telemetry.ts +166 -0
- package/packages/mcp/src/cli/test-dx.ts +94 -0
- package/packages/mcp/src/cli/uninstall.ts +80 -0
- package/packages/mcp/src/cli/up.ts +178 -0
- package/packages/mcp/src/index.ts +12 -0
- package/packages/mcp/src/scripts/e2e-local.ts +337 -0
- package/packages/mcp/src/scripts/verify-settings.ts +242 -0
- package/packages/mcp/src/security/audit.ts +244 -0
- package/packages/mcp/src/security/manager.ts +242 -0
- package/packages/mcp/src/server/full-server.ts +212 -0
- package/packages/mcp/src/server/minimal-server.ts +134 -0
- package/packages/mcp/src/tools/history.ts +388 -0
- package/packages/mcp/src/tools/pack.ts +449 -0
- package/packages/mcp/src/tools/registry.ts +638 -0
- package/packages/mcp/src/tools/report.ts +100 -0
- package/packages/mcp/src/tools/run.ts +268 -0
- package/packages/mcp/src/tools/secrets.ts +198 -0
- package/packages/mcp/src/tools/serve.ts +221 -0
- package/packages/mcp/src/tools/triage.ts +532 -0
- package/packages/mcp/src/tools/types.ts +26 -0
- package/packages/mcp/src/tools/vault.ts +164 -0
- package/packages/mcp/src/tools/verify.ts +166 -0
- package/packages/mcp/src/types/index.ts +311 -0
- package/packages/mcp/src/types/mcp-stubs.ts +83 -0
- package/packages/mcp/tsconfig.json +16 -0
- package/playwright.config.ts +20 -0
- package/pnpm-workspace.yaml +4 -0
- package/run-test-and-push.sh +20 -0
- package/scripts/build-proof-cli.sh +110 -0
- package/scripts/ci/check-windows-paths.js +92 -0
- package/scripts/ci/invariants.sh +124 -0
- package/scripts/ci/make-final-bundle.js +106 -0
- package/scripts/ci/mcp-run-multipack.js +305 -0
- package/scripts/ci/run-pack-suite.sh +103 -0
- package/scripts/ci/run-phase7-final.sh +190 -0
- package/scripts/ci/slo-assert.js +158 -0
- package/scripts/ci/test-fault-tolerance.sh +301 -0
- package/scripts/install-mcp.sh +66 -0
- package/scripts/mcp-smoke.mjs +27 -0
- package/scripts/smoke.sh +26 -0
- package/scripts/stress-test.js +288 -0
- package/scripts/validate-examples.mjs +404 -0
- package/scripts/validation/simple-pack-check.sh +51 -0
- package/scripts/validation/validate-universal-pack.mjs +77 -0
- package/scripts/verify-persistence.js +127 -0
- package/test-pack.yaml +43 -0
- package/test-results/.last-run.json +4 -0
- package/test-runner.mjs +87 -0
- package/tests/artifacts.spec.js +147 -0
- package/tests/contracts.spec.js +239 -0
- package/tests/e2e/assertions.test.mjs +370 -0
- package/tests/e2e/crawler.test.mjs +451 -0
- package/tests/e2e/playwright-plus-plus.test.mjs +604 -0
- package/tests/e2e/proof-bundle.test.mjs +258 -0
- package/tests/e2e/real-world/saucedemo.test.mjs +714 -0
- package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +760 -0
- package/tests/e2e/ui-actions.test.mjs +546 -0
- package/tests/gherkin.e2e.spec.ts +310 -0
- package/tests/no-console-errors.spec.js +136 -0
- package/tests/pdf.spec.ts +252 -0
- package/tests/run-pack.spec.ts +58 -0
- package/tsconfig.base.json +15 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +37 -0
- package/tsconfig.test.json +18 -0
- package/typedoc.json +37 -0
- package/ui/README.md +51 -0
- package/verify-proof.mjs +60 -0
- package/dist/cli-minimal.d.ts +0 -6
- package/dist/cli-minimal.js +0 -36
- package/dist/commands/ai.d.ts +0 -41
- package/dist/commands/ai.js +0 -511
- package/dist/commands/ask.d.ts +0 -94
- package/dist/commands/ask.js +0 -582
- package/dist/commands/coverage.d.ts +0 -8
- package/dist/commands/coverage.js +0 -252
- package/dist/commands/crawl.d.ts +0 -24
- package/dist/commands/crawl.js +0 -121
- package/dist/commands/doctor.d.ts +0 -54
- package/dist/commands/doctor.js +0 -513
- package/dist/commands/examples.d.ts +0 -33
- package/dist/commands/examples.js +0 -193
- package/dist/commands/explain.d.ts +0 -27
- package/dist/commands/explain.js +0 -630
- package/dist/commands/flakiness.d.ts +0 -73
- package/dist/commands/flakiness.js +0 -435
- package/dist/commands/generate.d.ts +0 -66
- package/dist/commands/generate.js +0 -438
- package/dist/commands/history.d.ts +0 -76
- package/dist/commands/history.js +0 -757
- package/dist/commands/init.d.ts +0 -106
- package/dist/commands/init.js +0 -599
- package/dist/commands/monitor.d.ts +0 -27
- package/dist/commands/monitor.js +0 -225
- package/dist/commands/ollama.d.ts +0 -40
- package/dist/commands/ollama.js +0 -301
- package/dist/commands/pack.d.ts +0 -70
- package/dist/commands/pack.js +0 -413
- package/dist/commands/regression.d.ts +0 -8
- package/dist/commands/regression.js +0 -340
- package/dist/commands/repair.d.ts +0 -26
- package/dist/commands/repair.js +0 -307
- package/dist/commands/report.d.ts +0 -62
- package/dist/commands/report.js +0 -378
- package/dist/commands/retry.d.ts +0 -43
- package/dist/commands/retry.js +0 -275
- package/dist/commands/run.d.ts +0 -41
- package/dist/commands/run.js +0 -169
- package/dist/commands/scan.d.ts +0 -5
- package/dist/commands/scan.js +0 -155
- package/dist/commands/secrets.d.ts +0 -58
- package/dist/commands/secrets.js +0 -289
- package/dist/commands/serve.d.ts +0 -13
- package/dist/commands/serve.js +0 -156
- package/dist/commands/slo.d.ts +0 -8
- package/dist/commands/slo.js +0 -327
- package/dist/commands/verify.d.ts +0 -32
- package/dist/commands/verify.js +0 -278
- package/dist/core/adapters/gitleaks-secrets.d.ts +0 -114
- package/dist/core/adapters/gitleaks-secrets.js +0 -410
- package/dist/core/adapters/k6-perf.d.ts +0 -85
- package/dist/core/adapters/k6-perf.js +0 -398
- package/dist/core/adapters/osv-deps.d.ts +0 -123
- package/dist/core/adapters/osv-deps.js +0 -372
- package/dist/core/adapters/playwright-native-adapter.d.ts +0 -121
- package/dist/core/adapters/playwright-native-adapter.js +0 -339
- package/dist/core/adapters/playwright-native-api.d.ts +0 -183
- package/dist/core/adapters/playwright-native-api.js +0 -461
- package/dist/core/adapters/playwright-ui.d.ts +0 -197
- package/dist/core/adapters/playwright-ui.js +0 -840
- package/dist/core/adapters/semgrep-sast.d.ts +0 -99
- package/dist/core/adapters/semgrep-sast.js +0 -322
- package/dist/core/adapters/zap-dast.d.ts +0 -133
- package/dist/core/adapters/zap-dast.js +0 -424
- package/dist/core/ai/anthropic-provider.d.ts +0 -50
- package/dist/core/ai/anthropic-provider.js +0 -211
- package/dist/core/ai/deepseek-provider.d.ts +0 -81
- package/dist/core/ai/deepseek-provider.js +0 -254
- package/dist/core/ai/index.d.ts +0 -60
- package/dist/core/ai/index.js +0 -18
- package/dist/core/ai/llm-client.d.ts +0 -45
- package/dist/core/ai/llm-client.js +0 -7
- package/dist/core/ai/mock-provider.d.ts +0 -49
- package/dist/core/ai/mock-provider.js +0 -121
- package/dist/core/ai/ollama-provider.d.ts +0 -78
- package/dist/core/ai/ollama-provider.js +0 -192
- package/dist/core/ai/openai-provider.d.ts +0 -48
- package/dist/core/ai/openai-provider.js +0 -188
- package/dist/core/ai/provider-factory.d.ts +0 -160
- package/dist/core/ai/provider-factory.js +0 -269
- package/dist/core/artifacts/index.d.ts +0 -6
- package/dist/core/artifacts/index.js +0 -6
- package/dist/core/artifacts/ui-artifacts.d.ts +0 -133
- package/dist/core/artifacts/ui-artifacts.js +0 -304
- package/dist/core/assertions/engine.d.ts +0 -51
- package/dist/core/assertions/engine.js +0 -530
- package/dist/core/assertions/index.d.ts +0 -11
- package/dist/core/assertions/index.js +0 -11
- package/dist/core/assertions/types.d.ts +0 -121
- package/dist/core/assertions/types.js +0 -37
- package/dist/core/auth/api-key-provider.d.ts +0 -16
- package/dist/core/auth/api-key-provider.js +0 -63
- package/dist/core/auth/aws-iam-provider.d.ts +0 -35
- package/dist/core/auth/aws-iam-provider.js +0 -177
- package/dist/core/auth/azure-ad-provider.d.ts +0 -15
- package/dist/core/auth/azure-ad-provider.js +0 -99
- package/dist/core/auth/basic-auth-provider.d.ts +0 -26
- package/dist/core/auth/basic-auth-provider.js +0 -111
- package/dist/core/auth/gcp-adc-provider.d.ts +0 -27
- package/dist/core/auth/gcp-adc-provider.js +0 -126
- package/dist/core/auth/index.d.ts +0 -238
- package/dist/core/auth/index.js +0 -82
- package/dist/core/auth/jwt-provider.d.ts +0 -19
- package/dist/core/auth/jwt-provider.js +0 -160
- package/dist/core/auth/manager.d.ts +0 -84
- package/dist/core/auth/manager.js +0 -230
- package/dist/core/auth/oauth2-provider.d.ts +0 -17
- package/dist/core/auth/oauth2-provider.js +0 -114
- package/dist/core/auth/totp-provider.d.ts +0 -31
- package/dist/core/auth/totp-provider.js +0 -134
- package/dist/core/auth/ui-login-provider.d.ts +0 -26
- package/dist/core/auth/ui-login-provider.js +0 -198
- package/dist/core/cache/index.d.ts +0 -7
- package/dist/core/cache/index.js +0 -6
- package/dist/core/cache/lru-cache.d.ts +0 -203
- package/dist/core/cache/lru-cache.js +0 -397
- package/dist/core/core/coverage/analyzer.d.ts +0 -101
- package/dist/core/core/coverage/analyzer.js +0 -415
- package/dist/core/core/coverage/collector.d.ts +0 -74
- package/dist/core/core/coverage/collector.js +0 -459
- package/dist/core/core/coverage/config.d.ts +0 -37
- package/dist/core/core/coverage/config.js +0 -156
- package/dist/core/core/coverage/index.d.ts +0 -11
- package/dist/core/core/coverage/index.js +0 -15
- package/dist/core/core/coverage/types.d.ts +0 -267
- package/dist/core/core/coverage/types.js +0 -6
- package/dist/core/core/coverage/vault.d.ts +0 -95
- package/dist/core/core/coverage/vault.js +0 -405
- package/dist/core/coverage/analyzer.d.ts +0 -101
- package/dist/core/coverage/analyzer.js +0 -415
- package/dist/core/coverage/collector.d.ts +0 -74
- package/dist/core/coverage/collector.js +0 -459
- package/dist/core/coverage/config.d.ts +0 -37
- package/dist/core/coverage/config.js +0 -156
- package/dist/core/coverage/index.d.ts +0 -11
- package/dist/core/coverage/index.js +0 -15
- package/dist/core/coverage/types.d.ts +0 -267
- package/dist/core/coverage/types.js +0 -6
- package/dist/core/coverage/vault.d.ts +0 -95
- package/dist/core/coverage/vault.js +0 -405
- package/dist/core/crawler/index.d.ts +0 -57
- package/dist/core/crawler/index.js +0 -281
- package/dist/core/crawler/journey-generator.d.ts +0 -49
- package/dist/core/crawler/journey-generator.js +0 -412
- package/dist/core/crawler/page-analyzer.d.ts +0 -88
- package/dist/core/crawler/page-analyzer.js +0 -709
- package/dist/core/crawler/selector-generator.d.ts +0 -34
- package/dist/core/crawler/selector-generator.js +0 -240
- package/dist/core/crawler/types.d.ts +0 -353
- package/dist/core/crawler/types.js +0 -6
- package/dist/core/dashboard/assets.d.ts +0 -6
- package/dist/core/dashboard/assets.js +0 -690
- package/dist/core/dashboard/index.d.ts +0 -6
- package/dist/core/dashboard/index.js +0 -5
- package/dist/core/dashboard/server.d.ts +0 -72
- package/dist/core/dashboard/server.js +0 -354
- package/dist/core/dashboard/types.d.ts +0 -70
- package/dist/core/dashboard/types.js +0 -5
- package/dist/core/discoverer/index.d.ts +0 -115
- package/dist/core/discoverer/index.js +0 -250
- package/dist/core/flakiness/index.d.ts +0 -228
- package/dist/core/flakiness/index.js +0 -384
- package/dist/core/generation/code-formatter.d.ts +0 -111
- package/dist/core/generation/code-formatter.js +0 -307
- package/dist/core/generation/code-generator.d.ts +0 -144
- package/dist/core/generation/code-generator.js +0 -293
- package/dist/core/generation/crawler-pack-generator.d.ts +0 -44
- package/dist/core/generation/crawler-pack-generator.js +0 -231
- package/dist/core/generation/generator.d.ts +0 -40
- package/dist/core/generation/generator.js +0 -76
- package/dist/core/generation/index.d.ts +0 -32
- package/dist/core/generation/index.js +0 -30
- package/dist/core/generation/pack-generator.d.ts +0 -107
- package/dist/core/generation/pack-generator.js +0 -416
- package/dist/core/generation/prompt-builder.d.ts +0 -132
- package/dist/core/generation/prompt-builder.js +0 -672
- package/dist/core/generation/source-analyzer.d.ts +0 -213
- package/dist/core/generation/source-analyzer.js +0 -657
- package/dist/core/generation/test-optimizer.d.ts +0 -117
- package/dist/core/generation/test-optimizer.js +0 -328
- package/dist/core/generation/types.d.ts +0 -214
- package/dist/core/generation/types.js +0 -4
- package/dist/core/hooks/compose.d.ts +0 -61
- package/dist/core/hooks/compose.js +0 -225
- package/dist/core/hooks/runner.d.ts +0 -68
- package/dist/core/hooks/runner.js +0 -303
- package/dist/core/index.d.ts +0 -104
- package/dist/core/index.js +0 -91
- package/dist/core/pack/migrator.d.ts +0 -51
- package/dist/core/pack/migrator.js +0 -304
- package/dist/core/pack/validator.d.ts +0 -42
- package/dist/core/pack/validator.js +0 -322
- package/dist/core/pack-v2/index.d.ts +0 -9
- package/dist/core/pack-v2/index.js +0 -8
- package/dist/core/pack-v2/loader.d.ts +0 -62
- package/dist/core/pack-v2/loader.js +0 -259
- package/dist/core/pack-v2/migrator.d.ts +0 -61
- package/dist/core/pack-v2/migrator.js +0 -480
- package/dist/core/pack-v2/validator.d.ts +0 -61
- package/dist/core/pack-v2/validator.js +0 -577
- package/dist/core/parallel/index.d.ts +0 -6
- package/dist/core/parallel/index.js +0 -6
- package/dist/core/parallel/parallel-runner.d.ts +0 -107
- package/dist/core/parallel/parallel-runner.js +0 -192
- package/dist/core/proof/bundle.d.ts +0 -137
- package/dist/core/proof/bundle.js +0 -160
- package/dist/core/proof/canonicalize.d.ts +0 -47
- package/dist/core/proof/canonicalize.js +0 -105
- package/dist/core/proof/index.d.ts +0 -13
- package/dist/core/proof/index.js +0 -18
- package/dist/core/proof/schema.d.ts +0 -217
- package/dist/core/proof/schema.js +0 -263
- package/dist/core/proof/signer.d.ts +0 -111
- package/dist/core/proof/signer.js +0 -226
- package/dist/core/proof/verifier.d.ts +0 -97
- package/dist/core/proof/verifier.js +0 -308
- package/dist/core/regression/detector.d.ts +0 -107
- package/dist/core/regression/detector.js +0 -497
- package/dist/core/regression/index.d.ts +0 -9
- package/dist/core/regression/index.js +0 -11
- package/dist/core/regression/trend-analyzer.d.ts +0 -102
- package/dist/core/regression/trend-analyzer.js +0 -345
- package/dist/core/regression/types.d.ts +0 -222
- package/dist/core/regression/types.js +0 -7
- package/dist/core/regression/vault.d.ts +0 -87
- package/dist/core/regression/vault.js +0 -289
- package/dist/core/repair/engine/fixer.d.ts +0 -24
- package/dist/core/repair/engine/fixer.js +0 -226
- package/dist/core/repair/engine/suggestion-engine.d.ts +0 -18
- package/dist/core/repair/engine/suggestion-engine.js +0 -187
- package/dist/core/repair/index.d.ts +0 -10
- package/dist/core/repair/index.js +0 -13
- package/dist/core/repair/repairer.d.ts +0 -90
- package/dist/core/repair/repairer.js +0 -284
- package/dist/core/repair/types.d.ts +0 -91
- package/dist/core/repair/types.js +0 -6
- package/dist/core/repair/utils/error-analyzer.d.ts +0 -28
- package/dist/core/repair/utils/error-analyzer.js +0 -264
- package/dist/core/reporting/html-reporter.d.ts +0 -119
- package/dist/core/reporting/html-reporter.js +0 -737
- package/dist/core/reporting/index.d.ts +0 -6
- package/dist/core/reporting/index.js +0 -6
- package/dist/core/retry/flakiness-integration.d.ts +0 -60
- package/dist/core/retry/flakiness-integration.js +0 -228
- package/dist/core/retry/index.d.ts +0 -14
- package/dist/core/retry/index.js +0 -16
- package/dist/core/retry/retry-engine.d.ts +0 -80
- package/dist/core/retry/retry-engine.js +0 -296
- package/dist/core/retry/types.d.ts +0 -178
- package/dist/core/retry/types.js +0 -52
- package/dist/core/retry/vault.d.ts +0 -77
- package/dist/core/retry/vault.js +0 -304
- package/dist/core/runner/e2e-helpers.d.ts +0 -102
- package/dist/core/runner/e2e-helpers.js +0 -153
- package/dist/core/runner/phase3-runner.d.ts +0 -200
- package/dist/core/runner/phase3-runner.js +0 -1039
- package/dist/core/secrets/crypto.d.ts +0 -75
- package/dist/core/secrets/crypto.js +0 -223
- package/dist/core/secrets/manager.d.ts +0 -76
- package/dist/core/secrets/manager.js +0 -219
- package/dist/core/security/redaction-patterns-extended.d.ts +0 -27
- package/dist/core/security/redaction-patterns-extended.js +0 -247
- package/dist/core/security/redactor.d.ts +0 -71
- package/dist/core/security/redactor.js +0 -279
- package/dist/core/self-healing/assertion-healer.d.ts +0 -97
- package/dist/core/self-healing/assertion-healer.js +0 -371
- package/dist/core/self-healing/engine.d.ts +0 -122
- package/dist/core/self-healing/engine.js +0 -538
- package/dist/core/self-healing/index.d.ts +0 -10
- package/dist/core/self-healing/index.js +0 -11
- package/dist/core/self-healing/selector-healer.d.ts +0 -103
- package/dist/core/self-healing/selector-healer.js +0 -372
- package/dist/core/self-healing/types.d.ts +0 -152
- package/dist/core/self-healing/types.js +0 -6
- package/dist/core/serve/diagnostics-collector.d.ts +0 -32
- package/dist/core/serve/diagnostics-collector.js +0 -149
- package/dist/core/serve/health-checker.d.ts +0 -44
- package/dist/core/serve/health-checker.js +0 -219
- package/dist/core/serve/index.d.ts +0 -8
- package/dist/core/serve/index.js +0 -8
- package/dist/core/serve/metrics-collector.d.ts +0 -24
- package/dist/core/serve/metrics-collector.js +0 -322
- package/dist/core/serve/process-manager.d.ts +0 -36
- package/dist/core/serve/process-manager.js +0 -213
- package/dist/core/serve/server.d.ts +0 -36
- package/dist/core/serve/server.js +0 -191
- package/dist/core/slo/config.d.ts +0 -107
- package/dist/core/slo/config.js +0 -360
- package/dist/core/slo/index.d.ts +0 -11
- package/dist/core/slo/index.js +0 -15
- package/dist/core/slo/sli-calculator.d.ts +0 -92
- package/dist/core/slo/sli-calculator.js +0 -364
- package/dist/core/slo/slo-tracker.d.ts +0 -148
- package/dist/core/slo/slo-tracker.js +0 -379
- package/dist/core/slo/types.d.ts +0 -281
- package/dist/core/slo/types.js +0 -7
- package/dist/core/slo/vault.d.ts +0 -102
- package/dist/core/slo/vault.js +0 -427
- package/dist/core/tui/index.d.ts +0 -7
- package/dist/core/tui/index.js +0 -6
- package/dist/core/tui/monitor.d.ts +0 -92
- package/dist/core/tui/monitor.js +0 -271
- package/dist/core/tui/renderer.d.ts +0 -33
- package/dist/core/tui/renderer.js +0 -218
- package/dist/core/tui/types.d.ts +0 -63
- package/dist/core/tui/types.js +0 -5
- package/dist/core/types/pack-v1.d.ts +0 -251
- package/dist/core/types/pack-v1.js +0 -5
- package/dist/core/types/pack-v2.d.ts +0 -425
- package/dist/core/types/pack-v2.js +0 -8
- package/dist/core/types/trust-score.d.ts +0 -69
- package/dist/core/types/trust-score.js +0 -191
- package/dist/core/vault/cas.d.ts +0 -90
- package/dist/core/vault/cas.js +0 -261
- package/dist/core/vault/index.d.ts +0 -326
- package/dist/core/vault/index.js +0 -1042
- package/dist/core/visual/index.d.ts +0 -6
- package/dist/core/visual/index.js +0 -6
- package/dist/core/visual/visual-regression.d.ts +0 -113
- package/dist/core/visual/visual-regression.js +0 -236
- package/dist/core/watch/index.d.ts +0 -7
- package/dist/core/watch/index.js +0 -6
- package/dist/core/watch/watch-mode.d.ts +0 -213
- package/dist/core/watch/watch-mode.js +0 -389
- package/dist/generators/index.d.ts +0 -5
- package/dist/generators/index.js +0 -5
- package/dist/generators/json-reporter.d.ts +0 -10
- package/dist/generators/json-reporter.js +0 -12
- package/dist/generators/test-generator.d.ts +0 -18
- package/dist/generators/test-generator.js +0 -78
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -246
- package/dist/scanners/dom-scanner.d.ts +0 -52
- package/dist/scanners/dom-scanner.js +0 -296
- package/dist/scanners/index.d.ts +0 -4
- package/dist/scanners/index.js +0 -4
- package/dist/schemas/pack.schema.json +0 -236
- package/dist/types/scan.d.ts +0 -68
- package/dist/types/scan.js +0 -4
- package/dist/utils/config.d.ts +0 -5
- package/dist/utils/config.js +0 -136
- /package/{bin → cli/bin}/qa360.js +0 -0
- /package/{examples → cli/examples}/accessibility.yml +0 -0
- /package/{examples → cli/examples}/api-basic.yml +0 -0
- /package/{examples → cli/examples}/complete.yml +0 -0
- /package/{examples → cli/examples}/crawler.yml +0 -0
- /package/{examples → cli/examples}/fullstack.yml +0 -0
- /package/{examples → cli/examples}/security.yml +0 -0
- /package/{examples → cli/examples}/ui-advanced.yml +0 -0
- /package/{examples → cli/examples}/ui-basic.yml +0 -0
- /package/{dist/core → core}/schemas/pack.schema.json +0 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
# 📊 TEST-01 COVERAGE PLAN - DAY 3
|
|
2
|
+
|
|
3
|
+
**Date**: December 23, 2024
|
|
4
|
+
**Current Status**: Baseline established
|
|
5
|
+
**Target**: 80% overall coverage
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📈 CURRENT COVERAGE BASELINE
|
|
10
|
+
|
|
11
|
+
### Overall Metrics
|
|
12
|
+
- **Statements**: 8.54%
|
|
13
|
+
- **Branches**: 4.75%
|
|
14
|
+
- **Functions**: 9.05%
|
|
15
|
+
- **Lines**: 8.62%
|
|
16
|
+
|
|
17
|
+
**Status**: 🔴 Critical - Needs significant work
|
|
18
|
+
|
|
19
|
+
### By Package Analysis
|
|
20
|
+
|
|
21
|
+
| Package | Statements | Branches | Functions | Lines | Status |
|
|
22
|
+
|---------|-----------|----------|-----------|-------|--------|
|
|
23
|
+
| **core** | ~5-10% | ~2-5% | ~5-10% | ~5-10% | 🔴 CRITICAL |
|
|
24
|
+
| **cli** | ~10-15% | ~5-10% | ~10-15% | ~10-15% | 🔴 CRITICAL |
|
|
25
|
+
| **mcp** | N/A | N/A | N/A | N/A | ⚪ Not tested |
|
|
26
|
+
|
|
27
|
+
Legend:
|
|
28
|
+
- 🔴 <60% - Needs significant work (CURRENT STATE)
|
|
29
|
+
- 🟡 60-75% - Needs improvement
|
|
30
|
+
- 🟢 >75% - Good baseline
|
|
31
|
+
|
|
32
|
+
### Coverage Highlights
|
|
33
|
+
**What IS tested (195 passing tests):**
|
|
34
|
+
- ✅ CLI doctor command (QA360Doctor)
|
|
35
|
+
- ✅ Proof system (bundle, schema, canonicalize) - **63% coverage**
|
|
36
|
+
- ✅ CLI utilities and helpers
|
|
37
|
+
- ✅ Configuration loading
|
|
38
|
+
|
|
39
|
+
**What is NOT tested (0% coverage):**
|
|
40
|
+
- ❌ All adapters (Playwright, k6, Semgrep, ZAP, OSV, Gitleaks)
|
|
41
|
+
- ❌ Evidence Vault (sqlite3)
|
|
42
|
+
- ❌ Secrets management (crypto, manager)
|
|
43
|
+
- ❌ Security redactor
|
|
44
|
+
- ❌ Server/observability endpoints
|
|
45
|
+
- ❌ Hooks runner & compose
|
|
46
|
+
- ❌ Pack validation & migration
|
|
47
|
+
- ❌ CLI commands (run, verify, serve, report, secrets, ask)
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 🎯 COVERAGE TARGETS
|
|
52
|
+
|
|
53
|
+
### Day 4 Goals (Aggressive but Achievable)
|
|
54
|
+
| Package | Current | Day 4 Target | Gap | Priority |
|
|
55
|
+
|---------|---------|--------------|-----|----------|
|
|
56
|
+
| **core** | ~8% | 60% | +52% | 🔥 CRITICAL |
|
|
57
|
+
| **cli** | ~12% | 50% | +38% | 🔥 HIGH |
|
|
58
|
+
| **mcp** | 0% | 30% | +30% | 🟡 MEDIUM |
|
|
59
|
+
| **Overall** | 8.54% | 55% | +46.5% | 🔥 CRITICAL |
|
|
60
|
+
|
|
61
|
+
### Week 2 Final Targets
|
|
62
|
+
- Core: 80%
|
|
63
|
+
- CLI: 75%
|
|
64
|
+
- MCP: 70%
|
|
65
|
+
- Overall: 75%
|
|
66
|
+
|
|
67
|
+
**Rationale**: Day 4 establishes foundation (55%), Day 5 pushes to target (75%)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 🚨 CRITICAL GAPS (0% Coverage)
|
|
72
|
+
|
|
73
|
+
### Core Package - ZERO Coverage Files
|
|
74
|
+
1. **core/src/adapters/** (ALL 7 adapters - 0%)
|
|
75
|
+
- `playwright-api.ts` (328 lines) - API testing adapter
|
|
76
|
+
- `playwright-ui.ts` (445 lines) - UI testing adapter
|
|
77
|
+
- `k6-perf.ts` (474 lines) - Performance testing
|
|
78
|
+
- `semgrep-sast.ts` (405 lines) - SAST scanning
|
|
79
|
+
- `gitleaks-secrets.ts` (514 lines) - Secrets scanning
|
|
80
|
+
- `zap-dast.ts` (543 lines) - DAST scanning
|
|
81
|
+
- `osv-deps.ts` (460 lines) - Dependency scanning
|
|
82
|
+
|
|
83
|
+
2. **core/src/vault/** (Evidence storage - 0%)
|
|
84
|
+
- `index.ts` (663 lines) - SQLite vault operations
|
|
85
|
+
- `cas.ts` (314 lines) - Content-addressable storage
|
|
86
|
+
|
|
87
|
+
3. **core/src/secrets/** (0%)
|
|
88
|
+
- `crypto.ts` (293 lines) - AES-256 encryption
|
|
89
|
+
- `manager.ts` (269 lines) - Secrets CRUD
|
|
90
|
+
|
|
91
|
+
4. **core/src/security/** (0%)
|
|
92
|
+
- `redactor.ts` (319 lines) - PII masking
|
|
93
|
+
- `redaction-patterns-extended.ts` (277 lines)
|
|
94
|
+
|
|
95
|
+
5. **core/src/serve/** (Observability - 0%)
|
|
96
|
+
- `server.ts` (228 lines) - HTTP server
|
|
97
|
+
- `health-checker.ts` (271 lines) - Health checks
|
|
98
|
+
- `diagnostics-collector.ts` (199 lines)
|
|
99
|
+
- `metrics-collector.ts` (383 lines)
|
|
100
|
+
- `process-manager.ts` (263 lines)
|
|
101
|
+
|
|
102
|
+
6. **core/src/hooks/** (0%)
|
|
103
|
+
- `runner.ts` (362 lines) - Hook execution
|
|
104
|
+
- `compose.ts` (266 lines) - Docker Compose
|
|
105
|
+
|
|
106
|
+
7. **core/src/pack/** (0%)
|
|
107
|
+
- `validator.ts` (321 lines) - Pack validation
|
|
108
|
+
- `migrator.ts` (351 lines) - Pack migration
|
|
109
|
+
|
|
110
|
+
8. **core/src/runner/** (0%)
|
|
111
|
+
- `phase3-runner.ts` (454 lines) - Advanced orchestration
|
|
112
|
+
|
|
113
|
+
9. **core/src/types/** (0%)
|
|
114
|
+
- `trust-score.ts` (253 lines) - Trust calculations
|
|
115
|
+
|
|
116
|
+
### CLI Package - ZERO Coverage Commands
|
|
117
|
+
1. **cli/src/commands/** (Most commands 0%)
|
|
118
|
+
- `run.ts` (379 lines) - Main execution command
|
|
119
|
+
- `verify.ts` (284 lines) - Proof verification
|
|
120
|
+
- `serve.ts` (192 lines) - Server command
|
|
121
|
+
- `report.ts` (440 lines) - Report generation
|
|
122
|
+
- `secrets.ts` (328 lines) - Secrets management
|
|
123
|
+
- `ask.ts` (356 lines) - AI test generation
|
|
124
|
+
- `history.ts` (387 lines) - Run history
|
|
125
|
+
|
|
126
|
+
**Total untested files: ~40+ files with 0% coverage**
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## ⚠️ LOW COVERAGE (<50%)
|
|
131
|
+
|
|
132
|
+
### Files Needing Significant Testing
|
|
133
|
+
1. **core/src/proof/signer.ts** (35.8%)
|
|
134
|
+
- Sign operations: 64% uncovered
|
|
135
|
+
- Ed25519 signature generation
|
|
136
|
+
- Private key operations
|
|
137
|
+
|
|
138
|
+
2. **core/src/proof/verifier.ts** (43.05%)
|
|
139
|
+
- Verify operations: 57% uncovered
|
|
140
|
+
- Signature validation
|
|
141
|
+
- Certificate chain verification
|
|
142
|
+
|
|
143
|
+
3. **core/src/index.ts** (0% - exports only)
|
|
144
|
+
- Main package exports
|
|
145
|
+
- Low priority (mostly re-exports)
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 📋 DAY 4 ACTION PLAN
|
|
150
|
+
|
|
151
|
+
### Phase 1: Core Foundations (4 hours)
|
|
152
|
+
|
|
153
|
+
#### High Priority - Critical Path Testing
|
|
154
|
+
- [ ] **Proof System** (90 min)
|
|
155
|
+
- Complete signer.ts coverage (35% → 80%)
|
|
156
|
+
- Complete verifier.ts coverage (43% → 80%)
|
|
157
|
+
- Target: Proof system to 75% overall
|
|
158
|
+
|
|
159
|
+
- [ ] **Vault Operations** (60 min)
|
|
160
|
+
- Test vault CRUD (store, retrieve, list)
|
|
161
|
+
- Test CAS operations
|
|
162
|
+
- Mock sqlite3 appropriately
|
|
163
|
+
- Target: vault/ to 60%
|
|
164
|
+
|
|
165
|
+
- [ ] **Secrets Management** (45 min)
|
|
166
|
+
- Test crypto encrypt/decrypt
|
|
167
|
+
- Test manager CRUD operations
|
|
168
|
+
- Target: secrets/ to 60%
|
|
169
|
+
|
|
170
|
+
- [ ] **Pack Validation** (45 min)
|
|
171
|
+
- Test validator.ts (schema checks)
|
|
172
|
+
- Test basic validation flows
|
|
173
|
+
- Target: pack/ to 50%
|
|
174
|
+
|
|
175
|
+
### Phase 2: CLI Commands (3 hours)
|
|
176
|
+
|
|
177
|
+
#### Medium Priority - User-Facing Features
|
|
178
|
+
- [ ] **doctor command** (30 min)
|
|
179
|
+
- Already well tested (✅)
|
|
180
|
+
- Add edge case tests
|
|
181
|
+
- Target: 90%+
|
|
182
|
+
|
|
183
|
+
- [ ] **run command** (60 min)
|
|
184
|
+
- Test basic execution flow
|
|
185
|
+
- Mock adapters
|
|
186
|
+
- Test error handling
|
|
187
|
+
- Target: 50%
|
|
188
|
+
|
|
189
|
+
- [ ] **verify command** (45 min)
|
|
190
|
+
- Test proof verification flow
|
|
191
|
+
- Integration with proof system
|
|
192
|
+
- Target: 50%
|
|
193
|
+
|
|
194
|
+
- [ ] **serve command** (45 min)
|
|
195
|
+
- Test server startup
|
|
196
|
+
- Mock endpoints
|
|
197
|
+
- Target: 40%
|
|
198
|
+
|
|
199
|
+
### Phase 3: Quick Wins (2 hours)
|
|
200
|
+
|
|
201
|
+
#### Low Priority - Easy Coverage Boosts
|
|
202
|
+
- [ ] **Security Redactor** (30 min)
|
|
203
|
+
- Test pattern matching
|
|
204
|
+
- Test redaction logic
|
|
205
|
+
- Target: 60%
|
|
206
|
+
|
|
207
|
+
- [ ] **Adapters Smoke Tests** (60 min)
|
|
208
|
+
- Basic instantiation tests for all 7
|
|
209
|
+
- Mock external tools
|
|
210
|
+
- Target: 20% each (just structure)
|
|
211
|
+
|
|
212
|
+
- [ ] **Type Utilities** (30 min)
|
|
213
|
+
- Test trust-score calculations
|
|
214
|
+
- Pure logic, easy to test
|
|
215
|
+
- Target: 70%
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 🎯 TESTING STRATEGY
|
|
220
|
+
|
|
221
|
+
### Unit Tests Focus
|
|
222
|
+
**Pure Logic (Easy):**
|
|
223
|
+
- ✅ Proof canonicalization (already 90%)
|
|
224
|
+
- ✅ Proof schema validation (already 96%)
|
|
225
|
+
- 🎯 Trust score calculations
|
|
226
|
+
- 🎯 Security redaction patterns
|
|
227
|
+
- 🎯 Pack validation rules
|
|
228
|
+
|
|
229
|
+
**Core Operations (Medium):**
|
|
230
|
+
- 🎯 Vault CRUD (mock sqlite3)
|
|
231
|
+
- 🎯 Secrets encrypt/decrypt (real crypto)
|
|
232
|
+
- 🎯 Proof sign/verify (real Ed25519)
|
|
233
|
+
- 🎯 Pack migration logic
|
|
234
|
+
|
|
235
|
+
**Integrations (Hard):**
|
|
236
|
+
- 🎯 CLI command flows
|
|
237
|
+
- 🎯 Adapter orchestration
|
|
238
|
+
- 🎯 Server endpoints
|
|
239
|
+
|
|
240
|
+
### Integration Tests
|
|
241
|
+
**Critical Paths:**
|
|
242
|
+
- 🎯 Full run → vault → report flow
|
|
243
|
+
- 🎯 Sign → verify → bundle flow
|
|
244
|
+
- 🎯 Doctor → fix → validate flow
|
|
245
|
+
|
|
246
|
+
### Mock Strategy
|
|
247
|
+
**What to Mock:**
|
|
248
|
+
- ✅ File system operations (fs.readFile, writeFile)
|
|
249
|
+
- ✅ External tools (playwright, k6, zap, etc.)
|
|
250
|
+
- ✅ Network calls (HTTP requests)
|
|
251
|
+
- ✅ Child processes (spawn, exec)
|
|
252
|
+
|
|
253
|
+
**What to Keep Real:**
|
|
254
|
+
- ✅ Crypto operations (Ed25519, AES-256)
|
|
255
|
+
- ✅ SQLite in-memory (use :memory:)
|
|
256
|
+
- ✅ Core logic (proof, validation)
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 🚀 QUICK WINS FOR DAY 4
|
|
261
|
+
|
|
262
|
+
### 1. Proof System (Already 63% - Easy Push)
|
|
263
|
+
**File**: `core/src/proof/signer.ts`
|
|
264
|
+
**Effort**: 30 min
|
|
265
|
+
**Impact**: +10% overall
|
|
266
|
+
**Why**: Core functionality, pure logic, already partially tested
|
|
267
|
+
|
|
268
|
+
### 2. Proof System (Part 2)
|
|
269
|
+
**File**: `core/src/proof/verifier.ts`
|
|
270
|
+
**Effort**: 30 min
|
|
271
|
+
**Impact**: +10% overall
|
|
272
|
+
**Why**: Completes proof system to 80%+
|
|
273
|
+
|
|
274
|
+
### 3. Security Redactor
|
|
275
|
+
**File**: `core/src/security/redactor.ts`
|
|
276
|
+
**Effort**: 30 min
|
|
277
|
+
**Impact**: +5% overall
|
|
278
|
+
**Why**: Pure string manipulation, easy test cases
|
|
279
|
+
|
|
280
|
+
### 4. Trust Score Calculations
|
|
281
|
+
**File**: `core/src/types/trust-score.ts`
|
|
282
|
+
**Effort**: 30 min
|
|
283
|
+
**Impact**: +3% overall
|
|
284
|
+
**Why**: Pure math, no dependencies
|
|
285
|
+
|
|
286
|
+
### 5. Pack Validator Basics
|
|
287
|
+
**File**: `core/src/pack/validator.ts`
|
|
288
|
+
**Effort**: 45 min
|
|
289
|
+
**Impact**: +5% overall
|
|
290
|
+
**Why**: Schema validation, clear test cases
|
|
291
|
+
|
|
292
|
+
### 6. Vault Smoke Tests
|
|
293
|
+
**File**: `core/src/vault/index.ts`
|
|
294
|
+
**Effort**: 45 min
|
|
295
|
+
**Impact**: +8% overall
|
|
296
|
+
**Why**: Critical path, use in-memory sqlite
|
|
297
|
+
|
|
298
|
+
### 7. Secrets Crypto
|
|
299
|
+
**File**: `core/src/secrets/crypto.ts`
|
|
300
|
+
**Effort**: 30 min
|
|
301
|
+
**Impact**: +4% overall
|
|
302
|
+
**Why**: Encryption/decryption, testable
|
|
303
|
+
|
|
304
|
+
### 8. CLI Run Command Basics
|
|
305
|
+
**File**: `cli/src/commands/run.ts`
|
|
306
|
+
**Effort**: 45 min
|
|
307
|
+
**Impact**: +6% overall
|
|
308
|
+
**Why**: Main user command, high visibility
|
|
309
|
+
|
|
310
|
+
**Total Quick Wins**: 51% potential coverage gain in ~5 hours
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## 🎯 SUCCESS CRITERIA (DAY 4)
|
|
315
|
+
|
|
316
|
+
### Primary Goals
|
|
317
|
+
- [ ] **Overall coverage: 55%+** (current 8.54%)
|
|
318
|
+
- [ ] **Core proof system: 75%+** (current 63%)
|
|
319
|
+
- [ ] **Vault operations: 60%+** (current 0%)
|
|
320
|
+
- [ ] **Secrets management: 60%+** (current 0%)
|
|
321
|
+
- [ ] **CLI doctor: 90%+** (current ~80%)
|
|
322
|
+
|
|
323
|
+
### Secondary Goals
|
|
324
|
+
- [ ] All critical paths have at least smoke tests
|
|
325
|
+
- [ ] No 0% coverage in core proof/vault/secrets
|
|
326
|
+
- [ ] Pack validation basics covered
|
|
327
|
+
- [ ] CLI run command basics covered
|
|
328
|
+
|
|
329
|
+
### Stretch Goals
|
|
330
|
+
- [ ] Overall coverage: 60%+
|
|
331
|
+
- [ ] 2+ adapters with smoke tests (20%+)
|
|
332
|
+
- [ ] Server health checks tested
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## 📊 ESTIMATED EFFORT
|
|
337
|
+
|
|
338
|
+
### By Area
|
|
339
|
+
| Area | Tests Needed | Est. Time | Impact |
|
|
340
|
+
|------|--------------|-----------|--------|
|
|
341
|
+
| **Proof completion** | 10 tests | 1 hour | +20% |
|
|
342
|
+
| **Vault basics** | 15 tests | 1.5 hours | +8% |
|
|
343
|
+
| **Secrets basics** | 10 tests | 1 hour | +4% |
|
|
344
|
+
| **Pack validation** | 8 tests | 1 hour | +5% |
|
|
345
|
+
| **CLI commands** | 20 tests | 2 hours | +10% |
|
|
346
|
+
| **Quick wins** | 15 tests | 1.5 hours | +8% |
|
|
347
|
+
|
|
348
|
+
**Total Day 4**: ~60-70 new tests, 8 hours, targeting 55% coverage
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## 📝 TESTING PRIORITIES
|
|
353
|
+
|
|
354
|
+
### 🔥 P0 - Must Have (Day 4)
|
|
355
|
+
1. Proof signer/verifier completion
|
|
356
|
+
2. Vault CRUD operations
|
|
357
|
+
3. Secrets encryption
|
|
358
|
+
4. CLI run command basics
|
|
359
|
+
|
|
360
|
+
### 🔶 P1 - Should Have (Day 4-5)
|
|
361
|
+
1. Pack validation
|
|
362
|
+
2. Security redactor
|
|
363
|
+
3. Trust score calculations
|
|
364
|
+
4. CLI verify command
|
|
365
|
+
5. Adapter smoke tests
|
|
366
|
+
|
|
367
|
+
### 🟡 P2 - Nice to Have (Day 5+)
|
|
368
|
+
1. Server endpoints
|
|
369
|
+
2. Hooks runner
|
|
370
|
+
3. Process manager
|
|
371
|
+
4. CLI report generation
|
|
372
|
+
5. Full adapter coverage
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## 🎓 LESSONS LEARNED
|
|
377
|
+
|
|
378
|
+
### What Worked Well
|
|
379
|
+
- ✅ Doctor command has good test coverage
|
|
380
|
+
- ✅ Proof system partially covered (63%)
|
|
381
|
+
- ✅ Test infrastructure stable (195/195 passing)
|
|
382
|
+
|
|
383
|
+
### What Needs Attention
|
|
384
|
+
- ⚠️ 40+ files with 0% coverage
|
|
385
|
+
- ⚠️ Adapters completely untested
|
|
386
|
+
- ⚠️ Vault/secrets (critical paths) untested
|
|
387
|
+
- ⚠️ Most CLI commands untested
|
|
388
|
+
|
|
389
|
+
### Key Insights
|
|
390
|
+
1. **Focus on pure logic first** (proof, crypto, validation)
|
|
391
|
+
2. **Mock external dependencies** (fs, network, tools)
|
|
392
|
+
3. **Use in-memory sqlite** for vault tests
|
|
393
|
+
4. **Test critical paths** (run → vault → report)
|
|
394
|
+
5. **Quick wins matter** (8% → 55% is achievable in Day 4)
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## 📈 COVERAGE ROADMAP
|
|
399
|
+
|
|
400
|
+
### Day 4 Target: 55%
|
|
401
|
+
- Proof: 75%
|
|
402
|
+
- Vault: 60%
|
|
403
|
+
- Secrets: 60%
|
|
404
|
+
- Pack: 50%
|
|
405
|
+
- CLI: 40%
|
|
406
|
+
|
|
407
|
+
### Day 5 Target: 75%
|
|
408
|
+
- Core: 80%
|
|
409
|
+
- CLI: 75%
|
|
410
|
+
- Adapters: 40%
|
|
411
|
+
- Server: 60%
|
|
412
|
+
|
|
413
|
+
### Week 2 Final: 80%
|
|
414
|
+
- Core: 85%
|
|
415
|
+
- CLI: 80%
|
|
416
|
+
- MCP: 70%
|
|
417
|
+
- Adapters: 60%
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
**Coverage baseline established by TEST-01 on Day 3**
|
|
422
|
+
**Status**: 🔴 8.54% → 🟢 Target 55% (Day 4)
|
|
423
|
+
**Ready for**: Aggressive coverage push on Day 4
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
# QA360 Phase 4 - Budgets Avancés & Trust Score
|
|
2
|
+
|
|
3
|
+
Guide complet des budgets granulaires et du système de Trust Score pondéré.
|
|
4
|
+
|
|
5
|
+
## 📊 Schéma Budgets Avancés
|
|
6
|
+
|
|
7
|
+
### Structure Complète
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
version: 1
|
|
11
|
+
name: "enterprise-app"
|
|
12
|
+
gates: ["ui", "api", "perf", "a11y", "sast", "deps", "secrets", "dast"]
|
|
13
|
+
|
|
14
|
+
budgets:
|
|
15
|
+
perf:
|
|
16
|
+
p95_ms: 800 # P95 response time budget
|
|
17
|
+
p90_ms: 600 # P90 response time budget
|
|
18
|
+
p50_ms: 300 # P50 response time budget
|
|
19
|
+
max_errors_rate: 0.1 # 10% max error rate
|
|
20
|
+
|
|
21
|
+
a11y:
|
|
22
|
+
min_score: 90 # Minimum accessibility score
|
|
23
|
+
max_violations:
|
|
24
|
+
critical: 0 # Zero critical violations
|
|
25
|
+
serious: 2 # Max 2 serious violations
|
|
26
|
+
moderate: 5 # Max 5 moderate violations
|
|
27
|
+
minor: 10 # Max 10 minor violations
|
|
28
|
+
|
|
29
|
+
security:
|
|
30
|
+
sast: # Static Application Security Testing
|
|
31
|
+
max_high: 0 # Zero high severity findings
|
|
32
|
+
max_critical: 0 # Zero critical findings
|
|
33
|
+
max_medium: 3 # Max 3 medium findings
|
|
34
|
+
|
|
35
|
+
deps: # Dependency vulnerabilities
|
|
36
|
+
max_high: 0 # Zero high severity vulns
|
|
37
|
+
max_critical: 0 # Zero critical vulns
|
|
38
|
+
max_medium: 2 # Max 2 medium vulns
|
|
39
|
+
|
|
40
|
+
secrets: # Secret detection
|
|
41
|
+
max_findings: 0 # Zero secrets in code
|
|
42
|
+
|
|
43
|
+
dast: # Dynamic Application Security Testing
|
|
44
|
+
max_high: 0 # Zero high severity alerts
|
|
45
|
+
max_critical: 0 # Zero critical alerts
|
|
46
|
+
max_medium: 1 # Max 1 medium alert
|
|
47
|
+
timeout_ms: 300000 # 5 minutes ZAP scan timeout
|
|
48
|
+
|
|
49
|
+
execution:
|
|
50
|
+
on_failure: "continue" # continue | stop
|
|
51
|
+
mode: "strict" # strict | soft
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Modes d'Exécution
|
|
55
|
+
|
|
56
|
+
#### Mode Strict (Défaut)
|
|
57
|
+
```yaml
|
|
58
|
+
execution:
|
|
59
|
+
mode: "strict"
|
|
60
|
+
```
|
|
61
|
+
- Échec immédiat si budget dépassé
|
|
62
|
+
- Exit code 1 pour CI/CD
|
|
63
|
+
- Blocage du pipeline
|
|
64
|
+
|
|
65
|
+
#### Mode Soft
|
|
66
|
+
```yaml
|
|
67
|
+
execution:
|
|
68
|
+
mode: "soft"
|
|
69
|
+
```
|
|
70
|
+
- Transformation en warnings
|
|
71
|
+
- Dégradation du Trust Score
|
|
72
|
+
- Pipeline continue
|
|
73
|
+
|
|
74
|
+
## 🎯 Trust Score Pondéré
|
|
75
|
+
|
|
76
|
+
### Pondération Par Défaut
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
const DEFAULT_WEIGHTS = {
|
|
80
|
+
ui: 20, // Tests UI/UX
|
|
81
|
+
api: 20, // Tests API
|
|
82
|
+
perf: 15, // Performance
|
|
83
|
+
a11y: 10, // Accessibilité
|
|
84
|
+
sast: 15, // Sécurité statique
|
|
85
|
+
deps: 10, // Vulnérabilités dépendances
|
|
86
|
+
secrets: 5, // Détection secrets
|
|
87
|
+
dast: 5 // Sécurité dynamique
|
|
88
|
+
};
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Personnalisation Weights
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Via CLI
|
|
95
|
+
qa360 run --url <url> --weights "ui:25,api:25,perf:20,sast:20,dast:10"
|
|
96
|
+
|
|
97
|
+
# Via pack.yml
|
|
98
|
+
weights:
|
|
99
|
+
ui: 25
|
|
100
|
+
api: 25
|
|
101
|
+
perf: 20
|
|
102
|
+
sast: 20
|
|
103
|
+
dast: 10
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Calcul Trust Score
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Trust Score = Σ(Gate Score × Weight) / 100
|
|
110
|
+
|
|
111
|
+
Exemple:
|
|
112
|
+
- UI: 85% × 20% = 17.0
|
|
113
|
+
- API: 90% × 20% = 18.0
|
|
114
|
+
- Perf: 75% × 15% = 11.25
|
|
115
|
+
- A11y: 95% × 10% = 9.5
|
|
116
|
+
- SAST: 100% × 15% = 15.0
|
|
117
|
+
- Deps: 100% × 10% = 10.0
|
|
118
|
+
- Secrets: 100% × 5% = 5.0
|
|
119
|
+
- DAST: 90% × 5% = 4.5
|
|
120
|
+
|
|
121
|
+
Trust Score = 90.25%
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 🔧 Exemples par Secteur
|
|
125
|
+
|
|
126
|
+
### E-commerce
|
|
127
|
+
```yaml
|
|
128
|
+
budgets:
|
|
129
|
+
perf:
|
|
130
|
+
p95_ms: 500 # Performance critique
|
|
131
|
+
max_errors_rate: 0.01
|
|
132
|
+
a11y:
|
|
133
|
+
min_score: 95 # Accessibilité légale
|
|
134
|
+
security:
|
|
135
|
+
sast:
|
|
136
|
+
max_high: 0 # Sécurité paiements
|
|
137
|
+
dast:
|
|
138
|
+
max_high: 0
|
|
139
|
+
|
|
140
|
+
weights:
|
|
141
|
+
perf: 30 # Performance prioritaire
|
|
142
|
+
ui: 25
|
|
143
|
+
sast: 20 # Sécurité critique
|
|
144
|
+
api: 15
|
|
145
|
+
dast: 10
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### SaaS B2B
|
|
149
|
+
```yaml
|
|
150
|
+
budgets:
|
|
151
|
+
perf:
|
|
152
|
+
p95_ms: 1000 # Tolérance plus élevée
|
|
153
|
+
a11y:
|
|
154
|
+
min_score: 85 # Standard business
|
|
155
|
+
security:
|
|
156
|
+
sast:
|
|
157
|
+
max_high: 1 # Tolérance limitée
|
|
158
|
+
secrets:
|
|
159
|
+
max_findings: 0 # Zero secret
|
|
160
|
+
|
|
161
|
+
weights:
|
|
162
|
+
api: 30 # API-first
|
|
163
|
+
ui: 25
|
|
164
|
+
sast: 20
|
|
165
|
+
perf: 15
|
|
166
|
+
deps: 10
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Application Interne
|
|
170
|
+
```yaml
|
|
171
|
+
budgets:
|
|
172
|
+
perf:
|
|
173
|
+
p95_ms: 2000 # Réseau interne
|
|
174
|
+
a11y:
|
|
175
|
+
min_score: 70 # Standard interne
|
|
176
|
+
security:
|
|
177
|
+
sast:
|
|
178
|
+
max_high: 3 # Plus permissif
|
|
179
|
+
dast:
|
|
180
|
+
max_medium: 5
|
|
181
|
+
|
|
182
|
+
weights:
|
|
183
|
+
ui: 40 # UX prioritaire
|
|
184
|
+
api: 30
|
|
185
|
+
perf: 20
|
|
186
|
+
sast: 10
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## 📈 Recommandations Trust Score
|
|
190
|
+
|
|
191
|
+
### Excellent (90-100%)
|
|
192
|
+
- ✅ Prêt pour production
|
|
193
|
+
- ✅ Qualité enterprise
|
|
194
|
+
- ✅ Sécurité optimale
|
|
195
|
+
|
|
196
|
+
### Good (80-89%)
|
|
197
|
+
- ✅ Production acceptable
|
|
198
|
+
- ⚠️ Améliorations mineures
|
|
199
|
+
- ✅ Sécurité correcte
|
|
200
|
+
|
|
201
|
+
### Acceptable (70-79%)
|
|
202
|
+
- ⚠️ Production conditionnelle
|
|
203
|
+
- 🔧 Améliorations requises
|
|
204
|
+
- ⚠️ Révision sécurité
|
|
205
|
+
|
|
206
|
+
### Needs Improvement (50-69%)
|
|
207
|
+
- ❌ Production non recommandée
|
|
208
|
+
- 🔧 Corrections majeures
|
|
209
|
+
- 🔍 Audit sécurité
|
|
210
|
+
|
|
211
|
+
### Critical (<50%)
|
|
212
|
+
- 🚨 Blocage production
|
|
213
|
+
- 🔧 Refactoring requis
|
|
214
|
+
- 🚨 Failles critiques
|
|
215
|
+
|
|
216
|
+
## 🛠️ Intégration CI/CD
|
|
217
|
+
|
|
218
|
+
### GitHub Actions
|
|
219
|
+
```yaml
|
|
220
|
+
- name: QA360 Quality Gate
|
|
221
|
+
run: |
|
|
222
|
+
qa360 run --url ${{ env.STAGING_URL }} \
|
|
223
|
+
--mode strict \
|
|
224
|
+
--weights "perf:25,sast:25,ui:20,api:20,dast:10" \
|
|
225
|
+
--report-format json
|
|
226
|
+
|
|
227
|
+
# Vérifier Trust Score
|
|
228
|
+
TRUST_SCORE=$(jq '.trustScore.weightedScore' qa360-report.json)
|
|
229
|
+
if [ $TRUST_SCORE -lt 80 ]; then
|
|
230
|
+
echo "Trust Score too low: $TRUST_SCORE%"
|
|
231
|
+
exit 1
|
|
232
|
+
fi
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### GitLab CI
|
|
236
|
+
```yaml
|
|
237
|
+
qa360_quality_gate:
|
|
238
|
+
script:
|
|
239
|
+
- qa360 run --url $STAGING_URL --mode strict
|
|
240
|
+
- qa360 report --format badge --output trust-score.svg
|
|
241
|
+
artifacts:
|
|
242
|
+
reports:
|
|
243
|
+
junit: qa360-junit.xml
|
|
244
|
+
paths:
|
|
245
|
+
- trust-score.svg
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## 🎨 Badges & Rapports
|
|
249
|
+
|
|
250
|
+
### Badge Trust Score
|
|
251
|
+
```markdown
|
|
252
|
+

|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Rapport Exécutif
|
|
256
|
+
```bash
|
|
257
|
+
qa360 report --format executive --output executive-report.pdf
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Dashboard Multi-Projets
|
|
261
|
+
```bash
|
|
262
|
+
qa360 dashboard --input "./projects/**/qa360-report.json" \
|
|
263
|
+
--output dashboard.html \
|
|
264
|
+
--weights "perf:30,sast:25,ui:25,api:20"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## 🔍 Monitoring & Alertes
|
|
268
|
+
|
|
269
|
+
### Métriques Prometheus
|
|
270
|
+
```
|
|
271
|
+
qa360_trust_score{project="app",environment="prod"} 85
|
|
272
|
+
qa360_gate_score{gate="perf",project="app"} 78
|
|
273
|
+
qa360_budget_exceeded{gate="sast",severity="high"} 1
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Alertes Slack
|
|
277
|
+
```yaml
|
|
278
|
+
alerts:
|
|
279
|
+
trust_score_threshold: 80
|
|
280
|
+
webhook_url: "https://hooks.slack.com/..."
|
|
281
|
+
channels:
|
|
282
|
+
critical: "#security-alerts"
|
|
283
|
+
warning: "#qa-team"
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## 📚 Bonnes Pratiques
|
|
287
|
+
|
|
288
|
+
### 1. Définition Budgets
|
|
289
|
+
- Commencer permissif, durcir progressivement
|
|
290
|
+
- Adapter selon criticité métier
|
|
291
|
+
- Réviser trimestriellement
|
|
292
|
+
|
|
293
|
+
### 2. Pondération Weights
|
|
294
|
+
- Aligner sur priorités business
|
|
295
|
+
- Ajuster selon phase projet
|
|
296
|
+
- Documenter les choix
|
|
297
|
+
|
|
298
|
+
### 3. Monitoring Continu
|
|
299
|
+
- Tracking évolution Trust Score
|
|
300
|
+
- Alertes sur régressions
|
|
301
|
+
- Rapports réguliers stakeholders
|
|
302
|
+
|
|
303
|
+
### 4. Amélioration Continue
|
|
304
|
+
- Analyse tendances
|
|
305
|
+
- Identification goulots
|
|
306
|
+
- Formation équipes
|
|
307
|
+
|
|
308
|
+
Ce système de budgets avancés et Trust Score pondéré transforme QA360 en véritable plateforme de gouvernance qualité enterprise.
|