@playdrop/playdrop-cli 0.14.8 → 0.15.0

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 (186) hide show
  1. package/config/client-meta.json +2 -2
  2. package/dist/commands/agents.js +1 -1
  3. package/dist/commands/worker.js +2 -2
  4. package/node_modules/@playdrop/api-client/dist/client.d.ts +3 -1
  5. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  6. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +3 -1
  7. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  8. package/node_modules/@playdrop/api-client/dist/domains/admin.js +46 -2
  9. package/node_modules/@playdrop/config/client-meta.json +2 -2
  10. package/node_modules/@playdrop/types/dist/api.d.ts +96 -1
  11. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  12. package/node_modules/@playdrop/types/dist/api.js +17 -0
  13. package/node_modules/@playwright/mcp/LICENSE +201 -0
  14. package/node_modules/@playwright/mcp/README.md +1592 -0
  15. package/node_modules/@playwright/mcp/cli.js +32 -0
  16. package/node_modules/@playwright/mcp/config.d.ts +239 -0
  17. package/node_modules/@playwright/mcp/index.d.ts +23 -0
  18. package/node_modules/@playwright/mcp/index.js +19 -0
  19. package/node_modules/@playwright/mcp/node_modules/playwright/LICENSE +202 -0
  20. package/node_modules/@playwright/mcp/node_modules/playwright/NOTICE +5 -0
  21. package/node_modules/@playwright/mcp/node_modules/playwright/README.md +318 -0
  22. package/node_modules/@playwright/mcp/node_modules/playwright/ThirdPartyNotices.txt +14 -0
  23. package/node_modules/@playwright/mcp/node_modules/playwright/cli.js +19 -0
  24. package/node_modules/@playwright/mcp/node_modules/playwright/index.d.ts +17 -0
  25. package/node_modules/@playwright/mcp/node_modules/playwright/index.js +17 -0
  26. package/node_modules/@playwright/mcp/node_modules/playwright/index.mjs +18 -0
  27. package/node_modules/@playwright/mcp/node_modules/playwright/jsx-runtime.js +42 -0
  28. package/node_modules/@playwright/mcp/node_modules/playwright/jsx-runtime.mjs +21 -0
  29. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/agentParser.js +89 -0
  30. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/copilot-setup-steps.yml +34 -0
  31. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/generateAgents.js +395 -0
  32. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-coverage.prompt.md +31 -0
  33. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-generate.prompt.md +8 -0
  34. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-generator.agent.md +88 -0
  35. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-heal.prompt.md +6 -0
  36. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-healer.agent.md +56 -0
  37. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-plan.prompt.md +9 -0
  38. package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-planner.agent.md +74 -0
  39. package/node_modules/@playwright/mcp/node_modules/playwright/lib/cli/reportActions.js +78 -0
  40. package/node_modules/@playwright/mcp/node_modules/playwright/lib/cli/testActions.js +213 -0
  41. package/node_modules/@playwright/mcp/node_modules/playwright/lib/common/index.js +2966 -0
  42. package/node_modules/@playwright/mcp/node_modules/playwright/lib/common/index.js.txt +34 -0
  43. package/node_modules/@playwright/mcp/node_modules/playwright/lib/errorContext.js +129 -0
  44. package/node_modules/@playwright/mcp/node_modules/playwright/lib/globals.js +58 -0
  45. package/node_modules/@playwright/mcp/node_modules/playwright/lib/index.js +783 -0
  46. package/node_modules/@playwright/mcp/node_modules/playwright/lib/isomorphic.js +260 -0
  47. package/node_modules/@playwright/mcp/node_modules/playwright/lib/isomorphic.js.txt +9 -0
  48. package/node_modules/@playwright/mcp/node_modules/playwright/lib/loader/loaderProcessEntry.js +34 -0
  49. package/node_modules/@playwright/mcp/node_modules/playwright/lib/loader/loaderProcessEntry.js.txt +9 -0
  50. package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js +13480 -0
  51. package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js.LICENSE +640 -0
  52. package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js.txt +67 -0
  53. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/browserBackend.js +125 -0
  54. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/generatorTools.js +122 -0
  55. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/plannerTools.js +150 -0
  56. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/seed.js +82 -0
  57. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/streams.js +44 -0
  58. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testBackend.js +99 -0
  59. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testContext.js +306 -0
  60. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testTool.js +30 -0
  61. package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testTools.js +98 -0
  62. package/node_modules/@playwright/mcp/node_modules/playwright/lib/package.js +47 -0
  63. package/node_modules/@playwright/mcp/node_modules/playwright/lib/program.js +237 -0
  64. package/node_modules/@playwright/mcp/node_modules/playwright/lib/runner/index.js +8154 -0
  65. package/node_modules/@playwright/mcp/node_modules/playwright/lib/runner/index.js.txt +59 -0
  66. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js +72275 -0
  67. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js.LICENSE +2384 -0
  68. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js.txt +325 -0
  69. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js +8060 -0
  70. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js.LICENSE +355 -0
  71. package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js.txt +60 -0
  72. package/node_modules/@playwright/mcp/node_modules/playwright/lib/util.js +373 -0
  73. package/node_modules/@playwright/mcp/node_modules/playwright/lib/worker/workerProcessEntry.js +1850 -0
  74. package/node_modules/@playwright/mcp/node_modules/playwright/lib/worker/workerProcessEntry.js.txt +19 -0
  75. package/node_modules/@playwright/mcp/node_modules/playwright/package.json +58 -0
  76. package/node_modules/@playwright/mcp/node_modules/playwright/test.d.ts +18 -0
  77. package/node_modules/@playwright/mcp/node_modules/playwright/test.js +24 -0
  78. package/node_modules/@playwright/mcp/node_modules/playwright/test.mjs +35 -0
  79. package/node_modules/@playwright/mcp/node_modules/playwright/types/test.d.ts +10709 -0
  80. package/node_modules/@playwright/mcp/node_modules/playwright/types/testReporter.d.ts +908 -0
  81. package/node_modules/@playwright/mcp/node_modules/playwright-core/LICENSE +202 -0
  82. package/node_modules/@playwright/mcp/node_modules/playwright-core/NOTICE +5 -0
  83. package/node_modules/@playwright/mcp/node_modules/playwright-core/README.md +3 -0
  84. package/node_modules/@playwright/mcp/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
  85. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
  86. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
  87. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
  88. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
  89. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
  90. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
  91. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
  92. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
  93. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
  94. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
  95. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
  96. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
  97. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
  98. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
  99. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
  100. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
  101. package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
  102. package/node_modules/@playwright/mcp/node_modules/playwright-core/browsers.json +81 -0
  103. package/node_modules/@playwright/mcp/node_modules/playwright-core/cli.js +21 -0
  104. package/node_modules/@playwright/mcp/node_modules/playwright-core/index.d.ts +17 -0
  105. package/node_modules/@playwright/mcp/node_modules/playwright-core/index.js +17 -0
  106. package/node_modules/@playwright/mcp/node_modules/playwright-core/index.mjs +28 -0
  107. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/bootstrap.js +88 -0
  108. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/coreBundle.js +74495 -0
  109. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
  110. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
  111. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/mcp.js +10 -0
  112. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
  113. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/package.js +50 -0
  114. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
  115. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/server/electron/loader.js +118 -0
  116. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/serverRegistry.js +7347 -0
  117. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +354 -0
  118. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
  119. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/cli.js +6 -0
  120. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/help.json +707 -0
  121. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
  122. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/output.js +343 -0
  123. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/program.js +404 -0
  124. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/registry.js +176 -0
  125. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/session.js +258 -0
  126. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/SKILL.md +420 -0
  127. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
  128. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
  129. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
  130. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/running-code.md +241 -0
  131. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/session-management.md +225 -0
  132. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/storage-state.md +275 -0
  133. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/test-generation.md +433 -0
  134. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/tracing.md +139 -0
  135. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/video-recording.md +143 -0
  136. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
  137. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/trace/SKILL.md +171 -0
  138. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/utils/extension.js +78 -0
  139. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
  140. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/utilsBundle.js +90764 -0
  141. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +2179 -0
  142. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
  143. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
  144. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
  145. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
  146. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/index-CyWAfh-p.js +11 -0
  147. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/index-DhC616m4.css +1 -0
  148. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
  149. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
  150. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
  151. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
  152. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/report.css +2 -0
  153. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/report.js +32 -0
  154. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
  155. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-BVGIAA-i.js +32 -0
  156. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  157. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/index-BQ57a3QC.js +129 -0
  158. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/index-l_lX622x.css +1 -0
  159. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
  160. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
  161. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BSEO6m_i.js +32 -0
  162. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-CT5oRh4X.js +181 -0
  163. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
  164. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-BN2nOuEV.js +7 -0
  165. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
  166. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  167. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BLFoOugd.css +1 -0
  168. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
  169. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.DLSGjmWZ.js +1 -0
  170. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
  171. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
  172. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
  173. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
  174. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
  175. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +4 -0
  176. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.C7UW1sC9.css +1 -0
  177. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CZvydVOh.js +5 -0
  178. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
  179. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
  180. package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/xdg-open +1267 -0
  181. package/node_modules/@playwright/mcp/node_modules/playwright-core/package.json +34 -0
  182. package/node_modules/@playwright/mcp/node_modules/playwright-core/types/protocol.d.ts +24842 -0
  183. package/node_modules/@playwright/mcp/node_modules/playwright-core/types/structs.d.ts +45 -0
  184. package/node_modules/@playwright/mcp/node_modules/playwright-core/types/types.d.ts +26088 -0
  185. package/node_modules/@playwright/mcp/package.json +51 -0
  186. package/package.json +3 -1
@@ -0,0 +1,318 @@
1
+ # 🎭 Playwright
2
+
3
+ [![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[![Chromium version](https://img.shields.io/badge/chromium-151.0.7922.10-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[![Firefox version](https://img.shields.io/badge/firefox-152.0.4-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> <!-- GEN:webkit-version-badge -->[![WebKit version](https://img.shields.io/badge/webkit-26.5-blue.svg?logo=safari)](https://webkit.org/)<!-- GEN:stop --> [![Join Discord](https://img.shields.io/badge/join-discord-informational)](https://aka.ms/playwright/discord)
4
+
5
+ ## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright)
6
+
7
+ Playwright is a framework for web automation and testing. It drives Chromium, Firefox, and WebKit with a single API — in your tests, in your scripts, and as a tool for AI agents.
8
+
9
+ ## Get Started
10
+
11
+ Choose the path that fits your workflow:
12
+
13
+ | | Best for | Install |
14
+ |---|---|---|
15
+ | **[Playwright Test](#playwright-test)** | End-to-end testing | `npm init playwright@latest` |
16
+ | **[Playwright CLI](#playwright-cli)** | Coding agents (Claude Code, Copilot) | `npm i -g @playwright/cli@latest` |
17
+ | **[Playwright MCP](#playwright-mcp)** | AI agents and LLM-driven automation | `npx @playwright/mcp@latest` |
18
+ | **[Playwright Library](#playwright-library)** | Browser automation scripts | `npm i playwright` |
19
+ | **[VS Code Extension](#vs-code-extension)** | Test authoring and debugging in VS Code | [Install from Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) |
20
+
21
+ ---
22
+
23
+ ## Playwright Test
24
+
25
+ Playwright Test is a full-featured test runner built for end-to-end testing. It runs tests across Chromium, Firefox, and WebKit with full browser isolation, auto-waiting, and web-first assertions.
26
+
27
+ ### Install
28
+
29
+ ```bash
30
+ npm init playwright@latest
31
+ ```
32
+
33
+ Or add manually:
34
+
35
+ ```bash
36
+ npm i -D @playwright/test
37
+ npx playwright install
38
+ ```
39
+
40
+ ### Write a test
41
+
42
+ ```TypeScript
43
+ import { test, expect } from '@playwright/test';
44
+
45
+ test('has title', async ({ page }) => {
46
+ await page.goto('https://playwright.dev/');
47
+ await expect(page).toHaveTitle(/Playwright/);
48
+ });
49
+
50
+ test('get started link', async ({ page }) => {
51
+ await page.goto('https://playwright.dev/');
52
+ await page.getByRole('link', { name: 'Get started' }).click();
53
+ await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
54
+ });
55
+ ```
56
+
57
+ ### Run tests
58
+
59
+ ```bash
60
+ npx playwright test
61
+ ```
62
+
63
+ Tests run in parallel across all configured browsers, in headless mode by default. Each test gets a fresh browser context — full isolation with near-zero overhead.
64
+
65
+ ### Key capabilities
66
+
67
+ **Auto-wait and web-first assertions.** No artificial timeouts. Playwright waits for elements to be actionable, and assertions automatically retry until conditions are met.
68
+
69
+ **Locators.** Find elements with resilient locators that mirror how users see the page:
70
+
71
+ ```TypeScript
72
+ page.getByRole('button', { name: 'Submit' })
73
+ page.getByLabel('Email')
74
+ page.getByPlaceholder('Search...')
75
+ page.getByTestId('login-form')
76
+ ```
77
+
78
+ **Test isolation.** Each test runs in its own browser context — equivalent to a fresh browser profile. Save authentication state once and reuse it across tests:
79
+
80
+ ```TypeScript
81
+ // Save state after login
82
+ await page.context().storageState({ path: 'auth.json' });
83
+
84
+ // Reuse in other tests
85
+ test.use({ storageState: 'auth.json' });
86
+ ```
87
+
88
+ **Tracing.** Capture execution traces, screenshots, and videos on failure. Inspect every action, DOM snapshot, network request, and console message in the [Trace Viewer](https://playwright.dev/docs/trace-viewer):
89
+
90
+ ```TypeScript
91
+ // playwright.config.ts
92
+ export default defineConfig({
93
+ use: {
94
+ trace: 'on-first-retry',
95
+ },
96
+ });
97
+ ```
98
+
99
+ ```bash
100
+ npx playwright show-trace trace.zip
101
+ ```
102
+
103
+ <!-- TODO: screenshot of trace viewer -->
104
+
105
+ **Parallelism.** Tests run in parallel by default across all configured browsers.
106
+
107
+ [Full testing documentation](https://playwright.dev/docs/intro)
108
+
109
+ ---
110
+
111
+ ## Playwright CLI
112
+
113
+ [Playwright CLI](https://github.com/microsoft/playwright-cli) is a command-line interface for browser automation designed for coding agents. It's more token-efficient than MCP — commands avoid loading large tool schemas and accessibility trees into the model context.
114
+
115
+ ### Install
116
+
117
+ ```bash
118
+ npm install -g @playwright/cli@latest
119
+ ```
120
+
121
+ Optionally install skills for richer agent integration:
122
+
123
+ ```bash
124
+ playwright-cli install --skills
125
+ ```
126
+
127
+ ### Usage
128
+
129
+ Point your coding agent at a task:
130
+
131
+ ```
132
+ Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
133
+ Take screenshots for all successful and failing scenarios.
134
+ ```
135
+
136
+ Or run commands directly:
137
+
138
+ ```bash
139
+ playwright-cli open https://demo.playwright.dev/todomvc/ --headed
140
+ playwright-cli type "Buy groceries"
141
+ playwright-cli press Enter
142
+ playwright-cli screenshot
143
+ ```
144
+
145
+ ### Session monitoring
146
+
147
+ Use `playwright-cli show` to open a visual dashboard with live screencast previews of all running browser sessions. Click any session to zoom in and take remote control.
148
+
149
+ ```bash
150
+ playwright-cli show
151
+ ```
152
+
153
+ <!-- TODO: screenshot of playwright-cli show dashboard -->
154
+
155
+ [Full CLI documentation](https://playwright.dev/agent-cli/introduction) | [GitHub](https://github.com/microsoft/playwright-cli)
156
+
157
+ ---
158
+
159
+ ## Playwright MCP
160
+
161
+ The [Playwright MCP server](https://github.com/microsoft/playwright-mcp) gives AI agents full browser control through the [Model Context Protocol](https://modelcontextprotocol.io). Agents interact with pages using structured accessibility snapshots — no vision models or screenshots required.
162
+
163
+ ### Setup
164
+
165
+ Add to your MCP client (VS Code, Cursor, Claude Desktop, Windsurf, etc.):
166
+
167
+ ```json
168
+ {
169
+ "mcpServers": {
170
+ "playwright": {
171
+ "command": "npx",
172
+ "args": ["@playwright/mcp@latest"]
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ **One-click install for VS Code:**
179
+
180
+ [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20MCP%20Server&color=0098FF" alt="Install in VS Code" />](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)
181
+
182
+ **For Claude Code:**
183
+
184
+ ```bash
185
+ claude mcp add playwright npx @playwright/mcp@latest
186
+ ```
187
+
188
+ ### How it works
189
+
190
+ Ask your AI assistant to interact with any web page:
191
+
192
+ ```
193
+ Navigate to https://demo.playwright.dev/todomvc and add a few todo items.
194
+ ```
195
+
196
+ The agent sees the page as a structured accessibility tree:
197
+
198
+ ```
199
+ - heading "todos" [level=1]
200
+ - textbox "What needs to be done?" [ref=e5]
201
+ - listitem:
202
+ - checkbox "Toggle Todo" [ref=e10]
203
+ - text: "Buy groceries"
204
+ ```
205
+
206
+ It uses element refs like `e5` and `e10` to click, type, and interact — deterministically and without visual ambiguity. Tools cover navigation, form filling, screenshots, network mocking, storage management, and more.
207
+
208
+ [Full MCP documentation](https://playwright.dev/mcp/introduction) | [GitHub](https://github.com/microsoft/playwright-mcp)
209
+
210
+ ---
211
+
212
+ ## Playwright Library
213
+
214
+ Use `playwright` as a library for browser automation scripts — web scraping, PDF generation, screenshot capture, and any workflow that needs programmatic browser control without a test runner.
215
+
216
+ ### Install
217
+
218
+ ```bash
219
+ npm i playwright
220
+ ```
221
+
222
+ ### Examples
223
+
224
+ **Take a screenshot:**
225
+
226
+ ```TypeScript
227
+ import { chromium } from 'playwright';
228
+
229
+ const browser = await chromium.launch();
230
+ const page = await browser.newPage();
231
+ await page.goto('https://playwright.dev/');
232
+ await page.screenshot({ path: 'screenshot.png' });
233
+ await browser.close();
234
+ ```
235
+
236
+ **Generate a PDF:**
237
+
238
+ ```TypeScript
239
+ import { chromium } from 'playwright';
240
+
241
+ const browser = await chromium.launch();
242
+ const page = await browser.newPage();
243
+ await page.goto('https://playwright.dev/');
244
+ await page.pdf({ path: 'page.pdf', format: 'A4' });
245
+ await browser.close();
246
+ ```
247
+
248
+ **Emulate a mobile device:**
249
+
250
+ ```TypeScript
251
+ import { chromium, devices } from 'playwright';
252
+
253
+ const browser = await chromium.launch();
254
+ const context = await browser.newContext(devices['iPhone 15']);
255
+ const page = await context.newPage();
256
+ await page.goto('https://playwright.dev/');
257
+ await page.screenshot({ path: 'mobile.png' });
258
+ await browser.close();
259
+ ```
260
+
261
+ **Intercept network requests:**
262
+
263
+ ```TypeScript
264
+ import { chromium } from 'playwright';
265
+
266
+ const browser = await chromium.launch();
267
+ const page = await browser.newPage();
268
+ await page.route('**/*.{png,jpg,jpeg}', route => route.abort());
269
+ await page.goto('https://playwright.dev/');
270
+ await browser.close();
271
+ ```
272
+
273
+ [Library documentation](https://playwright.dev/docs/library) | [API reference](https://playwright.dev/docs/api/class-playwright)
274
+
275
+ ---
276
+
277
+ ## VS Code Extension
278
+
279
+ The [Playwright VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) brings test running, debugging, and code generation directly into your editor.
280
+
281
+ <!-- TODO: hero screenshot of VS Code with Playwright sidebar -->
282
+
283
+ **Run and debug tests** from the editor with a single click. Set breakpoints, inspect variables, and step through test execution with a live browser view.
284
+
285
+ **Generate tests with CodeGen.** Click "Record new" to open a browser — navigate and interact with your app while Playwright writes the test code for you.
286
+
287
+ **Pick locators.** Hover over any element in the browser to see the best available locator, then click to copy it to your clipboard.
288
+
289
+ **Trace Viewer integration.** Enable "Show Trace Viewer" in the sidebar to get a full execution trace after each test run — DOM snapshots, network requests, console logs, and screenshots at every step.
290
+
291
+ [Install the extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) | [VS Code guide](https://playwright.dev/docs/getting-started-vscode)
292
+
293
+ ---
294
+
295
+ ## Cross-Browser Support
296
+
297
+ | | Linux | macOS | Windows |
298
+ | :--- | :---: | :---: | :---: |
299
+ | Chromium<sup>1</sup> <!-- GEN:chromium-version -->151.0.7922.10<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
300
+ | WebKit <!-- GEN:webkit-version -->26.5<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
301
+ | Firefox <!-- GEN:firefox-version -->152.0.4<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
302
+
303
+ Headless and headed execution on all platforms. <sup>1</sup> Uses [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing) by default.
304
+
305
+ ## Other Languages
306
+
307
+ Playwright is also available for [Python](https://playwright.dev/python/docs/intro), [.NET](https://playwright.dev/dotnet/docs/intro), and [Java](https://playwright.dev/java/docs/intro).
308
+
309
+ ## Resources
310
+
311
+ * [Documentation](https://playwright.dev)
312
+ * [API reference](https://playwright.dev/docs/api/class-playwright)
313
+ * [MCP server](https://github.com/microsoft/playwright-mcp)
314
+ * [CLI for coding agents](https://github.com/microsoft/playwright-cli)
315
+ * [VS Code extension](https://github.com/microsoft/playwright-vscode)
316
+ * [Contribution guide](CONTRIBUTING.md)
317
+ * [Changelog](https://github.com/microsoft/playwright/releases)
318
+ * [Discord](https://aka.ms/playwright/discord)
@@ -0,0 +1,14 @@
1
+ microsoft/playwright
2
+
3
+ THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
4
+
5
+ This package bundles third-party software inside individual files under
6
+ `lib/`. Each bundled output has a sidecar `<bundle>.js.LICENSE` file next
7
+ to it listing every npm package whose source was inlined into that
8
+ bundle, together with the full license text for each.
9
+
10
+ For example:
11
+ - lib/common/index.js.LICENSE
12
+ - lib/matchers/expect.js.LICENSE
13
+
14
+ This project incorporates components from the projects listed below. The original copyright notices and the licenses under which Microsoft received such components are set forth below. Microsoft reserves all rights not expressly granted herein, whether by implication, estoppel or otherwise.
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Copyright (c) Microsoft Corporation.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ const { program } = require('./lib/program');
19
+ program.parse(process.argv);
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export * from 'playwright-core';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ module.exports = require('playwright-core');
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from 'playwright-core';
17
+ import playwright from 'playwright-core';
18
+ export default playwright;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ function jsx(type, props, key) {
18
+ return {
19
+ __pw_type: 'jsx',
20
+ type,
21
+ props,
22
+ key,
23
+ };
24
+ }
25
+
26
+ function jsxs(type, props, key) {
27
+ return {
28
+ __pw_type: 'jsx',
29
+ type,
30
+ props,
31
+ key,
32
+ };
33
+ }
34
+
35
+ // this is used in <></> notation
36
+ const Fragment = { __pw_jsx_fragment: true };
37
+
38
+ module.exports = {
39
+ Fragment,
40
+ jsx,
41
+ jsxs,
42
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import jsxRuntime from './jsx-runtime.js';
18
+
19
+ export const jsx = jsxRuntime.jsx;
20
+ export const jsxs = jsxRuntime.jsxs;
21
+ export const Fragment = jsxRuntime.Fragment;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var agentParser_exports = {};
30
+ __export(agentParser_exports, {
31
+ parseAgentSpec: () => parseAgentSpec
32
+ });
33
+ module.exports = __toCommonJS(agentParser_exports);
34
+ var import_fs = __toESM(require("fs"));
35
+ const yaml = require("playwright-core/lib/utilsBundle").yaml;
36
+ async function parseAgentSpec(filePath) {
37
+ const source = await import_fs.default.promises.readFile(filePath, "utf-8");
38
+ const { header, content } = extractYamlAndContent(source);
39
+ const { instructions, examples } = extractInstructionsAndExamples(content);
40
+ return {
41
+ ...header,
42
+ instructions,
43
+ examples
44
+ };
45
+ }
46
+ function extractYamlAndContent(markdown) {
47
+ const lines = markdown.split("\n");
48
+ if (lines[0] !== "---")
49
+ throw new Error("Markdown file must start with YAML front matter (---)");
50
+ let yamlEndIndex = -1;
51
+ for (let i = 1; i < lines.length; i++) {
52
+ if (lines[i] === "---") {
53
+ yamlEndIndex = i;
54
+ break;
55
+ }
56
+ }
57
+ if (yamlEndIndex === -1)
58
+ throw new Error("YAML front matter must be closed with ---");
59
+ const yamlLines = lines.slice(1, yamlEndIndex);
60
+ const yamlRaw = yamlLines.join("\n");
61
+ const contentLines = lines.slice(yamlEndIndex + 1);
62
+ const content = contentLines.join("\n");
63
+ let header;
64
+ try {
65
+ header = yaml.parse(yamlRaw);
66
+ } catch (error) {
67
+ throw new Error(`Failed to parse YAML header: ${error.message}`);
68
+ }
69
+ if (!header.name)
70
+ throw new Error('YAML header must contain a "name" field');
71
+ if (!header.description)
72
+ throw new Error('YAML header must contain a "description" field');
73
+ return { header, content };
74
+ }
75
+ function extractInstructionsAndExamples(content) {
76
+ const examples = [];
77
+ const instructions = content.split("<example>")[0].trim();
78
+ const exampleRegex = /<example>([\s\S]*?)<\/example>/g;
79
+ let match;
80
+ while ((match = exampleRegex.exec(content)) !== null) {
81
+ const example = match[1].trim();
82
+ examples.push(example.replace(/[\n]/g, " ").replace(/ +/g, " "));
83
+ }
84
+ return { instructions, examples };
85
+ }
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ parseAgentSpec
89
+ });
@@ -0,0 +1,34 @@
1
+ name: "Copilot Setup Steps"
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ paths:
7
+ - .github/workflows/copilot-setup-steps.yml
8
+ pull_request:
9
+ paths:
10
+ - .github/workflows/copilot-setup-steps.yml
11
+
12
+ jobs:
13
+ copilot-setup-steps:
14
+ runs-on: ubuntu-latest
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ steps:
20
+ - uses: actions/checkout@v6
21
+
22
+ - uses: actions/setup-node@v6
23
+ with:
24
+ node-version: lts/*
25
+
26
+ - name: Install dependencies
27
+ run: npm ci
28
+
29
+ - name: Install Playwright Browsers
30
+ run: npx playwright install --with-deps
31
+
32
+ # Customize this step as needed
33
+ - name: Build application
34
+ run: npx run build