quality-intelligence-engine 2.2.3 → 2.2.5

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 (257) hide show
  1. package/.github/workflows/playwright.yml +27 -0
  2. package/.github/workflows/quality-intelligence.yml +45 -0
  3. package/CHANGELOG.md +164 -0
  4. package/REFACTORING_SUMMARY.md +417 -0
  5. package/artifacts/failure-analysis/run-1769595909824-login_with_valid_user.md +25 -0
  6. package/artifacts/failure-analysis/run-1769596445203-login_with_valid_user.md +25 -0
  7. package/artifacts/failure-analysis/run-1769596573162-login_with_valid_user.md +34 -0
  8. package/artifacts/failure-analysis/run-1769596591727-login_with_valid_user.md +25 -0
  9. package/artifacts/failure-analysis/run-1769596600117-login_with_valid_user.md +34 -0
  10. package/artifacts/failure-analysis/run-1769596782107-login_with_valid_user.md +32 -0
  11. package/artifacts/failure-analysis/run-1769596940770-login_with_valid_user.md +28 -0
  12. package/artifacts/failure-analysis/run-1769596960417-login_with_valid_user.md +28 -0
  13. package/artifacts/failure-analysis/run-1769596981303-login_with_valid_user.md +28 -0
  14. package/artifacts/failure-analysis/run-1769597351831-login_with_valid_user.md +21 -0
  15. package/artifacts/failure-analysis/run-1769597486816-login_with_valid_user.md +21 -0
  16. package/artifacts/failure-analysis/run-1769599708378-login_with_valid_user.md +22 -0
  17. package/artifacts/failure-analysis/run-1769600327960-login_with_valid_user.md +22 -0
  18. package/artifacts/failure-analysis/run-1769600596201-saucedemo__login_fails_with_wrong_password_fail.md +22 -0
  19. package/artifacts/failure-analysis/run-1769600682675-saucedemo__login_fails_with_wrong_password_fail.md +22 -0
  20. package/artifacts/failure-analysis/run-1769602090701-saucedemo__add_to_cart_button_is_hidden_fail.md +30 -0
  21. package/artifacts/failure-analysis/run-1769602090701-saucedemo__cart_count_updates_to_2_after_adding_one_item_fail.md +30 -0
  22. package/artifacts/failure-analysis/run-1769602090701-saucedemo__checkout_navigates_to_payment_page_directly_fail.md +30 -0
  23. package/artifacts/failure-analysis/run-1769602090701-saucedemo__inventory_shows_10_products_fail.md +30 -0
  24. package/artifacts/failure-analysis/run-1769602090701-saucedemo__products_sorted_high_to_low_start_with_999_fail.md +30 -0
  25. package/artifacts/failure-history/1769696674298.json +9 -0
  26. package/artifacts/failure-history/1769697768622.json +10 -0
  27. package/artifacts/failure-history/1769697923557.json +10 -0
  28. package/artifacts/failure-history/1769698160213.json +11 -0
  29. package/artifacts/failure-history/1769698353440.json +11 -0
  30. package/artifacts/failure-history/1769698763306.json +11 -0
  31. package/artifacts/failure-history/1769698878947.json +11 -0
  32. package/artifacts/failure-history/1769699909817.json +11 -0
  33. package/artifacts/failure-history/1769703130913.json +11 -0
  34. package/artifacts/failure-history/1769703142113.json +11 -0
  35. package/artifacts/failure-history/1769703158978.json +11 -0
  36. package/artifacts/failure-history/1769703406025.json +11 -0
  37. package/artifacts/failure-history/1769703422720.json +11 -0
  38. package/artifacts/failure-history/1769703518837.json +11 -0
  39. package/artifacts/failure-history/1769703530419.json +11 -0
  40. package/artifacts/failure-history/1769703577078.json +11 -0
  41. package/artifacts/failure-history/1769704067098.json +11 -0
  42. package/artifacts/failure-history/1769704074618.json +11 -0
  43. package/artifacts/failure-history/1769704084948.json +11 -0
  44. package/artifacts/failure-history/1769704091950.json +11 -0
  45. package/artifacts/failure-history/1769704435355.json +11 -0
  46. package/artifacts/failure-history/1769704832871.json +11 -0
  47. package/artifacts/failure-history/1769707051830.json +11 -0
  48. package/artifacts/failure-history/1769739820395.json +11 -0
  49. package/artifacts/failure-history/1769739820400.json +11 -0
  50. package/artifacts/failure-history/1769742422254.json +11 -0
  51. package/artifacts/failure-history/1769743106016.json +11 -0
  52. package/artifacts/failure-history/1769743121857.json +11 -0
  53. package/artifacts/failure-history/1769750875212.json +11 -0
  54. package/artifacts/failure-history/1769750880790.json +11 -0
  55. package/artifacts/failure-history/1769761177923.json +11 -0
  56. package/artifacts/failure-history/1769761191176.json +11 -0
  57. package/bin/qi.ts +37 -0
  58. package/config/agent.config.json +18 -0
  59. package/data/failures/fingerprints/0ded7b45.json +10 -0
  60. package/data/failures/fingerprints/2437666a.json +8 -0
  61. package/data/failures/fingerprints/3746e3b4.json +42 -0
  62. package/data/failures/fingerprints/533e258f.json +10 -0
  63. package/data/failures/fingerprints/56b547d3.json +10 -0
  64. package/data/failures/fingerprints/693661fa.json +10 -0
  65. package/data/failures/fingerprints/789126b1.json +8 -0
  66. package/data/failures/fingerprints/936d995e.json +10 -0
  67. package/data/failures/fingerprints/ba5f6c0a.json +10 -0
  68. package/data/failures/fingerprints/f148a261.json +56 -0
  69. package/data/failures/fingerprints/fa14440f.json +14 -0
  70. package/data/failures/registry.json +57 -0
  71. package/data/flakiness/history.json +71 -0
  72. package/dist/bin/qi.js +0 -0
  73. package/dist/src/intelligence/failure-fingerprinting/failure.classifier.js +5 -1
  74. package/dist/src/intelligence/failure-fingerprinting/failure.tracker.js +5 -0
  75. package/dist/src/playwright/qi.reporter.js +17 -0
  76. package/final.sanity.test.ts +46 -0
  77. package/input/raw-failure.json +36 -0
  78. package/input/raw-pass.json +33 -0
  79. package/output/run-2026-01-28_02-48-38-420/BACKEND_API_FAILURE-AuthController.java-/users/{id}/analysis.md +50 -0
  80. package/output/run-2026-01-28_02-48-38-420/TEST_FAILURE-Unknown--/analysis.md +50 -0
  81. package/output/run-2026-01-28_02-48-52-140/BACKEND_API_FAILURE-AuthController.java-/users/{id}/analysis.md +50 -0
  82. package/output/run-2026-01-28_02-48-52-140/TEST_FAILURE-Unknown--/analysis.md +50 -0
  83. package/output/run-2026-01-28_03-13-16-302/BACKEND_API_FAILURE-AuthController.java-/users/{id}/analysis.md +50 -0
  84. package/output/run-2026-01-28_03-13-16-302/PASS-checkout.spec.ts-API_WARNING/analysis.md +49 -0
  85. package/output/run-2026-01-28_03-13-16-302/PASS-login.spec.ts-FLAKY_PASS/analysis.md +49 -0
  86. package/output/run-2026-01-28_03-13-16-302/TEST_FAILURE-Unknown--/analysis.md +50 -0
  87. package/output/run-2026-01-28_03-29-49-786/BACKEND_API_FAILURE-AuthController.java-/users/{id}/analysis.md +50 -0
  88. package/package.json +4 -10
  89. package/playwright-results/.last-run.json +17 -0
  90. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium/error-context.md +31 -0
  91. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium/test-failed-1.png +0 -0
  92. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium/trace.zip +0 -0
  93. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium/video.webm +0 -0
  94. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium-retry1/error-context.md +31 -0
  95. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium-retry1/test-failed-1.png +0 -0
  96. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium-retry1/trace.zip +0 -0
  97. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--chromium-retry1/video.webm +0 -0
  98. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox/error-context.md +31 -0
  99. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox/test-failed-1.png +0 -0
  100. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox/trace.zip +0 -0
  101. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox/video.webm +0 -0
  102. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox-retry1/error-context.md +31 -0
  103. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox-retry1/test-failed-1.png +0 -0
  104. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox-retry1/trace.zip +0 -0
  105. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--firefox-retry1/video.webm +0 -0
  106. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit/error-context.md +31 -0
  107. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit/test-failed-1.png +0 -0
  108. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit/trace.zip +0 -0
  109. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit/video.webm +0 -0
  110. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit-retry1/error-context.md +31 -0
  111. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit-retry1/test-failed-1.png +0 -0
  112. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit-retry1/trace.zip +0 -0
  113. package/playwright-results/saucedemo-email-like-valid-d5dc6-rname-format-rejected-FAIL--webkit-retry1/video.webm +0 -0
  114. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium/error-context.md +112 -0
  115. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium/test-failed-1.png +0 -0
  116. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium/trace.zip +0 -0
  117. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium/video.webm +0 -0
  118. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium-retry1/error-context.md +112 -0
  119. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium-retry1/test-failed-1.png +0 -0
  120. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium-retry1/trace.zip +0 -0
  121. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--chromium-retry1/video.webm +0 -0
  122. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox/error-context.md +112 -0
  123. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox/test-failed-1.png +0 -0
  124. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox/trace.zip +0 -0
  125. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox/video.webm +0 -0
  126. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox-retry1/error-context.md +112 -0
  127. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox-retry1/test-failed-1.png +0 -0
  128. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox-retry1/trace.zip +0 -0
  129. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--firefox-retry1/video.webm +0 -0
  130. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit/error-context.md +112 -0
  131. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit/test-failed-1.png +0 -0
  132. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit/trace.zip +0 -0
  133. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit/video.webm +0 -0
  134. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit-retry1/error-context.md +112 -0
  135. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit-retry1/test-failed-1.png +0 -0
  136. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit-retry1/trace.zip +0 -0
  137. package/playwright-results/saucedemo-numeric-mismatch-7c4f3-to-cart-button-hidden-FAIL--webkit-retry1/video.webm +0 -0
  138. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium/error-context.md +112 -0
  139. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium/test-failed-1.png +0 -0
  140. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium/trace.zip +0 -0
  141. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium/video.webm +0 -0
  142. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium-retry1/error-context.md +112 -0
  143. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium-retry1/test-failed-1.png +0 -0
  144. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium-retry1/trace.zip +0 -0
  145. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--chromium-retry1/video.webm +0 -0
  146. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox/error-context.md +112 -0
  147. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox/test-failed-1.png +0 -0
  148. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox/trace.zip +0 -0
  149. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox/video.webm +0 -0
  150. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox-retry1/error-context.md +112 -0
  151. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox-retry1/test-failed-1.png +0 -0
  152. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox-retry1/trace.zip +0 -0
  153. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--firefox-retry1/video.webm +0 -0
  154. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit/error-context.md +112 -0
  155. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit/test-failed-1.png +0 -0
  156. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit/trace.zip +0 -0
  157. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit/video.webm +0 -0
  158. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit-retry1/error-context.md +112 -0
  159. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit-retry1/test-failed-1.png +0 -0
  160. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit-retry1/trace.zip +0 -0
  161. package/playwright-results/saucedemo-numeric-mismatch-cd423-entory-count-mismatch-FAIL--webkit-retry1/video.webm +0 -0
  162. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium/error-context.md +31 -0
  163. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium/test-failed-1.png +0 -0
  164. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium/trace.zip +0 -0
  165. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium/video.webm +0 -0
  166. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium-retry1/error-context.md +31 -0
  167. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium-retry1/test-failed-1.png +0 -0
  168. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium-retry1/trace.zip +0 -0
  169. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--chromium-retry1/video.webm +0 -0
  170. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox/error-context.md +31 -0
  171. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox/test-failed-1.png +0 -0
  172. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox/trace.zip +0 -0
  173. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox/video.webm +0 -0
  174. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox-retry1/error-context.md +31 -0
  175. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox-retry1/test-failed-1.png +0 -0
  176. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox-retry1/trace.zip +0 -0
  177. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--firefox-retry1/video.webm +0 -0
  178. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit/error-context.md +31 -0
  179. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit/test-failed-1.png +0 -0
  180. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit/trace.zip +0 -0
  181. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit/video.webm +0 -0
  182. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit-retry1/error-context.md +31 -0
  183. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit-retry1/test-failed-1.png +0 -0
  184. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit-retry1/trace.zip +0 -0
  185. package/playwright-results/saucedemo-numeric-mismatch-f085e-E-unauthorized-access-FAIL--webkit-retry1/video.webm +0 -0
  186. package/playwright.config.ts +42 -0
  187. package/quality-intelligence-engine-2.2.0.tgz +0 -0
  188. package/quality-intelligence-engine-2.2.2.tgz +0 -0
  189. package/sanity.test.ts +33 -0
  190. package/src/adapters/playwright-folder.adapter.ts +85 -0
  191. package/src/adapters/playwright-json.adapter.ts +49 -0
  192. package/src/adapters/playwright.adapter.ts +44 -0
  193. package/src/cli/qi-test.ts +20 -0
  194. package/src/cli/qi.ts +67 -0
  195. package/src/cli/ui/divider.ts +9 -0
  196. package/src/cli/ui/failureLogger.ts +33 -0
  197. package/src/configLoader.ts +70 -0
  198. package/src/console/issue-view.ts +193 -0
  199. package/src/failure-analysis/failure-analyzer.ts +43 -0
  200. package/src/final-run.ts +174 -0
  201. package/src/final-runner.ts +31 -0
  202. package/src/fixtures/networkCollector.ts +27 -0
  203. package/src/history/failure-history.store.ts +23 -0
  204. package/src/history/failure-history.types.ts +12 -0
  205. package/src/history/failure-trend.analyzer.ts +49 -0
  206. package/src/index.ts +10 -0
  207. package/src/integrations/ci/ci-annotator.ts +42 -0
  208. package/src/intelligence/confidence-calibration.engine.ts +41 -0
  209. package/src/intelligence/decision-intelligence/confidence.engine.ts +18 -0
  210. package/src/intelligence/decision-intelligence/decision.config.ts +18 -0
  211. package/src/intelligence/decision-intelligence/decision.engine.ts +30 -0
  212. package/src/intelligence/decision-intelligence/decision.types.ts +15 -0
  213. package/src/intelligence/failure-fingerprinting/failure.classifier.ts +61 -0
  214. package/src/intelligence/failure-fingerprinting/failure.store.ts +42 -0
  215. package/src/intelligence/failure-fingerprinting/failure.tracker.ts +28 -0
  216. package/src/intelligence/failure-fingerprinting/fingerprint.generator.ts +28 -0
  217. package/src/intelligence/failure-fingerprinting/fingerprint.types.ts +14 -0
  218. package/src/intelligence/flakiness-intelligence/flakiness.analyzer.ts +23 -0
  219. package/src/intelligence/flakiness-intelligence/flakiness.fingerprint.ts +14 -0
  220. package/src/intelligence/flakiness-intelligence/flakiness.store.ts +24 -0
  221. package/src/intelligence/flakiness-intelligence/flakiness.tracker.ts +42 -0
  222. package/src/intelligence/flakiness-intelligence/flakiness.types.ts +8 -0
  223. package/src/intelligence/intelligence.pipeline.ts +20 -0
  224. package/src/intelligence/llm-explainer.ts +29 -0
  225. package/src/intelligence/root-cause/rootcause.engine.ts +46 -0
  226. package/src/intelligence/trend-intelligence/trend.engine.ts +42 -0
  227. package/src/markdownWriter.ts +68 -0
  228. package/src/normalizer.ts +31 -0
  229. package/src/passAnalyzer.ts +38 -0
  230. package/src/pipeline/ai.summarizer.ts +39 -0
  231. package/src/pipeline/failure-analysis.pipeline.ts +13 -0
  232. package/src/pipeline/failure-grouping.pipeline.ts +88 -0
  233. package/src/playwright/qi.reporter.ts +26 -0
  234. package/src/reporter.ts +88 -0
  235. package/src/reporters/qi-reporter.js +34 -0
  236. package/src/rules.ts +35 -0
  237. package/src/runManager.ts +21 -0
  238. package/src/runner.ts +12 -0
  239. package/src/runtime/networkCollector.ts +36 -0
  240. package/src/stackParser.ts +22 -0
  241. package/src/test-run.ts +59 -0
  242. package/src/types/analysis-result.ts +16 -0
  243. package/src/types/failure.types.ts +28 -0
  244. package/src/types/playwright-failure.ts +10 -0
  245. package/src/types.ts +102 -0
  246. package/src/utils/artifact.locator.ts +42 -0
  247. package/src/utils/confidence-constants.ts +111 -0
  248. package/src/utils/file-utils.ts +146 -0
  249. package/src/v2/llm/llm-advisor.ts +22 -0
  250. package/src/v2/pipeline/v2-intelligence.pipeline.ts +21 -0
  251. package/src/v2/self-healing/self-healer.ts +60 -0
  252. package/src/v2/trace-intelligence/trace-analyzer.ts +42 -0
  253. package/src/v2-test-run.ts +74 -0
  254. package/tests/fixtures.ts +40 -0
  255. package/tests/saucedemo-login-validation.spec.ts +74 -0
  256. package/tsconfig.json +16 -0
  257. package/tsconfig.playwright.json +13 -0
@@ -0,0 +1,112 @@
1
+ # Page snapshot
2
+
3
+ ```yaml
4
+ - generic [ref=e3]:
5
+ - generic [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - generic [ref=e7]:
9
+ - button "Open Menu" [ref=e8] [cursor=pointer]
10
+ - img "Open Menu" [ref=e9]
11
+ - generic [ref=e11]: Swag Labs
12
+ - generic [ref=e14]:
13
+ - generic [ref=e15]: Products
14
+ - generic [ref=e17] [cursor=pointer]:
15
+ - generic [ref=e18]: Name (A to Z)
16
+ - combobox [ref=e19]:
17
+ - option "Name (A to Z)" [selected]
18
+ - option "Name (Z to A)"
19
+ - option "Price (low to high)"
20
+ - option "Price (high to low)"
21
+ - generic [ref=e23]:
22
+ - generic [ref=e24]:
23
+ - link "Sauce Labs Backpack" [ref=e26] [cursor=pointer]:
24
+ - /url: "#"
25
+ - img "Sauce Labs Backpack" [ref=e27]
26
+ - generic [ref=e28]:
27
+ - generic [ref=e29]:
28
+ - link "Sauce Labs Backpack" [ref=e30] [cursor=pointer]:
29
+ - /url: "#"
30
+ - generic [ref=e31]: Sauce Labs Backpack
31
+ - generic [ref=e32]: carry.allTheThings() with the sleek, streamlined Sly Pack that melds uncompromising style with unequaled laptop and tablet protection.
32
+ - generic [ref=e33]:
33
+ - generic [ref=e34]: $29.99
34
+ - button "Add to cart" [ref=e35] [cursor=pointer]
35
+ - generic [ref=e36]:
36
+ - link "Sauce Labs Bike Light" [ref=e38] [cursor=pointer]:
37
+ - /url: "#"
38
+ - img "Sauce Labs Bike Light" [ref=e39]
39
+ - generic [ref=e40]:
40
+ - generic [ref=e41]:
41
+ - link "Sauce Labs Bike Light" [ref=e42] [cursor=pointer]:
42
+ - /url: "#"
43
+ - generic [ref=e43]: Sauce Labs Bike Light
44
+ - generic [ref=e44]: A red light isn't the desired state in testing but it sure helps when riding your bike at night. Water-resistant with 3 lighting modes, 1 AAA battery included.
45
+ - generic [ref=e45]:
46
+ - generic [ref=e46]: $9.99
47
+ - button "Add to cart" [ref=e47] [cursor=pointer]
48
+ - generic [ref=e48]:
49
+ - link "Sauce Labs Bolt T-Shirt" [ref=e50] [cursor=pointer]:
50
+ - /url: "#"
51
+ - img "Sauce Labs Bolt T-Shirt" [ref=e51]
52
+ - generic [ref=e52]:
53
+ - generic [ref=e53]:
54
+ - link "Sauce Labs Bolt T-Shirt" [ref=e54] [cursor=pointer]:
55
+ - /url: "#"
56
+ - generic [ref=e55]: Sauce Labs Bolt T-Shirt
57
+ - generic [ref=e56]: Get your testing superhero on with the Sauce Labs bolt T-shirt. From American Apparel, 100% ringspun combed cotton, heather gray with red bolt.
58
+ - generic [ref=e57]:
59
+ - generic [ref=e58]: $15.99
60
+ - button "Add to cart" [ref=e59] [cursor=pointer]
61
+ - generic [ref=e60]:
62
+ - link "Sauce Labs Fleece Jacket" [ref=e62] [cursor=pointer]:
63
+ - /url: "#"
64
+ - img "Sauce Labs Fleece Jacket" [ref=e63]
65
+ - generic [ref=e64]:
66
+ - generic [ref=e65]:
67
+ - link "Sauce Labs Fleece Jacket" [ref=e66] [cursor=pointer]:
68
+ - /url: "#"
69
+ - generic [ref=e67]: Sauce Labs Fleece Jacket
70
+ - generic [ref=e68]: It's not every day that you come across a midweight quarter-zip fleece jacket capable of handling everything from a relaxing day outdoors to a busy day at the office.
71
+ - generic [ref=e69]:
72
+ - generic [ref=e70]: $49.99
73
+ - button "Add to cart" [ref=e71] [cursor=pointer]
74
+ - generic [ref=e72]:
75
+ - link "Sauce Labs Onesie" [ref=e74] [cursor=pointer]:
76
+ - /url: "#"
77
+ - img "Sauce Labs Onesie" [ref=e75]
78
+ - generic [ref=e76]:
79
+ - generic [ref=e77]:
80
+ - link "Sauce Labs Onesie" [ref=e78] [cursor=pointer]:
81
+ - /url: "#"
82
+ - generic [ref=e79]: Sauce Labs Onesie
83
+ - generic [ref=e80]: Rib snap infant onesie for the junior automation engineer in development. Reinforced 3-snap bottom closure, two-needle hemmed sleeved and bottom won't unravel.
84
+ - generic [ref=e81]:
85
+ - generic [ref=e82]: $7.99
86
+ - button "Add to cart" [ref=e83] [cursor=pointer]
87
+ - generic [ref=e84]:
88
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e86] [cursor=pointer]:
89
+ - /url: "#"
90
+ - img "Test.allTheThings() T-Shirt (Red)" [ref=e87]
91
+ - generic [ref=e88]:
92
+ - generic [ref=e89]:
93
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e90] [cursor=pointer]:
94
+ - /url: "#"
95
+ - generic [ref=e91]: Test.allTheThings() T-Shirt (Red)
96
+ - generic [ref=e92]: This classic Sauce Labs t-shirt is perfect to wear when cozying up to your keyboard to automate a few tests. Super-soft and comfy ringspun combed cotton.
97
+ - generic [ref=e93]:
98
+ - generic [ref=e94]: $15.99
99
+ - button "Add to cart" [ref=e95] [cursor=pointer]
100
+ - contentinfo [ref=e96]:
101
+ - list [ref=e97]:
102
+ - listitem [ref=e98]:
103
+ - link "Twitter" [ref=e99] [cursor=pointer]:
104
+ - /url: https://twitter.com/saucelabs
105
+ - listitem [ref=e100]:
106
+ - link "Facebook" [ref=e101] [cursor=pointer]:
107
+ - /url: https://www.facebook.com/saucelabs
108
+ - listitem [ref=e102]:
109
+ - link "LinkedIn" [ref=e103] [cursor=pointer]:
110
+ - /url: https://www.linkedin.com/company/sauce-labs/
111
+ - generic [ref=e104]: © 2026 Sauce Labs. All Rights Reserved. Terms of Service | Privacy Policy
112
+ ```
@@ -0,0 +1,112 @@
1
+ # Page snapshot
2
+
3
+ ```yaml
4
+ - generic [ref=e3]:
5
+ - generic [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - generic [ref=e7]:
9
+ - button "Open Menu" [ref=e8] [cursor=pointer]
10
+ - img "Open Menu" [ref=e9]
11
+ - generic [ref=e11]: Swag Labs
12
+ - generic [ref=e14]:
13
+ - generic [ref=e15]: Products
14
+ - generic [ref=e17] [cursor=pointer]:
15
+ - generic [ref=e18]: Name (A to Z)
16
+ - combobox [ref=e19]:
17
+ - option "Name (A to Z)" [selected]
18
+ - option "Name (Z to A)"
19
+ - option "Price (low to high)"
20
+ - option "Price (high to low)"
21
+ - generic [ref=e23]:
22
+ - generic [ref=e24]:
23
+ - link "Sauce Labs Backpack" [ref=e26]:
24
+ - /url: "#"
25
+ - img "Sauce Labs Backpack" [ref=e27]
26
+ - generic [ref=e28]:
27
+ - generic [ref=e29]:
28
+ - link "Sauce Labs Backpack" [ref=e30]:
29
+ - /url: "#"
30
+ - generic [ref=e31]: Sauce Labs Backpack
31
+ - generic [ref=e32]: carry.allTheThings() with the sleek, streamlined Sly Pack that melds uncompromising style with unequaled laptop and tablet protection.
32
+ - generic [ref=e33]:
33
+ - generic [ref=e34]: $29.99
34
+ - button "Add to cart" [ref=e35] [cursor=pointer]
35
+ - generic [ref=e36]:
36
+ - link "Sauce Labs Bike Light" [ref=e38]:
37
+ - /url: "#"
38
+ - img "Sauce Labs Bike Light" [ref=e39]
39
+ - generic [ref=e40]:
40
+ - generic [ref=e41]:
41
+ - link "Sauce Labs Bike Light" [ref=e42]:
42
+ - /url: "#"
43
+ - generic [ref=e43]: Sauce Labs Bike Light
44
+ - generic [ref=e44]: A red light isn't the desired state in testing but it sure helps when riding your bike at night. Water-resistant with 3 lighting modes, 1 AAA battery included.
45
+ - generic [ref=e45]:
46
+ - generic [ref=e46]: $9.99
47
+ - button "Add to cart" [ref=e47] [cursor=pointer]
48
+ - generic [ref=e48]:
49
+ - link "Sauce Labs Bolt T-Shirt" [ref=e50]:
50
+ - /url: "#"
51
+ - img "Sauce Labs Bolt T-Shirt" [ref=e51]
52
+ - generic [ref=e52]:
53
+ - generic [ref=e53]:
54
+ - link "Sauce Labs Bolt T-Shirt" [ref=e54]:
55
+ - /url: "#"
56
+ - generic [ref=e55]: Sauce Labs Bolt T-Shirt
57
+ - generic [ref=e56]: Get your testing superhero on with the Sauce Labs bolt T-shirt. From American Apparel, 100% ringspun combed cotton, heather gray with red bolt.
58
+ - generic [ref=e57]:
59
+ - generic [ref=e58]: $15.99
60
+ - button "Add to cart" [ref=e59] [cursor=pointer]
61
+ - generic [ref=e60]:
62
+ - link "Sauce Labs Fleece Jacket" [ref=e62]:
63
+ - /url: "#"
64
+ - img "Sauce Labs Fleece Jacket" [ref=e63]
65
+ - generic [ref=e64]:
66
+ - generic [ref=e65]:
67
+ - link "Sauce Labs Fleece Jacket" [ref=e66]:
68
+ - /url: "#"
69
+ - generic [ref=e67]: Sauce Labs Fleece Jacket
70
+ - generic [ref=e68]: It's not every day that you come across a midweight quarter-zip fleece jacket capable of handling everything from a relaxing day outdoors to a busy day at the office.
71
+ - generic [ref=e69]:
72
+ - generic [ref=e70]: $49.99
73
+ - button "Add to cart" [ref=e71] [cursor=pointer]
74
+ - generic [ref=e72]:
75
+ - link "Sauce Labs Onesie" [ref=e74]:
76
+ - /url: "#"
77
+ - img "Sauce Labs Onesie" [ref=e75]
78
+ - generic [ref=e76]:
79
+ - generic [ref=e77]:
80
+ - link "Sauce Labs Onesie" [ref=e78]:
81
+ - /url: "#"
82
+ - generic [ref=e79]: Sauce Labs Onesie
83
+ - generic [ref=e80]: Rib snap infant onesie for the junior automation engineer in development. Reinforced 3-snap bottom closure, two-needle hemmed sleeved and bottom won't unravel.
84
+ - generic [ref=e81]:
85
+ - generic [ref=e82]: $7.99
86
+ - button "Add to cart" [ref=e83] [cursor=pointer]
87
+ - generic [ref=e84]:
88
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e86]:
89
+ - /url: "#"
90
+ - img "Test.allTheThings() T-Shirt (Red)" [ref=e87]
91
+ - generic [ref=e88]:
92
+ - generic [ref=e89]:
93
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e90]:
94
+ - /url: "#"
95
+ - generic [ref=e91]: Test.allTheThings() T-Shirt (Red)
96
+ - generic [ref=e92]: This classic Sauce Labs t-shirt is perfect to wear when cozying up to your keyboard to automate a few tests. Super-soft and comfy ringspun combed cotton.
97
+ - generic [ref=e93]:
98
+ - generic [ref=e94]: $15.99
99
+ - button "Add to cart" [ref=e95] [cursor=pointer]
100
+ - contentinfo [ref=e96]:
101
+ - list [ref=e97]:
102
+ - listitem [ref=e98]:
103
+ - link "Twitter" [ref=e99]:
104
+ - /url: https://twitter.com/saucelabs
105
+ - listitem [ref=e100]:
106
+ - link "Facebook" [ref=e101]:
107
+ - /url: https://www.facebook.com/saucelabs
108
+ - listitem [ref=e102]:
109
+ - link "LinkedIn" [ref=e103]:
110
+ - /url: https://www.linkedin.com/company/sauce-labs/
111
+ - generic [ref=e104]: © 2026 Sauce Labs. All Rights Reserved. Terms of Service | Privacy Policy
112
+ ```
@@ -0,0 +1,112 @@
1
+ # Page snapshot
2
+
3
+ ```yaml
4
+ - generic [ref=e3]:
5
+ - generic [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - generic [ref=e7]:
9
+ - button "Open Menu" [ref=e8] [cursor=pointer]
10
+ - img "Open Menu" [ref=e9]
11
+ - generic [ref=e11]: Swag Labs
12
+ - generic [ref=e14]:
13
+ - generic [ref=e15]: Products
14
+ - generic [ref=e17] [cursor=pointer]:
15
+ - generic [ref=e18]: Name (A to Z)
16
+ - combobox [ref=e19]:
17
+ - option "Name (A to Z)" [selected]
18
+ - option "Name (Z to A)"
19
+ - option "Price (low to high)"
20
+ - option "Price (high to low)"
21
+ - generic [ref=e23]:
22
+ - generic [ref=e24]:
23
+ - link "Sauce Labs Backpack" [ref=e26]:
24
+ - /url: "#"
25
+ - img "Sauce Labs Backpack" [ref=e27]
26
+ - generic [ref=e28]:
27
+ - generic [ref=e29]:
28
+ - link "Sauce Labs Backpack" [ref=e30]:
29
+ - /url: "#"
30
+ - generic [ref=e31]: Sauce Labs Backpack
31
+ - generic [ref=e32]: carry.allTheThings() with the sleek, streamlined Sly Pack that melds uncompromising style with unequaled laptop and tablet protection.
32
+ - generic [ref=e33]:
33
+ - generic [ref=e34]: $29.99
34
+ - button "Add to cart" [ref=e35] [cursor=pointer]
35
+ - generic [ref=e36]:
36
+ - link "Sauce Labs Bike Light" [ref=e38]:
37
+ - /url: "#"
38
+ - img "Sauce Labs Bike Light" [ref=e39]
39
+ - generic [ref=e40]:
40
+ - generic [ref=e41]:
41
+ - link "Sauce Labs Bike Light" [ref=e42]:
42
+ - /url: "#"
43
+ - generic [ref=e43]: Sauce Labs Bike Light
44
+ - generic [ref=e44]: A red light isn't the desired state in testing but it sure helps when riding your bike at night. Water-resistant with 3 lighting modes, 1 AAA battery included.
45
+ - generic [ref=e45]:
46
+ - generic [ref=e46]: $9.99
47
+ - button "Add to cart" [ref=e47] [cursor=pointer]
48
+ - generic [ref=e48]:
49
+ - link "Sauce Labs Bolt T-Shirt" [ref=e50]:
50
+ - /url: "#"
51
+ - img "Sauce Labs Bolt T-Shirt" [ref=e51]
52
+ - generic [ref=e52]:
53
+ - generic [ref=e53]:
54
+ - link "Sauce Labs Bolt T-Shirt" [ref=e54]:
55
+ - /url: "#"
56
+ - generic [ref=e55]: Sauce Labs Bolt T-Shirt
57
+ - generic [ref=e56]: Get your testing superhero on with the Sauce Labs bolt T-shirt. From American Apparel, 100% ringspun combed cotton, heather gray with red bolt.
58
+ - generic [ref=e57]:
59
+ - generic [ref=e58]: $15.99
60
+ - button "Add to cart" [ref=e59] [cursor=pointer]
61
+ - generic [ref=e60]:
62
+ - link "Sauce Labs Fleece Jacket" [ref=e62]:
63
+ - /url: "#"
64
+ - img "Sauce Labs Fleece Jacket" [ref=e63]
65
+ - generic [ref=e64]:
66
+ - generic [ref=e65]:
67
+ - link "Sauce Labs Fleece Jacket" [ref=e66]:
68
+ - /url: "#"
69
+ - generic [ref=e67]: Sauce Labs Fleece Jacket
70
+ - generic [ref=e68]: It's not every day that you come across a midweight quarter-zip fleece jacket capable of handling everything from a relaxing day outdoors to a busy day at the office.
71
+ - generic [ref=e69]:
72
+ - generic [ref=e70]: $49.99
73
+ - button "Add to cart" [ref=e71] [cursor=pointer]
74
+ - generic [ref=e72]:
75
+ - link "Sauce Labs Onesie" [ref=e74]:
76
+ - /url: "#"
77
+ - img "Sauce Labs Onesie" [ref=e75]
78
+ - generic [ref=e76]:
79
+ - generic [ref=e77]:
80
+ - link "Sauce Labs Onesie" [ref=e78]:
81
+ - /url: "#"
82
+ - generic [ref=e79]: Sauce Labs Onesie
83
+ - generic [ref=e80]: Rib snap infant onesie for the junior automation engineer in development. Reinforced 3-snap bottom closure, two-needle hemmed sleeved and bottom won't unravel.
84
+ - generic [ref=e81]:
85
+ - generic [ref=e82]: $7.99
86
+ - button "Add to cart" [ref=e83] [cursor=pointer]
87
+ - generic [ref=e84]:
88
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e86]:
89
+ - /url: "#"
90
+ - img "Test.allTheThings() T-Shirt (Red)" [ref=e87]
91
+ - generic [ref=e88]:
92
+ - generic [ref=e89]:
93
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e90]:
94
+ - /url: "#"
95
+ - generic [ref=e91]: Test.allTheThings() T-Shirt (Red)
96
+ - generic [ref=e92]: This classic Sauce Labs t-shirt is perfect to wear when cozying up to your keyboard to automate a few tests. Super-soft and comfy ringspun combed cotton.
97
+ - generic [ref=e93]:
98
+ - generic [ref=e94]: $15.99
99
+ - button "Add to cart" [ref=e95] [cursor=pointer]
100
+ - contentinfo [ref=e96]:
101
+ - list [ref=e97]:
102
+ - listitem [ref=e98]:
103
+ - link "Twitter" [ref=e99]:
104
+ - /url: https://twitter.com/saucelabs
105
+ - listitem [ref=e100]:
106
+ - link "Facebook" [ref=e101]:
107
+ - /url: https://www.facebook.com/saucelabs
108
+ - listitem [ref=e102]:
109
+ - link "LinkedIn" [ref=e103]:
110
+ - /url: https://www.linkedin.com/company/sauce-labs/
111
+ - generic [ref=e104]: © 2026 Sauce Labs. All Rights Reserved. Terms of Service | Privacy Policy
112
+ ```
@@ -0,0 +1,112 @@
1
+ # Page snapshot
2
+
3
+ ```yaml
4
+ - generic [ref=e3]:
5
+ - generic [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - generic [ref=e7]:
9
+ - button "Open Menu" [ref=e8] [cursor=pointer]
10
+ - img "Open Menu" [ref=e9]
11
+ - generic [ref=e11]: Swag Labs
12
+ - generic [ref=e14]:
13
+ - generic [ref=e15]: Products
14
+ - generic [ref=e17] [cursor=pointer]:
15
+ - generic [ref=e18]: Name (A to Z)
16
+ - combobox [ref=e19]:
17
+ - option "Name (A to Z)" [selected]
18
+ - option "Name (Z to A)"
19
+ - option "Price (low to high)"
20
+ - option "Price (high to low)"
21
+ - generic [ref=e23]:
22
+ - generic [ref=e24]:
23
+ - link "Sauce Labs Backpack" [ref=e26] [cursor=pointer]:
24
+ - /url: "#"
25
+ - img "Sauce Labs Backpack" [ref=e27]
26
+ - generic [ref=e28]:
27
+ - generic [ref=e29]:
28
+ - link "Sauce Labs Backpack" [ref=e30] [cursor=pointer]:
29
+ - /url: "#"
30
+ - generic [ref=e31]: Sauce Labs Backpack
31
+ - generic [ref=e32]: carry.allTheThings() with the sleek, streamlined Sly Pack that melds uncompromising style with unequaled laptop and tablet protection.
32
+ - generic [ref=e33]:
33
+ - generic [ref=e34]: $29.99
34
+ - button "Add to cart" [ref=e35] [cursor=pointer]
35
+ - generic [ref=e36]:
36
+ - link "Sauce Labs Bike Light" [ref=e38] [cursor=pointer]:
37
+ - /url: "#"
38
+ - img "Sauce Labs Bike Light" [ref=e39]
39
+ - generic [ref=e40]:
40
+ - generic [ref=e41]:
41
+ - link "Sauce Labs Bike Light" [ref=e42] [cursor=pointer]:
42
+ - /url: "#"
43
+ - generic [ref=e43]: Sauce Labs Bike Light
44
+ - generic [ref=e44]: A red light isn't the desired state in testing but it sure helps when riding your bike at night. Water-resistant with 3 lighting modes, 1 AAA battery included.
45
+ - generic [ref=e45]:
46
+ - generic [ref=e46]: $9.99
47
+ - button "Add to cart" [ref=e47] [cursor=pointer]
48
+ - generic [ref=e48]:
49
+ - link "Sauce Labs Bolt T-Shirt" [ref=e50] [cursor=pointer]:
50
+ - /url: "#"
51
+ - img "Sauce Labs Bolt T-Shirt" [ref=e51]
52
+ - generic [ref=e52]:
53
+ - generic [ref=e53]:
54
+ - link "Sauce Labs Bolt T-Shirt" [ref=e54] [cursor=pointer]:
55
+ - /url: "#"
56
+ - generic [ref=e55]: Sauce Labs Bolt T-Shirt
57
+ - generic [ref=e56]: Get your testing superhero on with the Sauce Labs bolt T-shirt. From American Apparel, 100% ringspun combed cotton, heather gray with red bolt.
58
+ - generic [ref=e57]:
59
+ - generic [ref=e58]: $15.99
60
+ - button "Add to cart" [ref=e59] [cursor=pointer]
61
+ - generic [ref=e60]:
62
+ - link "Sauce Labs Fleece Jacket" [ref=e62] [cursor=pointer]:
63
+ - /url: "#"
64
+ - img "Sauce Labs Fleece Jacket" [ref=e63]
65
+ - generic [ref=e64]:
66
+ - generic [ref=e65]:
67
+ - link "Sauce Labs Fleece Jacket" [ref=e66] [cursor=pointer]:
68
+ - /url: "#"
69
+ - generic [ref=e67]: Sauce Labs Fleece Jacket
70
+ - generic [ref=e68]: It's not every day that you come across a midweight quarter-zip fleece jacket capable of handling everything from a relaxing day outdoors to a busy day at the office.
71
+ - generic [ref=e69]:
72
+ - generic [ref=e70]: $49.99
73
+ - button "Add to cart" [ref=e71] [cursor=pointer]
74
+ - generic [ref=e72]:
75
+ - link "Sauce Labs Onesie" [ref=e74] [cursor=pointer]:
76
+ - /url: "#"
77
+ - img "Sauce Labs Onesie" [ref=e75]
78
+ - generic [ref=e76]:
79
+ - generic [ref=e77]:
80
+ - link "Sauce Labs Onesie" [ref=e78] [cursor=pointer]:
81
+ - /url: "#"
82
+ - generic [ref=e79]: Sauce Labs Onesie
83
+ - generic [ref=e80]: Rib snap infant onesie for the junior automation engineer in development. Reinforced 3-snap bottom closure, two-needle hemmed sleeved and bottom won't unravel.
84
+ - generic [ref=e81]:
85
+ - generic [ref=e82]: $7.99
86
+ - button "Add to cart" [ref=e83] [cursor=pointer]
87
+ - generic [ref=e84]:
88
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e86] [cursor=pointer]:
89
+ - /url: "#"
90
+ - img "Test.allTheThings() T-Shirt (Red)" [ref=e87]
91
+ - generic [ref=e88]:
92
+ - generic [ref=e89]:
93
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e90] [cursor=pointer]:
94
+ - /url: "#"
95
+ - generic [ref=e91]: Test.allTheThings() T-Shirt (Red)
96
+ - generic [ref=e92]: This classic Sauce Labs t-shirt is perfect to wear when cozying up to your keyboard to automate a few tests. Super-soft and comfy ringspun combed cotton.
97
+ - generic [ref=e93]:
98
+ - generic [ref=e94]: $15.99
99
+ - button "Add to cart" [ref=e95] [cursor=pointer]
100
+ - contentinfo [ref=e96]:
101
+ - list [ref=e97]:
102
+ - listitem [ref=e98]:
103
+ - link "Twitter" [ref=e99] [cursor=pointer]:
104
+ - /url: https://twitter.com/saucelabs
105
+ - listitem [ref=e100]:
106
+ - link "Facebook" [ref=e101] [cursor=pointer]:
107
+ - /url: https://www.facebook.com/saucelabs
108
+ - listitem [ref=e102]:
109
+ - link "LinkedIn" [ref=e103] [cursor=pointer]:
110
+ - /url: https://www.linkedin.com/company/sauce-labs/
111
+ - generic [ref=e104]: © 2026 Sauce Labs. All Rights Reserved. Terms of Service | Privacy Policy
112
+ ```
@@ -0,0 +1,112 @@
1
+ # Page snapshot
2
+
3
+ ```yaml
4
+ - generic [ref=e3]:
5
+ - generic [ref=e4]:
6
+ - generic [ref=e5]:
7
+ - generic [ref=e6]:
8
+ - generic [ref=e7]:
9
+ - button "Open Menu" [ref=e8] [cursor=pointer]
10
+ - img "Open Menu" [ref=e9]
11
+ - generic [ref=e11]: Swag Labs
12
+ - generic [ref=e14]:
13
+ - generic [ref=e15]: Products
14
+ - generic [ref=e17] [cursor=pointer]:
15
+ - generic [ref=e18]: Name (A to Z)
16
+ - combobox [ref=e19]:
17
+ - option "Name (A to Z)" [selected]
18
+ - option "Name (Z to A)"
19
+ - option "Price (low to high)"
20
+ - option "Price (high to low)"
21
+ - generic [ref=e23]:
22
+ - generic [ref=e24]:
23
+ - link "Sauce Labs Backpack" [ref=e26] [cursor=pointer]:
24
+ - /url: "#"
25
+ - img "Sauce Labs Backpack" [ref=e27]
26
+ - generic [ref=e28]:
27
+ - generic [ref=e29]:
28
+ - link "Sauce Labs Backpack" [ref=e30] [cursor=pointer]:
29
+ - /url: "#"
30
+ - generic [ref=e31]: Sauce Labs Backpack
31
+ - generic [ref=e32]: carry.allTheThings() with the sleek, streamlined Sly Pack that melds uncompromising style with unequaled laptop and tablet protection.
32
+ - generic [ref=e33]:
33
+ - generic [ref=e34]: $29.99
34
+ - button "Add to cart" [ref=e35] [cursor=pointer]
35
+ - generic [ref=e36]:
36
+ - link "Sauce Labs Bike Light" [ref=e38] [cursor=pointer]:
37
+ - /url: "#"
38
+ - img "Sauce Labs Bike Light" [ref=e39]
39
+ - generic [ref=e40]:
40
+ - generic [ref=e41]:
41
+ - link "Sauce Labs Bike Light" [ref=e42] [cursor=pointer]:
42
+ - /url: "#"
43
+ - generic [ref=e43]: Sauce Labs Bike Light
44
+ - generic [ref=e44]: A red light isn't the desired state in testing but it sure helps when riding your bike at night. Water-resistant with 3 lighting modes, 1 AAA battery included.
45
+ - generic [ref=e45]:
46
+ - generic [ref=e46]: $9.99
47
+ - button "Add to cart" [ref=e47] [cursor=pointer]
48
+ - generic [ref=e48]:
49
+ - link "Sauce Labs Bolt T-Shirt" [ref=e50] [cursor=pointer]:
50
+ - /url: "#"
51
+ - img "Sauce Labs Bolt T-Shirt" [ref=e51]
52
+ - generic [ref=e52]:
53
+ - generic [ref=e53]:
54
+ - link "Sauce Labs Bolt T-Shirt" [ref=e54] [cursor=pointer]:
55
+ - /url: "#"
56
+ - generic [ref=e55]: Sauce Labs Bolt T-Shirt
57
+ - generic [ref=e56]: Get your testing superhero on with the Sauce Labs bolt T-shirt. From American Apparel, 100% ringspun combed cotton, heather gray with red bolt.
58
+ - generic [ref=e57]:
59
+ - generic [ref=e58]: $15.99
60
+ - button "Add to cart" [ref=e59] [cursor=pointer]
61
+ - generic [ref=e60]:
62
+ - link "Sauce Labs Fleece Jacket" [ref=e62] [cursor=pointer]:
63
+ - /url: "#"
64
+ - img "Sauce Labs Fleece Jacket" [ref=e63]
65
+ - generic [ref=e64]:
66
+ - generic [ref=e65]:
67
+ - link "Sauce Labs Fleece Jacket" [ref=e66] [cursor=pointer]:
68
+ - /url: "#"
69
+ - generic [ref=e67]: Sauce Labs Fleece Jacket
70
+ - generic [ref=e68]: It's not every day that you come across a midweight quarter-zip fleece jacket capable of handling everything from a relaxing day outdoors to a busy day at the office.
71
+ - generic [ref=e69]:
72
+ - generic [ref=e70]: $49.99
73
+ - button "Add to cart" [ref=e71] [cursor=pointer]
74
+ - generic [ref=e72]:
75
+ - link "Sauce Labs Onesie" [ref=e74] [cursor=pointer]:
76
+ - /url: "#"
77
+ - img "Sauce Labs Onesie" [ref=e75]
78
+ - generic [ref=e76]:
79
+ - generic [ref=e77]:
80
+ - link "Sauce Labs Onesie" [ref=e78] [cursor=pointer]:
81
+ - /url: "#"
82
+ - generic [ref=e79]: Sauce Labs Onesie
83
+ - generic [ref=e80]: Rib snap infant onesie for the junior automation engineer in development. Reinforced 3-snap bottom closure, two-needle hemmed sleeved and bottom won't unravel.
84
+ - generic [ref=e81]:
85
+ - generic [ref=e82]: $7.99
86
+ - button "Add to cart" [ref=e83] [cursor=pointer]
87
+ - generic [ref=e84]:
88
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e86] [cursor=pointer]:
89
+ - /url: "#"
90
+ - img "Test.allTheThings() T-Shirt (Red)" [ref=e87]
91
+ - generic [ref=e88]:
92
+ - generic [ref=e89]:
93
+ - link "Test.allTheThings() T-Shirt (Red)" [ref=e90] [cursor=pointer]:
94
+ - /url: "#"
95
+ - generic [ref=e91]: Test.allTheThings() T-Shirt (Red)
96
+ - generic [ref=e92]: This classic Sauce Labs t-shirt is perfect to wear when cozying up to your keyboard to automate a few tests. Super-soft and comfy ringspun combed cotton.
97
+ - generic [ref=e93]:
98
+ - generic [ref=e94]: $15.99
99
+ - button "Add to cart" [ref=e95] [cursor=pointer]
100
+ - contentinfo [ref=e96]:
101
+ - list [ref=e97]:
102
+ - listitem [ref=e98]:
103
+ - link "Twitter" [ref=e99] [cursor=pointer]:
104
+ - /url: https://twitter.com/saucelabs
105
+ - listitem [ref=e100]:
106
+ - link "Facebook" [ref=e101] [cursor=pointer]:
107
+ - /url: https://www.facebook.com/saucelabs
108
+ - listitem [ref=e102]:
109
+ - link "LinkedIn" [ref=e103] [cursor=pointer]:
110
+ - /url: https://www.linkedin.com/company/sauce-labs/
111
+ - generic [ref=e104]: © 2026 Sauce Labs. All Rights Reserved. Terms of Service | Privacy Policy
112
+ ```