e2e-pilot 0.0.69

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 (152) hide show
  1. package/bin.js +3 -0
  2. package/dist/aria-snapshot.d.ts +95 -0
  3. package/dist/aria-snapshot.d.ts.map +1 -0
  4. package/dist/aria-snapshot.js +490 -0
  5. package/dist/aria-snapshot.js.map +1 -0
  6. package/dist/bippy.js +971 -0
  7. package/dist/cdp-relay.d.ts +16 -0
  8. package/dist/cdp-relay.d.ts.map +1 -0
  9. package/dist/cdp-relay.js +715 -0
  10. package/dist/cdp-relay.js.map +1 -0
  11. package/dist/cdp-session.d.ts +42 -0
  12. package/dist/cdp-session.d.ts.map +1 -0
  13. package/dist/cdp-session.js +154 -0
  14. package/dist/cdp-session.js.map +1 -0
  15. package/dist/cdp-types.d.ts +63 -0
  16. package/dist/cdp-types.d.ts.map +1 -0
  17. package/dist/cdp-types.js +91 -0
  18. package/dist/cdp-types.js.map +1 -0
  19. package/dist/cli.d.ts +3 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +213 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/create-logger.d.ts +9 -0
  24. package/dist/create-logger.d.ts.map +1 -0
  25. package/dist/create-logger.js +25 -0
  26. package/dist/create-logger.js.map +1 -0
  27. package/dist/debugger-api.md +458 -0
  28. package/dist/debugger-examples-types.d.ts +24 -0
  29. package/dist/debugger-examples-types.d.ts.map +1 -0
  30. package/dist/debugger-examples-types.js +2 -0
  31. package/dist/debugger-examples-types.js.map +1 -0
  32. package/dist/debugger-examples.d.ts +6 -0
  33. package/dist/debugger-examples.d.ts.map +1 -0
  34. package/dist/debugger-examples.js +53 -0
  35. package/dist/debugger-examples.js.map +1 -0
  36. package/dist/debugger.d.ts +381 -0
  37. package/dist/debugger.d.ts.map +1 -0
  38. package/dist/debugger.js +633 -0
  39. package/dist/debugger.js.map +1 -0
  40. package/dist/editor-api.md +364 -0
  41. package/dist/editor-examples.d.ts +11 -0
  42. package/dist/editor-examples.d.ts.map +1 -0
  43. package/dist/editor-examples.js +124 -0
  44. package/dist/editor-examples.js.map +1 -0
  45. package/dist/editor.d.ts +203 -0
  46. package/dist/editor.d.ts.map +1 -0
  47. package/dist/editor.js +336 -0
  48. package/dist/editor.js.map +1 -0
  49. package/dist/execute.d.ts +50 -0
  50. package/dist/execute.d.ts.map +1 -0
  51. package/dist/execute.js +576 -0
  52. package/dist/execute.js.map +1 -0
  53. package/dist/index.d.ts +11 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +7 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/mcp-client.d.ts +20 -0
  58. package/dist/mcp-client.d.ts.map +1 -0
  59. package/dist/mcp-client.js +56 -0
  60. package/dist/mcp-client.js.map +1 -0
  61. package/dist/mcp.d.ts +5 -0
  62. package/dist/mcp.d.ts.map +1 -0
  63. package/dist/mcp.js +720 -0
  64. package/dist/mcp.js.map +1 -0
  65. package/dist/mcp.test.d.ts +10 -0
  66. package/dist/mcp.test.d.ts.map +1 -0
  67. package/dist/mcp.test.js +2999 -0
  68. package/dist/mcp.test.js.map +1 -0
  69. package/dist/network-capture.d.ts +23 -0
  70. package/dist/network-capture.d.ts.map +1 -0
  71. package/dist/network-capture.js +98 -0
  72. package/dist/network-capture.js.map +1 -0
  73. package/dist/protocol.d.ts +54 -0
  74. package/dist/protocol.d.ts.map +1 -0
  75. package/dist/protocol.js +2 -0
  76. package/dist/protocol.js.map +1 -0
  77. package/dist/react-source.d.ts +13 -0
  78. package/dist/react-source.d.ts.map +1 -0
  79. package/dist/react-source.js +68 -0
  80. package/dist/react-source.js.map +1 -0
  81. package/dist/scoped-fs.d.ts +94 -0
  82. package/dist/scoped-fs.d.ts.map +1 -0
  83. package/dist/scoped-fs.js +356 -0
  84. package/dist/scoped-fs.js.map +1 -0
  85. package/dist/selector-generator.js +8126 -0
  86. package/dist/start-relay-server.d.ts +6 -0
  87. package/dist/start-relay-server.d.ts.map +1 -0
  88. package/dist/start-relay-server.js +33 -0
  89. package/dist/start-relay-server.js.map +1 -0
  90. package/dist/styles-api.md +117 -0
  91. package/dist/styles-examples.d.ts +8 -0
  92. package/dist/styles-examples.d.ts.map +1 -0
  93. package/dist/styles-examples.js +64 -0
  94. package/dist/styles-examples.js.map +1 -0
  95. package/dist/styles.d.ts +27 -0
  96. package/dist/styles.d.ts.map +1 -0
  97. package/dist/styles.js +234 -0
  98. package/dist/styles.js.map +1 -0
  99. package/dist/trace-utils.d.ts +14 -0
  100. package/dist/trace-utils.d.ts.map +1 -0
  101. package/dist/trace-utils.js +21 -0
  102. package/dist/trace-utils.js.map +1 -0
  103. package/dist/utils.d.ts +20 -0
  104. package/dist/utils.d.ts.map +1 -0
  105. package/dist/utils.js +75 -0
  106. package/dist/utils.js.map +1 -0
  107. package/dist/wait-for-page-load.d.ts +16 -0
  108. package/dist/wait-for-page-load.d.ts.map +1 -0
  109. package/dist/wait-for-page-load.js +127 -0
  110. package/dist/wait-for-page-load.js.map +1 -0
  111. package/package.json +67 -0
  112. package/src/aria-snapshot.ts +610 -0
  113. package/src/assets/aria-labels-github-snapshot.txt +605 -0
  114. package/src/assets/aria-labels-github.png +0 -0
  115. package/src/assets/aria-labels-google-snapshot.txt +49 -0
  116. package/src/assets/aria-labels-google.png +0 -0
  117. package/src/assets/aria-labels-hacker-news-snapshot.txt +1023 -0
  118. package/src/assets/aria-labels-hacker-news.png +0 -0
  119. package/src/cdp-relay.ts +925 -0
  120. package/src/cdp-session.ts +203 -0
  121. package/src/cdp-timing.md +128 -0
  122. package/src/cdp-types.ts +155 -0
  123. package/src/cli.ts +250 -0
  124. package/src/create-logger.ts +36 -0
  125. package/src/debugger-examples-types.ts +13 -0
  126. package/src/debugger-examples.ts +66 -0
  127. package/src/debugger.md +453 -0
  128. package/src/debugger.ts +713 -0
  129. package/src/editor-examples.ts +148 -0
  130. package/src/editor.ts +390 -0
  131. package/src/execute.ts +763 -0
  132. package/src/index.ts +10 -0
  133. package/src/mcp-client.ts +78 -0
  134. package/src/mcp.test.ts +3596 -0
  135. package/src/mcp.ts +876 -0
  136. package/src/network-capture.ts +140 -0
  137. package/src/prompt.bak.md +323 -0
  138. package/src/prompt.md +7 -0
  139. package/src/protocol.ts +63 -0
  140. package/src/react-source.ts +94 -0
  141. package/src/resource.md +436 -0
  142. package/src/scoped-fs.ts +411 -0
  143. package/src/snapshots/hacker-news-focused-accessibility.md +202 -0
  144. package/src/snapshots/hacker-news-initial-accessibility.md +11 -0
  145. package/src/snapshots/hacker-news-tabbed-accessibility.md +202 -0
  146. package/src/snapshots/shadcn-ui-accessibility.md +11 -0
  147. package/src/start-relay-server.ts +43 -0
  148. package/src/styles-examples.ts +77 -0
  149. package/src/styles.ts +345 -0
  150. package/src/trace-utils.ts +43 -0
  151. package/src/utils.ts +91 -0
  152. package/src/wait-for-page-load.ts +174 -0
package/dist/utils.js ADDED
@@ -0,0 +1,75 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ export const RELAY_PORT = Number(process.env.E2E_PILOT_PORT) || 19988;
6
+ export function getCdpUrl({ port = 19988, host = '127.0.0.1', token, } = {}) {
7
+ const id = `${Math.random().toString(36).substring(2, 15)}_${Date.now()}`;
8
+ const queryString = token ? `?token=${token}` : '';
9
+ return `ws://${host}:${port}/cdp/${id}${queryString}`;
10
+ }
11
+ export const LOG_FILE_PATH = process.env.E2E_PILOT_LOG_FILE_PATH || path.join(os.tmpdir(), 'e2e-pilot', 'relay-server.log');
12
+ const packageJsonPath = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json');
13
+ export const VERSION = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')).version;
14
+ export function sleep(ms) {
15
+ return new Promise((resolve) => setTimeout(resolve, ms));
16
+ }
17
+ export async function getServerVersion(port = RELAY_PORT) {
18
+ try {
19
+ const response = await fetch(`http://127.0.0.1:${port}/version`, {
20
+ signal: AbortSignal.timeout(500),
21
+ });
22
+ if (!response.ok) {
23
+ return null;
24
+ }
25
+ const data = (await response.json());
26
+ return data.version;
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ export function setDeviceScaleFactorForMacOS(context) {
33
+ if (os.platform() !== 'darwin') {
34
+ return;
35
+ }
36
+ const options = context._options;
37
+ if (!options || options.deviceScaleFactor === 2) {
38
+ return;
39
+ }
40
+ options.deviceScaleFactor = 2;
41
+ }
42
+ export function preserveSystemColorScheme(context) {
43
+ const options = context._options;
44
+ if (!options) {
45
+ return;
46
+ }
47
+ options.colorScheme = 'no-override';
48
+ options.reducedMotion = 'no-override';
49
+ options.forcedColors = 'no-override';
50
+ }
51
+ export function formatAsCommentLines(text) {
52
+ return text
53
+ .split('\n')
54
+ .map((line) => {
55
+ return `// ${line}`;
56
+ })
57
+ .join('\n');
58
+ }
59
+ function formatTimeForPath(date) {
60
+ const hours = String(date.getHours()).padStart(2, '0');
61
+ const minutes = String(date.getMinutes()).padStart(2, '0');
62
+ const seconds = String(date.getSeconds()).padStart(2, '0');
63
+ return `${hours}-${minutes}-${seconds}`;
64
+ }
65
+ function formatDateForPath(date) {
66
+ return date.toISOString().split('T')[0];
67
+ }
68
+ /**
69
+ * Returns a combined date_time string for flattened folder structure.
70
+ * Format: YYYY-MM-DD_HH-MM-SS (e.g., 2026-01-13_12-53-00)
71
+ */
72
+ export function formatDateTimeForPath(date) {
73
+ return `${formatDateForPath(date)}_${formatTimeForPath(date)}`;
74
+ }
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Page } from 'playwright-core';
2
+ export interface WaitForPageLoadOptions {
3
+ page: Page;
4
+ timeout?: number;
5
+ pollInterval?: number;
6
+ minWait?: number;
7
+ }
8
+ export interface WaitForPageLoadResult {
9
+ success: boolean;
10
+ readyState: string;
11
+ pendingRequests: string[];
12
+ waitTimeMs: number;
13
+ timedOut: boolean;
14
+ }
15
+ export declare function waitForPageLoad(options: WaitForPageLoadOptions): Promise<WaitForPageLoadResult>;
16
+ //# sourceMappingURL=wait-for-page-load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-page-load.d.ts","sourceRoot":"","sources":["../src/wait-for-page-load.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AA2C3C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmHrG"}
@@ -0,0 +1,127 @@
1
+ import { sleep } from './utils.js';
2
+ const FILTERED_DOMAINS = [
3
+ 'doubleclick',
4
+ 'googlesyndication',
5
+ 'googleadservices',
6
+ 'google-analytics',
7
+ 'googletagmanager',
8
+ 'facebook.net',
9
+ 'fbcdn.net',
10
+ 'twitter.com',
11
+ 'linkedin.com',
12
+ 'hotjar',
13
+ 'mixpanel',
14
+ 'segment.io',
15
+ 'segment.com',
16
+ 'newrelic',
17
+ 'datadoghq',
18
+ 'sentry.io',
19
+ 'fullstory',
20
+ 'amplitude',
21
+ 'intercom',
22
+ 'crisp.chat',
23
+ 'zdassets.com',
24
+ 'zendesk',
25
+ 'tawk.to',
26
+ 'hubspot',
27
+ 'marketo',
28
+ 'pardot',
29
+ 'optimizely',
30
+ 'crazyegg',
31
+ 'mouseflow',
32
+ 'clarity.ms',
33
+ 'bing.com/bat',
34
+ 'ads.',
35
+ 'analytics.',
36
+ 'tracking.',
37
+ 'pixel.',
38
+ ];
39
+ const FILTERED_EXTENSIONS = ['.gif', '.ico', '.cur', '.woff', '.woff2', '.ttf', '.otf', '.eot'];
40
+ export async function waitForPageLoad(options) {
41
+ const { page, timeout = 30000, pollInterval = 100, minWait = 500 } = options;
42
+ const startTime = Date.now();
43
+ let timedOut = false;
44
+ let lastReadyState = '';
45
+ let lastPendingRequests = [];
46
+ const checkPageReady = async () => {
47
+ const result = await page.evaluate(({ filteredDomains, filteredExtensions, stuckThreshold, slowResourceThreshold }) => {
48
+ const doc = globalThis.document;
49
+ const readyState = doc.readyState;
50
+ if (readyState !== 'complete') {
51
+ return { ready: false, readyState, pendingRequests: [`document.readyState: ${readyState}`] };
52
+ }
53
+ const resources = performance.getEntriesByType('resource');
54
+ const now = performance.now();
55
+ const pendingRequests = resources
56
+ .filter((r) => {
57
+ if (r.responseEnd > 0) {
58
+ return false;
59
+ }
60
+ const elapsed = now - r.startTime;
61
+ const url = r.name.toLowerCase();
62
+ if (url.startsWith('data:')) {
63
+ return false;
64
+ }
65
+ if (filteredDomains.some((domain) => url.includes(domain))) {
66
+ return false;
67
+ }
68
+ if (elapsed > stuckThreshold) {
69
+ return false;
70
+ }
71
+ if (elapsed > slowResourceThreshold && filteredExtensions.some((ext) => url.includes(ext))) {
72
+ return false;
73
+ }
74
+ return true;
75
+ })
76
+ .map((r) => r.name);
77
+ return {
78
+ ready: pendingRequests.length === 0,
79
+ readyState,
80
+ pendingRequests,
81
+ };
82
+ }, {
83
+ filteredDomains: FILTERED_DOMAINS,
84
+ filteredExtensions: FILTERED_EXTENSIONS,
85
+ stuckThreshold: 10000,
86
+ slowResourceThreshold: 3000,
87
+ });
88
+ return result;
89
+ };
90
+ await sleep(minWait);
91
+ while (Date.now() - startTime < timeout) {
92
+ try {
93
+ const { ready, readyState, pendingRequests } = await checkPageReady();
94
+ lastReadyState = readyState;
95
+ lastPendingRequests = pendingRequests;
96
+ if (ready) {
97
+ return {
98
+ success: true,
99
+ readyState,
100
+ pendingRequests: [],
101
+ waitTimeMs: Date.now() - startTime,
102
+ timedOut: false,
103
+ };
104
+ }
105
+ }
106
+ catch (e) {
107
+ console.error('[waitForPageLoad] page.evaluate failed:', e);
108
+ return {
109
+ success: false,
110
+ readyState: 'error',
111
+ pendingRequests: ['page.evaluate failed - page may have closed or navigated'],
112
+ waitTimeMs: Date.now() - startTime,
113
+ timedOut: false,
114
+ };
115
+ }
116
+ await sleep(pollInterval);
117
+ }
118
+ timedOut = true;
119
+ return {
120
+ success: false,
121
+ readyState: lastReadyState,
122
+ pendingRequests: lastPendingRequests.slice(0, 10),
123
+ waitTimeMs: Date.now() - startTime,
124
+ timedOut,
125
+ };
126
+ }
127
+ //# sourceMappingURL=wait-for-page-load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-page-load.js","sourceRoot":"","sources":["../src/wait-for-page-load.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "e2e-pilot",
3
+ "description": "",
4
+ "version": "0.0.69",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "repository": "https://github.com/tidalhq/e2e-pilot",
9
+ "scripts": {
10
+ "build": "rm -rf dist *.tsbuildinfo && mkdir dist && bun scripts/build-selector-generator.ts && bun scripts/build-bippy.ts && tsc && bun scripts/build-resources.ts",
11
+ "prepublishOnly": "pnpm build && rm -rf extension-dist && cp -r ../extension/dist extension-dist",
12
+ "watch": "tsc -w",
13
+ "typecheck": "tsc --noEmit",
14
+ "mcp": "vite-node src/mcp.ts",
15
+ "test": "vitest run -u",
16
+ "test:watch": "vitest",
17
+ "injected:build-patch": "tsx scripts/build-injected-patch.ts",
18
+ "injected:build-patch:dry": "tsx scripts/build-injected-patch.ts --dry-run",
19
+ "kill": "npx kill-port 19988"
20
+ },
21
+ "bin": "./bin.js",
22
+ "files": [
23
+ "dist",
24
+ "src",
25
+ "esm",
26
+ "bin.js",
27
+ "extension-dist"
28
+ ],
29
+ "keywords": [],
30
+ "author": "",
31
+ "license": "",
32
+ "devDependencies": {
33
+ "@browserbasehq/stagehand": "^3.0.5",
34
+ "@playwright/test": "^1.57.0",
35
+ "@types/chrome": "^0.0.315",
36
+ "@types/node": "^24.10.1",
37
+ "@types/ws": "^8.18.1",
38
+ "@vitest/ui": "^4.0.8",
39
+ "bippy": "^0.5.27",
40
+ "image-size": "^2.0.2",
41
+ "e2e-pilot-extension": "workspace:*",
42
+ "vite-node": "^5.0.0",
43
+ "vitest": "^4.0.8"
44
+ },
45
+ "peerDependencies": {
46
+ "@playwright/test": "^1.57.0"
47
+ },
48
+ "dependencies": {
49
+ "@hono/node-server": "^1.19.6",
50
+ "@hono/node-ws": "^1.2.0",
51
+ "@modelcontextprotocol/sdk": "^1.21.1",
52
+ "bun": "^1.3.6",
53
+ "cac": "^6.7.14",
54
+ "chalk": "^5.6.2",
55
+ "colord": "^2.9.3",
56
+ "devtools-protocol": "^0.0.1543509",
57
+ "diff": "^8.0.2",
58
+ "hono": "^4.10.6",
59
+ "kill-port-process": "^3.2.1",
60
+ "playwright-core": "^1.57.0",
61
+ "string-dedent": "^3.0.2",
62
+ "strip-ansi": "^7.1.2",
63
+ "user-agents": "^1.1.669",
64
+ "ws": "^8.18.3",
65
+ "zod": "^3"
66
+ }
67
+ }