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.
Files changed (866) hide show
  1. package/.BETA_TESTING_FEEDBACK.md +256 -0
  2. package/.claude/settings.local.json +151 -0
  3. package/.editorconfig +21 -0
  4. package/.github/CODEOWNERS +23 -0
  5. package/.github/ISSUE_TEMPLATE/bug_report.yml +108 -0
  6. package/.github/ISSUE_TEMPLATE/feedback_dx.yml +121 -0
  7. package/.github/dependabot.yml +35 -0
  8. package/.github/workflows/mcp-dx.yml +106 -0
  9. package/.github/workflows/release.yml +26 -0
  10. package/.github/workflows/test.yml +93 -0
  11. package/.nvmrc +1 -0
  12. package/.qa360-artifacts/.gitkeep +0 -0
  13. package/.qa360-artifacts/baselines/.gitkeep +0 -0
  14. package/.qa360-artifacts/cache/.gitkeep +0 -0
  15. package/.qa360-artifacts/reports/.gitkeep +0 -0
  16. package/.qa360-artifacts/screenshots/.gitkeep +0 -0
  17. package/.qa360-baselines/www_xyqo_ai.baseline.json +33 -0
  18. package/CHANGELOG.md +234 -0
  19. package/CODEOWNERS +43 -0
  20. package/CONTRIBUTING.md +273 -0
  21. package/NOVICE_USER_GUIDE.md +272 -0
  22. package/QUICK_START.md +191 -0
  23. package/README.md +191 -163
  24. package/adapters/README.md +62 -0
  25. package/check-branches.sh +32 -0
  26. package/cli/CHANGELOG.md +84 -0
  27. package/cli/LICENSE +24 -0
  28. package/cli/README.md +222 -0
  29. package/cli/examples/README.md +160 -0
  30. package/cli/package.json +76 -0
  31. package/cli/scripts/bundle-for-npm.sh +51 -0
  32. package/cli/scripts/validate-package.js +116 -0
  33. package/cli/src/__tests__/commands/doctor.test.ts +97 -0
  34. package/cli/src/__tests__/index.test.ts +15 -0
  35. package/cli/src/cli-minimal.ts +44 -0
  36. package/cli/src/commands/__tests__/crawl.test.ts +412 -0
  37. package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +156 -0
  38. package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +494 -0
  39. package/cli/src/commands/__tests__/e2e.test.ts +187 -0
  40. package/cli/src/commands/__tests__/flakiness.test.ts +528 -0
  41. package/cli/src/commands/__tests__/generate.test.ts +507 -0
  42. package/cli/src/commands/__tests__/history.integration.test.ts +358 -0
  43. package/cli/src/commands/__tests__/history.test.ts +433 -0
  44. package/cli/src/commands/__tests__/monitor-realworld.test.ts +199 -0
  45. package/cli/src/commands/__tests__/monitor.test.ts +81 -0
  46. package/cli/src/commands/__tests__/ollama.test.ts +529 -0
  47. package/cli/src/commands/__tests__/repair.test.ts +225 -0
  48. package/cli/src/commands/__tests__/report.integration.test.ts +167 -0
  49. package/cli/src/commands/__tests__/report.test.ts +294 -0
  50. package/cli/src/commands/__tests__/report.vitest.ts +288 -0
  51. package/cli/src/commands/__tests__/retry.test.ts +78 -0
  52. package/cli/src/commands/__tests__/run.integration.test.ts +240 -0
  53. package/cli/src/commands/__tests__/run.test.ts +346 -0
  54. package/cli/src/commands/__tests__/run.vitest.ts +301 -0
  55. package/cli/src/commands/__tests__/secrets.test.ts +114 -0
  56. package/cli/src/commands/__tests__/serve.test.ts +80 -0
  57. package/cli/src/commands/__tests__/verify.test.ts +103 -0
  58. package/cli/src/commands/ai.ts +579 -0
  59. package/cli/src/commands/ask.ts +678 -0
  60. package/cli/src/commands/coverage.ts +305 -0
  61. package/cli/src/commands/crawl.ts +155 -0
  62. package/cli/src/commands/doctor.ts +610 -0
  63. package/cli/src/commands/examples.ts +248 -0
  64. package/cli/src/commands/explain.ts +710 -0
  65. package/cli/src/commands/flakiness.ts +560 -0
  66. package/cli/src/commands/generate.ts +566 -0
  67. package/cli/src/commands/history.ts +914 -0
  68. package/cli/src/commands/init.ts +763 -0
  69. package/cli/src/commands/monitor.ts +270 -0
  70. package/cli/src/commands/ollama.ts +337 -0
  71. package/cli/src/commands/pack.ts +497 -0
  72. package/cli/src/commands/regression.ts +400 -0
  73. package/cli/src/commands/repair.ts +356 -0
  74. package/cli/src/commands/report.ts +463 -0
  75. package/cli/src/commands/retry.ts +380 -0
  76. package/cli/src/commands/run.ts +218 -0
  77. package/cli/src/commands/scan.ts +177 -0
  78. package/cli/src/commands/secrets.ts +340 -0
  79. package/cli/src/commands/serve.ts +194 -0
  80. package/cli/src/commands/slo.ts +387 -0
  81. package/cli/src/commands/verify-temp-note.md +11 -0
  82. package/cli/src/commands/verify.ts +322 -0
  83. package/cli/src/generators/index.ts +6 -0
  84. package/cli/src/generators/json-reporter.ts +15 -0
  85. package/cli/src/generators/test-generator.ts +90 -0
  86. package/cli/src/index.ts +289 -0
  87. package/cli/src/scanners/dom-scanner.ts +360 -0
  88. package/cli/src/scanners/index.ts +5 -0
  89. package/cli/src/types/scan.ts +84 -0
  90. package/cli/src/utils/config.ts +145 -0
  91. package/cli/tsconfig.bundle.json +12 -0
  92. package/cli/tsconfig.json +23 -0
  93. package/cli/vitest.config.ts +57 -0
  94. package/core/LICENSE +24 -0
  95. package/core/README.md +64 -0
  96. package/core/package.json +81 -0
  97. package/core/src/__tests__/adapters-contract/adapters-contract.test.md +156 -0
  98. package/core/src/__tests__/index.test.ts +31 -0
  99. package/core/src/__tests__/integration/phase3.test.ts +405 -0
  100. package/core/src/__tests__/pack/validator.test.ts +312 -0
  101. package/core/src/__tests__/secrets/crypto.test.ts +190 -0
  102. package/core/src/__tests__/secrets/manager.test.ts +316 -0
  103. package/core/src/__tests__/security/redactor-phase3.test.ts +233 -0
  104. package/core/src/__tests__/serve/health-checker.test.ts +155 -0
  105. package/core/src/__tests__/serve/process-manager.test.ts +213 -0
  106. package/core/src/__tests__/serve/server.test.ts +103 -0
  107. package/core/src/__tests__/vault/cas.test.ts +178 -0
  108. package/core/src/__tests__/vault/vault.test.ts +296 -0
  109. package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +452 -0
  110. package/core/src/adapters/__tests__/k6-perf.test.ts +538 -0
  111. package/core/src/adapters/__tests__/osv-deps.test.ts +471 -0
  112. package/core/src/adapters/__tests__/playwright-native-api.test.ts +792 -0
  113. package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +431 -0
  114. package/core/src/adapters/__tests__/playwright-ui.test.ts +1073 -0
  115. package/core/src/adapters/__tests__/semgrep-sast.test.ts +436 -0
  116. package/core/src/adapters/__tests__/zap-dast.test.ts +453 -0
  117. package/core/src/adapters/gitleaks-secrets.ts +521 -0
  118. package/core/src/adapters/k6-perf.ts +479 -0
  119. package/core/src/adapters/osv-deps.ts +467 -0
  120. package/core/src/adapters/playwright-native-adapter.ts +472 -0
  121. package/core/src/adapters/playwright-native-api.ts +619 -0
  122. package/core/src/adapters/playwright-ui.ts +1088 -0
  123. package/core/src/adapters/semgrep-sast.ts +410 -0
  124. package/core/src/adapters/zap-dast.ts +551 -0
  125. package/core/src/ai/__tests__/deepseek-provider.test.ts +586 -0
  126. package/core/src/ai/__tests__/ollama-provider.test.ts +641 -0
  127. package/core/src/ai/anthropic-provider.ts +248 -0
  128. package/core/src/ai/deepseek-provider.ts +301 -0
  129. package/core/src/ai/index.ts +87 -0
  130. package/core/src/ai/llm-client.ts +52 -0
  131. package/core/src/ai/mock-provider.ts +146 -0
  132. package/core/src/ai/ollama-provider.ts +255 -0
  133. package/core/src/ai/openai-provider.ts +226 -0
  134. package/core/src/ai/provider-factory.ts +408 -0
  135. package/core/src/artifacts/README.md +78 -0
  136. package/core/src/artifacts/index.ts +16 -0
  137. package/core/src/artifacts/ui-artifacts.ts +412 -0
  138. package/core/src/assertions/__tests__/engine.test.ts +360 -0
  139. package/core/src/assertions/engine.ts +577 -0
  140. package/core/src/assertions/index.ts +13 -0
  141. package/core/src/assertions/types.ts +229 -0
  142. package/core/src/auth/__tests__/api-key-provider.test.ts +282 -0
  143. package/core/src/auth/__tests__/auth-manager.test.ts +430 -0
  144. package/core/src/auth/__tests__/basic-auth-provider.test.ts +364 -0
  145. package/core/src/auth/__tests__/cloud-providers.test.ts +751 -0
  146. package/core/src/auth/__tests__/jwt-provider.test.ts +400 -0
  147. package/core/src/auth/__tests__/oauth2-provider.test.ts +383 -0
  148. package/core/src/auth/__tests__/totp-provider.test.ts +294 -0
  149. package/core/src/auth/__tests__/ui-login-provider.test.ts +323 -0
  150. package/core/src/auth/api-key-provider.ts +75 -0
  151. package/core/src/auth/aws-iam-provider.ts +212 -0
  152. package/core/src/auth/azure-ad-provider.ts +126 -0
  153. package/core/src/auth/basic-auth-provider.ts +133 -0
  154. package/core/src/auth/gcp-adc-provider.ts +146 -0
  155. package/core/src/auth/index.ts +342 -0
  156. package/core/src/auth/jwt-provider.ts +193 -0
  157. package/core/src/auth/manager.ts +281 -0
  158. package/core/src/auth/oauth2-provider.ts +141 -0
  159. package/core/src/auth/totp-provider.ts +163 -0
  160. package/core/src/auth/ui-login-provider.ts +242 -0
  161. package/core/src/cache/__tests__/lru-cache.test.ts +564 -0
  162. package/core/src/cache/index.ts +13 -0
  163. package/core/src/cache/lru-cache.ts +536 -0
  164. package/core/src/crawler/__tests__/journey-generator.test.ts +344 -0
  165. package/core/src/crawler/__tests__/selector-generator.test.ts +211 -0
  166. package/core/src/crawler/index.ts +335 -0
  167. package/core/src/crawler/journey-generator.ts +471 -0
  168. package/core/src/crawler/page-analyzer.ts +857 -0
  169. package/core/src/crawler/selector-generator.ts +280 -0
  170. package/core/src/crawler/types.ts +475 -0
  171. package/core/src/dashboard/__tests__/real-world.test.ts +430 -0
  172. package/core/src/dashboard/__tests__/server.test.ts +283 -0
  173. package/core/src/dashboard/__tests__/types.test.ts +208 -0
  174. package/core/src/dashboard/assets.ts +692 -0
  175. package/core/src/dashboard/index.ts +17 -0
  176. package/core/src/dashboard/server.ts +401 -0
  177. package/core/src/dashboard/types.ts +78 -0
  178. package/core/src/discoverer/__tests__/test-discoverer.test.ts +444 -0
  179. package/core/src/discoverer/index.ts +374 -0
  180. package/core/src/flakiness/__tests__/flakiness.test.ts +554 -0
  181. package/core/src/flakiness/index.ts +536 -0
  182. package/core/src/generation/__tests__/code-formatter.test.ts +170 -0
  183. package/core/src/generation/__tests__/code-generator-contract.test.ts +207 -0
  184. package/core/src/generation/__tests__/code-generator.test.ts +586 -0
  185. package/core/src/generation/__tests__/crawler-pack-generator.test.ts +479 -0
  186. package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +718 -0
  187. package/core/src/generation/__tests__/generation-integration.test.ts +655 -0
  188. package/core/src/generation/__tests__/pack-generator.test.ts +408 -0
  189. package/core/src/generation/__tests__/prompt-builder.test.ts +200 -0
  190. package/core/src/generation/__tests__/real-provider-integration.test.ts +414 -0
  191. package/core/src/generation/__tests__/source-analyzer.test.ts +774 -0
  192. package/core/src/generation/__tests__/test-optimizer.test.ts +255 -0
  193. package/core/src/generation/code-formatter.ts +408 -0
  194. package/core/src/generation/code-generator.ts +470 -0
  195. package/core/src/generation/crawler-pack-generator.ts +289 -0
  196. package/core/src/generation/generator.ts +113 -0
  197. package/core/src/generation/index.ts +59 -0
  198. package/core/src/generation/pack-generator.ts +527 -0
  199. package/core/src/generation/prompt-builder.ts +772 -0
  200. package/core/src/generation/source-analyzer.ts +830 -0
  201. package/core/src/generation/test-optimizer.ts +474 -0
  202. package/core/src/generation/types.ts +217 -0
  203. package/core/src/hooks/__tests__/compose.test.ts +636 -0
  204. package/core/src/hooks/__tests__/runner.test.ts +478 -0
  205. package/core/src/hooks/compose.ts +268 -0
  206. package/core/src/hooks/runner.ts +364 -0
  207. package/core/src/index.ts +237 -0
  208. package/core/src/pack/__tests__/migrator.test.ts +594 -0
  209. package/core/src/pack/__tests__/validator.test.ts +759 -0
  210. package/core/src/pack/migrator.ts +353 -0
  211. package/core/src/pack/validator.ts +359 -0
  212. package/core/src/pack-v2/__tests__/loader.test.ts +533 -0
  213. package/core/src/pack-v2/__tests__/migrator.test.ts +455 -0
  214. package/core/src/pack-v2/__tests__/validator.test.ts +549 -0
  215. package/core/src/pack-v2/index.ts +41 -0
  216. package/core/src/pack-v2/loader.ts +321 -0
  217. package/core/src/pack-v2/migrator.ts +540 -0
  218. package/core/src/pack-v2/validator.ts +673 -0
  219. package/core/src/parallel/README.md +143 -0
  220. package/core/src/parallel/index.ts +16 -0
  221. package/core/src/parallel/parallel-runner.ts +282 -0
  222. package/core/src/proof/__tests__/proof-roundtrip.test.ts +149 -0
  223. package/core/src/proof/__tests__/schema-validation-manual.mjs +211 -0
  224. package/core/src/proof/__tests__/schema-validation.test.ts +336 -0
  225. package/core/src/proof/__tests__/signer.test.ts +486 -0
  226. package/core/src/proof/__tests__/temporal-regression.test.ts +537 -0
  227. package/core/src/proof/__tests__/verifier-advanced.test.ts +588 -0
  228. package/core/src/proof/__tests__/verifier.test.ts +413 -0
  229. package/core/src/proof/bundle.ts +290 -0
  230. package/core/src/proof/canonicalize.ts +116 -0
  231. package/core/src/proof/index.ts +74 -0
  232. package/core/src/proof/schema.ts +285 -0
  233. package/core/src/proof/signer.ts +293 -0
  234. package/core/src/proof/verifier.ts +380 -0
  235. package/core/src/regression/__tests__/detector.test.ts +396 -0
  236. package/core/src/regression/__tests__/trend-analyzer.test.ts +300 -0
  237. package/core/src/regression/detector.ts +629 -0
  238. package/core/src/regression/index.ts +34 -0
  239. package/core/src/regression/trend-analyzer.ts +468 -0
  240. package/core/src/regression/types.ts +295 -0
  241. package/core/src/regression/vault.ts +419 -0
  242. package/core/src/repair/__tests__/repairer.test.ts +572 -0
  243. package/core/src/repair/__tests__/types.test.ts +302 -0
  244. package/core/src/repair/engine/__tests__/fixer.test.ts +482 -0
  245. package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +395 -0
  246. package/core/src/repair/engine/fixer.ts +271 -0
  247. package/core/src/repair/engine/suggestion-engine.ts +234 -0
  248. package/core/src/repair/index.ts +53 -0
  249. package/core/src/repair/repairer.ts +376 -0
  250. package/core/src/repair/types.ts +119 -0
  251. package/core/src/repair/utils/__tests__/error-analyzer.test.ts +454 -0
  252. package/core/src/repair/utils/error-analyzer.ts +308 -0
  253. package/core/src/reporting/README.md +144 -0
  254. package/core/src/reporting/html-reporter.ts +835 -0
  255. package/core/src/reporting/index.ts +16 -0
  256. package/core/src/retry/README.md +192 -0
  257. package/core/src/retry/__tests__/flakiness-integration.test.ts +475 -0
  258. package/core/src/retry/__tests__/retry-engine.test.ts +424 -0
  259. package/core/src/retry/flakiness-integration.ts +267 -0
  260. package/core/src/retry/index.ts +48 -0
  261. package/core/src/retry/retry-engine.ts +368 -0
  262. package/core/src/retry/types.ts +208 -0
  263. package/core/src/retry/vault.ts +413 -0
  264. package/core/src/runner/__tests__/flakiness-integration.test.ts +566 -0
  265. package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +218 -0
  266. package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +199 -0
  267. package/core/src/runner/__tests__/phase3-runner.test.ts +1118 -0
  268. package/core/src/runner/e2e-helpers.ts +216 -0
  269. package/core/src/runner/phase3-runner.ts +1236 -0
  270. package/core/src/schemas/gherkin-report.json +122 -0
  271. package/core/src/secrets/__tests__/crypto.test.ts +180 -0
  272. package/core/src/secrets/crypto.ts +289 -0
  273. package/core/src/secrets/manager.ts +272 -0
  274. package/core/src/security/__tests__/hardening.test.ts +480 -0
  275. package/core/src/security/redaction-patterns-extended.ts +278 -0
  276. package/core/src/security/redactor.ts +326 -0
  277. package/core/src/self-healing/assertion-healer.ts +485 -0
  278. package/core/src/self-healing/engine.ts +626 -0
  279. package/core/src/self-healing/index.ts +33 -0
  280. package/core/src/self-healing/selector-healer.ts +488 -0
  281. package/core/src/self-healing/types.ts +193 -0
  282. package/core/src/serve/diagnostics-collector.ts +201 -0
  283. package/core/src/serve/health-checker.ts +274 -0
  284. package/core/src/serve/index.ts +9 -0
  285. package/core/src/serve/metrics-collector.ts +386 -0
  286. package/core/src/serve/process-manager.ts +265 -0
  287. package/core/src/serve/server.ts +230 -0
  288. package/core/src/slo/config.ts +408 -0
  289. package/core/src/slo/index.ts +68 -0
  290. package/core/src/slo/sli-calculator.ts +474 -0
  291. package/core/src/slo/slo-tracker.ts +481 -0
  292. package/core/src/slo/types.ts +408 -0
  293. package/core/src/slo/vault.ts +600 -0
  294. package/core/src/tui/__tests__/monitor.test.ts +336 -0
  295. package/core/src/tui/__tests__/real-world.test.ts +376 -0
  296. package/core/src/tui/__tests__/renderer.test.ts +201 -0
  297. package/core/src/tui/__tests__/types.test.ts +295 -0
  298. package/core/src/tui/index.ts +19 -0
  299. package/core/src/tui/monitor.ts +331 -0
  300. package/core/src/tui/renderer.ts +269 -0
  301. package/core/src/tui/types.ts +68 -0
  302. package/core/src/types/pack-v1.ts +305 -0
  303. package/core/src/types/pack-v2.ts +491 -0
  304. package/core/src/types/trust-score.ts +258 -0
  305. package/core/src/vault/__tests__/flakiness-vault.test.ts +562 -0
  306. package/core/src/vault/__tests__/vault.test.ts +259 -0
  307. package/core/src/vault/cas.ts +323 -0
  308. package/core/src/vault/index.ts +1361 -0
  309. package/core/src/vault/schema.sql +168 -0
  310. package/core/src/visual/README.md +185 -0
  311. package/core/src/visual/index.ts +14 -0
  312. package/core/src/visual/visual-regression.ts +347 -0
  313. package/core/src/watch/__tests__/watch-mode.test.ts +192 -0
  314. package/core/src/watch/index.ts +14 -0
  315. package/core/src/watch/watch-mode.ts +565 -0
  316. package/core/tsconfig.json +12 -0
  317. package/core/vitest.config.ts +52 -0
  318. package/docs/ARCHITECTURE.md +901 -0
  319. package/docs/AUDIT-GLOBAL-DEC2025.md +271 -0
  320. package/docs/BETA_TESTING.md +257 -0
  321. package/docs/BETA_TESTING_PLAN.md +727 -0
  322. package/docs/CERTIFICATION-REPORT.md +142 -0
  323. package/docs/COMPLETE_AUDIT_REFACTORING.md +965 -0
  324. package/docs/DEVELOPMENT.md +331 -0
  325. package/docs/DEVELOPMENT_HISTORY.md +345 -0
  326. package/docs/LIMITATIONS.md +176 -0
  327. package/docs/MIGRATION.md +303 -0
  328. package/docs/OPTION_3_4_EXPLORATION.md +1257 -0
  329. package/docs/PHASE1_PERFORMANCE.md +144 -0
  330. package/docs/QA360_Cloud.postman_collection.json +89 -0
  331. package/docs/README.md +50 -0
  332. package/docs/STATUS.md +179 -0
  333. package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +615 -0
  334. package/docs/USER_GUIDE.md +687 -0
  335. package/docs/WORK-DONE-ADAPTER-TESTS.md +136 -0
  336. package/docs/adapters-security.md +485 -0
  337. package/docs/architecture-diagram.mmd +168 -0
  338. package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +396 -0
  339. package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +324 -0
  340. package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +644 -0
  341. package/docs/archive/ARCH-01_NEXT_STEPS.md +60 -0
  342. package/docs/archive/BRANCH_PROTECTION.md +183 -0
  343. package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +222 -0
  344. package/docs/archive/HANDOFF_TEST-01.md +669 -0
  345. package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +372 -0
  346. package/docs/archive/NODE_UPGRADE_GUIDE.md +188 -0
  347. package/docs/archive/PHASE1_COMPLETION.md +386 -0
  348. package/docs/archive/PHASE2_COMPLETION.md +404 -0
  349. package/docs/archive/PHASE3_AND_4_FINAL.md +360 -0
  350. package/docs/archive/PHASE3_COMPLETE.md +301 -0
  351. package/docs/archive/PHASE3_STATUS.md +255 -0
  352. package/docs/archive/PRE-WEEK2-AUDIT.md +364 -0
  353. package/docs/archive/README.md +33 -0
  354. package/docs/archive/SCHEMA_AJV_2020_FIX.md +245 -0
  355. package/docs/archive/TEST-01_AUDIT_REPORT.md +240 -0
  356. package/docs/archive/TEST-01_COVERAGE_PLAN.md +423 -0
  357. package/docs/budgets-advanced.md +308 -0
  358. package/docs/examples/history-export-gc.md +285 -0
  359. package/docs/examples/pack-v2-complete.yaml +158 -0
  360. package/docs/examples/pack-v2-quickstart.yaml +24 -0
  361. package/docs/examples/pack-v2-ui-login.yaml +81 -0
  362. package/docs/examples/qa360-report.json +50 -0
  363. package/docs/history.md +565 -0
  364. package/docs/hooks.md +304 -0
  365. package/docs/llm-providers.md +419 -0
  366. package/docs/mcp-server.md +651 -0
  367. package/docs/mcp-tools.md +1131 -0
  368. package/docs/pack-v1.md +383 -0
  369. package/docs/pack-v2.md +558 -0
  370. package/docs/proofs.md +670 -0
  371. package/docs/quickstart-5min.md +257 -0
  372. package/docs/readiness-ci.md +654 -0
  373. package/docs/rfc/README.md +20 -0
  374. package/docs/rfc/proof-bundle-v1.md +787 -0
  375. package/docs/secrets.md +392 -0
  376. package/docs/serve.md +494 -0
  377. package/docs/vault.md +491 -0
  378. package/e2e/qa360-e2e.test.ts +696 -0
  379. package/e2e/vitest.config.ts +18 -0
  380. package/examples/README.md +30 -140
  381. package/examples/ci/docker-compose-serve.yml +375 -0
  382. package/examples/ci/github-actions-serve.yml +345 -0
  383. package/examples/ci/gitlab-ci-serve.yml +407 -0
  384. package/examples/datasets/README.md +101 -0
  385. package/examples/datasets/b2bshop.ts +155 -0
  386. package/examples/datasets/index.ts +57 -0
  387. package/examples/datasets/reqres.ts +195 -0
  388. package/examples/future-api/README.md +16 -0
  389. package/examples/future-api/diag.js +7 -0
  390. package/examples/future-api/health.js +4 -0
  391. package/examples/future-api/packs.js +13 -0
  392. package/examples/future-api/runpack.js +10 -0
  393. package/examples/generation/README.md +148 -0
  394. package/examples/generation/pack-generator-example.js +115 -0
  395. package/examples/generation/source-analyzer-example.js +115 -0
  396. package/examples/httpbin/pack.yml +59 -0
  397. package/examples/load-testing/mcp-load.yml +115 -0
  398. package/examples/load-testing/mcp-stdio.yml +95 -0
  399. package/examples/mcp/claude-desktop-config.json +33 -0
  400. package/examples/mcp/claude-desktop.json +16 -0
  401. package/examples/mcp/conversation-sample.md +131 -0
  402. package/examples/mcp/demo-60s.md +330 -0
  403. package/examples/mcp/sample-conversation.jsonl +21 -0
  404. package/examples/mcp/vscode-settings.json +22 -0
  405. package/examples/pack-v2-complete.yml +242 -0
  406. package/examples/pack-v2-examples.md +244 -0
  407. package/examples/pack-v2-quickstart.yml +55 -0
  408. package/examples/packs-business/ecommerce-api.yml +121 -0
  409. package/examples/packs-business/saas-dashboard-ui.yml +133 -0
  410. package/examples/packs-conformance/compose-multi.yml +174 -0
  411. package/examples/packs-conformance/full.yml +152 -0
  412. package/examples/packs-conformance/heavy-artifacts.yml +152 -0
  413. package/examples/packs-conformance/minimal.yml +71 -0
  414. package/examples/packs-conformance/secrets-missing.yml +97 -0
  415. package/examples/packs-conformance/timeouts.yml +77 -0
  416. package/examples/proofs/e2e-playwright-proof.json +75 -0
  417. package/examples/proofs/httpbin-proof.json +69 -0
  418. package/examples/proofs/multi-adapter-proof.json +117 -0
  419. package/examples/proofs/test-proof.json +26 -0
  420. package/examples/restful-api-dev/README.md +102 -0
  421. package/examples/restful-api-dev/restful-api-advanced.yml +29 -0
  422. package/examples/restful-api-dev/restful-api-basic.yml +29 -0
  423. package/examples/web-lite/.github/workflows/qa360-phase3.yml +73 -0
  424. package/examples/web-lite/api-mock/server.js +258 -0
  425. package/examples/web-lite/pack.yml +71 -0
  426. package/examples/web-lite/services.yml +43 -0
  427. package/examples/web-lite/web-content/healthz +1 -0
  428. package/examples/web-lite/web-content/index.html +259 -0
  429. package/package.json +55 -45
  430. package/packages/mcp/CHANGELOG.md +109 -0
  431. package/packages/mcp/IMPLEMENTATION_SUMMARY.md +350 -0
  432. package/packages/mcp/LICENSE +21 -0
  433. package/packages/mcp/QUICK_START.md +291 -0
  434. package/packages/mcp/README.md +294 -0
  435. package/packages/mcp/TELEMETRY.md +220 -0
  436. package/packages/mcp/package.json +92 -0
  437. package/packages/mcp/scripts/generate-sbom-fallback.cjs +84 -0
  438. package/packages/mcp/scripts/safe-postinstall.cjs +32 -0
  439. package/packages/mcp/src/__tests__/contract.test.ts +902 -0
  440. package/packages/mcp/src/cli/cli.ts +137 -0
  441. package/packages/mcp/src/cli/doctor.ts +286 -0
  442. package/packages/mcp/src/cli/fix.ts +99 -0
  443. package/packages/mcp/src/cli/init.ts +233 -0
  444. package/packages/mcp/src/cli/postinstall.ts +14 -0
  445. package/packages/mcp/src/cli/reset.ts +44 -0
  446. package/packages/mcp/src/cli/telemetry.ts +166 -0
  447. package/packages/mcp/src/cli/test-dx.ts +94 -0
  448. package/packages/mcp/src/cli/uninstall.ts +80 -0
  449. package/packages/mcp/src/cli/up.ts +178 -0
  450. package/packages/mcp/src/index.ts +12 -0
  451. package/packages/mcp/src/scripts/e2e-local.ts +337 -0
  452. package/packages/mcp/src/scripts/verify-settings.ts +242 -0
  453. package/packages/mcp/src/security/audit.ts +244 -0
  454. package/packages/mcp/src/security/manager.ts +242 -0
  455. package/packages/mcp/src/server/full-server.ts +212 -0
  456. package/packages/mcp/src/server/minimal-server.ts +134 -0
  457. package/packages/mcp/src/tools/history.ts +388 -0
  458. package/packages/mcp/src/tools/pack.ts +449 -0
  459. package/packages/mcp/src/tools/registry.ts +638 -0
  460. package/packages/mcp/src/tools/report.ts +100 -0
  461. package/packages/mcp/src/tools/run.ts +268 -0
  462. package/packages/mcp/src/tools/secrets.ts +198 -0
  463. package/packages/mcp/src/tools/serve.ts +221 -0
  464. package/packages/mcp/src/tools/triage.ts +532 -0
  465. package/packages/mcp/src/tools/types.ts +26 -0
  466. package/packages/mcp/src/tools/vault.ts +164 -0
  467. package/packages/mcp/src/tools/verify.ts +166 -0
  468. package/packages/mcp/src/types/index.ts +311 -0
  469. package/packages/mcp/src/types/mcp-stubs.ts +83 -0
  470. package/packages/mcp/tsconfig.json +16 -0
  471. package/playwright.config.ts +20 -0
  472. package/pnpm-workspace.yaml +4 -0
  473. package/run-test-and-push.sh +20 -0
  474. package/scripts/build-proof-cli.sh +110 -0
  475. package/scripts/ci/check-windows-paths.js +92 -0
  476. package/scripts/ci/invariants.sh +124 -0
  477. package/scripts/ci/make-final-bundle.js +106 -0
  478. package/scripts/ci/mcp-run-multipack.js +305 -0
  479. package/scripts/ci/run-pack-suite.sh +103 -0
  480. package/scripts/ci/run-phase7-final.sh +190 -0
  481. package/scripts/ci/slo-assert.js +158 -0
  482. package/scripts/ci/test-fault-tolerance.sh +301 -0
  483. package/scripts/install-mcp.sh +66 -0
  484. package/scripts/mcp-smoke.mjs +27 -0
  485. package/scripts/smoke.sh +26 -0
  486. package/scripts/stress-test.js +288 -0
  487. package/scripts/validate-examples.mjs +404 -0
  488. package/scripts/validation/simple-pack-check.sh +51 -0
  489. package/scripts/validation/validate-universal-pack.mjs +77 -0
  490. package/scripts/verify-persistence.js +127 -0
  491. package/test-pack.yaml +43 -0
  492. package/test-results/.last-run.json +4 -0
  493. package/test-runner.mjs +87 -0
  494. package/tests/artifacts.spec.js +147 -0
  495. package/tests/contracts.spec.js +239 -0
  496. package/tests/e2e/assertions.test.mjs +370 -0
  497. package/tests/e2e/crawler.test.mjs +451 -0
  498. package/tests/e2e/playwright-plus-plus.test.mjs +604 -0
  499. package/tests/e2e/proof-bundle.test.mjs +258 -0
  500. package/tests/e2e/real-world/saucedemo.test.mjs +714 -0
  501. package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +760 -0
  502. package/tests/e2e/ui-actions.test.mjs +546 -0
  503. package/tests/gherkin.e2e.spec.ts +310 -0
  504. package/tests/no-console-errors.spec.js +136 -0
  505. package/tests/pdf.spec.ts +252 -0
  506. package/tests/run-pack.spec.ts +58 -0
  507. package/tsconfig.base.json +15 -0
  508. package/tsconfig.build.json +8 -0
  509. package/tsconfig.json +37 -0
  510. package/tsconfig.test.json +18 -0
  511. package/typedoc.json +37 -0
  512. package/ui/README.md +51 -0
  513. package/verify-proof.mjs +60 -0
  514. package/dist/cli-minimal.d.ts +0 -6
  515. package/dist/cli-minimal.js +0 -36
  516. package/dist/commands/ai.d.ts +0 -41
  517. package/dist/commands/ai.js +0 -511
  518. package/dist/commands/ask.d.ts +0 -94
  519. package/dist/commands/ask.js +0 -582
  520. package/dist/commands/coverage.d.ts +0 -8
  521. package/dist/commands/coverage.js +0 -252
  522. package/dist/commands/crawl.d.ts +0 -24
  523. package/dist/commands/crawl.js +0 -121
  524. package/dist/commands/doctor.d.ts +0 -54
  525. package/dist/commands/doctor.js +0 -513
  526. package/dist/commands/examples.d.ts +0 -33
  527. package/dist/commands/examples.js +0 -193
  528. package/dist/commands/explain.d.ts +0 -27
  529. package/dist/commands/explain.js +0 -630
  530. package/dist/commands/flakiness.d.ts +0 -73
  531. package/dist/commands/flakiness.js +0 -435
  532. package/dist/commands/generate.d.ts +0 -66
  533. package/dist/commands/generate.js +0 -438
  534. package/dist/commands/history.d.ts +0 -76
  535. package/dist/commands/history.js +0 -757
  536. package/dist/commands/init.d.ts +0 -106
  537. package/dist/commands/init.js +0 -599
  538. package/dist/commands/monitor.d.ts +0 -27
  539. package/dist/commands/monitor.js +0 -225
  540. package/dist/commands/ollama.d.ts +0 -40
  541. package/dist/commands/ollama.js +0 -301
  542. package/dist/commands/pack.d.ts +0 -70
  543. package/dist/commands/pack.js +0 -413
  544. package/dist/commands/regression.d.ts +0 -8
  545. package/dist/commands/regression.js +0 -340
  546. package/dist/commands/repair.d.ts +0 -26
  547. package/dist/commands/repair.js +0 -307
  548. package/dist/commands/report.d.ts +0 -62
  549. package/dist/commands/report.js +0 -378
  550. package/dist/commands/retry.d.ts +0 -43
  551. package/dist/commands/retry.js +0 -275
  552. package/dist/commands/run.d.ts +0 -41
  553. package/dist/commands/run.js +0 -169
  554. package/dist/commands/scan.d.ts +0 -5
  555. package/dist/commands/scan.js +0 -155
  556. package/dist/commands/secrets.d.ts +0 -58
  557. package/dist/commands/secrets.js +0 -289
  558. package/dist/commands/serve.d.ts +0 -13
  559. package/dist/commands/serve.js +0 -156
  560. package/dist/commands/slo.d.ts +0 -8
  561. package/dist/commands/slo.js +0 -327
  562. package/dist/commands/verify.d.ts +0 -32
  563. package/dist/commands/verify.js +0 -278
  564. package/dist/core/adapters/gitleaks-secrets.d.ts +0 -114
  565. package/dist/core/adapters/gitleaks-secrets.js +0 -410
  566. package/dist/core/adapters/k6-perf.d.ts +0 -85
  567. package/dist/core/adapters/k6-perf.js +0 -398
  568. package/dist/core/adapters/osv-deps.d.ts +0 -123
  569. package/dist/core/adapters/osv-deps.js +0 -372
  570. package/dist/core/adapters/playwright-native-adapter.d.ts +0 -121
  571. package/dist/core/adapters/playwright-native-adapter.js +0 -339
  572. package/dist/core/adapters/playwright-native-api.d.ts +0 -183
  573. package/dist/core/adapters/playwright-native-api.js +0 -461
  574. package/dist/core/adapters/playwright-ui.d.ts +0 -197
  575. package/dist/core/adapters/playwright-ui.js +0 -840
  576. package/dist/core/adapters/semgrep-sast.d.ts +0 -99
  577. package/dist/core/adapters/semgrep-sast.js +0 -322
  578. package/dist/core/adapters/zap-dast.d.ts +0 -133
  579. package/dist/core/adapters/zap-dast.js +0 -424
  580. package/dist/core/ai/anthropic-provider.d.ts +0 -50
  581. package/dist/core/ai/anthropic-provider.js +0 -211
  582. package/dist/core/ai/deepseek-provider.d.ts +0 -81
  583. package/dist/core/ai/deepseek-provider.js +0 -254
  584. package/dist/core/ai/index.d.ts +0 -60
  585. package/dist/core/ai/index.js +0 -18
  586. package/dist/core/ai/llm-client.d.ts +0 -45
  587. package/dist/core/ai/llm-client.js +0 -7
  588. package/dist/core/ai/mock-provider.d.ts +0 -49
  589. package/dist/core/ai/mock-provider.js +0 -121
  590. package/dist/core/ai/ollama-provider.d.ts +0 -78
  591. package/dist/core/ai/ollama-provider.js +0 -192
  592. package/dist/core/ai/openai-provider.d.ts +0 -48
  593. package/dist/core/ai/openai-provider.js +0 -188
  594. package/dist/core/ai/provider-factory.d.ts +0 -160
  595. package/dist/core/ai/provider-factory.js +0 -269
  596. package/dist/core/artifacts/index.d.ts +0 -6
  597. package/dist/core/artifacts/index.js +0 -6
  598. package/dist/core/artifacts/ui-artifacts.d.ts +0 -133
  599. package/dist/core/artifacts/ui-artifacts.js +0 -304
  600. package/dist/core/assertions/engine.d.ts +0 -51
  601. package/dist/core/assertions/engine.js +0 -530
  602. package/dist/core/assertions/index.d.ts +0 -11
  603. package/dist/core/assertions/index.js +0 -11
  604. package/dist/core/assertions/types.d.ts +0 -121
  605. package/dist/core/assertions/types.js +0 -37
  606. package/dist/core/auth/api-key-provider.d.ts +0 -16
  607. package/dist/core/auth/api-key-provider.js +0 -63
  608. package/dist/core/auth/aws-iam-provider.d.ts +0 -35
  609. package/dist/core/auth/aws-iam-provider.js +0 -177
  610. package/dist/core/auth/azure-ad-provider.d.ts +0 -15
  611. package/dist/core/auth/azure-ad-provider.js +0 -99
  612. package/dist/core/auth/basic-auth-provider.d.ts +0 -26
  613. package/dist/core/auth/basic-auth-provider.js +0 -111
  614. package/dist/core/auth/gcp-adc-provider.d.ts +0 -27
  615. package/dist/core/auth/gcp-adc-provider.js +0 -126
  616. package/dist/core/auth/index.d.ts +0 -238
  617. package/dist/core/auth/index.js +0 -82
  618. package/dist/core/auth/jwt-provider.d.ts +0 -19
  619. package/dist/core/auth/jwt-provider.js +0 -160
  620. package/dist/core/auth/manager.d.ts +0 -84
  621. package/dist/core/auth/manager.js +0 -230
  622. package/dist/core/auth/oauth2-provider.d.ts +0 -17
  623. package/dist/core/auth/oauth2-provider.js +0 -114
  624. package/dist/core/auth/totp-provider.d.ts +0 -31
  625. package/dist/core/auth/totp-provider.js +0 -134
  626. package/dist/core/auth/ui-login-provider.d.ts +0 -26
  627. package/dist/core/auth/ui-login-provider.js +0 -198
  628. package/dist/core/cache/index.d.ts +0 -7
  629. package/dist/core/cache/index.js +0 -6
  630. package/dist/core/cache/lru-cache.d.ts +0 -203
  631. package/dist/core/cache/lru-cache.js +0 -397
  632. package/dist/core/core/coverage/analyzer.d.ts +0 -101
  633. package/dist/core/core/coverage/analyzer.js +0 -415
  634. package/dist/core/core/coverage/collector.d.ts +0 -74
  635. package/dist/core/core/coverage/collector.js +0 -459
  636. package/dist/core/core/coverage/config.d.ts +0 -37
  637. package/dist/core/core/coverage/config.js +0 -156
  638. package/dist/core/core/coverage/index.d.ts +0 -11
  639. package/dist/core/core/coverage/index.js +0 -15
  640. package/dist/core/core/coverage/types.d.ts +0 -267
  641. package/dist/core/core/coverage/types.js +0 -6
  642. package/dist/core/core/coverage/vault.d.ts +0 -95
  643. package/dist/core/core/coverage/vault.js +0 -405
  644. package/dist/core/coverage/analyzer.d.ts +0 -101
  645. package/dist/core/coverage/analyzer.js +0 -415
  646. package/dist/core/coverage/collector.d.ts +0 -74
  647. package/dist/core/coverage/collector.js +0 -459
  648. package/dist/core/coverage/config.d.ts +0 -37
  649. package/dist/core/coverage/config.js +0 -156
  650. package/dist/core/coverage/index.d.ts +0 -11
  651. package/dist/core/coverage/index.js +0 -15
  652. package/dist/core/coverage/types.d.ts +0 -267
  653. package/dist/core/coverage/types.js +0 -6
  654. package/dist/core/coverage/vault.d.ts +0 -95
  655. package/dist/core/coverage/vault.js +0 -405
  656. package/dist/core/crawler/index.d.ts +0 -57
  657. package/dist/core/crawler/index.js +0 -281
  658. package/dist/core/crawler/journey-generator.d.ts +0 -49
  659. package/dist/core/crawler/journey-generator.js +0 -412
  660. package/dist/core/crawler/page-analyzer.d.ts +0 -88
  661. package/dist/core/crawler/page-analyzer.js +0 -709
  662. package/dist/core/crawler/selector-generator.d.ts +0 -34
  663. package/dist/core/crawler/selector-generator.js +0 -240
  664. package/dist/core/crawler/types.d.ts +0 -353
  665. package/dist/core/crawler/types.js +0 -6
  666. package/dist/core/dashboard/assets.d.ts +0 -6
  667. package/dist/core/dashboard/assets.js +0 -690
  668. package/dist/core/dashboard/index.d.ts +0 -6
  669. package/dist/core/dashboard/index.js +0 -5
  670. package/dist/core/dashboard/server.d.ts +0 -72
  671. package/dist/core/dashboard/server.js +0 -354
  672. package/dist/core/dashboard/types.d.ts +0 -70
  673. package/dist/core/dashboard/types.js +0 -5
  674. package/dist/core/discoverer/index.d.ts +0 -115
  675. package/dist/core/discoverer/index.js +0 -250
  676. package/dist/core/flakiness/index.d.ts +0 -228
  677. package/dist/core/flakiness/index.js +0 -384
  678. package/dist/core/generation/code-formatter.d.ts +0 -111
  679. package/dist/core/generation/code-formatter.js +0 -307
  680. package/dist/core/generation/code-generator.d.ts +0 -144
  681. package/dist/core/generation/code-generator.js +0 -293
  682. package/dist/core/generation/crawler-pack-generator.d.ts +0 -44
  683. package/dist/core/generation/crawler-pack-generator.js +0 -231
  684. package/dist/core/generation/generator.d.ts +0 -40
  685. package/dist/core/generation/generator.js +0 -76
  686. package/dist/core/generation/index.d.ts +0 -32
  687. package/dist/core/generation/index.js +0 -30
  688. package/dist/core/generation/pack-generator.d.ts +0 -107
  689. package/dist/core/generation/pack-generator.js +0 -416
  690. package/dist/core/generation/prompt-builder.d.ts +0 -132
  691. package/dist/core/generation/prompt-builder.js +0 -672
  692. package/dist/core/generation/source-analyzer.d.ts +0 -213
  693. package/dist/core/generation/source-analyzer.js +0 -657
  694. package/dist/core/generation/test-optimizer.d.ts +0 -117
  695. package/dist/core/generation/test-optimizer.js +0 -328
  696. package/dist/core/generation/types.d.ts +0 -214
  697. package/dist/core/generation/types.js +0 -4
  698. package/dist/core/hooks/compose.d.ts +0 -61
  699. package/dist/core/hooks/compose.js +0 -225
  700. package/dist/core/hooks/runner.d.ts +0 -68
  701. package/dist/core/hooks/runner.js +0 -303
  702. package/dist/core/index.d.ts +0 -104
  703. package/dist/core/index.js +0 -91
  704. package/dist/core/pack/migrator.d.ts +0 -51
  705. package/dist/core/pack/migrator.js +0 -304
  706. package/dist/core/pack/validator.d.ts +0 -42
  707. package/dist/core/pack/validator.js +0 -322
  708. package/dist/core/pack-v2/index.d.ts +0 -9
  709. package/dist/core/pack-v2/index.js +0 -8
  710. package/dist/core/pack-v2/loader.d.ts +0 -62
  711. package/dist/core/pack-v2/loader.js +0 -259
  712. package/dist/core/pack-v2/migrator.d.ts +0 -61
  713. package/dist/core/pack-v2/migrator.js +0 -480
  714. package/dist/core/pack-v2/validator.d.ts +0 -61
  715. package/dist/core/pack-v2/validator.js +0 -577
  716. package/dist/core/parallel/index.d.ts +0 -6
  717. package/dist/core/parallel/index.js +0 -6
  718. package/dist/core/parallel/parallel-runner.d.ts +0 -107
  719. package/dist/core/parallel/parallel-runner.js +0 -192
  720. package/dist/core/proof/bundle.d.ts +0 -137
  721. package/dist/core/proof/bundle.js +0 -160
  722. package/dist/core/proof/canonicalize.d.ts +0 -47
  723. package/dist/core/proof/canonicalize.js +0 -105
  724. package/dist/core/proof/index.d.ts +0 -13
  725. package/dist/core/proof/index.js +0 -18
  726. package/dist/core/proof/schema.d.ts +0 -217
  727. package/dist/core/proof/schema.js +0 -263
  728. package/dist/core/proof/signer.d.ts +0 -111
  729. package/dist/core/proof/signer.js +0 -226
  730. package/dist/core/proof/verifier.d.ts +0 -97
  731. package/dist/core/proof/verifier.js +0 -308
  732. package/dist/core/regression/detector.d.ts +0 -107
  733. package/dist/core/regression/detector.js +0 -497
  734. package/dist/core/regression/index.d.ts +0 -9
  735. package/dist/core/regression/index.js +0 -11
  736. package/dist/core/regression/trend-analyzer.d.ts +0 -102
  737. package/dist/core/regression/trend-analyzer.js +0 -345
  738. package/dist/core/regression/types.d.ts +0 -222
  739. package/dist/core/regression/types.js +0 -7
  740. package/dist/core/regression/vault.d.ts +0 -87
  741. package/dist/core/regression/vault.js +0 -289
  742. package/dist/core/repair/engine/fixer.d.ts +0 -24
  743. package/dist/core/repair/engine/fixer.js +0 -226
  744. package/dist/core/repair/engine/suggestion-engine.d.ts +0 -18
  745. package/dist/core/repair/engine/suggestion-engine.js +0 -187
  746. package/dist/core/repair/index.d.ts +0 -10
  747. package/dist/core/repair/index.js +0 -13
  748. package/dist/core/repair/repairer.d.ts +0 -90
  749. package/dist/core/repair/repairer.js +0 -284
  750. package/dist/core/repair/types.d.ts +0 -91
  751. package/dist/core/repair/types.js +0 -6
  752. package/dist/core/repair/utils/error-analyzer.d.ts +0 -28
  753. package/dist/core/repair/utils/error-analyzer.js +0 -264
  754. package/dist/core/reporting/html-reporter.d.ts +0 -119
  755. package/dist/core/reporting/html-reporter.js +0 -737
  756. package/dist/core/reporting/index.d.ts +0 -6
  757. package/dist/core/reporting/index.js +0 -6
  758. package/dist/core/retry/flakiness-integration.d.ts +0 -60
  759. package/dist/core/retry/flakiness-integration.js +0 -228
  760. package/dist/core/retry/index.d.ts +0 -14
  761. package/dist/core/retry/index.js +0 -16
  762. package/dist/core/retry/retry-engine.d.ts +0 -80
  763. package/dist/core/retry/retry-engine.js +0 -296
  764. package/dist/core/retry/types.d.ts +0 -178
  765. package/dist/core/retry/types.js +0 -52
  766. package/dist/core/retry/vault.d.ts +0 -77
  767. package/dist/core/retry/vault.js +0 -304
  768. package/dist/core/runner/e2e-helpers.d.ts +0 -102
  769. package/dist/core/runner/e2e-helpers.js +0 -153
  770. package/dist/core/runner/phase3-runner.d.ts +0 -200
  771. package/dist/core/runner/phase3-runner.js +0 -1039
  772. package/dist/core/secrets/crypto.d.ts +0 -75
  773. package/dist/core/secrets/crypto.js +0 -223
  774. package/dist/core/secrets/manager.d.ts +0 -76
  775. package/dist/core/secrets/manager.js +0 -219
  776. package/dist/core/security/redaction-patterns-extended.d.ts +0 -27
  777. package/dist/core/security/redaction-patterns-extended.js +0 -247
  778. package/dist/core/security/redactor.d.ts +0 -71
  779. package/dist/core/security/redactor.js +0 -279
  780. package/dist/core/self-healing/assertion-healer.d.ts +0 -97
  781. package/dist/core/self-healing/assertion-healer.js +0 -371
  782. package/dist/core/self-healing/engine.d.ts +0 -122
  783. package/dist/core/self-healing/engine.js +0 -538
  784. package/dist/core/self-healing/index.d.ts +0 -10
  785. package/dist/core/self-healing/index.js +0 -11
  786. package/dist/core/self-healing/selector-healer.d.ts +0 -103
  787. package/dist/core/self-healing/selector-healer.js +0 -372
  788. package/dist/core/self-healing/types.d.ts +0 -152
  789. package/dist/core/self-healing/types.js +0 -6
  790. package/dist/core/serve/diagnostics-collector.d.ts +0 -32
  791. package/dist/core/serve/diagnostics-collector.js +0 -149
  792. package/dist/core/serve/health-checker.d.ts +0 -44
  793. package/dist/core/serve/health-checker.js +0 -219
  794. package/dist/core/serve/index.d.ts +0 -8
  795. package/dist/core/serve/index.js +0 -8
  796. package/dist/core/serve/metrics-collector.d.ts +0 -24
  797. package/dist/core/serve/metrics-collector.js +0 -322
  798. package/dist/core/serve/process-manager.d.ts +0 -36
  799. package/dist/core/serve/process-manager.js +0 -213
  800. package/dist/core/serve/server.d.ts +0 -36
  801. package/dist/core/serve/server.js +0 -191
  802. package/dist/core/slo/config.d.ts +0 -107
  803. package/dist/core/slo/config.js +0 -360
  804. package/dist/core/slo/index.d.ts +0 -11
  805. package/dist/core/slo/index.js +0 -15
  806. package/dist/core/slo/sli-calculator.d.ts +0 -92
  807. package/dist/core/slo/sli-calculator.js +0 -364
  808. package/dist/core/slo/slo-tracker.d.ts +0 -148
  809. package/dist/core/slo/slo-tracker.js +0 -379
  810. package/dist/core/slo/types.d.ts +0 -281
  811. package/dist/core/slo/types.js +0 -7
  812. package/dist/core/slo/vault.d.ts +0 -102
  813. package/dist/core/slo/vault.js +0 -427
  814. package/dist/core/tui/index.d.ts +0 -7
  815. package/dist/core/tui/index.js +0 -6
  816. package/dist/core/tui/monitor.d.ts +0 -92
  817. package/dist/core/tui/monitor.js +0 -271
  818. package/dist/core/tui/renderer.d.ts +0 -33
  819. package/dist/core/tui/renderer.js +0 -218
  820. package/dist/core/tui/types.d.ts +0 -63
  821. package/dist/core/tui/types.js +0 -5
  822. package/dist/core/types/pack-v1.d.ts +0 -251
  823. package/dist/core/types/pack-v1.js +0 -5
  824. package/dist/core/types/pack-v2.d.ts +0 -425
  825. package/dist/core/types/pack-v2.js +0 -8
  826. package/dist/core/types/trust-score.d.ts +0 -69
  827. package/dist/core/types/trust-score.js +0 -191
  828. package/dist/core/vault/cas.d.ts +0 -90
  829. package/dist/core/vault/cas.js +0 -261
  830. package/dist/core/vault/index.d.ts +0 -326
  831. package/dist/core/vault/index.js +0 -1042
  832. package/dist/core/visual/index.d.ts +0 -6
  833. package/dist/core/visual/index.js +0 -6
  834. package/dist/core/visual/visual-regression.d.ts +0 -113
  835. package/dist/core/visual/visual-regression.js +0 -236
  836. package/dist/core/watch/index.d.ts +0 -7
  837. package/dist/core/watch/index.js +0 -6
  838. package/dist/core/watch/watch-mode.d.ts +0 -213
  839. package/dist/core/watch/watch-mode.js +0 -389
  840. package/dist/generators/index.d.ts +0 -5
  841. package/dist/generators/index.js +0 -5
  842. package/dist/generators/json-reporter.d.ts +0 -10
  843. package/dist/generators/json-reporter.js +0 -12
  844. package/dist/generators/test-generator.d.ts +0 -18
  845. package/dist/generators/test-generator.js +0 -78
  846. package/dist/index.d.ts +0 -8
  847. package/dist/index.js +0 -246
  848. package/dist/scanners/dom-scanner.d.ts +0 -52
  849. package/dist/scanners/dom-scanner.js +0 -296
  850. package/dist/scanners/index.d.ts +0 -4
  851. package/dist/scanners/index.js +0 -4
  852. package/dist/schemas/pack.schema.json +0 -236
  853. package/dist/types/scan.d.ts +0 -68
  854. package/dist/types/scan.js +0 -4
  855. package/dist/utils/config.d.ts +0 -5
  856. package/dist/utils/config.js +0 -136
  857. /package/{bin → cli/bin}/qa360.js +0 -0
  858. /package/{examples → cli/examples}/accessibility.yml +0 -0
  859. /package/{examples → cli/examples}/api-basic.yml +0 -0
  860. /package/{examples → cli/examples}/complete.yml +0 -0
  861. /package/{examples → cli/examples}/crawler.yml +0 -0
  862. /package/{examples → cli/examples}/fullstack.yml +0 -0
  863. /package/{examples → cli/examples}/security.yml +0 -0
  864. /package/{examples → cli/examples}/ui-advanced.yml +0 -0
  865. /package/{examples → cli/examples}/ui-basic.yml +0 -0
  866. /package/{dist/core → core}/schemas/pack.schema.json +0 -0
@@ -0,0 +1,330 @@
1
+ # QA360 MCP Demo - 60 Seconds to AI-Powered Testing
2
+
3
+ ## 🎯 **Demo Script (60 seconds)**
4
+
5
+ ### **Setup (10s)**
6
+ ```bash
7
+ # Install QA360 MCP Server
8
+ npm install -g @qa360/mcp-server
9
+
10
+ # Start with full permissions
11
+ qa360-mcp --allow-run --allow-secrets
12
+ ```
13
+
14
+ ### **Natural Language Pack Generation (15s)**
15
+ **Prompt to Claude/LLM:**
16
+ ```
17
+ Generate a QA360 pack to test my web login form for security vulnerabilities and performance under 2 seconds
18
+ ```
19
+
20
+ **Expected Response:**
21
+ ```yaml
22
+ name: login-security-perf-test
23
+ version: 1.0.0
24
+ description: Security and performance testing for web login form
25
+
26
+ gates:
27
+ ui:
28
+ adapter: playwright
29
+ budgets:
30
+ max_duration_ms: 2000
31
+ sast:
32
+ adapter: semgrep
33
+ rules: auto
34
+ deps:
35
+ adapter: osv
36
+ lockfile: ./package-lock.json
37
+ ```
38
+
39
+ ### **Execute Tests (20s)**
40
+ **Prompt:**
41
+ ```
42
+ Run this pack against https://demoqa.com/login with run key "demo-linkedin-2025"
43
+ ```
44
+
45
+ **MCP Call:**
46
+ ```json
47
+ {
48
+ "tool": "qa360.run",
49
+ "args": {
50
+ "packPath": "./login-test-pack.yml",
51
+ "runKey": "demo-linkedin-2025",
52
+ "strict": true
53
+ }
54
+ }
55
+ ```
56
+
57
+ **Response:**
58
+ ```json
59
+ {
60
+ "runId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
61
+ "status": "passed",
62
+ "trust": { "score": 87 },
63
+ "gates": [
64
+ { "name": "ui", "status": "passed", "duration_ms": 1800 },
65
+ { "name": "sast", "status": "warn", "duration_ms": 3200 },
66
+ { "name": "deps", "status": "passed", "duration_ms": 1100 }
67
+ ]
68
+ }
69
+ ```
70
+
71
+ ### **Analyze & Triage (10s)**
72
+ **Prompt:**
73
+ ```
74
+ Explain the warning in my SAST gate and tell me how to fix it
75
+ ```
76
+
77
+ **MCP Response:**
78
+ ```json
79
+ {
80
+ "explanation": {
81
+ "cause": "Hardcoded secret or API key detected in source code",
82
+ "severity": "high",
83
+ "category": "security"
84
+ },
85
+ "actions": [
86
+ {
87
+ "type": "fix",
88
+ "description": "Move secrets to environment variables",
89
+ "command": "qa360 secrets add API_KEY 'your-secret-value'"
90
+ }
91
+ ]
92
+ }
93
+ ```
94
+
95
+ ### **History & Comparison (5s)**
96
+ **Prompt:**
97
+ ```
98
+ Compare this run with my previous test and show me what improved
99
+ ```
100
+
101
+ **Result:**
102
+ - Trust score: +12% improvement
103
+ - UI performance: 200ms faster
104
+ - New security finding resolved
105
+ - Dependencies updated
106
+
107
+ ---
108
+
109
+ ## 🎬 **LinkedIn Video Script**
110
+
111
+ ### **Hook (0-5s)**
112
+ *"What if you could test your entire web application just by talking to AI?"*
113
+
114
+ ### **Problem (5-15s)**
115
+ *"Traditional testing requires writing complex configurations, learning multiple tools, and manually analyzing results. It takes hours of setup for minutes of actual testing."*
116
+
117
+ ### **Solution Demo (15-50s)**
118
+
119
+ **Scene 1: Natural Language (15-25s)**
120
+ *Screen: Claude Desktop interface*
121
+ ```
122
+ User: "Test my login form for security issues and make sure it loads under 2 seconds"
123
+
124
+ Claude: "I'll generate a QA360 pack for you..."
125
+ ```
126
+ *Shows YAML pack being generated automatically*
127
+
128
+ **Scene 2: Instant Execution (25-35s)**
129
+ *Screen: Terminal with MCP server running*
130
+ ```
131
+ Claude: "Running your tests now..."
132
+ ```
133
+ *Shows real test execution with live progress*
134
+
135
+ **Scene 3: Intelligent Analysis (35-45s)**
136
+ *Screen: Results with explanations*
137
+ ```
138
+ Claude: "Found 1 security issue - hardcoded API key. Here's how to fix it..."
139
+ ```
140
+ *Shows actionable remediation steps*
141
+
142
+ **Scene 4: Historical Insights (45-50s)**
143
+ *Screen: Trend analysis*
144
+ ```
145
+ Claude: "Compared to last week, your performance improved by 23% and security score increased to 87%"
146
+ ```
147
+
148
+ ### **Call to Action (50-60s)**
149
+ *"QA360 MCP - Transform testing into conversation. Link in comments."*
150
+
151
+ ---
152
+
153
+ ## 🚀 **Live Demo Commands**
154
+
155
+ ### **Complete 60s Demo Sequence**
156
+
157
+ ```bash
158
+ # 1. Setup (copy-paste ready)
159
+ npm install -g @qa360/mcp-server
160
+ qa360-mcp --allow-run --allow-secrets &
161
+
162
+ # 2. Claude Prompts (copy-paste ready)
163
+ echo "Generate a QA360 pack to test my e-commerce checkout for security and performance"
164
+
165
+ # 3. Execute generated pack
166
+ echo "Run this pack with run key demo-$(date +%s)"
167
+
168
+ # 4. Analyze results
169
+ echo "Explain any security findings and show me how to fix them"
170
+
171
+ # 5. Compare with history
172
+ echo "Show me the trend of my test results over the last 10 runs"
173
+ ```
174
+
175
+ ### **Backup Manual Commands (if MCP fails)**
176
+
177
+ ```bash
178
+ # Generate pack manually
179
+ cat > demo-pack.yml << EOF
180
+ name: demo-pack
181
+ version: 1.0.0
182
+ gates:
183
+ ui:
184
+ adapter: playwright
185
+ budgets:
186
+ max_duration_ms: 3000
187
+ sast:
188
+ adapter: semgrep
189
+ EOF
190
+
191
+ # Run via CLI
192
+ qa360 run --pack demo-pack.yml --run-key demo-manual
193
+
194
+ # Show history
195
+ qa360 history list --limit 5
196
+ ```
197
+
198
+ ---
199
+
200
+ ## 📱 **Social Media Variants**
201
+
202
+ ### **Twitter/X (30s version)**
203
+ *"AI-powered testing in 30 seconds:*
204
+ 1. *Tell AI what to test*
205
+ 2. *Watch it generate & run tests*
206
+ 3. *Get intelligent analysis*
207
+ 4. *Fix issues with AI guidance*
208
+
209
+ *QA360 MCP makes testing conversational
210
+
211
+ ### **Instagram Reel (15s version)**
212
+ *Quick cuts showing:*
213
+ 1. *Typing natural language prompt (3s)*
214
+ 2. *AI generating test config (3s)*
215
+ 3. *Tests running automatically (3s)*
216
+ 4. *Results with AI explanations (3s)*
217
+ 5. *"QA360 MCP" logo (3s)*
218
+
219
+ ### **TikTok (15s version)**
220
+ *"POV: You're testing your app with AI"*
221
+ - *Fast-paced editing*
222
+ - *Trending audio*
223
+ - *Text overlays with key benefits*
224
+ - *Clear call-to-action*
225
+
226
+ ---
227
+
228
+ ## 🎯 **Key Messages**
229
+
230
+ ### **Value Propositions**
231
+ 1. **Zero Configuration**: No complex setup, just natural language
232
+ 2. **Instant Intelligence**: AI explains results and suggests fixes
233
+ 3. **Historical Context**: Compare runs and track improvements
234
+ 4. **Universal Integration**: Works with Claude, VSCode, any MCP client
235
+
236
+ ### **Technical Differentiators**
237
+ 1. **24 Tools Available**: Complete testing toolkit via MCP
238
+ 2. **Cryptographic Proofs**: Signed, verifiable test results
239
+ 3. **Evidence Vault**: Persistent history with trend analysis
240
+ 4. **Security First**: Rate limiting, sandboxing, audit logging
241
+
242
+ ### **Target Audience**
243
+ - **Primary**: Developers using AI coding assistants
244
+ - **Secondary**: QA engineers seeking automation
245
+ - **Tertiary**: DevOps teams implementing CI/CD
246
+
247
+ ---
248
+
249
+ ## 📊 **Success Metrics**
250
+
251
+ ### **Engagement Targets**
252
+ - **LinkedIn**: 10K+ views, 500+ reactions, 50+ comments
253
+ - **Twitter**: 5K+ impressions, 100+ retweets
254
+ - **GitHub**: 100+ stars on MCP server repo
255
+
256
+ ### **Conversion Targets**
257
+ - **Downloads**: 1K+ npm installs in first week
258
+ - **Documentation**: 500+ unique visitors to MCP docs
259
+ - **Community**: 50+ Discord members asking about MCP
260
+
261
+ ### **Quality Indicators**
262
+ - **Demo Success Rate**: 95%+ successful live demos
263
+ - **User Feedback**: 4.5+ stars average rating
264
+ - **Issue Resolution**: <24h response time for MCP issues
265
+
266
+ ---
267
+
268
+ ## 🔧 **Technical Setup for Demos**
269
+
270
+ ### **Pre-Demo Checklist**
271
+ ```bash
272
+ # Verify all components
273
+ qa360 --version # Core installed
274
+ qa360-mcp --help # MCP server available
275
+ qa360 doctor # System healthy
276
+
277
+ # Test MCP connection
278
+ echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | qa360-mcp
279
+
280
+ # Prepare demo pack
281
+ cat > demo-pack.yml << EOF
282
+ name: demo-showcase
283
+ version: 1.0.0
284
+ gates:
285
+ ui:
286
+ adapter: playwright
287
+ budgets:
288
+ max_duration_ms: 5000
289
+ EOF
290
+
291
+ # Initialize vault with sample data
292
+ qa360 run --pack demo-pack.yml --run-key demo-baseline
293
+ ```
294
+
295
+ ### **Fallback Scenarios**
296
+ 1. **MCP Connection Issues**: Use CLI commands directly
297
+ 2. **Network Problems**: Use local examples with mock data
298
+ 3. **Performance Issues**: Pre-record critical segments
299
+ 4. **Audio Issues**: Have text-based backup explanations
300
+
301
+ ### **Demo Environment**
302
+ - **OS**: macOS (most visually appealing terminal)
303
+ - **Terminal**: iTerm2 with custom theme
304
+ - **Editor**: VSCode with MCP extension
305
+ - **Browser**: Chrome with dev tools ready
306
+ - **Screen Recording**: OBS with 1080p60 settings
307
+
308
+ ---
309
+
310
+ ## 📝 **Post-Demo Follow-up**
311
+
312
+ ### **Immediate Actions (within 1 hour)**
313
+ 1. Upload demo video to all platforms
314
+ 2. Share GitHub repository link
315
+ 3. Post documentation links
316
+ 4. Respond to initial comments/questions
317
+
318
+ ### **Week 1 Follow-up**
319
+ 1. Analyze engagement metrics
320
+ 2. Address common questions in FAQ
321
+ 3. Create follow-up content based on feedback
322
+ 4. Engage with community discussions
323
+
324
+ ### **Month 1 Assessment**
325
+ 1. Review adoption metrics
326
+ 2. Gather user feedback
327
+ 3. Plan Phase 8 based on MCP success
328
+ 4. Document lessons learned
329
+
330
+ This demo framework provides everything needed for successful QA360 MCP showcases across all major platforms, with clear success metrics and fallback plans.
@@ -0,0 +1,21 @@
1
+ {"role": "user", "content": "Generate a QA360 pack to test my web login form for security vulnerabilities and performance under 2 seconds", "timestamp": "2025-01-15T10:00:00Z"}
2
+ {"role": "assistant", "content": "I'll generate a QA360 pack for testing your login form with security and performance requirements.", "timestamp": "2025-01-15T10:00:01Z"}
3
+ {"role": "tool_call", "tool": "qa360.pack.ask", "args": {"query": "Test web login form for security vulnerabilities and performance under 2 seconds", "context": {"targets": {"type": "login_form", "performance_budget": "2000ms"}}}, "timestamp": "2025-01-15T10:00:02Z"}
4
+ {"role": "tool_result", "content": {"pack": "name: login-security-perf-test\nversion: 1.0.0\ndescription: Security and performance testing for web login form\n\ngates:\n ui:\n adapter: playwright\n budgets:\n max_duration_ms: 2000\n sast:\n adapter: semgrep\n rules: auto\n deps:\n adapter: osv\n lockfile: ./package-lock.json", "hints": {"tools_needed": ["playwright", "semgrep", "osv-scanner"], "estimated_duration": "1-2min", "complexity": "medium"}}, "timestamp": "2025-01-15T10:00:03Z"}
5
+ {"role": "assistant", "content": "Perfect! I've generated a comprehensive QA360 pack for your login form testing. Here's what it includes:\n\n```yaml\nname: login-security-perf-test\nversion: 1.0.0\ndescription: Security and performance testing for web login form\n\ngates:\n ui:\n adapter: playwright\n budgets:\n max_duration_ms: 2000\n sast:\n adapter: semgrep\n rules: auto\n deps:\n adapter: osv\n lockfile: ./package-lock.json\n```\n\nThis pack will:\n- Test UI performance with a 2-second budget\n- Scan for security vulnerabilities using Semgrep\n- Check dependencies for known vulnerabilities\n\nWould you like me to run this pack against your login form?", "timestamp": "2025-01-15T10:00:04Z"}
6
+ {"role": "user", "content": "Yes, run this pack against https://demoqa.com/login with run key 'demo-linkedin-2025'", "timestamp": "2025-01-15T10:00:30Z"}
7
+ {"role": "tool_call", "tool": "qa360.run", "args": {"packPath": "./login-security-perf-test.yml", "runKey": "demo-linkedin-2025", "strict": true}, "timestamp": "2025-01-15T10:00:31Z"}
8
+ {"role": "tool_result", "content": {"runId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "passed", "trust": {"score": 87, "weights": {"ui": 0.4, "sast": 0.35, "deps": 0.25}}, "gates": [{"name": "ui", "status": "passed", "duration_ms": 1800, "key_metrics": {"interactions": 3, "load_time": 1800}}, {"name": "sast", "status": "warn", "duration_ms": 3200, "key_metrics": {"findings": 2, "high_severity": 0}}, {"name": "deps", "status": "passed", "duration_ms": 1100, "key_metrics": {"vulnerabilities": 0, "packages_scanned": 45}}]}, "timestamp": "2025-01-15T10:02:15Z"}
9
+ {"role": "assistant", "content": "Excellent! Your tests completed successfully. Here's the summary:\n\n🎯 **Overall Result**: ✅ PASSED (Trust Score: 87%)\n\n📊 **Gate Results**:\n- **UI Performance**: ✅ PASSED (1.8s - under your 2s budget!)\n - 3 interactions tested\n - Page loaded in 1.8 seconds\n\n- **Security (SAST)**: ⚠️ WARNING (2 findings, no high severity)\n - Completed in 3.2 seconds\n - Found 2 minor security issues\n\n- **Dependencies**: ✅ PASSED (no vulnerabilities)\n - Scanned 45 packages in 1.1 seconds\n - All dependencies are secure\n\n🔍 **Next Steps**: The SAST gate found some minor security issues. Would you like me to explain what was found and how to fix it?", "timestamp": "2025-01-15T10:02:16Z"}
10
+ {"role": "user", "content": "Yes, explain the security findings and tell me how to fix them", "timestamp": "2025-01-15T10:02:45Z"}
11
+ {"role": "tool_call", "tool": "qa360.triage.explain_code", "args": {"code": "SG001", "context": {"gate": "sast", "severity": "medium"}}, "timestamp": "2025-01-15T10:02:46Z"}
12
+ {"role": "tool_result", "content": {"explanation": {"cause": "Hardcoded secret or API key detected in source code", "severity": "high", "category": "security"}, "actions": [{"type": "fix", "description": "Move secrets to environment variables or secure vault", "command": "qa360 secrets add SECRET_NAME \"secret_value\""}, {"type": "investigate", "description": "Review the specific Semgrep rule and code location"}], "references": [{"title": "Semgrep Rules Documentation", "url": "https://semgrep.dev/docs/writing-rules/overview/"}, {"title": "OWASP Secure Coding Practices", "url": "https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/"}]}, "timestamp": "2025-01-15T10:02:47Z"}
13
+ {"role": "assistant", "content": "🔍 **Security Finding Analysis**:\n\n**Issue**: Hardcoded secret or API key detected (SG001)\n- **Severity**: High\n- **Category**: Security vulnerability\n- **Cause**: Your code contains hardcoded secrets that should be stored securely\n\n🛠️ **How to Fix**:\n\n1. **Move secrets to environment variables**:\n ```bash\n qa360 secrets add API_KEY \"your-secret-value\"\n qa360 secrets add DB_PASSWORD \"your-db-password\"\n ```\n\n2. **Update your code** to use environment variables:\n ```javascript\n // Instead of: const apiKey = \"sk-1234567890abcdef\"\n const apiKey = process.env.API_KEY;\n ```\n\n3. **Review the specific locations** where secrets were found and replace them\n\n📚 **Learn More**:\n- [Semgrep Security Rules](https://semgrep.dev/docs/writing-rules/overview/)\n- [OWASP Secure Coding Practices](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/)\n\nWould you like me to help you set up the secrets management or show you the trend of your security improvements over time?", "timestamp": "2025-01-15T10:02:48Z"}
14
+ {"role": "user", "content": "Show me the trend of my test results over the last 10 runs", "timestamp": "2025-01-15T10:03:15Z"}
15
+ {"role": "tool_call", "tool": "qa360.history.trend", "args": {"window": 10}, "timestamp": "2025-01-15T10:03:16Z"}
16
+ {"role": "tool_result", "content": {"series": [{"timestamp": 1705312800000, "value": 87, "metadata": {"status": "passed", "findings_count": 2}}, {"timestamp": 1705226400000, "value": 82, "metadata": {"status": "passed", "findings_count": 3}}, {"timestamp": 1705140000000, "value": 75, "metadata": {"status": "failed", "findings_count": 5}}, {"timestamp": 1705053600000, "value": 78, "metadata": {"status": "passed", "findings_count": 4}}, {"timestamp": 1704967200000, "value": 71, "metadata": {"status": "passed", "findings_count": 6}}], "summary": {"average": 78.6, "trend": "up", "window_size": 5}}, "timestamp": "2025-01-15T10:03:17Z"}
17
+ {"role": "assistant", "content": "📈 **Your Testing Trend Analysis** (Last 10 runs):\n\n🎯 **Great Progress!** Your quality is trending **UP** ⬆️\n\n**Trust Score Evolution**:\n- **Today**: 87% ✅ (2 findings)\n- **Yesterday**: 82% ✅ (3 findings) \n- **3 days ago**: 75% ❌ (5 findings)\n- **4 days ago**: 78% ✅ (4 findings)\n- **5 days ago**: 71% ✅ (6 findings)\n\n📊 **Key Insights**:\n- **Average Trust Score**: 78.6%\n- **Improvement**: +16 points over 5 runs!\n- **Security Findings**: Reduced from 6 → 2 (67% improvement)\n- **Consistency**: 4/5 recent runs passed\n\n🏆 **What's Working**:\n- Your security posture is significantly improving\n- Performance remains consistently under budget\n- Trust score is on a strong upward trajectory\n\n🎯 **Next Goal**: Get to 90%+ trust score by addressing those last 2 security findings!\n\nWould you like me to help you tackle those remaining security issues or set up automated monitoring for your quality metrics?", "timestamp": "2025-01-15T10:03:18Z"}
18
+ {"role": "user", "content": "That's perfect! Can you also export this run data so I can share it with my team?", "timestamp": "2025-01-15T10:03:45Z"}
19
+ {"role": "tool_call", "tool": "qa360.history.export", "args": {"runId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "bundlePath": "./qa360-demo-export.zip"}, "timestamp": "2025-01-15T10:03:46Z"}
20
+ {"role": "tool_result", "content": {"bundlePath": "/Users/demo/qa360-demo-export.zip", "size_bytes": 2458624, "contents": ["run.json", "gates.json", "findings.json", "artifacts/", "metadata.json"]}, "timestamp": "2025-01-15T10:03:47Z"}
21
+ {"role": "assistant", "content": "📦 **Export Complete!** \n\nI've created a comprehensive evidence bundle for your team:\n\n**File**: `qa360-demo-export.zip` (2.4 MB)\n\n**Contents**:\n- `run.json` - Complete test execution details\n- `gates.json` - All gate results and metrics\n- `findings.json` - Security findings and recommendations\n- `artifacts/` - Screenshots, logs, and proof documents\n- `metadata.json` - Test configuration and environment info\n\n🎯 **Perfect for**:\n- Team reviews and retrospectives\n- Compliance documentation\n- CI/CD integration\n- Quality metrics tracking\n\n💡 **Pro Tip**: This bundle includes cryptographic proof of your test results, making it perfect for audit trails and compliance requirements.\n\nYour team can verify the results independently and track your quality improvements over time. Great work on the 87% trust score and the upward trend! 🚀", "timestamp": "2025-01-15T10:03:48Z"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "mcp.servers": [
3
+ {
4
+ "name": "qa360",
5
+ "command": "qa360-mcp",
6
+ "args": ["--allow-run"],
7
+ "cwd": "${workspaceFolder}",
8
+ "env": {
9
+ "QA360_LOG_LEVEL": "info"
10
+ }
11
+ }
12
+ ],
13
+ "mcp.trace.server": "verbose",
14
+ "mcp.logLevel": "info",
15
+ "qa360.mcp.autoStart": true,
16
+ "qa360.mcp.defaultConfig": {
17
+ "allowRun": true,
18
+ "allowSecrets": false,
19
+ "maxConcurrency": 2,
20
+ "rateLimit": 5
21
+ }
22
+ }
@@ -0,0 +1,242 @@
1
+ # QA360 Pack v2 - Complete Example
2
+ #
3
+ # This example demonstrates all features of Pack v2:
4
+ # - Multiple gates with different adapters
5
+ # - Authentication profiles
6
+ # - Hooks (setup/teardown)
7
+ # - Custom execution settings
8
+ # - Per-gate auth overrides
9
+ #
10
+ # NOTE: Some features shown here are planned but not yet fully implemented:
11
+ # - auth.profiles (use inline auth in gates for now)
12
+ # - hooks (use external scripts for setup/teardown for now)
13
+
14
+ version: 2
15
+ name: complete-example-pack
16
+ description: Complete example demonstrating all Pack v2 features
17
+
18
+ # ============================================================
19
+ # Authentication Profiles
20
+ # ============================================================
21
+ auth:
22
+ # Default auth profiles by type
23
+ api: default-bearer
24
+ ui: default-ui-login
25
+
26
+ profiles:
27
+ # Bearer token authentication (for APIs)
28
+ default-bearer:
29
+ type: bearer
30
+ config:
31
+ token: "${API_TOKEN:-your-token-here}"
32
+
33
+ # API Key authentication
34
+ api-key-auth:
35
+ type: api_key
36
+ config:
37
+ header_name: X-API-Key
38
+ key: "${API_KEY:-your-api-key}"
39
+ location: header
40
+
41
+ # Basic authentication
42
+ basic-auth:
43
+ type: basic
44
+ config:
45
+ username: "${BASIC_USER:-admin}"
46
+ password: "${BASIC_PASS:-secret}"
47
+
48
+ # UI Login authentication
49
+ default-ui-login:
50
+ type: ui_login
51
+ config:
52
+ loginUrl: "${BASE_URL}/login"
53
+ usernameField: "#username"
54
+ passwordField: "#password"
55
+ submitButton: "button[type='submit']"
56
+ username: "${UI_USER:-testuser}"
57
+ password: "${UI_PASS:-testpass}"
58
+ successSelector: ".dashboard"
59
+
60
+ # ============================================================
61
+ # Quality Gates
62
+ # ============================================================
63
+ gates:
64
+ # --------------------------------------------------------
65
+ # API Smoke Tests with Bearer Auth
66
+ # --------------------------------------------------------
67
+ api-health:
68
+ adapter: playwright-api
69
+ enabled: true
70
+ auth: default-bearer
71
+ config:
72
+ baseUrl: "${BASE_URL:-https://api.example.com}"
73
+ smoke:
74
+ - "GET /health -> 200"
75
+ - "GET /api/v1/status -> 200"
76
+ timeout: 5000
77
+
78
+ # --------------------------------------------------------
79
+ # API CRUD Tests with API Key
80
+ # --------------------------------------------------------
81
+ api-crud:
82
+ adapter: playwright-api
83
+ enabled: true
84
+ auth: api-key-auth
85
+ config:
86
+ baseUrl: "${BASE_URL:-https://api.example.com}"
87
+ smoke:
88
+ # CREATE
89
+ - "POST /api/v1/users -> 201"
90
+ # READ
91
+ - "GET /api/v1/users -> 200"
92
+ - "GET /api/v1/users/1 -> 200"
93
+ # UPDATE
94
+ - "PATCH /api/v1/users/1 -> 200"
95
+ # DELETE
96
+ - "DELETE /api/v1/users/1 -> 204"
97
+ budgets:
98
+ p95_ms: 1000
99
+ error_rate: 0.01
100
+
101
+ # --------------------------------------------------------
102
+ # UI E2E Tests with Login
103
+ # --------------------------------------------------------
104
+ ui-e2e:
105
+ adapter: playwright-ui
106
+ enabled: true
107
+ auth: default-ui-login
108
+ config:
109
+ baseUrl: "${BASE_URL:-https://example.com}"
110
+ pages:
111
+ - name: Dashboard
112
+ url: /dashboard
113
+ expectedElements:
114
+ - ".dashboard-header"
115
+ - "#user-menu"
116
+ - name: Settings
117
+ url: /settings
118
+ expectedElements:
119
+ - "form.settings-form"
120
+ - "button[type='submit']"
121
+ budgets:
122
+ a11y_score: 90
123
+
124
+ # --------------------------------------------------------
125
+ # Accessibility Tests
126
+ # --------------------------------------------------------
127
+ a11y:
128
+ adapter: playwright-ui
129
+ enabled: true
130
+ config:
131
+ baseUrl: "${BASE_URL:-https://example.com}"
132
+ pages:
133
+ - url: /
134
+ a11yRules:
135
+ - wcag2a
136
+ - wcag2aa
137
+ budgets:
138
+ violations: 5
139
+
140
+ # --------------------------------------------------------
141
+ # Performance Tests (K6)
142
+ # --------------------------------------------------------
143
+ perf:
144
+ adapter: k6-perf
145
+ enabled: true
146
+ config:
147
+ script: |
148
+ import http from 'k6/http';
149
+ import { check } from 'k6';
150
+
151
+ export const options = {
152
+ stages: [
153
+ { duration: '10s', target: 10 },
154
+ { duration: '20s', target: 50 },
155
+ { duration: '10s', target: 0 },
156
+ ],
157
+ };
158
+
159
+ export default function () {
160
+ const res = http.get('${BASE_URL:-https://example.com}/api/health');
161
+ check(res, {
162
+ 'status is 200': (r) => r.status === 200,
163
+ 'response time < 500ms': (r) => r.timings.duration < 500,
164
+ });
165
+ }
166
+ budgets:
167
+ p95_ms: 1000
168
+ p99_ms: 2000
169
+ error_rate: 0.05
170
+
171
+ # --------------------------------------------------------
172
+ # SAST Security Tests
173
+ # --------------------------------------------------------
174
+ sast:
175
+ adapter: semgrep-sast
176
+ enabled: true
177
+ config:
178
+ rules:
179
+ - javascript.lang.security.audit.xss
180
+ - javascript.lang.security.audit.sql-injection
181
+ - javascript.lang.security.audit.command-injection
182
+ paths:
183
+ - src/
184
+ - lib/
185
+ budgets:
186
+ high_findings: 0
187
+ medium_findings: 5
188
+
189
+ # ============================================================
190
+ # Hooks - Setup and Teardown
191
+ # ============================================================
192
+ hooks:
193
+ beforeAll:
194
+ # Wait for API to be ready
195
+ - type: wait_on
196
+ wait_for:
197
+ resource: "${BASE_URL:-https://api.example.com}/health"
198
+ timeout: 30000
199
+
200
+ # Start Docker services if needed
201
+ - type: docker
202
+ compose:
203
+ file: docker-compose.yml
204
+ command: up -d
205
+ timeout: 60000
206
+
207
+ # Run custom setup script
208
+ - type: run
209
+ command: npm run setup:test
210
+ timeout: 30000
211
+
212
+ afterAll:
213
+ # Cleanup Docker services
214
+ - type: docker
215
+ compose:
216
+ file: docker-compose.yml
217
+ command: down -v
218
+ timeout: 30000
219
+
220
+ # Clean test artifacts
221
+ - type: run
222
+ command: rm -rf .tmp-test-*
223
+ timeout: 5000
224
+
225
+ # ============================================================
226
+ # Execution Settings
227
+ # ============================================================
228
+ execution:
229
+ default_timeout: 30000 # Default timeout for each gate (30s)
230
+ default_retries: 2 # Retry failed gates twice
231
+ on_failure: continue # Continue on failure (or 'stop')
232
+ parallel: true # Run gates in parallel (when possible)
233
+ max_parallel: 3 # Max parallel gates
234
+
235
+ # ============================================================
236
+ # Global Budgets
237
+ # ============================================================
238
+ budgets:
239
+ perf_p95_ms: 2000 # P95 latency budget
240
+ a11y_min: 85 # Minimum accessibility score
241
+ sast_max_high: 0 # Max high severity findings
242
+ sast_max_medium: 10 # Max medium severity findings