playwriter 0.0.89 → 0.0.103

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 (137) hide show
  1. package/dist/aria-snapshot.d.ts +7 -3
  2. package/dist/aria-snapshot.d.ts.map +1 -1
  3. package/dist/aria-snapshot.js +76 -18
  4. package/dist/aria-snapshot.js.map +1 -1
  5. package/dist/aria-snapshot.test.js +94 -0
  6. package/dist/aria-snapshot.test.js.map +1 -1
  7. package/dist/bippy.js +1 -1
  8. package/dist/browser-config.d.ts +12 -1
  9. package/dist/browser-config.d.ts.map +1 -1
  10. package/dist/browser-config.js +101 -38
  11. package/dist/browser-config.js.map +1 -1
  12. package/dist/browser-launch.d.ts +17 -0
  13. package/dist/browser-launch.d.ts.map +1 -0
  14. package/dist/browser-launch.js +44 -0
  15. package/dist/browser-launch.js.map +1 -0
  16. package/dist/cdp-relay.d.ts.map +1 -1
  17. package/dist/cdp-relay.js +34 -10
  18. package/dist/cdp-relay.js.map +1 -1
  19. package/dist/channel-owner-inspect.test.d.ts +2 -0
  20. package/dist/channel-owner-inspect.test.d.ts.map +1 -0
  21. package/dist/channel-owner-inspect.test.js +75 -0
  22. package/dist/channel-owner-inspect.test.js.map +1 -0
  23. package/dist/chrome-discovery.d.ts +65 -0
  24. package/dist/chrome-discovery.d.ts.map +1 -0
  25. package/dist/chrome-discovery.js +165 -0
  26. package/dist/chrome-discovery.js.map +1 -0
  27. package/dist/chrome-discovery.test.d.ts +2 -0
  28. package/dist/chrome-discovery.test.d.ts.map +1 -0
  29. package/dist/chrome-discovery.test.js +41 -0
  30. package/dist/chrome-discovery.test.js.map +1 -0
  31. package/dist/cli.js +357 -53
  32. package/dist/cli.js.map +1 -1
  33. package/dist/executor.d.ts +44 -11
  34. package/dist/executor.d.ts.map +1 -1
  35. package/dist/executor.js +121 -55
  36. package/dist/executor.js.map +1 -1
  37. package/dist/executor.unit.test.js +29 -1
  38. package/dist/executor.unit.test.js.map +1 -1
  39. package/dist/extension/background.js +1704 -0
  40. package/dist/extension/icons/SolarCursorSquareBold.png +0 -0
  41. package/dist/extension/icons/icon-black-128.png +0 -0
  42. package/dist/extension/icons/icon-black-16.png +0 -0
  43. package/dist/extension/icons/icon-black-32.png +0 -0
  44. package/dist/extension/icons/icon-black-48.png +0 -0
  45. package/dist/extension/icons/icon-gray-128.png +0 -0
  46. package/dist/extension/icons/icon-gray-16.png +0 -0
  47. package/dist/extension/icons/icon-gray-32.png +0 -0
  48. package/dist/extension/icons/icon-gray-48.png +0 -0
  49. package/dist/extension/icons/icon-green-128.png +0 -0
  50. package/dist/extension/icons/icon-green-16.png +0 -0
  51. package/dist/extension/icons/icon-green-32.png +0 -0
  52. package/dist/extension/icons/icon-green-48.png +0 -0
  53. package/dist/extension/icons/playwriter-icon-black.png +0 -0
  54. package/dist/extension/icons/playwriter-icon-gray-disabled.png +0 -0
  55. package/dist/extension/icons/playwriter-icon-gray-disabled.svg +1 -0
  56. package/dist/extension/manifest.json +40 -0
  57. package/dist/extension/offscreen.js +214 -0
  58. package/dist/extension/src/offscreen.html +9 -0
  59. package/dist/extension/src/prism-bash.min.js +1 -0
  60. package/dist/extension/src/prism.min.js +1 -0
  61. package/dist/extension/src/welcome.html +399 -0
  62. package/dist/kitty-graphics.d.ts +22 -0
  63. package/dist/kitty-graphics.d.ts.map +1 -0
  64. package/dist/kitty-graphics.js +71 -0
  65. package/dist/kitty-graphics.js.map +1 -0
  66. package/dist/kitty-graphics.test.d.ts +2 -0
  67. package/dist/kitty-graphics.test.d.ts.map +1 -0
  68. package/dist/kitty-graphics.test.js +125 -0
  69. package/dist/kitty-graphics.test.js.map +1 -0
  70. package/dist/mcp.d.ts.map +1 -1
  71. package/dist/mcp.js +76 -12
  72. package/dist/mcp.js.map +1 -1
  73. package/dist/package-paths.d.ts +3 -0
  74. package/dist/package-paths.d.ts.map +1 -0
  75. package/dist/package-paths.js +29 -0
  76. package/dist/package-paths.js.map +1 -0
  77. package/dist/prompt.md +4 -2
  78. package/dist/readability.js +1 -1
  79. package/dist/relay-core.test.js +14 -4
  80. package/dist/relay-core.test.js.map +1 -1
  81. package/dist/relay-navigation.test.d.ts.map +1 -1
  82. package/dist/relay-navigation.test.js +95 -1
  83. package/dist/relay-navigation.test.js.map +1 -1
  84. package/dist/scoped-fs.d.ts +5 -4
  85. package/dist/scoped-fs.d.ts.map +1 -1
  86. package/dist/scoped-fs.js +11 -9
  87. package/dist/scoped-fs.js.map +1 -1
  88. package/dist/scoped-fs.test.d.ts +5 -0
  89. package/dist/scoped-fs.test.d.ts.map +1 -0
  90. package/dist/scoped-fs.test.js +70 -0
  91. package/dist/scoped-fs.test.js.map +1 -0
  92. package/dist/screen-recording.d.ts +3 -6
  93. package/dist/screen-recording.d.ts.map +1 -1
  94. package/dist/screen-recording.js +7 -21
  95. package/dist/screen-recording.js.map +1 -1
  96. package/dist/selector-generator.js +1 -1
  97. package/dist/snapshot-tools.test.js +3 -4
  98. package/dist/snapshot-tools.test.js.map +1 -1
  99. package/dist/test-utils.d.ts +3 -1
  100. package/dist/test-utils.d.ts.map +1 -1
  101. package/dist/test-utils.js +24 -12
  102. package/dist/test-utils.js.map +1 -1
  103. package/package.json +6 -5
  104. package/src/aria-snapshot.test.ts +110 -0
  105. package/src/aria-snapshot.ts +86 -19
  106. package/src/aria-snapshots/contenteditable-interactive.txt +7 -0
  107. package/src/aria-snapshots/contenteditable-raw.txt +14 -0
  108. package/src/aria-snapshots/github-interactive.txt +0 -2
  109. package/src/aria-snapshots/github-raw.txt +0 -4
  110. package/src/aria-snapshots/hackernews-interactive.txt +240 -237
  111. package/src/aria-snapshots/hackernews-raw.txt +262 -258
  112. package/src/aria-snapshots/prosemirror-interactive.txt +63 -0
  113. package/src/aria-snapshots/prosemirror-raw.txt +141 -0
  114. package/src/assets/aria-labels-hacker-news.png +0 -0
  115. package/src/browser-config.ts +143 -37
  116. package/src/browser-launch.ts +75 -0
  117. package/src/cdp-relay.ts +46 -11
  118. package/src/channel-owner-inspect.test.ts +94 -0
  119. package/src/chrome-discovery.test.ts +50 -0
  120. package/src/chrome-discovery.ts +211 -0
  121. package/src/cli.ts +432 -59
  122. package/src/executor.ts +171 -72
  123. package/src/executor.unit.test.ts +32 -1
  124. package/src/kitty-graphics.test.ts +139 -0
  125. package/src/kitty-graphics.ts +79 -0
  126. package/src/mcp.ts +82 -12
  127. package/src/package-paths.ts +36 -0
  128. package/src/relay-core.test.ts +14 -4
  129. package/src/relay-navigation.test.ts +106 -1
  130. package/src/scoped-fs.test.ts +77 -0
  131. package/src/scoped-fs.ts +12 -9
  132. package/src/screen-recording.ts +7 -22
  133. package/src/skill.md +32 -2
  134. package/src/snapshot-tools.test.ts +3 -4
  135. package/src/snapshots/shadcn-ui-accessibility-full.md +181 -183
  136. package/src/snapshots/shadcn-ui-accessibility-interactive.md +119 -121
  137. package/src/test-utils.ts +25 -11
@@ -1 +1 @@
1
- {"version":3,"file":"aria-snapshot.test.js","sourceRoot":"","sources":["../src/aria-snapshot.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aria-snapshot.test.js","sourceRoot":"","sources":["../src/aria-snapshot.test.ts"],"names":[],"mappings":"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"}
package/dist/bippy.js CHANGED
@@ -951,7 +951,7 @@ ${e3.stack}` : ``;
951
951
  return !(!t2 || !re2.test(t2) || ie2.test(t2));
952
952
  };
953
953
 
954
- // dist/_bippy-entry-64982-1773397884858.js
954
+ // dist/_bippy-entry-50607-1775383054512.js
955
955
  globalThis.__bippy = {
956
956
  getFiberFromHostInstance: Pe,
957
957
  getDisplayName: Te,
@@ -1,2 +1,13 @@
1
- export declare function getBrowserExecutablePath(): string;
1
+ type BrowserLookupOptions = {
2
+ browserPath?: string;
3
+ env?: NodeJS.ProcessEnv;
4
+ platform?: NodeJS.Platform;
5
+ homeDir?: string;
6
+ existsSync?: (filePath: string) => boolean;
7
+ };
8
+ export declare function getBrowserExecutableCandidates({ platform, env, homeDir, }?: Omit<BrowserLookupOptions, 'browserPath' | 'existsSync'>): string[];
9
+ export declare function resolveBrowserExecutablePath({ browserPath, env, platform, homeDir, existsSync, }?: BrowserLookupOptions): string;
10
+ export declare function shouldUseHeadlessByDefault({ platform, env, }?: Omit<BrowserLookupOptions, 'browserPath' | 'homeDir' | 'existsSync'>): boolean;
11
+ export declare function getBrowserExecutablePath(browserPath?: string): string;
12
+ export {};
2
13
  //# sourceMappingURL=browser-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-config.d.ts","sourceRoot":"","sources":["../src/browser-config.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,IAAI,MAAM,CAejD"}
1
+ {"version":3,"file":"browser-config.d.ts","sourceRoot":"","sources":["../src/browser-config.ts"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;CAC3C,CAAA;AAqDD,wBAAgB,8BAA8B,CAAC,EAC7C,QAAwB,EACxB,GAAiB,EACjB,OAAsB,GACvB,GAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,YAAY,CAAM,GAAG,MAAM,EAAE,CA0C1E;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,WAAW,EACX,GAAiB,EACjB,QAAwB,EACxB,OAAsB,EACtB,UAA0B,GAC3B,GAAE,oBAAyB,GAAG,MAAM,CAoCpC;AAED,wBAAgB,0BAA0B,CAAC,EACzC,QAAwB,EACxB,GAAiB,GAClB,GAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAM,GAAG,OAAO,CAMrF;AAED,wBAAgB,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE"}
@@ -1,57 +1,120 @@
1
1
  import fs from 'node:fs';
2
2
  import os from 'node:os';
3
- // Function to get the browser executable path
4
- // Can be overridden by environment variable PLAYWRITER_BROWSER_PATH
5
- export function getBrowserExecutablePath() {
6
- // Check environment variable first
7
- const envPath = process.env.PLAYWRITER_BROWSER_PATH;
8
- if (envPath && fs.existsSync(envPath)) {
9
- return envPath;
3
+ import path from 'node:path';
4
+ import { chromium } from '@xmorse/playwright-core';
5
+ function expandHomeDirectory({ filePath, homeDir }) {
6
+ if (!filePath.startsWith('~/')) {
7
+ return filePath;
10
8
  }
11
- // Check for Ghost Browser on macOS
12
- // const ghostBrowserPath = '/Applications/Ghost Browser.app/Contents/MacOS/Ghost Browser'
13
- // if (fs.existsSync(ghostBrowserPath)) {
14
- // return ghostBrowserPath
15
- // }
16
- // Fall back to finding Chrome
17
- return findChromeExecutablePath();
18
- }
19
- // Original Chrome finding logic
20
- function findChromeExecutablePath() {
21
- const osPlatform = os.platform();
22
- const paths = (() => {
23
- if (osPlatform === 'darwin') {
9
+ return path.join(homeDir, filePath.slice(2));
10
+ }
11
+ function dedupePaths(pathsToCheck) {
12
+ return Array.from(new Set(pathsToCheck));
13
+ }
14
+ function getPlaywrightChromiumCandidate() {
15
+ const executablePath = chromium.executablePath();
16
+ if (!executablePath) {
17
+ return [];
18
+ }
19
+ return [executablePath];
20
+ }
21
+ function getPathEntries(env) {
22
+ const rawPath = env.PATH || env.Path || '';
23
+ return rawPath
24
+ .split(path.delimiter)
25
+ .filter(Boolean)
26
+ .map((entry) => {
27
+ return entry.trim();
28
+ });
29
+ }
30
+ function getExecutableNames(platform) {
31
+ if (platform === 'win32') {
32
+ return ['chrome.exe', 'chromium.exe'];
33
+ }
34
+ return ['chrome', 'chromium', 'chromium-browser'];
35
+ }
36
+ function getPathExecutableCandidates({ platform, env, }) {
37
+ const executableNames = getExecutableNames(platform);
38
+ return getPathEntries(env).flatMap((entry) => {
39
+ return executableNames.map((name) => {
40
+ return path.join(entry, name);
41
+ });
42
+ });
43
+ }
44
+ export function getBrowserExecutableCandidates({ platform = os.platform(), env = process.env, homeDir = os.homedir(), } = {}) {
45
+ const platformCandidates = (() => {
46
+ if (platform === 'darwin') {
24
47
  return [
25
- '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
26
- '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
48
+ '/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing',
49
+ '~/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing',
27
50
  '/Applications/Chromium.app/Contents/MacOS/Chromium',
28
- '~/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
51
+ '~/Applications/Chromium.app/Contents/MacOS/Chromium',
29
52
  ];
30
53
  }
31
- if (osPlatform === 'win32') {
54
+ if (platform === 'win32') {
55
+ const localAppData = env.LOCALAPPDATA || '';
56
+ const programFiles = env.PROGRAMFILES || 'C:\\Program Files';
57
+ const programFilesX86 = env['PROGRAMFILES(X86)'] || 'C:\\Program Files (x86)';
32
58
  return [
33
- 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
34
- 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
35
- `${process.env.LOCALAPPDATA}\\Google\\Chrome\\Application\\chrome.exe`,
36
- `${process.env.PROGRAMFILES}\\Google\\Chrome\\Application\\chrome.exe`,
37
- `${process.env['PROGRAMFILES(X86)']}\\Google\\Chrome\\Application\\chrome.exe`,
38
- ].filter(Boolean);
59
+ path.join(programFiles, 'Google', 'Chrome for Testing', 'Application', 'chrome.exe'),
60
+ path.join(programFilesX86, 'Google', 'Chrome for Testing', 'Application', 'chrome.exe'),
61
+ path.join(localAppData, 'Google', 'Chrome for Testing', 'Application', 'chrome.exe'),
62
+ path.join(programFiles, 'Chromium', 'Application', 'chromium.exe'),
63
+ path.join(programFilesX86, 'Chromium', 'Application', 'chromium.exe'),
64
+ path.join(localAppData, 'Chromium', 'Application', 'chromium.exe'),
65
+ ];
39
66
  }
40
- // Linux
41
67
  return [
42
- '/usr/bin/google-chrome',
43
- '/usr/bin/google-chrome-stable',
68
+ '/opt/google/chrome-for-testing/chrome',
69
+ '/usr/local/bin/chrome',
70
+ '/usr/bin/chrome',
44
71
  '/usr/bin/chromium',
45
72
  '/usr/bin/chromium-browser',
46
73
  '/snap/bin/chromium',
47
74
  ];
48
75
  })();
49
- for (const path of paths) {
50
- const resolvedPath = path.startsWith('~') ? path.replace('~', os.homedir()) : path;
51
- if (fs.existsSync(resolvedPath)) {
52
- return resolvedPath;
76
+ const pathCandidates = getPathExecutableCandidates({ platform, env });
77
+ return dedupePaths([...platformCandidates, ...pathCandidates, ...getPlaywrightChromiumCandidate()].map((filePath) => {
78
+ return expandHomeDirectory({ filePath, homeDir });
79
+ }));
80
+ }
81
+ export function resolveBrowserExecutablePath({ browserPath, env = process.env, platform = os.platform(), homeDir = os.homedir(), existsSync = fs.existsSync, } = {}) {
82
+ const explicitPath = browserPath?.trim();
83
+ if (explicitPath) {
84
+ const resolvedExplicitPath = expandHomeDirectory({ filePath: explicitPath, homeDir });
85
+ if (!existsSync(resolvedExplicitPath)) {
86
+ throw new Error(`Browser binary not found at: ${resolvedExplicitPath}`);
87
+ }
88
+ return resolvedExplicitPath;
89
+ }
90
+ const envPath = env.PLAYWRITER_BROWSER_PATH?.trim();
91
+ if (envPath) {
92
+ const resolvedEnvPath = expandHomeDirectory({ filePath: envPath, homeDir });
93
+ if (!existsSync(resolvedEnvPath)) {
94
+ throw new Error(`PLAYWRITER_BROWSER_PATH does not exist: ${resolvedEnvPath}`);
53
95
  }
96
+ return resolvedEnvPath;
54
97
  }
55
- throw new Error('Could not find Chrome executable. Please install Google Chrome or set PLAYWRITER_BROWSER_PATH environment variable.');
98
+ const candidates = getBrowserExecutableCandidates({ platform, env, homeDir });
99
+ const resolvedPath = candidates.find((candidate) => {
100
+ return existsSync(candidate);
101
+ });
102
+ if (resolvedPath) {
103
+ return resolvedPath;
104
+ }
105
+ const searchedPathsText = candidates.map((candidate) => {
106
+ return `- ${candidate}`;
107
+ });
108
+ throw new Error('Could not find a supported browser binary. Install Chrome for Testing or Chromium, or pass a binary path to `playwriter browser start`.' +
109
+ `\n\nSearched paths:\n${searchedPathsText.join('\n')}`);
110
+ }
111
+ export function shouldUseHeadlessByDefault({ platform = os.platform(), env = process.env, } = {}) {
112
+ if (platform !== 'linux') {
113
+ return false;
114
+ }
115
+ return !env.DISPLAY && !env.WAYLAND_DISPLAY;
116
+ }
117
+ export function getBrowserExecutablePath(browserPath) {
118
+ return resolveBrowserExecutablePath({ browserPath });
56
119
  }
57
120
  //# sourceMappingURL=browser-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-config.js","sourceRoot":"","sources":["../src/browser-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,8CAA8C;AAC9C,oEAAoE;AACpE,MAAM,UAAU,wBAAwB;IACtC,mCAAmC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA;IACnD,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,mCAAmC;IACnC,0FAA0F;IAC1F,yCAAyC;IACzC,8BAA8B;IAC9B,IAAI;IAEJ,8BAA8B;IAC9B,OAAO,wBAAwB,EAAE,CAAA;AACnC,CAAC;AAED,gCAAgC;AAChC,SAAS,wBAAwB;IAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;QAClB,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO;gBACL,8DAA8D;gBAC9D,4EAA4E;gBAC5E,oDAAoD;gBACpD,+DAA+D;aAChE,CAAA;QACH,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO;gBACL,4DAA4D;gBAC5D,kEAAkE;gBAClE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,2CAA2C;gBACtE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,2CAA2C;gBACtE,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,2CAA2C;aAC/E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnB,CAAC;QACD,QAAQ;QACR,OAAO;YACL,wBAAwB;YACxB,+BAA+B;YAC/B,mBAAmB;YACnB,2BAA2B;YAC3B,oBAAoB;SACrB,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,YAAY,CAAA;QACrB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"browser-config.js","sourceRoot":"","sources":["../src/browser-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type BrowserLaunchOptions = {
2
+ extensionPath: string;
3
+ userDataDir: string;
4
+ headless: boolean;
5
+ noSandbox?: boolean;
6
+ url?: string;
7
+ };
8
+ export declare function getDefaultBrowserUserDataDir(): string;
9
+ export declare function getBrowserLaunchArgs({ extensionPath, userDataDir, headless, noSandbox, url, }: BrowserLaunchOptions): string[];
10
+ export declare function startBrowserProcess({ browserPath, args, userDataDir, }: {
11
+ browserPath: string;
12
+ args: string[];
13
+ userDataDir: string;
14
+ }): {
15
+ pid: number;
16
+ };
17
+ //# sourceMappingURL=browser-launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-launch.d.ts","sourceRoot":"","sources":["../src/browser-launch.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAiB,EACjB,GAAmB,GACpB,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA0BjC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAclB"}
@@ -0,0 +1,44 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { spawn } from 'node:child_process';
5
+ import { EXTENSION_IDS } from './utils.js';
6
+ export function getDefaultBrowserUserDataDir() {
7
+ return path.join(os.homedir(), '.playwriter', 'browser-profile');
8
+ }
9
+ export function getBrowserLaunchArgs({ extensionPath, userDataDir, headless, noSandbox = false, url = 'about:blank', }) {
10
+ const recordingFlags = EXTENSION_IDS.map((extensionId) => {
11
+ return `--allowlisted-extension-id=${extensionId}`;
12
+ });
13
+ const args = [
14
+ `--user-data-dir=${path.resolve(userDataDir)}`,
15
+ '--profile-directory=Default',
16
+ '--no-first-run',
17
+ '--no-default-browser-check',
18
+ '--auto-accept-this-tab-capture',
19
+ ...recordingFlags,
20
+ `--disable-extensions-except=${path.resolve(extensionPath)}`,
21
+ `--load-extension=${path.resolve(extensionPath)}`,
22
+ ];
23
+ if (headless) {
24
+ args.push('--headless=new');
25
+ }
26
+ if (noSandbox) {
27
+ args.push('--no-sandbox', '--disable-setuid-sandbox');
28
+ }
29
+ args.push(url);
30
+ return args;
31
+ }
32
+ export function startBrowserProcess({ browserPath, args, userDataDir, }) {
33
+ fs.mkdirSync(path.resolve(userDataDir), { recursive: true });
34
+ const browserProcess = spawn(browserPath, args, {
35
+ detached: true,
36
+ stdio: 'ignore',
37
+ });
38
+ browserProcess.unref();
39
+ if (!browserProcess.pid) {
40
+ throw new Error(`Failed to start browser process for ${browserPath}`);
41
+ }
42
+ return { pid: browserProcess.pid };
43
+ }
44
+ //# sourceMappingURL=browser-launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-launch.js","sourceRoot":"","sources":["../src/browser-launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAU1C,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,GAAG,GAAG,aAAa,GACE;IACrB,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACvD,OAAO,8BAA8B,WAAW,EAAE,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG;QACX,mBAAmB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC9C,6BAA6B;QAC7B,gBAAgB;QAChB,4BAA4B;QAC5B,gCAAgC;QAChC,GAAG,cAAc;QACjB,+BAA+B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QAC5D,oBAAoB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;KAClD,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAA;IACvD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAClC,WAAW,EACX,IAAI,EACJ,WAAW,GAKZ;IACC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE5D,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE;QAC9C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,cAAc,CAAC,KAAK,EAAE,CAAA;IAEtB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,CAAA;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-relay.d.ts","sourceRoot":"","sources":["../src/cdp-relay.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAA0D,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAqB/G,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAoChF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,IAAI,IAAI,CAAA;IACb,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACrF,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CACvF,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAClD,IAAY,EACZ,IAAkB,EAClB,KAAK,EACL,MAAM,EACN,SAAS,GACV,GAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;KAAE,CAAA;IACnE,SAAS,CAAC,EAAE,SAAS,CAAA;CACjB,GAAG,OAAO,CAAC,WAAW,CAAC,CAw7D5B"}
1
+ {"version":3,"file":"cdp-relay.d.ts","sourceRoot":"","sources":["../src/cdp-relay.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAA0D,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAqB/G,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAqChF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,IAAI,IAAI,CAAA;IACb,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACrF,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CACvF,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAClD,IAAY,EACZ,IAAkB,EAClB,KAAK,EACL,MAAM,EACN,SAAS,GACV,GAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;KAAE,CAAA;IACnE,SAAS,CAAC,EAAE,SAAS,CAAA;CACjB,GAAG,OAAO,CAAC,WAAW,CAAC,CA09D5B"}
package/dist/cdp-relay.js CHANGED
@@ -13,6 +13,7 @@ import { EventEmitter } from 'node:events';
13
13
  import { VERSION, EXTENSION_IDS } from './utils.js';
14
14
  import { createCdpLogger } from './cdp-log.js';
15
15
  import { RecordingRelay } from './recording-relay.js';
16
+ import { appendSessionToWsUrl } from './chrome-discovery.js';
16
17
  import * as relayState from './relay-state.js';
17
18
  /**
18
19
  * Checks if a target should be filtered out (not exposed to Playwright).
@@ -1445,14 +1446,14 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127.
1445
1446
  const manager = await getExecutorManager();
1446
1447
  const existingExecutor = manager.getSession(sessionId);
1447
1448
  if (!existingExecutor) {
1448
- return c.json({ text: `Session ${sessionId} not found. Run 'playwriter session new' first.`, images: [], isError: true }, 404);
1449
+ return c.json({ text: `Session ${sessionId} not found. Run 'playwriter session new' first.`, images: [], screenshots: [], isError: true }, 404);
1449
1450
  }
1450
1451
  const result = await existingExecutor.execute(code, timeout);
1451
1452
  return c.json(result);
1452
1453
  }
1453
1454
  catch (error) {
1454
1455
  logger?.error('Execute endpoint error:', error);
1455
- return c.json({ text: `Server error: ${error.message}`, images: [], isError: true }, 500);
1456
+ return c.json({ text: `Server error: ${error.message}`, images: [], screenshots: [], isError: true }, 500);
1456
1457
  }
1457
1458
  });
1458
1459
  app.post('/cli/reset', async (c) => {
@@ -1489,8 +1490,36 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127.
1489
1490
  app.post('/cli/session/new', async (c) => {
1490
1491
  const body = (await c.req.json().catch(() => ({})));
1491
1492
  const sessionId = String(nextSessionNumber++);
1492
- const extensionId = body.extensionId || null;
1493
1493
  const cwd = body.cwd;
1494
+ // Direct CDP mode: skip extension lookup, pass direct WebSocket URL to executor
1495
+ if (body.cdpEndpoint) {
1496
+ if (!body.cdpEndpoint.startsWith('ws://') && !body.cdpEndpoint.startsWith('wss://')) {
1497
+ return c.json({ error: `Invalid cdpEndpoint: must start with ws:// or wss:// (got: ${body.cdpEndpoint})` }, 400);
1498
+ }
1499
+ // Use first profile from discovery for session metadata (if available)
1500
+ const firstProfile = body.profiles?.[0];
1501
+ const manager = await getExecutorManager();
1502
+ const executor = manager.getExecutor({
1503
+ sessionId,
1504
+ cwd,
1505
+ cdpConfig: { directCdpUrl: appendSessionToWsUrl(body.cdpEndpoint, sessionId) },
1506
+ sessionMetadata: {
1507
+ extensionId: null,
1508
+ browser: body.browser || null,
1509
+ profile: firstProfile ? { email: firstProfile.email, id: firstProfile.name } : null,
1510
+ },
1511
+ });
1512
+ const metadata = executor.getSessionMetadata();
1513
+ return c.json({
1514
+ id: sessionId,
1515
+ mode: 'direct',
1516
+ extensionId: metadata.extensionId,
1517
+ browser: metadata.browser,
1518
+ profile: metadata.profile,
1519
+ });
1520
+ }
1521
+ // Extension mode (existing behavior)
1522
+ const extensionId = body.extensionId || null;
1494
1523
  const allowDefault = !extensionId && store.getState().extensions.size === 1;
1495
1524
  const conn = getExtensionConnection(extensionId, { allowFallback: allowDefault });
1496
1525
  if (!conn) {
@@ -1512,6 +1541,7 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127.
1512
1541
  const metadata = executor.getSessionMetadata();
1513
1542
  return c.json({
1514
1543
  id: sessionId,
1544
+ mode: 'extension',
1515
1545
  extensionId: metadata.extensionId,
1516
1546
  browser: metadata.browser,
1517
1547
  profile: metadata.profile,
@@ -1524,13 +1554,7 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127.
1524
1554
  if (!executor) {
1525
1555
  return c.json({ error: 'not found' }, 404);
1526
1556
  }
1527
- const metadata = executor.getSessionMetadata();
1528
- return c.json({
1529
- id: sessionId,
1530
- extensionId: metadata.extensionId,
1531
- browser: metadata.browser,
1532
- profile: metadata.profile,
1533
- });
1557
+ return c.json(executor.getSessionInfo({ id: sessionId }));
1534
1558
  });
1535
1559
  app.post('/cli/session/delete', async (c) => {
1536
1560
  try {