qa360 2.1.7 → 2.2.1

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 (909) hide show
  1. package/.BETA_TESTING_FEEDBACK.md +256 -0
  2. package/.claude/settings.local.json +154 -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/vault.db +0 -0
  13. package/.qa360/vault.db-shm +0 -0
  14. package/.qa360/vault.db-wal +0 -0
  15. package/.qa360-artifacts/.gitkeep +0 -0
  16. package/.qa360-artifacts/baselines/.gitkeep +0 -0
  17. package/.qa360-artifacts/cache/.gitkeep +0 -0
  18. package/.qa360-artifacts/reports/.gitkeep +0 -0
  19. package/.qa360-artifacts/screenshots/.gitkeep +0 -0
  20. package/.qa360-baselines/www_xyqo_ai.baseline.json +33 -0
  21. package/CHANGELOG.md +234 -0
  22. package/CODEOWNERS +43 -0
  23. package/CONTRIBUTING.md +273 -0
  24. package/NOVICE_USER_GUIDE.md +272 -0
  25. package/QUICK_START.md +191 -0
  26. package/README.md +191 -163
  27. package/adapters/README.md +46 -0
  28. package/check-branches.sh +32 -0
  29. package/cli/.qa360/keys/ed25519.key +1 -0
  30. package/cli/.qa360/keys/ed25519.pub +1 -0
  31. package/cli/CHANGELOG.md +84 -0
  32. package/cli/LICENSE +24 -0
  33. package/cli/README.md +222 -0
  34. package/cli/examples/README.md +160 -0
  35. package/cli/package.json +76 -0
  36. package/cli/scripts/bundle-for-npm.sh +51 -0
  37. package/cli/scripts/validate-package.js +116 -0
  38. package/cli/src/__tests__/commands/doctor.test.ts +108 -0
  39. package/cli/src/__tests__/index.test.ts +15 -0
  40. package/cli/src/cli-minimal.ts +44 -0
  41. package/cli/src/commands/__tests__/crawl.test.ts +412 -0
  42. package/cli/src/commands/__tests__/doctor-qa360-home.test.ts +156 -0
  43. package/cli/src/commands/__tests__/e2e-ui-tests.test.ts +494 -0
  44. package/cli/src/commands/__tests__/e2e.test.ts +187 -0
  45. package/cli/src/commands/__tests__/flakiness.test.ts +528 -0
  46. package/cli/src/commands/__tests__/generate.test.ts +507 -0
  47. package/cli/src/commands/__tests__/history.integration.test.ts +358 -0
  48. package/cli/src/commands/__tests__/history.test.ts +433 -0
  49. package/cli/src/commands/__tests__/monitor-realworld.test.ts +199 -0
  50. package/cli/src/commands/__tests__/monitor.test.ts +81 -0
  51. package/cli/src/commands/__tests__/ollama.test.ts +529 -0
  52. package/cli/src/commands/__tests__/repair.test.ts +225 -0
  53. package/cli/src/commands/__tests__/report.integration.test.ts +167 -0
  54. package/cli/src/commands/__tests__/report.test.ts +294 -0
  55. package/cli/src/commands/__tests__/report.vitest.ts +288 -0
  56. package/cli/src/commands/__tests__/retry.test.ts +78 -0
  57. package/cli/src/commands/__tests__/run.integration.test.ts +240 -0
  58. package/cli/src/commands/__tests__/run.test.ts +346 -0
  59. package/cli/src/commands/__tests__/run.vitest.ts +301 -0
  60. package/cli/src/commands/__tests__/secrets.test.ts +114 -0
  61. package/cli/src/commands/__tests__/serve.test.ts +80 -0
  62. package/cli/src/commands/__tests__/verify.test.ts +103 -0
  63. package/cli/src/commands/ai.ts +702 -0
  64. package/cli/src/commands/ask.ts +678 -0
  65. package/cli/src/commands/coverage.ts +305 -0
  66. package/cli/src/commands/crawl.ts +155 -0
  67. package/cli/src/commands/doctor.ts +610 -0
  68. package/cli/src/commands/examples.ts +248 -0
  69. package/cli/src/commands/explain.ts +710 -0
  70. package/cli/src/commands/flakiness.ts +560 -0
  71. package/cli/src/commands/generate.ts +566 -0
  72. package/cli/src/commands/history.ts +914 -0
  73. package/cli/src/commands/init.ts +777 -0
  74. package/cli/src/commands/monitor.ts +270 -0
  75. package/cli/src/commands/ollama.ts +337 -0
  76. package/cli/src/commands/pack.ts +497 -0
  77. package/cli/src/commands/regression.ts +400 -0
  78. package/cli/src/commands/repair.ts +356 -0
  79. package/cli/src/commands/report.ts +463 -0
  80. package/cli/src/commands/retry.ts +380 -0
  81. package/cli/src/commands/run.ts +220 -0
  82. package/cli/src/commands/scan.ts +177 -0
  83. package/cli/src/commands/secrets.ts +340 -0
  84. package/cli/src/commands/serve.ts +194 -0
  85. package/cli/src/commands/slo.ts +387 -0
  86. package/cli/src/commands/verify-temp-note.md +11 -0
  87. package/cli/src/commands/verify.ts +322 -0
  88. package/cli/src/generators/index.ts +6 -0
  89. package/cli/src/generators/json-reporter.ts +15 -0
  90. package/cli/src/generators/test-generator.ts +90 -0
  91. package/cli/src/index.ts +289 -0
  92. package/cli/src/scanners/dom-scanner.ts +360 -0
  93. package/cli/src/scanners/index.ts +5 -0
  94. package/cli/src/types/scan.ts +84 -0
  95. package/cli/src/utils/config.ts +145 -0
  96. package/cli/tsconfig.bundle.json +12 -0
  97. package/cli/tsconfig.json +23 -0
  98. package/cli/vitest.config.ts +59 -0
  99. package/core/LICENSE +24 -0
  100. package/core/README.md +64 -0
  101. package/core/package.json +81 -0
  102. package/core/src/__tests__/adapters-contract/adapters-contract.test.md +156 -0
  103. package/core/src/__tests__/index.test.ts +31 -0
  104. package/core/src/__tests__/integration/phase3.test.ts +405 -0
  105. package/core/src/__tests__/pack/validator.test.ts +312 -0
  106. package/core/src/__tests__/secrets/crypto.test.ts +190 -0
  107. package/core/src/__tests__/secrets/manager.test.ts +316 -0
  108. package/core/src/__tests__/security/redactor-phase3.test.ts +233 -0
  109. package/core/src/__tests__/serve/health-checker.test.ts +155 -0
  110. package/core/src/__tests__/serve/process-manager.test.ts +213 -0
  111. package/core/src/__tests__/serve/server.test.ts +103 -0
  112. package/core/src/__tests__/vault/cas.test.ts +178 -0
  113. package/core/src/__tests__/vault/vault.test.ts +296 -0
  114. package/core/src/adapters/__tests__/fixtures/jest-coverage.json +8 -0
  115. package/core/src/adapters/__tests__/fixtures/jest-results.json +41 -0
  116. package/core/src/adapters/__tests__/fixtures/pytest-junit.xml +16 -0
  117. package/core/src/adapters/__tests__/fixtures/vitest-coverage.json +8 -0
  118. package/core/src/adapters/__tests__/fixtures/vitest-results.json +50 -0
  119. package/core/src/adapters/__tests__/gitleaks-secrets.test.ts +452 -0
  120. package/core/src/adapters/__tests__/jest-adapter.test.ts +276 -0
  121. package/core/src/adapters/__tests__/k6-perf.test.ts +538 -0
  122. package/core/src/adapters/__tests__/osv-deps.test.ts +471 -0
  123. package/core/src/adapters/__tests__/playwright-native-api.test.ts +792 -0
  124. package/core/src/adapters/__tests__/playwright-ui-e2e.test.ts +431 -0
  125. package/core/src/adapters/__tests__/playwright-ui.test.ts +1073 -0
  126. package/core/src/adapters/__tests__/pytest-adapter.test.ts +207 -0
  127. package/core/src/adapters/__tests__/semgrep-sast.test.ts +436 -0
  128. package/core/src/adapters/__tests__/vitest-adapter.test.ts +208 -0
  129. package/core/src/adapters/__tests__/zap-dast.test.ts +453 -0
  130. package/core/src/adapters/gitleaks-secrets.ts +521 -0
  131. package/core/src/adapters/jest-adapter.ts +306 -0
  132. package/core/src/adapters/k6-perf.ts +479 -0
  133. package/core/src/adapters/osv-deps.ts +467 -0
  134. package/core/src/adapters/playwright-native-adapter.ts +472 -0
  135. package/core/src/adapters/playwright-native-api.ts +619 -0
  136. package/core/src/adapters/playwright-ui.ts +1088 -0
  137. package/core/src/adapters/pytest-adapter.ts +472 -0
  138. package/core/src/adapters/semgrep-sast.ts +410 -0
  139. package/core/src/adapters/unit-test-types.ts +106 -0
  140. package/core/src/adapters/vitest-adapter.ts +295 -0
  141. package/core/src/adapters/zap-dast.ts +551 -0
  142. package/core/src/ai/__tests__/deepseek-provider.test.ts +586 -0
  143. package/core/src/ai/__tests__/ollama-provider.test.ts +641 -0
  144. package/core/src/ai/anthropic-provider.ts +262 -0
  145. package/core/src/ai/deepseek-provider.ts +315 -0
  146. package/core/src/ai/index.ts +87 -0
  147. package/core/src/ai/llm-client.ts +52 -0
  148. package/core/src/ai/mock-provider.ts +146 -0
  149. package/core/src/ai/ollama-provider.ts +269 -0
  150. package/core/src/ai/openai-provider.ts +240 -0
  151. package/core/src/ai/provider-factory.ts +408 -0
  152. package/core/src/artifacts/README.md +78 -0
  153. package/core/src/artifacts/index.ts +16 -0
  154. package/core/src/artifacts/ui-artifacts.ts +412 -0
  155. package/core/src/assertions/__tests__/engine.test.ts +360 -0
  156. package/core/src/assertions/engine.ts +577 -0
  157. package/core/src/assertions/index.ts +13 -0
  158. package/core/src/assertions/types.ts +229 -0
  159. package/core/src/auth/__tests__/api-key-provider.test.ts +282 -0
  160. package/core/src/auth/__tests__/auth-manager.test.ts +430 -0
  161. package/core/src/auth/__tests__/basic-auth-provider.test.ts +364 -0
  162. package/core/src/auth/__tests__/cloud-providers.test.ts +751 -0
  163. package/core/src/auth/__tests__/jwt-provider.test.ts +400 -0
  164. package/core/src/auth/__tests__/oauth2-provider.test.ts +383 -0
  165. package/core/src/auth/__tests__/totp-provider.test.ts +294 -0
  166. package/core/src/auth/__tests__/ui-login-provider.test.ts +323 -0
  167. package/core/src/auth/api-key-provider.ts +75 -0
  168. package/core/src/auth/aws-iam-provider.ts +212 -0
  169. package/core/src/auth/azure-ad-provider.ts +126 -0
  170. package/core/src/auth/basic-auth-provider.ts +133 -0
  171. package/core/src/auth/gcp-adc-provider.ts +146 -0
  172. package/core/src/auth/index.ts +342 -0
  173. package/core/src/auth/jwt-provider.ts +193 -0
  174. package/core/src/auth/manager.ts +281 -0
  175. package/core/src/auth/oauth2-provider.ts +141 -0
  176. package/core/src/auth/totp-provider.ts +163 -0
  177. package/core/src/auth/ui-login-provider.ts +242 -0
  178. package/core/src/cache/__tests__/lru-cache.test.ts +564 -0
  179. package/core/src/cache/index.ts +13 -0
  180. package/core/src/cache/lru-cache.ts +536 -0
  181. package/core/src/crawler/__tests__/journey-generator.test.ts +344 -0
  182. package/core/src/crawler/__tests__/selector-generator.test.ts +211 -0
  183. package/core/src/crawler/index.ts +335 -0
  184. package/core/src/crawler/journey-generator.ts +471 -0
  185. package/core/src/crawler/page-analyzer.ts +857 -0
  186. package/core/src/crawler/selector-generator.ts +280 -0
  187. package/core/src/crawler/types.ts +475 -0
  188. package/core/src/dashboard/__tests__/real-world.test.ts +430 -0
  189. package/core/src/dashboard/__tests__/server.test.ts +283 -0
  190. package/core/src/dashboard/__tests__/types.test.ts +208 -0
  191. package/core/src/dashboard/assets.ts +692 -0
  192. package/core/src/dashboard/index.ts +17 -0
  193. package/core/src/dashboard/server.ts +401 -0
  194. package/core/src/dashboard/types.ts +78 -0
  195. package/core/src/discoverer/__tests__/test-discoverer.test.ts +444 -0
  196. package/core/src/discoverer/index.ts +374 -0
  197. package/core/src/fixtures/__tests__/loader.test.ts +246 -0
  198. package/core/src/fixtures/__tests__/resolver.test.ts +334 -0
  199. package/core/src/fixtures/index.ts +9 -0
  200. package/core/src/fixtures/loader.ts +200 -0
  201. package/core/src/fixtures/resolver.ts +221 -0
  202. package/core/src/fixtures/types.ts +86 -0
  203. package/core/src/flakiness/__tests__/flakiness.test.ts +554 -0
  204. package/core/src/flakiness/index.ts +536 -0
  205. package/core/src/generation/__tests__/code-formatter.test.ts +170 -0
  206. package/core/src/generation/__tests__/code-generator-contract.test.ts +207 -0
  207. package/core/src/generation/__tests__/code-generator.test.ts +586 -0
  208. package/core/src/generation/__tests__/crawler-pack-generator.test.ts +479 -0
  209. package/core/src/generation/__tests__/generation-e2e-b2bshop.test.ts +718 -0
  210. package/core/src/generation/__tests__/generation-integration.test.ts +655 -0
  211. package/core/src/generation/__tests__/pack-generator.test.ts +408 -0
  212. package/core/src/generation/__tests__/prompt-builder.test.ts +200 -0
  213. package/core/src/generation/__tests__/real-provider-integration.test.ts +414 -0
  214. package/core/src/generation/__tests__/source-analyzer.test.ts +774 -0
  215. package/core/src/generation/__tests__/test-optimizer.test.ts +255 -0
  216. package/core/src/generation/code-formatter.ts +408 -0
  217. package/core/src/generation/code-generator.ts +470 -0
  218. package/core/src/generation/crawler-pack-generator.ts +289 -0
  219. package/core/src/generation/generator.ts +113 -0
  220. package/core/src/generation/index.ts +59 -0
  221. package/core/src/generation/pack-generator.ts +527 -0
  222. package/core/src/generation/prompt-builder.ts +772 -0
  223. package/core/src/generation/source-analyzer.ts +830 -0
  224. package/core/src/generation/test-optimizer.ts +474 -0
  225. package/core/src/generation/types.ts +217 -0
  226. package/core/src/hooks/__tests__/compose.test.ts +636 -0
  227. package/core/src/hooks/__tests__/runner.test.ts +478 -0
  228. package/core/src/hooks/compose.ts +268 -0
  229. package/core/src/hooks/runner.ts +364 -0
  230. package/core/src/index.ts +255 -0
  231. package/core/src/pack/__tests__/migrator.test.ts +594 -0
  232. package/core/src/pack/__tests__/validator.test.ts +759 -0
  233. package/core/src/pack/migrator.ts +353 -0
  234. package/core/src/pack/validator.ts +359 -0
  235. package/core/src/pack-v2/__tests__/loader.test.ts +533 -0
  236. package/core/src/pack-v2/__tests__/migrator.test.ts +455 -0
  237. package/core/src/pack-v2/__tests__/validator.test.ts +609 -0
  238. package/core/src/pack-v2/index.ts +41 -0
  239. package/core/src/pack-v2/loader.ts +358 -0
  240. package/core/src/pack-v2/migrator.ts +540 -0
  241. package/core/src/pack-v2/validator.ts +731 -0
  242. package/core/src/parallel/README.md +143 -0
  243. package/core/src/parallel/index.ts +16 -0
  244. package/core/src/parallel/parallel-runner.ts +282 -0
  245. package/core/src/pom/__tests__/loader.test.ts +378 -0
  246. package/core/src/pom/base-page.ts +425 -0
  247. package/core/src/pom/index.ts +45 -0
  248. package/core/src/pom/loader.ts +480 -0
  249. package/core/src/pom/types.ts +146 -0
  250. package/core/src/proof/__tests__/proof-roundtrip.test.ts +149 -0
  251. package/core/src/proof/__tests__/schema-validation-manual.mjs +211 -0
  252. package/core/src/proof/__tests__/schema-validation.test.ts +336 -0
  253. package/core/src/proof/__tests__/signer.test.ts +486 -0
  254. package/core/src/proof/__tests__/temporal-regression.test.ts +537 -0
  255. package/core/src/proof/__tests__/verifier-advanced.test.ts +588 -0
  256. package/core/src/proof/__tests__/verifier.test.ts +413 -0
  257. package/core/src/proof/bundle.ts +290 -0
  258. package/core/src/proof/canonicalize.ts +116 -0
  259. package/core/src/proof/index.ts +74 -0
  260. package/core/src/proof/schema.ts +285 -0
  261. package/core/src/proof/signer.ts +293 -0
  262. package/core/src/proof/verifier.ts +380 -0
  263. package/core/src/regression/__tests__/detector.test.ts +396 -0
  264. package/core/src/regression/__tests__/trend-analyzer.test.ts +300 -0
  265. package/core/src/regression/detector.ts +629 -0
  266. package/core/src/regression/index.ts +34 -0
  267. package/core/src/regression/trend-analyzer.ts +468 -0
  268. package/core/src/regression/types.ts +295 -0
  269. package/core/src/regression/vault.ts +419 -0
  270. package/core/src/repair/__tests__/repairer.test.ts +572 -0
  271. package/core/src/repair/__tests__/types.test.ts +302 -0
  272. package/core/src/repair/engine/__tests__/fixer.test.ts +482 -0
  273. package/core/src/repair/engine/__tests__/suggestion-engine.test.ts +395 -0
  274. package/core/src/repair/engine/fixer.ts +271 -0
  275. package/core/src/repair/engine/suggestion-engine.ts +234 -0
  276. package/core/src/repair/index.ts +53 -0
  277. package/core/src/repair/repairer.ts +376 -0
  278. package/core/src/repair/types.ts +119 -0
  279. package/core/src/repair/utils/__tests__/error-analyzer.test.ts +454 -0
  280. package/core/src/repair/utils/error-analyzer.ts +308 -0
  281. package/core/src/reporting/README.md +144 -0
  282. package/core/src/reporting/html-reporter.ts +835 -0
  283. package/core/src/reporting/index.ts +16 -0
  284. package/core/src/retry/README.md +192 -0
  285. package/core/src/retry/__tests__/flakiness-integration.test.ts +475 -0
  286. package/core/src/retry/__tests__/retry-engine.test.ts +424 -0
  287. package/core/src/retry/flakiness-integration.ts +267 -0
  288. package/core/src/retry/index.ts +48 -0
  289. package/core/src/retry/retry-engine.ts +368 -0
  290. package/core/src/retry/types.ts +208 -0
  291. package/core/src/retry/vault.ts +413 -0
  292. package/core/src/runner/__tests__/flakiness-integration.test.ts +566 -0
  293. package/core/src/runner/__tests__/phase3-e2e-b2bshop.test.ts +218 -0
  294. package/core/src/runner/__tests__/phase3-e2e-reqres.test.ts +199 -0
  295. package/core/src/runner/__tests__/phase3-runner.test.ts +1118 -0
  296. package/core/src/runner/e2e-helpers.ts +216 -0
  297. package/core/src/runner/phase3-runner.ts +1536 -0
  298. package/core/src/schemas/gherkin-report.json +122 -0
  299. package/core/src/secrets/__tests__/crypto.test.ts +180 -0
  300. package/core/src/secrets/crypto.ts +289 -0
  301. package/core/src/secrets/manager.ts +272 -0
  302. package/core/src/security/__tests__/hardening.test.ts +480 -0
  303. package/core/src/security/redaction-patterns-extended.ts +278 -0
  304. package/core/src/security/redactor.ts +326 -0
  305. package/core/src/self-healing/assertion-healer.ts +485 -0
  306. package/core/src/self-healing/engine.ts +626 -0
  307. package/core/src/self-healing/index.ts +33 -0
  308. package/core/src/self-healing/selector-healer.ts +488 -0
  309. package/core/src/self-healing/types.ts +193 -0
  310. package/core/src/serve/diagnostics-collector.ts +201 -0
  311. package/core/src/serve/health-checker.ts +274 -0
  312. package/core/src/serve/index.ts +9 -0
  313. package/core/src/serve/metrics-collector.ts +386 -0
  314. package/core/src/serve/process-manager.ts +265 -0
  315. package/core/src/serve/server.ts +230 -0
  316. package/core/src/slo/config.ts +408 -0
  317. package/core/src/slo/index.ts +68 -0
  318. package/core/src/slo/sli-calculator.ts +474 -0
  319. package/core/src/slo/slo-tracker.ts +481 -0
  320. package/core/src/slo/types.ts +408 -0
  321. package/core/src/slo/vault.ts +600 -0
  322. package/core/src/tui/__tests__/monitor.test.ts +336 -0
  323. package/core/src/tui/__tests__/real-world.test.ts +376 -0
  324. package/core/src/tui/__tests__/renderer.test.ts +201 -0
  325. package/core/src/tui/__tests__/types.test.ts +295 -0
  326. package/core/src/tui/index.ts +19 -0
  327. package/core/src/tui/monitor.ts +331 -0
  328. package/core/src/tui/renderer.ts +269 -0
  329. package/core/src/tui/types.ts +68 -0
  330. package/core/src/types/pack-v1.ts +305 -0
  331. package/core/src/types/pack-v2.ts +525 -0
  332. package/core/src/types/trust-score.ts +258 -0
  333. package/core/src/vault/__tests__/flakiness-vault.test.ts +562 -0
  334. package/core/src/vault/__tests__/vault.test.ts +259 -0
  335. package/core/src/vault/cas.ts +323 -0
  336. package/core/src/vault/index.ts +1361 -0
  337. package/core/src/vault/schema.sql +168 -0
  338. package/core/src/visual/README.md +185 -0
  339. package/core/src/visual/index.ts +14 -0
  340. package/core/src/visual/visual-regression.ts +347 -0
  341. package/core/src/watch/__tests__/watch-mode.test.ts +192 -0
  342. package/core/src/watch/index.ts +14 -0
  343. package/core/src/watch/watch-mode.ts +565 -0
  344. package/core/tsconfig.json +12 -0
  345. package/core/vitest.config.ts +52 -0
  346. package/docs/ARCHITECTURE.md +901 -0
  347. package/docs/AUDIT-GLOBAL-DEC2025.md +271 -0
  348. package/docs/BETA_TESTING.md +257 -0
  349. package/docs/BETA_TESTING_PLAN.md +727 -0
  350. package/docs/CERTIFICATION-REPORT.md +142 -0
  351. package/docs/COMPLETE_AUDIT_REFACTORING.md +965 -0
  352. package/docs/DEVELOPMENT.md +545 -0
  353. package/docs/DEVELOPMENT_HISTORY.md +345 -0
  354. package/docs/LIMITATIONS.md +176 -0
  355. package/docs/MIGRATION.md +303 -0
  356. package/docs/OPTION_3_4_EXPLORATION.md +1257 -0
  357. package/docs/PHASE1_PERFORMANCE.md +144 -0
  358. package/docs/QA360_Cloud.postman_collection.json +89 -0
  359. package/docs/QA360_TESTING_PHILOSOPHY.md +769 -0
  360. package/docs/QA_TEST_PLAN.md +727 -0
  361. package/docs/README.md +50 -0
  362. package/docs/STATUS.md +198 -0
  363. package/docs/STRATEGIC_STUDY_GOOSE_INTEGRATION.md +615 -0
  364. package/docs/USER_GUIDE.md +687 -0
  365. package/docs/WORK-DONE-ADAPTER-TESTS.md +136 -0
  366. package/docs/adapters-security.md +485 -0
  367. package/docs/architecture-diagram.mmd +168 -0
  368. package/docs/archive/ARCH-01-DAY6-BUILD-FIXES.md +396 -0
  369. package/docs/archive/ARCH-01-DAY6-FINAL-STATUS.md +324 -0
  370. package/docs/archive/ARCH-01_MCP_MERGE_ANALYSIS.md +644 -0
  371. package/docs/archive/ARCH-01_NEXT_STEPS.md +60 -0
  372. package/docs/archive/BRANCH_PROTECTION.md +183 -0
  373. package/docs/archive/CI_LOCKDOWN_CHECKLIST.md +222 -0
  374. package/docs/archive/HANDOFF_TEST-01.md +669 -0
  375. package/docs/archive/LEGAL_READY_PLACEHOLDERS.md +372 -0
  376. package/docs/archive/NODE_UPGRADE_GUIDE.md +188 -0
  377. package/docs/archive/PHASE1_COMPLETION.md +386 -0
  378. package/docs/archive/PHASE2_COMPLETION.md +404 -0
  379. package/docs/archive/PHASE3_AND_4_FINAL.md +360 -0
  380. package/docs/archive/PHASE3_COMPLETE.md +301 -0
  381. package/docs/archive/PHASE3_STATUS.md +255 -0
  382. package/docs/archive/PRE-WEEK2-AUDIT.md +364 -0
  383. package/docs/archive/README.md +16 -0
  384. package/docs/archive/SCHEMA_AJV_2020_FIX.md +245 -0
  385. package/docs/archive/TEST-01_AUDIT_REPORT.md +240 -0
  386. package/docs/archive/TEST-01_COVERAGE_PLAN.md +423 -0
  387. package/docs/archive/obsolete-proposals/dom-element-discovery-mode.md +250 -0
  388. package/docs/archive/obsolete-proposals/qa360-comprehensive-test-plan.md +1249 -0
  389. package/docs/archive/obsolete-proposals/qa360-quick-start-guide.md +298 -0
  390. package/docs/archive/obsolete-proposals/technical-plan-dom-discovery.md +870 -0
  391. package/docs/budgets-advanced.md +308 -0
  392. package/docs/examples/history-export-gc.md +285 -0
  393. package/docs/examples/pack-v2-complete.yaml +158 -0
  394. package/docs/examples/pack-v2-quickstart.yaml +24 -0
  395. package/docs/examples/pack-v2-ui-login.yaml +81 -0
  396. package/docs/examples/qa360-report.json +50 -0
  397. package/docs/history.md +565 -0
  398. package/docs/hooks.md +304 -0
  399. package/docs/llm-providers.md +512 -0
  400. package/docs/mcp-server.md +651 -0
  401. package/docs/mcp-tools.md +1131 -0
  402. package/docs/pack-v1.md +383 -0
  403. package/docs/pack-v2.md +558 -0
  404. package/docs/page-objects.md +366 -0
  405. package/docs/proofs.md +670 -0
  406. package/docs/quickstart-5min.md +257 -0
  407. package/docs/readiness-ci.md +654 -0
  408. package/docs/rfc/README.md +20 -0
  409. package/docs/rfc/proof-bundle-v1.md +787 -0
  410. package/docs/secrets.md +392 -0
  411. package/docs/serve.md +494 -0
  412. package/docs/unit-test-adapters.md +168 -0
  413. package/docs/vault.md +491 -0
  414. package/e2e/qa360-e2e.test.ts +696 -0
  415. package/e2e/vitest.config.ts +18 -0
  416. package/examples/README.md +30 -140
  417. package/examples/ci/docker-compose-serve.yml +375 -0
  418. package/examples/ci/github-actions-serve.yml +345 -0
  419. package/examples/ci/gitlab-ci-serve.yml +407 -0
  420. package/examples/datasets/README.md +101 -0
  421. package/examples/datasets/b2bshop.ts +155 -0
  422. package/examples/datasets/index.ts +57 -0
  423. package/examples/datasets/reqres.ts +195 -0
  424. package/examples/fixtures-demo/fixtures/users.yml +39 -0
  425. package/examples/fixtures-demo/pack.yml +71 -0
  426. package/examples/future-api/README.md +16 -0
  427. package/examples/future-api/diag.js +7 -0
  428. package/examples/future-api/health.js +4 -0
  429. package/examples/future-api/packs.js +13 -0
  430. package/examples/future-api/runpack.js +10 -0
  431. package/examples/generation/README.md +148 -0
  432. package/examples/generation/pack-generator-example.js +115 -0
  433. package/examples/generation/source-analyzer-example.js +115 -0
  434. package/examples/httpbin/pack.yml +59 -0
  435. package/examples/load-testing/mcp-load.yml +115 -0
  436. package/examples/load-testing/mcp-stdio.yml +95 -0
  437. package/examples/mcp/claude-desktop-config.json +33 -0
  438. package/examples/mcp/claude-desktop.json +16 -0
  439. package/examples/mcp/conversation-sample.md +131 -0
  440. package/examples/mcp/demo-60s.md +330 -0
  441. package/examples/mcp/sample-conversation.jsonl +21 -0
  442. package/examples/mcp/vscode-settings.json +22 -0
  443. package/examples/pack-v2-complete.yml +242 -0
  444. package/examples/pack-v2-examples.md +244 -0
  445. package/examples/pack-v2-quickstart.yml +55 -0
  446. package/examples/packs-business/ecommerce-api.yml +121 -0
  447. package/examples/packs-business/saas-dashboard-ui.yml +133 -0
  448. package/examples/packs-conformance/compose-multi.yml +174 -0
  449. package/examples/packs-conformance/full.yml +152 -0
  450. package/examples/packs-conformance/heavy-artifacts.yml +152 -0
  451. package/examples/packs-conformance/minimal.yml +71 -0
  452. package/examples/packs-conformance/secrets-missing.yml +97 -0
  453. package/examples/packs-conformance/timeouts.yml +77 -0
  454. package/examples/pom-demo/README.md +104 -0
  455. package/examples/pom-demo/pack.yml +60 -0
  456. package/examples/pom-demo/pages/DashboardPage.page.ts +73 -0
  457. package/examples/pom-demo/pages/LoginPage.page.ts +76 -0
  458. package/examples/proofs/e2e-playwright-proof.json +75 -0
  459. package/examples/proofs/httpbin-proof.json +69 -0
  460. package/examples/proofs/multi-adapter-proof.json +117 -0
  461. package/examples/proofs/test-proof.json +26 -0
  462. package/examples/restful-api-dev/README.md +102 -0
  463. package/examples/restful-api-dev/restful-api-advanced.yml +29 -0
  464. package/examples/restful-api-dev/restful-api-basic.yml +29 -0
  465. package/examples/web-lite/.github/workflows/qa360-phase3.yml +73 -0
  466. package/examples/web-lite/api-mock/server.js +258 -0
  467. package/examples/web-lite/pack.yml +71 -0
  468. package/examples/web-lite/services.yml +43 -0
  469. package/examples/web-lite/web-content/healthz +1 -0
  470. package/examples/web-lite/web-content/index.html +259 -0
  471. package/package.json +56 -45
  472. package/packages/mcp/CHANGELOG.md +109 -0
  473. package/packages/mcp/IMPLEMENTATION_SUMMARY.md +350 -0
  474. package/packages/mcp/LICENSE +21 -0
  475. package/packages/mcp/QUICK_START.md +291 -0
  476. package/packages/mcp/README.md +294 -0
  477. package/packages/mcp/TELEMETRY.md +220 -0
  478. package/packages/mcp/package.json +91 -0
  479. package/packages/mcp/scripts/generate-sbom-fallback.cjs +84 -0
  480. package/packages/mcp/scripts/safe-postinstall.cjs +32 -0
  481. package/packages/mcp/src/__tests__/contract.test.ts +902 -0
  482. package/packages/mcp/src/cli/cli.ts +137 -0
  483. package/packages/mcp/src/cli/doctor.ts +286 -0
  484. package/packages/mcp/src/cli/fix.ts +99 -0
  485. package/packages/mcp/src/cli/init.ts +233 -0
  486. package/packages/mcp/src/cli/postinstall.ts +14 -0
  487. package/packages/mcp/src/cli/reset.ts +44 -0
  488. package/packages/mcp/src/cli/telemetry.ts +166 -0
  489. package/packages/mcp/src/cli/test-dx.ts +94 -0
  490. package/packages/mcp/src/cli/uninstall.ts +80 -0
  491. package/packages/mcp/src/cli/up.ts +178 -0
  492. package/packages/mcp/src/index.ts +12 -0
  493. package/packages/mcp/src/scripts/e2e-local.ts +337 -0
  494. package/packages/mcp/src/scripts/verify-settings.ts +242 -0
  495. package/packages/mcp/src/security/audit.ts +244 -0
  496. package/packages/mcp/src/security/manager.ts +242 -0
  497. package/packages/mcp/src/server/full-server.ts +212 -0
  498. package/packages/mcp/src/server/minimal-server.ts +134 -0
  499. package/packages/mcp/src/tools/history.ts +388 -0
  500. package/packages/mcp/src/tools/pack.ts +449 -0
  501. package/packages/mcp/src/tools/registry.ts +638 -0
  502. package/packages/mcp/src/tools/report.ts +100 -0
  503. package/packages/mcp/src/tools/run.ts +268 -0
  504. package/packages/mcp/src/tools/secrets.ts +198 -0
  505. package/packages/mcp/src/tools/serve.ts +221 -0
  506. package/packages/mcp/src/tools/triage.ts +532 -0
  507. package/packages/mcp/src/tools/types.ts +26 -0
  508. package/packages/mcp/src/tools/vault.ts +164 -0
  509. package/packages/mcp/src/tools/verify.ts +166 -0
  510. package/packages/mcp/src/types/index.ts +311 -0
  511. package/packages/mcp/src/types/mcp-stubs.ts +83 -0
  512. package/packages/mcp/tsconfig.json +16 -0
  513. package/playwright.config.ts +20 -0
  514. package/pnpm-workspace.yaml +4 -0
  515. package/run-test-and-push.sh +20 -0
  516. package/scripts/build-proof-cli.sh +110 -0
  517. package/scripts/ci/check-windows-paths.js +92 -0
  518. package/scripts/ci/invariants.sh +124 -0
  519. package/scripts/ci/make-final-bundle.js +106 -0
  520. package/scripts/ci/mcp-run-multipack.js +305 -0
  521. package/scripts/ci/run-pack-suite.sh +103 -0
  522. package/scripts/ci/run-phase7-final.sh +190 -0
  523. package/scripts/ci/slo-assert.js +158 -0
  524. package/scripts/ci/test-fault-tolerance.sh +301 -0
  525. package/scripts/install-mcp.sh +66 -0
  526. package/scripts/mcp-smoke.mjs +27 -0
  527. package/scripts/smoke.sh +26 -0
  528. package/scripts/stress-test.js +288 -0
  529. package/scripts/sync-version.mjs +50 -0
  530. package/scripts/validate-examples.mjs +404 -0
  531. package/scripts/validation/simple-pack-check.sh +51 -0
  532. package/scripts/validation/validate-universal-pack.mjs +77 -0
  533. package/scripts/verify-persistence.js +127 -0
  534. package/test-pack.yaml +43 -0
  535. package/test-results/.last-run.json +4 -0
  536. package/test-runner.mjs +87 -0
  537. package/tests/artifacts.spec.js +147 -0
  538. package/tests/contracts.spec.js +239 -0
  539. package/tests/e2e/assertions.test.mjs +370 -0
  540. package/tests/e2e/crawler.test.mjs +451 -0
  541. package/tests/e2e/playwright-plus-plus.test.mjs +604 -0
  542. package/tests/e2e/proof-bundle.test.mjs +258 -0
  543. package/tests/e2e/real-world/saucedemo.test.mjs +714 -0
  544. package/tests/e2e/real-world/the-internet-herokuapp.test.mjs +760 -0
  545. package/tests/e2e/ui-actions.test.mjs +546 -0
  546. package/tests/gherkin.e2e.spec.ts +310 -0
  547. package/tests/no-console-errors.spec.js +136 -0
  548. package/tests/pdf.spec.ts +252 -0
  549. package/tests/run-pack.spec.ts +58 -0
  550. package/tsconfig.base.json +15 -0
  551. package/tsconfig.build.json +8 -0
  552. package/tsconfig.json +37 -0
  553. package/tsconfig.test.json +18 -0
  554. package/typedoc.json +37 -0
  555. package/ui/README.md +50 -0
  556. package/verify-proof.mjs +60 -0
  557. package/dist/cli-minimal.d.ts +0 -6
  558. package/dist/cli-minimal.js +0 -36
  559. package/dist/commands/ai.d.ts +0 -43
  560. package/dist/commands/ai.js +0 -616
  561. package/dist/commands/ask.d.ts +0 -94
  562. package/dist/commands/ask.js +0 -582
  563. package/dist/commands/coverage.d.ts +0 -8
  564. package/dist/commands/coverage.js +0 -252
  565. package/dist/commands/crawl.d.ts +0 -24
  566. package/dist/commands/crawl.js +0 -121
  567. package/dist/commands/doctor.d.ts +0 -54
  568. package/dist/commands/doctor.js +0 -513
  569. package/dist/commands/examples.d.ts +0 -33
  570. package/dist/commands/examples.js +0 -193
  571. package/dist/commands/explain.d.ts +0 -27
  572. package/dist/commands/explain.js +0 -630
  573. package/dist/commands/flakiness.d.ts +0 -73
  574. package/dist/commands/flakiness.js +0 -435
  575. package/dist/commands/generate.d.ts +0 -66
  576. package/dist/commands/generate.js +0 -438
  577. package/dist/commands/history.d.ts +0 -76
  578. package/dist/commands/history.js +0 -755
  579. package/dist/commands/init.d.ts +0 -106
  580. package/dist/commands/init.js +0 -616
  581. package/dist/commands/monitor.d.ts +0 -27
  582. package/dist/commands/monitor.js +0 -225
  583. package/dist/commands/ollama.d.ts +0 -40
  584. package/dist/commands/ollama.js +0 -301
  585. package/dist/commands/pack.d.ts +0 -70
  586. package/dist/commands/pack.js +0 -413
  587. package/dist/commands/regression.d.ts +0 -8
  588. package/dist/commands/regression.js +0 -340
  589. package/dist/commands/repair.d.ts +0 -26
  590. package/dist/commands/repair.js +0 -307
  591. package/dist/commands/report.d.ts +0 -62
  592. package/dist/commands/report.js +0 -378
  593. package/dist/commands/retry.d.ts +0 -43
  594. package/dist/commands/retry.js +0 -275
  595. package/dist/commands/run.d.ts +0 -41
  596. package/dist/commands/run.js +0 -169
  597. package/dist/commands/scan.d.ts +0 -5
  598. package/dist/commands/scan.js +0 -155
  599. package/dist/commands/secrets.d.ts +0 -58
  600. package/dist/commands/secrets.js +0 -289
  601. package/dist/commands/serve.d.ts +0 -13
  602. package/dist/commands/serve.js +0 -156
  603. package/dist/commands/slo.d.ts +0 -8
  604. package/dist/commands/slo.js +0 -327
  605. package/dist/commands/verify.d.ts +0 -32
  606. package/dist/commands/verify.js +0 -278
  607. package/dist/core/adapters/gitleaks-secrets.d.ts +0 -114
  608. package/dist/core/adapters/gitleaks-secrets.js +0 -410
  609. package/dist/core/adapters/k6-perf.d.ts +0 -85
  610. package/dist/core/adapters/k6-perf.js +0 -398
  611. package/dist/core/adapters/osv-deps.d.ts +0 -123
  612. package/dist/core/adapters/osv-deps.js +0 -372
  613. package/dist/core/adapters/playwright-native-adapter.d.ts +0 -121
  614. package/dist/core/adapters/playwright-native-adapter.js +0 -339
  615. package/dist/core/adapters/playwright-native-api.d.ts +0 -183
  616. package/dist/core/adapters/playwright-native-api.js +0 -465
  617. package/dist/core/adapters/playwright-ui.d.ts +0 -197
  618. package/dist/core/adapters/playwright-ui.js +0 -840
  619. package/dist/core/adapters/semgrep-sast.d.ts +0 -99
  620. package/dist/core/adapters/semgrep-sast.js +0 -322
  621. package/dist/core/adapters/zap-dast.d.ts +0 -133
  622. package/dist/core/adapters/zap-dast.js +0 -424
  623. package/dist/core/ai/anthropic-provider.d.ts +0 -50
  624. package/dist/core/ai/anthropic-provider.js +0 -223
  625. package/dist/core/ai/deepseek-provider.d.ts +0 -81
  626. package/dist/core/ai/deepseek-provider.js +0 -266
  627. package/dist/core/ai/index.d.ts +0 -60
  628. package/dist/core/ai/index.js +0 -18
  629. package/dist/core/ai/llm-client.d.ts +0 -45
  630. package/dist/core/ai/llm-client.js +0 -7
  631. package/dist/core/ai/mock-provider.d.ts +0 -49
  632. package/dist/core/ai/mock-provider.js +0 -121
  633. package/dist/core/ai/ollama-provider.d.ts +0 -78
  634. package/dist/core/ai/ollama-provider.js +0 -204
  635. package/dist/core/ai/openai-provider.d.ts +0 -48
  636. package/dist/core/ai/openai-provider.js +0 -200
  637. package/dist/core/ai/provider-factory.d.ts +0 -160
  638. package/dist/core/ai/provider-factory.js +0 -269
  639. package/dist/core/artifacts/index.d.ts +0 -6
  640. package/dist/core/artifacts/index.js +0 -6
  641. package/dist/core/artifacts/ui-artifacts.d.ts +0 -133
  642. package/dist/core/artifacts/ui-artifacts.js +0 -304
  643. package/dist/core/assertions/engine.d.ts +0 -51
  644. package/dist/core/assertions/engine.js +0 -530
  645. package/dist/core/assertions/index.d.ts +0 -11
  646. package/dist/core/assertions/index.js +0 -11
  647. package/dist/core/assertions/types.d.ts +0 -121
  648. package/dist/core/assertions/types.js +0 -37
  649. package/dist/core/auth/api-key-provider.d.ts +0 -16
  650. package/dist/core/auth/api-key-provider.js +0 -63
  651. package/dist/core/auth/aws-iam-provider.d.ts +0 -35
  652. package/dist/core/auth/aws-iam-provider.js +0 -177
  653. package/dist/core/auth/azure-ad-provider.d.ts +0 -15
  654. package/dist/core/auth/azure-ad-provider.js +0 -99
  655. package/dist/core/auth/basic-auth-provider.d.ts +0 -26
  656. package/dist/core/auth/basic-auth-provider.js +0 -111
  657. package/dist/core/auth/gcp-adc-provider.d.ts +0 -27
  658. package/dist/core/auth/gcp-adc-provider.js +0 -126
  659. package/dist/core/auth/index.d.ts +0 -238
  660. package/dist/core/auth/index.js +0 -82
  661. package/dist/core/auth/jwt-provider.d.ts +0 -19
  662. package/dist/core/auth/jwt-provider.js +0 -160
  663. package/dist/core/auth/manager.d.ts +0 -84
  664. package/dist/core/auth/manager.js +0 -230
  665. package/dist/core/auth/oauth2-provider.d.ts +0 -17
  666. package/dist/core/auth/oauth2-provider.js +0 -114
  667. package/dist/core/auth/totp-provider.d.ts +0 -31
  668. package/dist/core/auth/totp-provider.js +0 -134
  669. package/dist/core/auth/ui-login-provider.d.ts +0 -26
  670. package/dist/core/auth/ui-login-provider.js +0 -198
  671. package/dist/core/cache/index.d.ts +0 -7
  672. package/dist/core/cache/index.js +0 -6
  673. package/dist/core/cache/lru-cache.d.ts +0 -203
  674. package/dist/core/cache/lru-cache.js +0 -397
  675. package/dist/core/core/coverage/analyzer.d.ts +0 -101
  676. package/dist/core/core/coverage/analyzer.js +0 -415
  677. package/dist/core/core/coverage/collector.d.ts +0 -74
  678. package/dist/core/core/coverage/collector.js +0 -459
  679. package/dist/core/core/coverage/config.d.ts +0 -37
  680. package/dist/core/core/coverage/config.js +0 -156
  681. package/dist/core/core/coverage/index.d.ts +0 -11
  682. package/dist/core/core/coverage/index.js +0 -15
  683. package/dist/core/core/coverage/types.d.ts +0 -267
  684. package/dist/core/core/coverage/types.js +0 -6
  685. package/dist/core/core/coverage/vault.d.ts +0 -95
  686. package/dist/core/core/coverage/vault.js +0 -405
  687. package/dist/core/coverage/analyzer.d.ts +0 -101
  688. package/dist/core/coverage/analyzer.js +0 -415
  689. package/dist/core/coverage/collector.d.ts +0 -74
  690. package/dist/core/coverage/collector.js +0 -459
  691. package/dist/core/coverage/config.d.ts +0 -37
  692. package/dist/core/coverage/config.js +0 -156
  693. package/dist/core/coverage/index.d.ts +0 -11
  694. package/dist/core/coverage/index.js +0 -15
  695. package/dist/core/coverage/types.d.ts +0 -267
  696. package/dist/core/coverage/types.js +0 -6
  697. package/dist/core/coverage/vault.d.ts +0 -95
  698. package/dist/core/coverage/vault.js +0 -405
  699. package/dist/core/crawler/index.d.ts +0 -57
  700. package/dist/core/crawler/index.js +0 -281
  701. package/dist/core/crawler/journey-generator.d.ts +0 -49
  702. package/dist/core/crawler/journey-generator.js +0 -412
  703. package/dist/core/crawler/page-analyzer.d.ts +0 -88
  704. package/dist/core/crawler/page-analyzer.js +0 -709
  705. package/dist/core/crawler/selector-generator.d.ts +0 -34
  706. package/dist/core/crawler/selector-generator.js +0 -240
  707. package/dist/core/crawler/types.d.ts +0 -353
  708. package/dist/core/crawler/types.js +0 -6
  709. package/dist/core/dashboard/assets.d.ts +0 -6
  710. package/dist/core/dashboard/assets.js +0 -690
  711. package/dist/core/dashboard/index.d.ts +0 -6
  712. package/dist/core/dashboard/index.js +0 -5
  713. package/dist/core/dashboard/server.d.ts +0 -72
  714. package/dist/core/dashboard/server.js +0 -354
  715. package/dist/core/dashboard/types.d.ts +0 -70
  716. package/dist/core/dashboard/types.js +0 -5
  717. package/dist/core/discoverer/index.d.ts +0 -115
  718. package/dist/core/discoverer/index.js +0 -250
  719. package/dist/core/flakiness/index.d.ts +0 -228
  720. package/dist/core/flakiness/index.js +0 -384
  721. package/dist/core/generation/code-formatter.d.ts +0 -111
  722. package/dist/core/generation/code-formatter.js +0 -307
  723. package/dist/core/generation/code-generator.d.ts +0 -144
  724. package/dist/core/generation/code-generator.js +0 -293
  725. package/dist/core/generation/crawler-pack-generator.d.ts +0 -44
  726. package/dist/core/generation/crawler-pack-generator.js +0 -231
  727. package/dist/core/generation/generator.d.ts +0 -40
  728. package/dist/core/generation/generator.js +0 -76
  729. package/dist/core/generation/index.d.ts +0 -32
  730. package/dist/core/generation/index.js +0 -30
  731. package/dist/core/generation/pack-generator.d.ts +0 -107
  732. package/dist/core/generation/pack-generator.js +0 -416
  733. package/dist/core/generation/prompt-builder.d.ts +0 -132
  734. package/dist/core/generation/prompt-builder.js +0 -672
  735. package/dist/core/generation/source-analyzer.d.ts +0 -213
  736. package/dist/core/generation/source-analyzer.js +0 -657
  737. package/dist/core/generation/test-optimizer.d.ts +0 -117
  738. package/dist/core/generation/test-optimizer.js +0 -328
  739. package/dist/core/generation/types.d.ts +0 -214
  740. package/dist/core/generation/types.js +0 -4
  741. package/dist/core/hooks/compose.d.ts +0 -61
  742. package/dist/core/hooks/compose.js +0 -225
  743. package/dist/core/hooks/runner.d.ts +0 -68
  744. package/dist/core/hooks/runner.js +0 -303
  745. package/dist/core/index.d.ts +0 -104
  746. package/dist/core/index.js +0 -91
  747. package/dist/core/pack/migrator.d.ts +0 -51
  748. package/dist/core/pack/migrator.js +0 -304
  749. package/dist/core/pack/validator.d.ts +0 -42
  750. package/dist/core/pack/validator.js +0 -322
  751. package/dist/core/pack-v2/index.d.ts +0 -9
  752. package/dist/core/pack-v2/index.js +0 -8
  753. package/dist/core/pack-v2/loader.d.ts +0 -63
  754. package/dist/core/pack-v2/loader.js +0 -292
  755. package/dist/core/pack-v2/migrator.d.ts +0 -61
  756. package/dist/core/pack-v2/migrator.js +0 -480
  757. package/dist/core/pack-v2/validator.d.ts +0 -61
  758. package/dist/core/pack-v2/validator.js +0 -577
  759. package/dist/core/parallel/index.d.ts +0 -6
  760. package/dist/core/parallel/index.js +0 -6
  761. package/dist/core/parallel/parallel-runner.d.ts +0 -107
  762. package/dist/core/parallel/parallel-runner.js +0 -192
  763. package/dist/core/proof/bundle.d.ts +0 -137
  764. package/dist/core/proof/bundle.js +0 -160
  765. package/dist/core/proof/canonicalize.d.ts +0 -47
  766. package/dist/core/proof/canonicalize.js +0 -105
  767. package/dist/core/proof/index.d.ts +0 -13
  768. package/dist/core/proof/index.js +0 -18
  769. package/dist/core/proof/schema.d.ts +0 -217
  770. package/dist/core/proof/schema.js +0 -263
  771. package/dist/core/proof/signer.d.ts +0 -111
  772. package/dist/core/proof/signer.js +0 -226
  773. package/dist/core/proof/verifier.d.ts +0 -97
  774. package/dist/core/proof/verifier.js +0 -308
  775. package/dist/core/regression/detector.d.ts +0 -107
  776. package/dist/core/regression/detector.js +0 -497
  777. package/dist/core/regression/index.d.ts +0 -9
  778. package/dist/core/regression/index.js +0 -11
  779. package/dist/core/regression/trend-analyzer.d.ts +0 -102
  780. package/dist/core/regression/trend-analyzer.js +0 -345
  781. package/dist/core/regression/types.d.ts +0 -222
  782. package/dist/core/regression/types.js +0 -7
  783. package/dist/core/regression/vault.d.ts +0 -87
  784. package/dist/core/regression/vault.js +0 -289
  785. package/dist/core/repair/engine/fixer.d.ts +0 -24
  786. package/dist/core/repair/engine/fixer.js +0 -226
  787. package/dist/core/repair/engine/suggestion-engine.d.ts +0 -18
  788. package/dist/core/repair/engine/suggestion-engine.js +0 -187
  789. package/dist/core/repair/index.d.ts +0 -10
  790. package/dist/core/repair/index.js +0 -13
  791. package/dist/core/repair/repairer.d.ts +0 -90
  792. package/dist/core/repair/repairer.js +0 -284
  793. package/dist/core/repair/types.d.ts +0 -91
  794. package/dist/core/repair/types.js +0 -6
  795. package/dist/core/repair/utils/error-analyzer.d.ts +0 -28
  796. package/dist/core/repair/utils/error-analyzer.js +0 -264
  797. package/dist/core/reporting/html-reporter.d.ts +0 -119
  798. package/dist/core/reporting/html-reporter.js +0 -737
  799. package/dist/core/reporting/index.d.ts +0 -6
  800. package/dist/core/reporting/index.js +0 -6
  801. package/dist/core/retry/flakiness-integration.d.ts +0 -60
  802. package/dist/core/retry/flakiness-integration.js +0 -228
  803. package/dist/core/retry/index.d.ts +0 -14
  804. package/dist/core/retry/index.js +0 -16
  805. package/dist/core/retry/retry-engine.d.ts +0 -80
  806. package/dist/core/retry/retry-engine.js +0 -296
  807. package/dist/core/retry/types.d.ts +0 -178
  808. package/dist/core/retry/types.js +0 -52
  809. package/dist/core/retry/vault.d.ts +0 -77
  810. package/dist/core/retry/vault.js +0 -304
  811. package/dist/core/runner/e2e-helpers.d.ts +0 -102
  812. package/dist/core/runner/e2e-helpers.js +0 -153
  813. package/dist/core/runner/phase3-runner.d.ts +0 -200
  814. package/dist/core/runner/phase3-runner.js +0 -1041
  815. package/dist/core/secrets/crypto.d.ts +0 -75
  816. package/dist/core/secrets/crypto.js +0 -223
  817. package/dist/core/secrets/manager.d.ts +0 -76
  818. package/dist/core/secrets/manager.js +0 -219
  819. package/dist/core/security/redaction-patterns-extended.d.ts +0 -27
  820. package/dist/core/security/redaction-patterns-extended.js +0 -247
  821. package/dist/core/security/redactor.d.ts +0 -71
  822. package/dist/core/security/redactor.js +0 -279
  823. package/dist/core/self-healing/assertion-healer.d.ts +0 -97
  824. package/dist/core/self-healing/assertion-healer.js +0 -371
  825. package/dist/core/self-healing/engine.d.ts +0 -122
  826. package/dist/core/self-healing/engine.js +0 -538
  827. package/dist/core/self-healing/index.d.ts +0 -10
  828. package/dist/core/self-healing/index.js +0 -11
  829. package/dist/core/self-healing/selector-healer.d.ts +0 -103
  830. package/dist/core/self-healing/selector-healer.js +0 -372
  831. package/dist/core/self-healing/types.d.ts +0 -152
  832. package/dist/core/self-healing/types.js +0 -6
  833. package/dist/core/serve/diagnostics-collector.d.ts +0 -32
  834. package/dist/core/serve/diagnostics-collector.js +0 -149
  835. package/dist/core/serve/health-checker.d.ts +0 -44
  836. package/dist/core/serve/health-checker.js +0 -219
  837. package/dist/core/serve/index.d.ts +0 -8
  838. package/dist/core/serve/index.js +0 -8
  839. package/dist/core/serve/metrics-collector.d.ts +0 -24
  840. package/dist/core/serve/metrics-collector.js +0 -322
  841. package/dist/core/serve/process-manager.d.ts +0 -36
  842. package/dist/core/serve/process-manager.js +0 -213
  843. package/dist/core/serve/server.d.ts +0 -36
  844. package/dist/core/serve/server.js +0 -191
  845. package/dist/core/slo/config.d.ts +0 -107
  846. package/dist/core/slo/config.js +0 -360
  847. package/dist/core/slo/index.d.ts +0 -11
  848. package/dist/core/slo/index.js +0 -15
  849. package/dist/core/slo/sli-calculator.d.ts +0 -92
  850. package/dist/core/slo/sli-calculator.js +0 -364
  851. package/dist/core/slo/slo-tracker.d.ts +0 -148
  852. package/dist/core/slo/slo-tracker.js +0 -379
  853. package/dist/core/slo/types.d.ts +0 -281
  854. package/dist/core/slo/types.js +0 -7
  855. package/dist/core/slo/vault.d.ts +0 -102
  856. package/dist/core/slo/vault.js +0 -427
  857. package/dist/core/tui/index.d.ts +0 -7
  858. package/dist/core/tui/index.js +0 -6
  859. package/dist/core/tui/monitor.d.ts +0 -92
  860. package/dist/core/tui/monitor.js +0 -271
  861. package/dist/core/tui/renderer.d.ts +0 -33
  862. package/dist/core/tui/renderer.js +0 -218
  863. package/dist/core/tui/types.d.ts +0 -63
  864. package/dist/core/tui/types.js +0 -5
  865. package/dist/core/types/pack-v1.d.ts +0 -251
  866. package/dist/core/types/pack-v1.js +0 -5
  867. package/dist/core/types/pack-v2.d.ts +0 -425
  868. package/dist/core/types/pack-v2.js +0 -8
  869. package/dist/core/types/trust-score.d.ts +0 -69
  870. package/dist/core/types/trust-score.js +0 -191
  871. package/dist/core/vault/cas.d.ts +0 -90
  872. package/dist/core/vault/cas.js +0 -261
  873. package/dist/core/vault/index.d.ts +0 -326
  874. package/dist/core/vault/index.js +0 -1042
  875. package/dist/core/visual/index.d.ts +0 -6
  876. package/dist/core/visual/index.js +0 -6
  877. package/dist/core/visual/visual-regression.d.ts +0 -113
  878. package/dist/core/visual/visual-regression.js +0 -236
  879. package/dist/core/watch/index.d.ts +0 -7
  880. package/dist/core/watch/index.js +0 -6
  881. package/dist/core/watch/watch-mode.d.ts +0 -213
  882. package/dist/core/watch/watch-mode.js +0 -389
  883. package/dist/generators/index.d.ts +0 -5
  884. package/dist/generators/index.js +0 -5
  885. package/dist/generators/json-reporter.d.ts +0 -10
  886. package/dist/generators/json-reporter.js +0 -12
  887. package/dist/generators/test-generator.d.ts +0 -18
  888. package/dist/generators/test-generator.js +0 -78
  889. package/dist/index.d.ts +0 -8
  890. package/dist/index.js +0 -246
  891. package/dist/scanners/dom-scanner.d.ts +0 -52
  892. package/dist/scanners/dom-scanner.js +0 -296
  893. package/dist/scanners/index.d.ts +0 -4
  894. package/dist/scanners/index.js +0 -4
  895. package/dist/schemas/pack.schema.json +0 -236
  896. package/dist/types/scan.d.ts +0 -68
  897. package/dist/types/scan.js +0 -4
  898. package/dist/utils/config.d.ts +0 -5
  899. package/dist/utils/config.js +0 -136
  900. /package/{bin → cli/bin}/qa360.js +0 -0
  901. /package/{examples → cli/examples}/accessibility.yml +0 -0
  902. /package/{examples → cli/examples}/api-basic.yml +0 -0
  903. /package/{examples → cli/examples}/complete.yml +0 -0
  904. /package/{examples → cli/examples}/crawler.yml +0 -0
  905. /package/{examples → cli/examples}/fullstack.yml +0 -0
  906. /package/{examples → cli/examples}/security.yml +0 -0
  907. /package/{examples → cli/examples}/ui-advanced.yml +0 -0
  908. /package/{examples → cli/examples}/ui-basic.yml +0 -0
  909. /package/{dist/core → core}/schemas/pack.schema.json +0 -0
@@ -1,160 +1,50 @@
1
1
  # QA360 Examples
2
2
 
3
- This directory contains example pack files for different testing scenarios.
4
-
5
- ## Quick Start
6
-
7
- Copy an example to your project:
8
-
9
- ```bash
10
- # Copy API basic example
11
- cp examples/api-basic.yml qa360.yml
12
-
13
- # Edit and customize
14
- vim qa360.yml
15
-
16
- # Run tests
17
- qa360 run
18
- ```
3
+ Example packs demonstrating QA360 Core capabilities across different testing scenarios.
19
4
 
20
5
  ## Available Examples
21
6
 
22
- ### 1. **api-basic.yml** - API Smoke Tests
23
- Simple REST/GraphQL health checks.
24
-
25
- **Gates**: `api_smoke`
26
-
27
- **Use case**: Verify API endpoints are responding correctly
28
-
29
- ```bash
30
- qa360 run examples/api-basic.yml
31
- ```
32
-
33
- ---
34
-
35
- ### 2. **ui-basic.yml** - UI/E2E Tests
36
- Basic browser automation tests.
37
-
38
- **Gates**: `ui`
39
-
40
- **Use case**: Test web pages load correctly
41
-
42
- ```bash
43
- qa360 run examples/ui-basic.yml
44
- ```
45
-
46
- ---
47
-
48
- ### 2b. **ui-advanced.yml** - UI Tests with Playwright++
49
- Advanced UI testing with artifacts, video, screenshots, and HTML reports.
50
-
51
- **Gates**: `ui`
52
-
53
- **Features**:
54
- - Automatic screenshots on failure
55
- - Video recording
56
- - Trace capture for debugging
57
- - Interactive HTML report generation
58
- - Configurable bail on failures
59
-
60
- **Use case**: Full-featured UI testing with rich artifacts
61
-
62
- ```bash
63
- qa360 run examples/ui-advanced.yml
64
- ```
65
-
66
- ---
67
-
68
- ### 2c. **crawler.yml** - Web Crawler
69
- Auto-generate tests by crawling a web application.
70
-
71
- **Gates**: `ui`
7
+ ### API Testing
8
+ - **httpbin/** - REST API testing with HTTPBin service
9
+ - **petstore/** - OpenAPI/Swagger testing with Petstore API
72
10
 
73
- **Features**:
74
- - Automatic discovery of pages and forms
75
- - Generate test packs from existing sites
76
- - Smart selector generation
11
+ ### Web Testing
12
+ - **web-lite/** - Lightweight web application testing
77
13
 
78
- **Use case**: Quick start with existing applications
14
+ ## Pack Structure
79
15
 
80
- ```bash
81
- qa360 run examples/crawler.yml
82
- ```
83
-
84
- ---
85
-
86
- ### 3. **fullstack.yml** - Full Stack Tests
87
- API + UI + Performance testing.
16
+ Each example includes:
17
+ - `pack.yml` - Test pack configuration
18
+ - `tests/` - Test specifications
19
+ - `README.md` - Usage instructions
20
+ - `expected-results/` - Reference outputs
88
21
 
89
- **Gates**: `api_smoke`, `ui`, `perf`
90
-
91
- **Use case**: Complete application testing with Docker Compose integration
22
+ ## Usage
92
23
 
93
24
  ```bash
94
- qa360 run examples/fullstack.yml
95
- ```
96
-
97
- ---
98
-
99
- ### 4. **security.yml** - Security Suite
100
- Comprehensive security scanning.
101
-
102
- **Gates**: `sast`, `dast`, `secrets`, `deps`
103
-
104
- **Use case**: Security audit with vulnerability scanning
105
-
106
- ```bash
107
- qa360 run examples/security.yml
108
- ```
109
-
110
- ---
111
-
112
- ### 5. **accessibility.yml** - Accessibility Tests
113
- WCAG compliance testing.
25
+ # Run an example pack
26
+ qa360 run examples/httpbin
114
27
 
115
- **Gates**: `ui`, `a11y`
116
-
117
- **Use case**: Ensure website meets accessibility standards
118
-
119
- ```bash
120
- qa360 run examples/accessibility.yml
28
+ # Generate proof from example
29
+ cd examples/httpbin
30
+ qa360 ask "Test all API endpoints for correctness"
31
+ qa360 report --sign
121
32
  ```
122
33
 
123
- ---
34
+ ## Learning Path
124
35
 
125
- ### 6. **complete.yml** - Complete Test Suite
126
- All quality gates enabled.
36
+ 1. **Start with httpbin** - Learn basic API testing
37
+ 2. **Try petstore** - Understand OpenAPI integration
38
+ 3. **Explore web-lite** - See web UI testing in action
39
+ 4. **Create custom pack** - Build your own tests
127
40
 
128
- **Gates**: All (8 gates)
41
+ ## Pack Development
129
42
 
130
- **Use case**: Comprehensive quality assurance for production-ready applications
43
+ Use examples as templates for your own packs:
131
44
 
132
45
  ```bash
133
- qa360 run examples/complete.yml
46
+ cp -r examples/httpbin my-api-tests
47
+ cd my-api-tests
48
+ # Edit pack.yml and tests/
49
+ qa360 run .
134
50
  ```
135
-
136
- ---
137
-
138
- ## Interactive Generator
139
-
140
- Generate a custom pack with:
141
-
142
- ```bash
143
- qa360 init
144
- ```
145
-
146
- This will walk you through creating a pack file tailored to your needs.
147
-
148
- ## Customization
149
-
150
- All examples use placeholder URLs. Replace with your actual endpoints:
151
-
152
- - `https://api.example.com` → Your API URL
153
- - `https://example.com` → Your web application URL
154
- - `http://localhost:3000` → Your local dev server
155
-
156
- ## Learn More
157
-
158
- - [Pack Schema Documentation](https://github.com/xyqotech/qa360/blob/main/docs/pack-schema.md)
159
- - [Quality Gates Reference](https://github.com/xyqotech/qa360/blob/main/docs/gates.md)
160
- - [Full Documentation](https://github.com/xyqotech/qa360/blob/main/docs/README.md)
@@ -0,0 +1,375 @@
1
+ # QA360 Docker Compose avec Serve et Monitoring
2
+ # Stack complète pour développement et CI local
3
+
4
+ version: '3.8'
5
+
6
+ services:
7
+ # QA360 Core avec serveur d'observabilité
8
+ qa360:
9
+ build:
10
+ context: .
11
+ dockerfile: Dockerfile.qa360
12
+ ports:
13
+ - "4060:4060"
14
+ environment:
15
+ - QA360_SERVE_HOST=0.0.0.0
16
+ - QA360_SERVE_PORT=4060
17
+ - QA360_SERVE_METRICS=true
18
+ - QA360_CONFIG_DIR=/app/.qa360
19
+ volumes:
20
+ - ./packs:/app/packs:ro
21
+ - ./configs:/app/configs:ro
22
+ - qa360_data:/app/.qa360
23
+ - qa360_cache:/root/.cache
24
+ healthcheck:
25
+ test: ["CMD", "qa360", "serve", "--readiness-check"]
26
+ interval: 30s
27
+ timeout: 10s
28
+ retries: 3
29
+ start_period: 30s
30
+ restart: unless-stopped
31
+ networks:
32
+ - qa360-network
33
+
34
+ # Prometheus pour collecter les métriques
35
+ prometheus:
36
+ image: prom/prometheus:v2.45.0
37
+ ports:
38
+ - "9090:9090"
39
+ volumes:
40
+ - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
41
+ - ./monitoring/rules:/etc/prometheus/rules:ro
42
+ - prometheus_data:/prometheus
43
+ command:
44
+ - '--config.file=/etc/prometheus/prometheus.yml'
45
+ - '--storage.tsdb.path=/prometheus'
46
+ - '--web.console.libraries=/etc/prometheus/console_libraries'
47
+ - '--web.console.templates=/etc/prometheus/consoles'
48
+ - '--storage.tsdb.retention.time=30d'
49
+ - '--web.enable-lifecycle'
50
+ - '--web.enable-admin-api'
51
+ depends_on:
52
+ qa360:
53
+ condition: service_healthy
54
+ restart: unless-stopped
55
+ networks:
56
+ - qa360-network
57
+
58
+ # Grafana pour visualiser les métriques
59
+ grafana:
60
+ image: grafana/grafana:10.0.0
61
+ ports:
62
+ - "3000:3000"
63
+ environment:
64
+ - GF_SECURITY_ADMIN_PASSWORD=qa360admin
65
+ - GF_USERS_ALLOW_SIGN_UP=false
66
+ - GF_INSTALL_PLUGINS=grafana-piechart-panel
67
+ volumes:
68
+ - ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
69
+ - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro
70
+ - grafana_data:/var/lib/grafana
71
+ depends_on:
72
+ - prometheus
73
+ restart: unless-stopped
74
+ networks:
75
+ - qa360-network
76
+
77
+ # AlertManager pour les alertes
78
+ alertmanager:
79
+ image: prom/alertmanager:v0.25.0
80
+ ports:
81
+ - "9093:9093"
82
+ volumes:
83
+ - ./monitoring/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
84
+ - alertmanager_data:/alertmanager
85
+ command:
86
+ - '--config.file=/etc/alertmanager/alertmanager.yml'
87
+ - '--storage.path=/alertmanager'
88
+ - '--web.external-url=http://localhost:9093'
89
+ depends_on:
90
+ - prometheus
91
+ restart: unless-stopped
92
+ networks:
93
+ - qa360-network
94
+
95
+ # Node Exporter pour les métriques système
96
+ node-exporter:
97
+ image: prom/node-exporter:v1.6.0
98
+ ports:
99
+ - "9100:9100"
100
+ volumes:
101
+ - /proc:/host/proc:ro
102
+ - /sys:/host/sys:ro
103
+ - /:/rootfs:ro
104
+ command:
105
+ - '--path.procfs=/host/proc'
106
+ - '--path.rootfs=/rootfs'
107
+ - '--path.sysfs=/host/sys'
108
+ - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
109
+ restart: unless-stopped
110
+ networks:
111
+ - qa360-network
112
+
113
+ # Nginx reverse proxy (optionnel)
114
+ nginx:
115
+ image: nginx:alpine
116
+ ports:
117
+ - "80:80"
118
+ - "443:443"
119
+ volumes:
120
+ - ./monitoring/nginx.conf:/etc/nginx/nginx.conf:ro
121
+ - ./monitoring/ssl:/etc/nginx/ssl:ro
122
+ depends_on:
123
+ - qa360
124
+ - grafana
125
+ - prometheus
126
+ restart: unless-stopped
127
+ networks:
128
+ - qa360-network
129
+
130
+ # Service de test pour démonstration
131
+ test-runner:
132
+ build:
133
+ context: .
134
+ dockerfile: Dockerfile.test-runner
135
+ environment:
136
+ - QA360_SERVER_URL=http://qa360:4060
137
+ - TEST_SCHEDULE=*/5 * * * * # Toutes les 5 minutes
138
+ volumes:
139
+ - ./packs:/app/packs:ro
140
+ - test_results:/app/results
141
+ depends_on:
142
+ qa360:
143
+ condition: service_healthy
144
+ restart: unless-stopped
145
+ networks:
146
+ - qa360-network
147
+ profiles:
148
+ - testing
149
+
150
+ volumes:
151
+ qa360_data:
152
+ driver: local
153
+ qa360_cache:
154
+ driver: local
155
+ prometheus_data:
156
+ driver: local
157
+ grafana_data:
158
+ driver: local
159
+ alertmanager_data:
160
+ driver: local
161
+ test_results:
162
+ driver: local
163
+
164
+ networks:
165
+ qa360-network:
166
+ driver: bridge
167
+
168
+ ---
169
+ # Dockerfile.qa360
170
+ # FROM node:18-alpine
171
+ #
172
+ # # Install system dependencies
173
+ # RUN apk add --no-cache \
174
+ # chromium \
175
+ # curl \
176
+ # jq \
177
+ # && rm -rf /var/cache/apk/*
178
+ #
179
+ # # Install QA360
180
+ # RUN npm install -g @qa360/cli@latest
181
+ #
182
+ # # Setup working directory
183
+ # WORKDIR /app
184
+ #
185
+ # # Copy configuration
186
+ # COPY pack.yml .
187
+ # COPY .qa360/ .qa360/
188
+ #
189
+ # # Auto-fix on startup
190
+ # RUN qa360 doctor --fix || true
191
+ #
192
+ # # Health check
193
+ # HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
194
+ # CMD qa360 serve --readiness-check || exit 1
195
+ #
196
+ # # Expose port
197
+ # EXPOSE 4060
198
+ #
199
+ # # Start server
200
+ # CMD ["qa360", "serve", "--host", "0.0.0.0", "--port", "4060", "--verbose"]
201
+
202
+ ---
203
+ # Dockerfile.test-runner
204
+ # FROM node:18-alpine
205
+ #
206
+ # # Install dependencies
207
+ # RUN apk add --no-cache curl jq dcron
208
+ # RUN npm install -g @qa360/cli@latest
209
+ #
210
+ # WORKDIR /app
211
+ #
212
+ # # Copy test runner script
213
+ # COPY scripts/test-runner.sh /app/test-runner.sh
214
+ # RUN chmod +x /app/test-runner.sh
215
+ #
216
+ # # Setup cron
217
+ # RUN echo "${TEST_SCHEDULE:-*/10 * * * *} /app/test-runner.sh" > /etc/crontabs/root
218
+ #
219
+ # CMD ["crond", "-f", "-d", "8"]
220
+
221
+ ---
222
+ # monitoring/prometheus.yml
223
+ # global:
224
+ # scrape_interval: 15s
225
+ # evaluation_interval: 15s
226
+ #
227
+ # rule_files:
228
+ # - "/etc/prometheus/rules/*.yml"
229
+ #
230
+ # alerting:
231
+ # alertmanagers:
232
+ # - static_configs:
233
+ # - targets:
234
+ # - alertmanager:9093
235
+ #
236
+ # scrape_configs:
237
+ # - job_name: 'qa360'
238
+ # static_configs:
239
+ # - targets: ['qa360:4060']
240
+ # metrics_path: '/metrics'
241
+ # scrape_interval: 30s
242
+ # scrape_timeout: 10s
243
+ #
244
+ # - job_name: 'prometheus'
245
+ # static_configs:
246
+ # - targets: ['localhost:9090']
247
+ #
248
+ # - job_name: 'node-exporter'
249
+ # static_configs:
250
+ # - targets: ['node-exporter:9100']
251
+
252
+ ---
253
+ # monitoring/alertmanager.yml
254
+ # global:
255
+ # smtp_smarthost: 'localhost:587'
256
+ # smtp_from: 'qa360@example.com'
257
+ #
258
+ # route:
259
+ # group_by: ['alertname']
260
+ # group_wait: 10s
261
+ # group_interval: 10s
262
+ # repeat_interval: 1h
263
+ # receiver: 'web.hook'
264
+ #
265
+ # receivers:
266
+ # - name: 'web.hook'
267
+ # webhook_configs:
268
+ # - url: 'http://webhook:5000/webhook'
269
+ # send_resolved: true
270
+
271
+ ---
272
+ # monitoring/nginx.conf
273
+ # events {
274
+ # worker_connections 1024;
275
+ # }
276
+ #
277
+ # http {
278
+ # upstream qa360 {
279
+ # server qa360:4060;
280
+ # }
281
+ #
282
+ # upstream grafana {
283
+ # server grafana:3000;
284
+ # }
285
+ #
286
+ # upstream prometheus {
287
+ # server prometheus:9090;
288
+ # }
289
+ #
290
+ # server {
291
+ # listen 80;
292
+ # server_name localhost;
293
+ #
294
+ # location /qa360/ {
295
+ # proxy_pass http://qa360/;
296
+ # proxy_set_header Host $host;
297
+ # proxy_set_header X-Real-IP $remote_addr;
298
+ # }
299
+ #
300
+ # location /grafana/ {
301
+ # proxy_pass http://grafana/;
302
+ # proxy_set_header Host $host;
303
+ # proxy_set_header X-Real-IP $remote_addr;
304
+ # }
305
+ #
306
+ # location /prometheus/ {
307
+ # proxy_pass http://prometheus/;
308
+ # proxy_set_header Host $host;
309
+ # proxy_set_header X-Real-IP $remote_addr;
310
+ # }
311
+ #
312
+ # location / {
313
+ # return 301 /grafana/;
314
+ # }
315
+ # }
316
+ # }
317
+
318
+ ---
319
+ # scripts/test-runner.sh
320
+ # #!/bin/sh
321
+ #
322
+ # # QA360 Test Runner Script
323
+ # # Exécute les tests de manière périodique
324
+ #
325
+ # set -e
326
+ #
327
+ # QA360_SERVER_URL=${QA360_SERVER_URL:-http://qa360:4060}
328
+ # RESULTS_DIR=${RESULTS_DIR:-/app/results}
329
+ #
330
+ # echo "$(date): Starting QA360 test run..."
331
+ #
332
+ # # Check server health
333
+ # if ! curl -f "$QA360_SERVER_URL/health" > /dev/null 2>&1; then
334
+ # echo "$(date): QA360 server not ready, skipping run"
335
+ # exit 1
336
+ # fi
337
+ #
338
+ # # Create results directory
339
+ # mkdir -p "$RESULTS_DIR"
340
+ #
341
+ # # Run tests
342
+ # for pack in /app/packs/*.yml; do
343
+ # if [ -f "$pack" ]; then
344
+ # pack_name=$(basename "$pack" .yml)
345
+ # echo "$(date): Running pack $pack_name..."
346
+ #
347
+ # qa360 run "$pack" --output "$RESULTS_DIR/$pack_name-$(date +%Y%m%d-%H%M%S).html" || true
348
+ # fi
349
+ # done
350
+ #
351
+ # # Collect metrics
352
+ # curl -s "$QA360_SERVER_URL/metrics" > "$RESULTS_DIR/metrics-$(date +%Y%m%d-%H%M%S).txt"
353
+ #
354
+ # echo "$(date): Test run completed"
355
+
356
+ ---
357
+ # Usage Instructions:
358
+ #
359
+ # 1. Basic setup:
360
+ # docker-compose up -d
361
+ #
362
+ # 2. With testing profile:
363
+ # docker-compose --profile testing up -d
364
+ #
365
+ # 3. View services:
366
+ # - QA360 Server: http://localhost:4060
367
+ # - Grafana: http://localhost:3000 (admin/qa360admin)
368
+ # - Prometheus: http://localhost:9090
369
+ # - AlertManager: http://localhost:9093
370
+ #
371
+ # 4. Stop services:
372
+ # docker-compose down
373
+ #
374
+ # 5. Clean volumes:
375
+ # docker-compose down -v