playwright-e2e-mcp 0.4.2 → 0.5.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 (56) hide show
  1. package/README.md +238 -924
  2. package/dist/http.d.ts +2 -1
  3. package/dist/http.js +2 -1
  4. package/dist/http.js.map +1 -1
  5. package/dist/server.d.ts +2 -2
  6. package/dist/server.js +31 -4
  7. package/dist/server.js.map +1 -1
  8. package/dist/tools/analyze-history.d.ts +12 -1
  9. package/dist/tools/analyze-history.js +89 -5
  10. package/dist/tools/analyze-history.js.map +1 -1
  11. package/dist/tools/audit-accessibility.d.ts +85 -0
  12. package/dist/tools/audit-accessibility.js +4 -1
  13. package/dist/tools/audit-accessibility.js.map +1 -1
  14. package/dist/tools/audit-performance.d.ts +333 -0
  15. package/dist/tools/audit-performance.js +377 -0
  16. package/dist/tools/audit-performance.js.map +1 -0
  17. package/dist/tools/compare-visual-state.d.ts +84 -0
  18. package/dist/tools/generate-e2e-test.d.ts +90 -0
  19. package/dist/tools/generate-e2e-test.js +223 -34
  20. package/dist/tools/generate-e2e-test.js.map +1 -1
  21. package/dist/tools/get-failure.js +2 -1
  22. package/dist/tools/get-failure.js.map +1 -1
  23. package/dist/tools/inspect-page.d.ts +94 -0
  24. package/dist/tools/inspect-page.js +42 -5
  25. package/dist/tools/inspect-page.js.map +1 -1
  26. package/dist/tools/load-report.d.ts +48 -0
  27. package/dist/tools/load-report.js +167 -0
  28. package/dist/tools/load-report.js.map +1 -0
  29. package/dist/tools/probe-script.d.ts +7 -0
  30. package/dist/tools/probe-script.js +266 -7
  31. package/dist/tools/probe-script.js.map +1 -1
  32. package/dist/tools/shared.d.ts +137 -2
  33. package/dist/tools/shared.js +176 -9
  34. package/dist/tools/shared.js.map +1 -1
  35. package/dist/tools/suggest-fix.d.ts +35 -1
  36. package/dist/tools/suggest-fix.js +197 -17
  37. package/dist/tools/suggest-fix.js.map +1 -1
  38. package/dist/tools/validate-selector.d.ts +84 -0
  39. package/dist/tools/validate-selector.js +7 -1
  40. package/dist/tools/validate-selector.js.map +1 -1
  41. package/dist/types/index.d.ts +28 -0
  42. package/dist/utils/project-detector.js +2 -2
  43. package/dist/utils/project-detector.js.map +1 -1
  44. package/dist/utils/report-parser.d.ts +28 -3
  45. package/dist/utils/report-parser.js +77 -11
  46. package/dist/utils/report-parser.js.map +1 -1
  47. package/dist/utils/run-history.d.ts +66 -3
  48. package/dist/utils/run-history.js +149 -3
  49. package/dist/utils/run-history.js.map +1 -1
  50. package/dist/utils/serverless-chromium.d.ts +32 -0
  51. package/dist/utils/serverless-chromium.js +64 -0
  52. package/dist/utils/serverless-chromium.js.map +1 -0
  53. package/package.json +3 -2
  54. package/skill/playwright-e2e-mcp/SKILL.md +71 -15
  55. package/skill/playwright-e2e-mcp/references/setup.md +1 -1
  56. package/skill/playwright-e2e-mcp/references/tools.md +67 -6
@@ -1 +1 @@
1
- {"version":3,"file":"run-history.js","sourceRoot":"","sources":["../../src/utils/run-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-history.js","sourceRoot":"","sources":["../../src/utils/run-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3G,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AACjD,MAAM,YAAY,GAAG,eAAe,CAAC;AACrC,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,mBAAmB,GAAG,KAAK,CAAC;AA8BlC,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACtG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAClD,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QACzC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC;KAC/D,CAAC,CAAC;IACH,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACxD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,MAAc,EACd,EAAE,GAAG,IAAI,IAAI,EAAE,EACf,OAAuC;IAEvC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE;QACzF,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE;QACpB,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACjB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9H,CAAC,CAAC,IAAI;QACR,KAAK;QACL,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,MAAqB,EACrB,MAAc,EACd,OAAO,GAAiC,EAAE;IAE1C,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,wFAAwF;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,4EAA4E;IAC5E,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,mBAAmB,CAAC,MAAM,EAAE,wDAAwD,EAAE,IAAI,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,EAAE,cAAc,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzH,yCAAyC;IACzC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5G,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW;YAAE,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AAExE,MAAM,UAAU,OAAO,CAAC,IAAuD;IAC7E,OAAO,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,MAAM,GAA4B,IAAI,GAAG,CAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAyBpF,SAAS,MAAM,CAAC,MAAkB;IAChC,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,OAAuB;IAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuF,CAAC;IAC3G,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACnC,IAAI,OAAO,KAAK,MAAM;gBAAE,KAAK,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,MAAM;YACN,MAAM;YACN,KAAK;YACL,KAAK;YACL,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACxG,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAuB;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,CAAC,CAAY,EAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvH,MAAM,MAAM,GAAG,KAAK;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC;SACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,KAAK;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;SAC9D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAC9G,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAWD,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;gBAAE,SAAS;YAClE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;gBAAE,SAAS;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;YACpC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACnH,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AAED,wEAAwE;AACxE,0EAA0E;AAC1E,wEAAwE;AAExE,SAAS,MAAM,CAAC,MAAgB;IAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAWD,iGAAiG;AACjG,MAAM,UAAU,SAAS,CAAC,OAAuB;IAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;gBAAE,SAAS;YAC7F,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAa,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1G,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC3F,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAeD,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,OAAuB;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmG,CAAC;IACxH,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QACxG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YACrE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YACrB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;gBAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG;QACH,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;KAC5B,CAAC,CAAC,CAAC;AACR,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8D,CAAC;IACnF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YACrE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;YAAE,SAAS;QACvD,6EAA6E;QAC7E,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACnE,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACrF,IAAI,aAAa,GAAG,CAAC;YAAE,SAAS,CAAC,uCAAuC;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACvG,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;YACxG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;SACpC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxG,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Serverless Chromium for the hosted bridge. A Vercel function has no
3
+ * Playwright browser download, so the page tools launch the Chromium build
4
+ * from `@sparticuz/chromium` (a dev dependency, bundled into the function by
5
+ * vercel.json) with the project's Playwright driving it.
6
+ *
7
+ * On by default on Vercel; PW_MCP_SERVERLESS_CHROMIUM=1 turns it on
8
+ * elsewhere (Linux x64 only, Node 22+) and `0` turns it off.
9
+ */
10
+ export interface ServerlessChromium {
11
+ executablePath: string;
12
+ args: string[];
13
+ /** Library and font paths the binary needs, for the probe child's env. */
14
+ env: Record<string, string>;
15
+ }
16
+ interface ChromiumModule {
17
+ executablePath(): Promise<string>;
18
+ args: string[];
19
+ }
20
+ /**
21
+ * Hand over the imported module. The Vercel entry point imports it
22
+ * statically so the function bundler traces it and its dependencies.
23
+ */
24
+ export declare function provideServerlessChromium(chromium: ChromiumModule): void;
25
+ export declare function serverlessChromiumEnabled(): boolean;
26
+ /**
27
+ * The extracted binary and its launch flags, or null when serverless
28
+ * Chromium is off or not installed. Extraction to the temp dir happens
29
+ * once per warm instance.
30
+ */
31
+ export declare function serverlessChromium(): Promise<ServerlessChromium | null>;
32
+ export {};
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Serverless Chromium for the hosted bridge. A Vercel function has no
3
+ * Playwright browser download, so the page tools launch the Chromium build
4
+ * from `@sparticuz/chromium` (a dev dependency, bundled into the function by
5
+ * vercel.json) with the project's Playwright driving it.
6
+ *
7
+ * On by default on Vercel; PW_MCP_SERVERLESS_CHROMIUM=1 turns it on
8
+ * elsewhere (Linux x64 only, Node 22+) and `0` turns it off.
9
+ */
10
+ import { isHostedDeployment } from './project-detector.js';
11
+ const MODULE = '@sparticuz/chromium';
12
+ let provided;
13
+ let loading;
14
+ /**
15
+ * Hand over the imported module. The Vercel entry point imports it
16
+ * statically so the function bundler traces it and its dependencies.
17
+ */
18
+ export function provideServerlessChromium(chromium) {
19
+ provided = chromium;
20
+ }
21
+ export function serverlessChromiumEnabled() {
22
+ const flag = process.env.PW_MCP_SERVERLESS_CHROMIUM;
23
+ if (flag === '0')
24
+ return false;
25
+ return flag === '1' || isHostedDeployment();
26
+ }
27
+ /**
28
+ * The extracted binary and its launch flags, or null when serverless
29
+ * Chromium is off or not installed. Extraction to the temp dir happens
30
+ * once per warm instance.
31
+ */
32
+ export function serverlessChromium() {
33
+ if (!serverlessChromiumEnabled())
34
+ return Promise.resolve(null);
35
+ loading ??= load().catch((err) => {
36
+ loading = undefined;
37
+ throw err;
38
+ });
39
+ return loading;
40
+ }
41
+ async function load() {
42
+ let chromium = provided;
43
+ if (!chromium) {
44
+ try {
45
+ // A variable specifier keeps tsc from resolving an optional module.
46
+ const name = MODULE;
47
+ chromium = (await import(name)).default;
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ const executablePath = await chromium.executablePath();
54
+ // Importing the module sets these on process.env for Amazon Linux;
55
+ // the probe child gets a scrubbed env on the bridge, so pass them on.
56
+ const env = {};
57
+ for (const key of ['LD_LIBRARY_PATH', 'FONTCONFIG_PATH']) {
58
+ const value = process.env[key];
59
+ if (value)
60
+ env[key] = value;
61
+ }
62
+ return { executablePath, args: chromium.args, env };
63
+ }
64
+ //# sourceMappingURL=serverless-chromium.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverless-chromium.js","sourceRoot":"","sources":["../../src/utils/serverless-chromium.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAS3D,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAOrC,IAAI,QAAoC,CAAC;AACzC,IAAI,OAAuD,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAwB;IAChE,QAAQ,GAAG,QAAQ,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACpD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,IAAI,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC,yBAAyB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxC,OAAO,GAAG,SAAS,CAAC;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC;YACH,oEAAoE;YACpE,MAAM,IAAI,GAAG,MAAM,CAAC;YACpB,QAAQ,GAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAiC,CAAC,OAAO,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IACvD,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "playwright-e2e-mcp",
3
- "version": "0.4.2",
4
- "description": "MCP server and agent skill that run, diagnose and fix failing Playwright end-to-end tests: root-cause grouping, trace analysis, verified locator fixes, flaky and test-order verdicts, WCAG accessibility audits",
3
+ "version": "0.5.1",
4
+ "description": "MCP server and agent skill that run, diagnose and fix failing Playwright tests: CI report diagnosis, trace analysis, verified locator fixes, flaky verdicts, breaking commits, tests written by walking the flow, accessibility and Web Vitals audits.",
5
5
  "author": "xsignon-secure (https://github.com/xsignon-secure)",
6
6
  "mcpName": "io.github.xsignon-secure/E2E",
7
7
  "type": "module",
@@ -84,6 +84,7 @@
84
84
  "@anthropic-ai/mcpb": "^2.1.2",
85
85
  "@modelcontextprotocol/client": "^2.3.1",
86
86
  "@playwright/test": "1.64.1",
87
+ "@sparticuz/chromium": "153.0.0",
87
88
  "@types/node": "^26.6.5",
88
89
  "typescript": "^7.0.2"
89
90
  },
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: playwright-e2e-mcp
3
- description: Runs, debugs and fixes Playwright end-to-end tests through the playwright-e2e-mcp server, using structured run results grouped by root cause, trace-based failure diagnostics, verified locators, self-healing fixes that re-run and revert if still red, per-test flaky verdicts that separate parallelism, test-order and timing bugs, signed-in page inspection, WCAG accessibility audits and local run history, plus a guide to writing tests that stay green. Use when the user asks to run Playwright tests, fix a failing or broken e2e test, find out why a test is flaky or which tests are unstable, repair a selector that no longer matches, write or review a Playwright test, check a page for accessibility or visual regressions.
3
+ description: Runs, debugs and fixes Playwright end-to-end tests through the playwright-e2e-mcp server, using structured run results grouped by root cause, trace-based failure diagnostics, verified locators, self-healing fixes that re-run and revert if still red, per-test flaky verdicts that separate parallelism, test-order and timing bugs, signed-in page inspection with network mocks and HAR replay, aria snapshots, tests written by walking the flow on the live page, CI report diagnosis, WCAG accessibility audits, Web Vitals performance audits and local run history with the commit that broke each test, plus a guide to writing tests that stay green. Use when the user asks to run Playwright tests, fix a failing or broken e2e test, find out why a CI run failed, find out why a test is flaky or which tests are unstable or slow, repair a selector that no longer matches, write or review a Playwright test, check a page for accessibility, performance or visual regressions.
4
4
  ---
5
5
 
6
6
  # Playwright E2E with playwright-e2e-mcp
@@ -13,19 +13,23 @@ and concrete next steps. It can also propose and apply a verified fix for a brok
13
13
  locator, inspect pages behind a login, run long suites in the background and keep
14
14
  a local history of every run.
15
15
 
16
- This skill is written for playwright-e2e-mcp 0.4.2 and works with 0.2.0 or
16
+ This skill is written for playwright-e2e-mcp 0.5.1 and works with 0.2.0 or
17
17
  newer. If `suggest-fix`, `get-run-status` or `analyze-history` is missing, the
18
18
  server is older than 0.2.0: use the steps that do not need those tools and tell
19
19
  the user to update it. `diagnose-flaky`'s per-test table and `isolate` option
20
20
  arrived in 0.3.0; `audit-accessibility`, `diagnose-flaky`'s `order` option and
21
- root-cause grouping in `run-test` arrived in 0.4.0.
21
+ root-cause grouping in `run-test` arrived in 0.4.0; `audit-performance`,
22
+ `load-report`, network mocks (`routes`), `har`, `browser`, `inspect-page`'s
23
+ `view: "aria"`, `generate-e2e-test`'s `steps`, the `slow`, `trend` and `commits`
24
+ history views and strict-mode fixes in `suggest-fix` arrived in 0.5.0.
22
25
 
23
26
  ## Before you start
24
27
 
25
28
  1. Check that the server's tools are available. They are named `run-test`,
26
- `get-run-status`, `get-failure`, `suggest-fix`, `inspect-page`,
29
+ `get-run-status`, `get-failure`, `load-report`, `suggest-fix`, `inspect-page`,
27
30
  `validate-selector`, `list-tests`, `generate-e2e-test`,
28
- `compare-visual-state`, `audit-accessibility`, `diagnose-flaky` and
31
+ `compare-visual-state`, `audit-accessibility`, `audit-performance`,
32
+ `diagnose-flaky` and
29
33
  `analyze-history` (your client
30
34
  may prefix them, e.g. `mcp__playwright-e2e__run-test`).
31
35
  2. If they are all missing, stop and tell the user the MCP server is not
@@ -66,6 +70,11 @@ Follow these steps in order. Do not edit code before step 3.
66
70
  - `server-unreachable` / `SERVER_NOT_RUNNING`: the app is not running. Tell the
67
71
  user to start the dev server, or suggest `webServer` in the Playwright config.
68
72
  Do not edit tests.
73
+ - "strict mode violation … resolved to N elements": the locator matches more
74
+ than one element. Call `suggest-fix`; it picks the exact-name match itself,
75
+ or lists the matches so you can pass `candidate: <n>` for the one the test
76
+ meant (read the test's intent; ask the user if it is unclear). If the
77
+ duplicates should not exist (a dialog rendered twice), it is an app bug.
69
78
  - A locator or selector in the message, or "0 elements": call `suggest-fix`
70
79
  with the same `index`. If it returns a diff with `high` confidence, call it
71
80
  again with `apply: true`; it re-runs the test and reverts if still red. If it
@@ -110,12 +119,35 @@ fresh browser, so a signed-in page shows the login screen unless you pass state:
110
119
  or log credentials.
111
120
  - `actions`: up to 20 steps after load (`click`, `fill`, `press`, `check`,
112
121
  `select`, `hover`, `wait`, `goto`, ...) to open a modal or reach a later step.
122
+ - `routes`: up to 20 network mocks applied before load, first match wins:
123
+ `{ "url": "**/api/cart", "json": { "items": [] } }` for an empty state,
124
+ `"status": 500` for an error state, `"abort": true` to drop a third party,
125
+ `"delayMs"` alone to slow the real request. The response flags a mock that
126
+ matched nothing; fix the glob before trusting the result.
127
+ - `har`: `{ "path": "tests/fixtures/cart.har", "mode": "record" }` saves the
128
+ page's traffic once; later calls with `{ "path": ... }` replay it, so the page
129
+ shows the same data every time (`url` narrows it, e.g. `"**/api/**"`).
130
+ - `browser`: `"firefox"` or `"webkit"` when a bug only shows in that engine
131
+ (it must be installed; `audit-performance` stays Chromium-only).
113
132
  - `viewport`: `{ "width": 390, "height": 844 }` for mobile layouts.
114
133
 
115
134
  When a response says the page landed on a login screen, retry with
116
135
  `storageState`. `suggest-fix` takes `storageState` and `headers` too when you heal
117
136
  against a live `url`.
118
137
 
138
+ ## A failure from CI
139
+
140
+ When the user asks why CI failed, do not re-run the whole suite locally first.
141
+ Have the user (or `gh run download <run-id> -D ci-artifacts`) put the job's
142
+ report and its `test-results` artifact inside the project, then call
143
+ `load-report` with `{ "report": "ci-artifacts/results.json" }` (a JSON report
144
+ file, or the folder of blob-report zips from sharded jobs). It maps the CI paths
145
+ onto the checkout, finds the traces and makes that run the last run, so continue
146
+ with the core loop from step 2: `get-failure`, then `suggest-fix`, which
147
+ re-runs the fix locally. If it says traces were not found, pass `traceDirs` with
148
+ the folder where `test-results` was unpacked. The run is added to the history
149
+ with its commit.
150
+
119
151
  ## Flaky or intermittent failures
120
152
 
121
153
  Start with `analyze-history` (default view `flaky`) to see which tests flip
@@ -165,21 +197,37 @@ last failing diagnose run straight after, and each repetition is recorded in the
165
197
  history, so `diagnose-flaky` with `runs: 5` is also the quickest way to seed
166
198
  history for `analyze-history`.
167
199
 
168
- Every `run-test`, `diagnose-flaky` and `suggest-fix` run is recorded in
169
- `<project>/.playwright-e2e-mcp/history.jsonl` on the user's machine;
170
- `analyze-history` with `view: "test"` and a `test` filter shows one test's
171
- pass/fail timeline.
200
+ Every `run-test`, `diagnose-flaky`, `suggest-fix` and `load-report` run is
201
+ recorded in `<project>/.playwright-e2e-mcp/history.jsonl` on the user's machine,
202
+ with the commit it tested. `analyze-history` views:
203
+
204
+ - `view: "test"` with a `test` filter: one test's pass/fail timeline.
205
+ - `view: "commits"`: for each failing or flaky test, the first bad commit after
206
+ its last passing streak and the last good one. Read that diff before
207
+ guessing at a cause.
208
+ - `view: "trend"`: failed and flaky executions per day, to tell whether the
209
+ suite is getting better or worse.
210
+ - `view: "slow"`: tests by median duration, flagging ones that got slower.
172
211
 
173
212
  ## Other tasks
174
213
 
175
214
  - **List tests:** `list-tests`, with `filter` for a substring of `file › title`.
176
- - **Write a new test:** `generate-e2e-test` with a `description` (and `pageUrl` if
177
- there is no `baseURL`). It scaffolds a spec from selectors the project actually
178
- declares, from recent git changes, and reports each selector's source. Review the
179
- file it writes, then `run-test` it. Pass `write: false` to preview without
180
- writing.
215
+ - **Write a new test for a flow:** first find the locators with
216
+ `inspect-page` (`view: "locators"`, adding `actions` to reach later steps),
217
+ then call `generate-e2e-test` with a `description` and `steps` in the
218
+ `actions` format (and `pageUrl` if there is no `baseURL`, `storageState`
219
+ behind a login). It runs the steps on the live page, stops at a step that
220
+ does not work, writes a spec that replays them with the URL and accessibility
221
+ snapshot where the flow landed (`assertScope` narrows it to a dialog or
222
+ form), and runs it once. Trim end-state lines that hold data likely to
223
+ change. Without `steps` it scaffolds a spec from selectors the project
224
+ declares in recent git changes; review it, then `run-test` it. Pass
225
+ `write: false` to preview without writing.
226
+ - **Lock a page's structure:** `inspect-page` with `view: "aria"` (and a
227
+ `selector` for one region) returns the accessibility snapshot and a
228
+ `toMatchAriaSnapshot` assertion to paste into a spec.
181
229
  - **Set up CI:** when the user wants the same diagnosis on every pull request,
182
- point them to the GitHub Action (`uses: xsignon-secure/E2E@v0.4.2`) or the
230
+ point them to the GitHub Action (`uses: xsignon-secure/E2E@v0.5.1`) or the
183
231
  `npx -y playwright-e2e-mcp ci` command in `references/setup.md`. It writes the
184
232
  run, flaky verdicts and fix diffs to the job summary and one PR comment.
185
233
  - **Accessibility:** `audit-accessibility` with `url` runs axe-core against
@@ -190,6 +238,14 @@ pass/fail timeline.
190
238
  the worst (`critical`, `serious`) first, re-run the audit, then add the
191
239
  `AxeBuilder` check it prints to the spec that reaches that page so it stays
192
240
  fixed. Pass `minImpact: "serious"` for a short list.
241
+ - **Performance:** `audit-performance` with `url` measures LCP, CLS, TBT, FCP,
242
+ TTFB, and INP for the clicks and key presses in `actions`. Use
243
+ `throttle: "mobile"` for a phone on slow 4G and `runs: 3` before comparing
244
+ numbers, since one lab load is noisy. Pass `budgets` (e.g. `{ "lcpMs": 2500,
245
+ "cls": 0.1 }`) when the user has targets. Fix what it names (the LCP element,
246
+ the elements that shifted, long tasks, render-blocking and heavy requests),
247
+ re-measure with the same settings, then add the budget test it prints. Say
248
+ that these are lab numbers; field data can differ.
193
249
  - **Write or review a test:** follow `references/writing-tests.md` (locators,
194
250
  web-first assertions, auth setup, test data, network mocking, flake
195
251
  patterns), with or without the server.
@@ -112,7 +112,7 @@ Exit code 0 means passed, 1 tests failed, 2 the run itself failed. On GitHub
112
112
  Actions it also writes to the job summary. As an Action:
113
113
 
114
114
  ```yaml
115
- - uses: xsignon-secure/E2E@v0.4.2
115
+ - uses: xsignon-secure/E2E@v0.5.1
116
116
  with:
117
117
  flaky-runs: 3
118
118
  suggest: 2
@@ -38,6 +38,23 @@ Returns the message and code frame, expected vs actual, stack, failure kind and
38
38
  diagnosis, console output, the DOM snapshot at failure with the failed action and
39
39
  its selector, failed network requests, console errors and warnings, and next steps.
40
40
 
41
+ ## load-report
42
+
43
+ Loads a run from CI (0.5.0+) so the other tools work on it.
44
+
45
+ | Argument | Type | Notes |
46
+ | --- | --- | --- |
47
+ | `report` | string | Required: JSON report inside the project, or a folder of blob-report zips from sharded jobs (merged with `playwright merge-reports`) |
48
+ | `traceDirs` | string[] | Where the job's `test-results` artifact was unpacked (default: the report's folder and its parent) |
49
+ | `commit`, `branch` | string | Override the report metadata |
50
+ | `record` | boolean | Add the run to the history (default true) |
51
+ | `timeoutMs` | number | Limit for merging blob reports (default 120000) |
52
+
53
+ CI paths are mapped onto the checkout (the CI root is the folder of the
54
+ report's config file). Returns the usual run result headed "Imported run", the
55
+ source, commit and build link, and how many failures have a trace. The run
56
+ becomes the last run for `get-failure`, `suggest-fix` and `diagnose-flaky`.
57
+
41
58
  ## inspect-page
42
59
 
43
60
  | Argument | Type | Notes |
@@ -48,16 +65,21 @@ its selector, failed network requests, console errors and warnings, and next ste
48
65
  | `waitUntil` | `load` \| `domcontentloaded` \| `networkidle` | Navigation wait |
49
66
  | `includeHtml` | boolean | Include rendered HTML (capped by `maxHtmlChars`, default 20000) |
50
67
  | `timeoutMs` | number | Default 45000 |
51
- | `view` | `elements` \| `locators` | `locators`: compact map of interactive elements with verified locators |
68
+ | `view` | `elements` \| `locators` \| `aria` | `locators`: compact map of interactive elements with verified locators; `aria` (0.5.0+): accessibility snapshot of the page or of `selector`, with a `toMatchAriaSnapshot` assertion |
52
69
  | `storageState` | string | Playwright storageState JSON inside the project (signed-in session); defaults to `PW_MCP_STORAGE_STATE` |
53
70
  | `headers` | object | Extra HTTP headers |
54
71
  | `actions` | array | Up to 20 steps after load: `{ type: click\|dblclick\|fill\|press\|check\|uncheck\|select\|hover\|wait\|goto, locator?, value?, url?, ms? }` |
72
+ | `routes` | array | Up to 20 network mocks before load, first match wins: `{ url (glob), method?, status?, json? \| body?, contentType?, headers?, abort?, delayMs? }` (0.5.0+). The result reports hits per mock |
73
+ | `har` | object | `{ path, mode?: replay\|record, url?, notFound?: abort\|fallback }` (0.5.0+): replay requests from a HAR inside the project, or record the traffic to one. `routes` still win |
74
+ | `browser` | `chromium` \| `firefox` \| `webkit` | Engine (0.5.0+, default chromium); must be installed |
55
75
  | `viewport` | object | `{ width, height }` |
56
76
 
57
77
  Returns each element's Playwright locators proven unique on the page (role +
58
78
  name first), unique CSS selector, tag, visibility, box, text and attributes,
59
- plus console messages. `validate-selector` and `compare-visual-state` take the
60
- same `storageState`, `headers`, `actions` and `viewport`.
79
+ plus console messages. `validate-selector`, `compare-visual-state`,
80
+ `audit-accessibility` and `audit-performance` take the same `storageState`,
81
+ `headers`, `actions`, `routes`, `har`, `browser` and `viewport`
82
+ (`audit-performance` is Chromium-only).
61
83
 
62
84
  ## validate-selector
63
85
 
@@ -92,8 +114,17 @@ Falls back to a source scan when Playwright cannot list (broken install or spec)
92
114
  | `write` | boolean | Write to disk (default true) |
93
115
  | `overwrite` | boolean | Replace a spec this tool generated earlier |
94
116
  | `liveInspect` | boolean | Cross-check selectors on the live page |
117
+ | `steps` | array | Walk the flow (0.5.0+): up to 30 steps in the `actions` format, run on the live page first |
118
+ | `assertScope` | string | With `steps`: CSS scope of the end-state aria snapshot (default `body`) |
119
+ | `storageState` | string | With `steps`: session for the walk, also set in the spec with `test.use` |
120
+ | `verify`, `project`, `timeoutMs` | | With `steps`: run the written spec once (default true) |
95
121
  | `config` | string | As above |
96
122
 
123
+ With `steps`, a step that fails on the live page stops the walk and nothing is
124
+ written. Otherwise the spec replays the steps and asserts the URL path and the
125
+ aria snapshot where the flow landed (its headings when it is over 60 lines),
126
+ then runs once; a failing first run keeps the file and shows the error.
127
+
97
128
  ## compare-visual-state
98
129
 
99
130
  | Argument | Type | Notes |
@@ -141,7 +172,7 @@ Runs axe-core (0.4.0+) on a live page and returns WCAG violations, worst first.
141
172
  | `standard` | `wcag2a` \| `wcag2aa` \| `wcag21aa` \| `wcag22aa` \| `best-practice` \| `all` | Default `wcag22aa` (WCAG 2.0 to 2.2, A and AA) |
142
173
  | `minImpact` | `critical` \| `serious` \| `moderate` \| `minor` | Hide violations below this impact |
143
174
  | `selector` | string | Audit only this part of the page |
144
- | `storageState`, `headers`, `actions`, `viewport` | | As `inspect-page` |
175
+ | `storageState`, `headers`, `actions`, `routes`, `viewport` | | As `inspect-page` |
145
176
  | `waitFor`, `waitUntil`, `timeoutMs` | | `waitUntil` default `load`; `timeoutMs` default 60000 |
146
177
 
147
178
  Each violation has its rule id, impact, WCAG criteria, a help link, up to three
@@ -149,6 +180,27 @@ offending elements as verified locators with what to change, and the count of
149
180
  the rest. The result ends with an `@axe-core/playwright` check to paste into
150
181
  the spec.
151
182
 
183
+ ## audit-performance
184
+
185
+ Measures lab Web Vitals (0.5.0+) in headless Chromium.
186
+
187
+ | Argument | Type | Notes |
188
+ | --- | --- | --- |
189
+ | `url` | string | Required |
190
+ | `throttle` | `none` \| `mobile` | `mobile`: 412×823 touch viewport, 4x CPU slowdown, slow 4G (Lighthouse's mobile preset) |
191
+ | `cpuSlowdown` | number | Override the CPU factor, 1 to 20 |
192
+ | `runs` | number | 1 to 5 loads, median reported (default 1) |
193
+ | `budgets` | object | `{ lcpMs, cls, inpMs, tbtMs, fcpMs, ttfbMs, transferKb, requests }`; turns the verdict into pass/fail |
194
+ | `settleMs` | number | Observe this long after load (default 1500) |
195
+ | `storageState`, `headers`, `actions`, `routes`, `viewport` | | As `inspect-page`; clicks and key presses in `actions` are measured as INP |
196
+ | `waitFor`, `waitUntil`, `timeoutMs` | | `waitUntil` default `load`; `timeoutMs` per run, default 60000 |
197
+
198
+ Returns a table of LCP, CLS, INP (only when `actions` ran), TBT, FCP and TTFB
199
+ rated good / needs improvement / poor (or against the budgets), what to fix
200
+ (the LCP element and the shifted elements as verified locators, long tasks,
201
+ render-blocking requests), transfer size by type, the heaviest requests and
202
+ third-party weight, and a Playwright test asserting LCP and CLS budgets.
203
+
152
204
  ## suggest-fix
153
205
 
154
206
  | Argument | Type | Notes |
@@ -157,9 +209,15 @@ the spec.
157
209
  | `apply` | boolean | Write the fix (default false: diff only) |
158
210
  | `verify` | boolean | After applying, re-run and revert if still failing (default true) |
159
211
  | `allowExpectationUpdate` | boolean | Allow applying a changed expected text (default false) |
212
+ | `candidate` | number | Strict mode violation: which listed match the test meant (0.5.0+) |
160
213
  | `url`, `storageState`, `headers` | | Heal against a live page instead of the trace snapshot |
161
214
  | `config`, `timeoutMs` | | As `run-test` |
162
215
 
216
+ For a strict mode violation (0.5.0+) it uses the unique locator Playwright
217
+ printed for the intended match: the exact-name match with `high` confidence, or
218
+ the `candidate` you pass with `medium`; with equal matches and no `candidate`
219
+ it lists them and changes nothing.
220
+
163
221
  Returns a unified diff: a locator fix rated `high` or `medium` confidence, or an
164
222
  expectation update rated `low` that is applied only with
165
223
  `allowExpectationUpdate: true`. Otherwise it refuses and says the element is most
@@ -177,10 +235,13 @@ likely missing.
177
235
 
178
236
  | Argument | Type | Notes |
179
237
  | --- | --- | --- |
180
- | `view` | `flaky` \| `patterns` \| `test` | Default `flaky` |
238
+ | `view` | `flaky` \| `patterns` \| `slow` \| `trend` \| `commits` \| `test` | Default `flaky`. `slow`, `trend` and `commits` are 0.5.0+ |
181
239
  | `test` | string | Substring of a test's file or title |
182
240
  | `lastRuns` | number | Default 30 |
183
241
  | `limit` | number | Default 15 |
184
242
 
185
243
  Reads `.playwright-e2e-mcp/history.jsonl`, written by every run
186
- (`PW_MCP_HISTORY=0` disables it).
244
+ (`PW_MCP_HISTORY=0` disables it). `slow` lists tests by median duration in
245
+ passing runs and flags ones that got slower; `trend` shows failed and flaky
246
+ executions per day; `commits` names, per failing or flaky test, the first bad
247
+ commit after its last passing streak and the last good one.