@playwright-repl/core 0.23.0 → 0.23.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.
- package/dist/cdp-relay.d.ts +53 -0
- package/dist/cdp-relay.d.ts.map +1 -0
- package/dist/cdp-relay.js +277 -0
- package/dist/cdp-relay.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/local-commands.d.ts +19 -0
- package/dist/local-commands.d.ts.map +1 -0
- package/dist/local-commands.js +66 -0
- package/dist/local-commands.js.map +1 -0
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +8 -0
- package/dist/resolve.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CdpRelay — WebSocket server that bridges Playwright's connectOverCDP
|
|
3
|
+
* and the Dramaturg extension's chrome.debugger.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern as Playwright's official MCP CDPRelayServer:
|
|
6
|
+
* - Extension is a dumb CDP proxy (attachToTab, forwardCDPCommand, forwardCDPEvent)
|
|
7
|
+
* - All CDP protocol translation happens here on the Node side
|
|
8
|
+
* - Single tab at a time
|
|
9
|
+
*
|
|
10
|
+
* Two WebSocket paths on the same port:
|
|
11
|
+
* - /extension — Dramaturg extension connects here
|
|
12
|
+
* - /devtools/browser/<guid> — Playwright connectOverCDP connects here
|
|
13
|
+
*
|
|
14
|
+
* IMPORTANT: Responses and events are both sent to Playwright synchronously
|
|
15
|
+
* from onExtensionMessage. This guarantees correct ordering — if events and
|
|
16
|
+
* responses were on different paths (async vs sync), Playwright could receive
|
|
17
|
+
* lifecycle events before the frame tree response, causing page.title() to hang.
|
|
18
|
+
*/
|
|
19
|
+
export declare class CdpRelay {
|
|
20
|
+
private httpServer;
|
|
21
|
+
private wss;
|
|
22
|
+
private playwrightSocket;
|
|
23
|
+
private extensionSocket;
|
|
24
|
+
private _port;
|
|
25
|
+
private _guid;
|
|
26
|
+
private _connected;
|
|
27
|
+
private _onExtensionConnect?;
|
|
28
|
+
private _extCallbacks;
|
|
29
|
+
private _extNextId;
|
|
30
|
+
private _tabSessionId;
|
|
31
|
+
private _tabTargetInfo;
|
|
32
|
+
private _nextSessionId;
|
|
33
|
+
get port(): number;
|
|
34
|
+
get wsUrl(): string;
|
|
35
|
+
get connected(): boolean;
|
|
36
|
+
start(port?: number): Promise<void>;
|
|
37
|
+
waitForExtension(timeoutMs?: number): Promise<void>;
|
|
38
|
+
private onExtensionConnect;
|
|
39
|
+
/** Send a request to the extension and wait for response. */
|
|
40
|
+
private sendToExtension;
|
|
41
|
+
/** Handle messages from the extension (responses and events). */
|
|
42
|
+
private onExtensionMessage;
|
|
43
|
+
private onPlaywrightConnect;
|
|
44
|
+
/** Handle CDP messages from Playwright — route locally or forward to extension. */
|
|
45
|
+
private handlePlaywrightMessage;
|
|
46
|
+
/** Handle commands that can be answered locally (no extension call needed). */
|
|
47
|
+
private tryLocalCommand;
|
|
48
|
+
/** Handle browser-level Target.setAutoAttach — attaches to the active tab. */
|
|
49
|
+
private handleBrowserAutoAttach;
|
|
50
|
+
private sendToPlaywright;
|
|
51
|
+
close(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=cdp-relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp-relay.d.ts","sourceRoot":"","sources":["../src/cdp-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA4BH,qBAAa,QAAQ;IACnB,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAGzC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,UAAU,CAAK;IAGvB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,cAAc,CAAK;IAE3B,IAAI,IAAI,WAAyB;IACjC,IAAI,KAAK,WAA4E;IACrF,IAAI,SAAS,YAA8B;IAErC,KAAK,CAAC,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CjC,gBAAgB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,OAAO,CAAC,kBAAkB;IA0B1B,6DAA6D;IAC7D,OAAO,CAAC,eAAe;IAYvB,iEAAiE;IACjE,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,mBAAmB;IAmB3B,mFAAmF;IACnF,OAAO,CAAC,uBAAuB;IA4B/B,+EAA+E;IAC/E,OAAO,CAAC,eAAe;IAyBvB,8EAA8E;YAChE,uBAAuB;IAmBrC,OAAO,CAAC,gBAAgB;IAUlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CdpRelay — WebSocket server that bridges Playwright's connectOverCDP
|
|
3
|
+
* and the Dramaturg extension's chrome.debugger.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern as Playwright's official MCP CDPRelayServer:
|
|
6
|
+
* - Extension is a dumb CDP proxy (attachToTab, forwardCDPCommand, forwardCDPEvent)
|
|
7
|
+
* - All CDP protocol translation happens here on the Node side
|
|
8
|
+
* - Single tab at a time
|
|
9
|
+
*
|
|
10
|
+
* Two WebSocket paths on the same port:
|
|
11
|
+
* - /extension — Dramaturg extension connects here
|
|
12
|
+
* - /devtools/browser/<guid> — Playwright connectOverCDP connects here
|
|
13
|
+
*
|
|
14
|
+
* IMPORTANT: Responses and events are both sent to Playwright synchronously
|
|
15
|
+
* from onExtensionMessage. This guarantees correct ordering — if events and
|
|
16
|
+
* responses were on different paths (async vs sync), Playwright could receive
|
|
17
|
+
* lifecycle events before the frame tree response, causing page.title() to hang.
|
|
18
|
+
*/
|
|
19
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
20
|
+
import { createServer as createHttpServer } from 'node:http';
|
|
21
|
+
// ─── CdpRelay ───────────────────────────────────────────────────────────────
|
|
22
|
+
export class CdpRelay {
|
|
23
|
+
httpServer;
|
|
24
|
+
wss;
|
|
25
|
+
playwrightSocket = null;
|
|
26
|
+
extensionSocket = null;
|
|
27
|
+
_port = 0;
|
|
28
|
+
_guid = crypto.randomUUID();
|
|
29
|
+
_connected = false;
|
|
30
|
+
_onExtensionConnect;
|
|
31
|
+
// Extension request/response tracking
|
|
32
|
+
_extCallbacks = new Map();
|
|
33
|
+
_extNextId = 1;
|
|
34
|
+
// Connected tab info
|
|
35
|
+
_tabSessionId = null;
|
|
36
|
+
_tabTargetInfo = null;
|
|
37
|
+
_nextSessionId = 1;
|
|
38
|
+
get port() { return this._port; }
|
|
39
|
+
get wsUrl() { return `ws://127.0.0.1:${this._port}/devtools/browser/${this._guid}`; }
|
|
40
|
+
get connected() { return this._connected; }
|
|
41
|
+
async start(port = 9877) {
|
|
42
|
+
this.httpServer = createHttpServer((req, res) => {
|
|
43
|
+
if (req.url === '/json/version' || req.url === '/json/version/') {
|
|
44
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
45
|
+
res.end(JSON.stringify({
|
|
46
|
+
'Browser': 'Chrome (Dramaturg CDP Relay)',
|
|
47
|
+
'Protocol-Version': '1.3',
|
|
48
|
+
'webSocketDebuggerUrl': this.wsUrl,
|
|
49
|
+
}));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (req.url?.startsWith('/json')) {
|
|
53
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
54
|
+
res.end(JSON.stringify([]));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
res.writeHead(404);
|
|
58
|
+
res.end();
|
|
59
|
+
});
|
|
60
|
+
this.wss = new WebSocketServer({ noServer: true });
|
|
61
|
+
this.httpServer.on('upgrade', (req, socket, head) => {
|
|
62
|
+
const url = req.url || '/';
|
|
63
|
+
if (url.startsWith('/devtools/')) {
|
|
64
|
+
this.wss.handleUpgrade(req, socket, head, (ws) => this.onPlaywrightConnect(ws));
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (url === '/extension' || url.startsWith('/extension')) {
|
|
68
|
+
this.wss.handleUpgrade(req, socket, head, (ws) => this.onExtensionConnect(ws));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
socket.destroy();
|
|
72
|
+
});
|
|
73
|
+
await new Promise((resolve, reject) => {
|
|
74
|
+
this.httpServer.on('listening', resolve);
|
|
75
|
+
this.httpServer.on('error', reject);
|
|
76
|
+
this.httpServer.listen(port, '127.0.0.1');
|
|
77
|
+
});
|
|
78
|
+
this._port = this.httpServer.address().port;
|
|
79
|
+
}
|
|
80
|
+
async waitForExtension(timeoutMs = 30000) {
|
|
81
|
+
if (this._connected)
|
|
82
|
+
return;
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
const timer = setTimeout(() => reject(new Error('Timed out waiting for extension')), timeoutMs);
|
|
85
|
+
this._onExtensionConnect = () => {
|
|
86
|
+
clearTimeout(timer);
|
|
87
|
+
this._onExtensionConnect = undefined;
|
|
88
|
+
resolve();
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// ─── Extension connection ─────────────────────────────────────────────────
|
|
93
|
+
onExtensionConnect(ws) {
|
|
94
|
+
if (this.extensionSocket) {
|
|
95
|
+
ws.close(1000, 'Another extension already connected');
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.error('[cdp-relay] Extension connected');
|
|
99
|
+
this.extensionSocket = ws;
|
|
100
|
+
this._connected = true;
|
|
101
|
+
this._onExtensionConnect?.();
|
|
102
|
+
ws.on('message', (data) => {
|
|
103
|
+
const msg = JSON.parse(String(data));
|
|
104
|
+
this.onExtensionMessage(msg);
|
|
105
|
+
});
|
|
106
|
+
ws.on('close', () => {
|
|
107
|
+
console.error('[cdp-relay] Extension disconnected');
|
|
108
|
+
this.extensionSocket = null;
|
|
109
|
+
this._connected = false;
|
|
110
|
+
this._tabSessionId = null;
|
|
111
|
+
this._tabTargetInfo = null;
|
|
112
|
+
for (const [, cb] of this._extCallbacks)
|
|
113
|
+
cb.reject(new Error('Extension disconnected'));
|
|
114
|
+
this._extCallbacks.clear();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/** Send a request to the extension and wait for response. */
|
|
118
|
+
sendToExtension(method, params = {}, pwContext) {
|
|
119
|
+
if (!this.extensionSocket || this.extensionSocket.readyState !== WebSocket.OPEN)
|
|
120
|
+
return Promise.reject(new Error('Extension not connected'));
|
|
121
|
+
const id = this._extNextId++;
|
|
122
|
+
const msg = { id, method, params };
|
|
123
|
+
console.error(`[cdp-relay] → ext: ${method} (id=${id})`, JSON.stringify(params).slice(0, 150));
|
|
124
|
+
this.extensionSocket.send(JSON.stringify(msg));
|
|
125
|
+
return new Promise((resolve, reject) => {
|
|
126
|
+
this._extCallbacks.set(id, { resolve, reject, pwId: pwContext?.id, pwSessionId: pwContext?.sessionId });
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/** Handle messages from the extension (responses and events). */
|
|
130
|
+
onExtensionMessage(msg) {
|
|
131
|
+
// Response to a pending request
|
|
132
|
+
if (typeof msg.id === 'number' && this._extCallbacks.has(msg.id)) {
|
|
133
|
+
const cb = this._extCallbacks.get(msg.id);
|
|
134
|
+
this._extCallbacks.delete(msg.id);
|
|
135
|
+
const resultStr = JSON.stringify(msg.result);
|
|
136
|
+
console.error(`[cdp-relay] ← ext: resp id=${msg.id}`, msg.error ? `ERROR: ${msg.error}` : `OK ${resultStr?.slice(0, 500)}`);
|
|
137
|
+
// Send response to Playwright IMMEDIATELY (synchronous) — same code path
|
|
138
|
+
// as events. This ensures correct ordering: if chrome.debugger sends a
|
|
139
|
+
// response followed by events, they arrive at Playwright in the same order.
|
|
140
|
+
if (cb.pwId !== undefined) {
|
|
141
|
+
if (msg.error) {
|
|
142
|
+
this.sendToPlaywright({
|
|
143
|
+
id: cb.pwId,
|
|
144
|
+
sessionId: cb.pwSessionId,
|
|
145
|
+
error: { message: typeof msg.error === 'string' ? msg.error : JSON.stringify(msg.error) },
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.sendToPlaywright({
|
|
150
|
+
id: cb.pwId,
|
|
151
|
+
sessionId: cb.pwSessionId,
|
|
152
|
+
result: (msg.result ?? {}),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Resolve/reject the promise (for callers that await, e.g. attachToTab)
|
|
157
|
+
if (msg.error)
|
|
158
|
+
cb.reject(new Error(typeof msg.error === 'string' ? msg.error : JSON.stringify(msg.error)));
|
|
159
|
+
else
|
|
160
|
+
cb.resolve(msg.result);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// Event from extension (forwardCDPEvent)
|
|
164
|
+
console.error(`[cdp-relay] ← ext event:`, JSON.stringify(msg).slice(0, 200));
|
|
165
|
+
if (msg.method === 'forwardCDPEvent') {
|
|
166
|
+
const params = msg.params;
|
|
167
|
+
const sessionId = params.sessionId || this._tabSessionId;
|
|
168
|
+
this.sendToPlaywright({
|
|
169
|
+
sessionId: sessionId ?? undefined,
|
|
170
|
+
method: params.method,
|
|
171
|
+
params: params.params,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// ─── Playwright connection ────────────────────────────────────────────────
|
|
176
|
+
onPlaywrightConnect(ws) {
|
|
177
|
+
if (this.playwrightSocket) {
|
|
178
|
+
ws.close(1000, 'Another Playwright client already connected');
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
console.error('[cdp-relay] Playwright connected');
|
|
182
|
+
this.playwrightSocket = ws;
|
|
183
|
+
ws.on('message', (data) => {
|
|
184
|
+
const msg = JSON.parse(String(data));
|
|
185
|
+
this.handlePlaywrightMessage(msg);
|
|
186
|
+
});
|
|
187
|
+
ws.on('close', () => {
|
|
188
|
+
console.error('[cdp-relay] Playwright disconnected');
|
|
189
|
+
this.playwrightSocket = null;
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/** Handle CDP messages from Playwright — route locally or forward to extension. */
|
|
193
|
+
handlePlaywrightMessage(msg) {
|
|
194
|
+
const { id, sessionId, method, params } = msg;
|
|
195
|
+
console.error(`[cdp-relay] ← PW: ${sessionId ? `[${sessionId}] ` : ''}${method} (id=${id})`);
|
|
196
|
+
// Try to handle locally (browser-level commands)
|
|
197
|
+
const localResult = this.tryLocalCommand(method, params, sessionId);
|
|
198
|
+
if (localResult !== undefined) {
|
|
199
|
+
this.sendToPlaywright({ id, sessionId, result: localResult });
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
// Target.setAutoAttach (browser-level) — async, needs extension call
|
|
203
|
+
if (method === 'Target.setAutoAttach' && !sessionId) {
|
|
204
|
+
this.handleBrowserAutoAttach(id);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
// Forward to extension — response is sent from onExtensionMessage (synchronous)
|
|
208
|
+
const forwardSessionId = (this._tabSessionId === sessionId) ? undefined : sessionId;
|
|
209
|
+
this.sendToExtension('forwardCDPCommand', {
|
|
210
|
+
method,
|
|
211
|
+
params,
|
|
212
|
+
sessionId: forwardSessionId,
|
|
213
|
+
}, { id: id, sessionId }).catch((e) => {
|
|
214
|
+
this.sendToPlaywright({ id, sessionId, error: { message: e.message } });
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/** Handle commands that can be answered locally (no extension call needed). */
|
|
218
|
+
tryLocalCommand(method, params, _sessionId) {
|
|
219
|
+
switch (method) {
|
|
220
|
+
case 'Browser.getVersion':
|
|
221
|
+
return {
|
|
222
|
+
protocolVersion: '1.3',
|
|
223
|
+
product: 'Chrome (Dramaturg CDP Relay)',
|
|
224
|
+
userAgent: '',
|
|
225
|
+
};
|
|
226
|
+
case 'Browser.setDownloadBehavior':
|
|
227
|
+
return {};
|
|
228
|
+
case 'Target.getTargetInfo':
|
|
229
|
+
if (!params?.targetId)
|
|
230
|
+
return { targetInfo: { targetId: 'browser', type: 'browser', title: '', url: '' } };
|
|
231
|
+
return { targetInfo: this._tabTargetInfo || {} };
|
|
232
|
+
case 'Target.setDiscoverTargets':
|
|
233
|
+
return {};
|
|
234
|
+
case 'Target.getBrowserContexts':
|
|
235
|
+
return { browserContextIds: ['default'] };
|
|
236
|
+
case 'Target.getTargets':
|
|
237
|
+
return { targetInfos: this._tabTargetInfo ? [this._tabTargetInfo] : [] };
|
|
238
|
+
}
|
|
239
|
+
// Session-level Target.setAutoAttach falls through to forwarding
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
/** Handle browser-level Target.setAutoAttach — attaches to the active tab. */
|
|
243
|
+
async handleBrowserAutoAttach(pwId) {
|
|
244
|
+
try {
|
|
245
|
+
const { targetInfo } = await this.sendToExtension('attachToTab', {});
|
|
246
|
+
this._tabTargetInfo = targetInfo;
|
|
247
|
+
this._tabSessionId = `pw-tab-${this._nextSessionId++}`;
|
|
248
|
+
this.sendToPlaywright({
|
|
249
|
+
method: 'Target.attachedToTarget',
|
|
250
|
+
params: {
|
|
251
|
+
sessionId: this._tabSessionId,
|
|
252
|
+
targetInfo: { ...targetInfo, attached: true },
|
|
253
|
+
waitingForDebugger: false,
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
this.sendToPlaywright({ id: pwId, result: {} });
|
|
257
|
+
}
|
|
258
|
+
catch (e) {
|
|
259
|
+
this.sendToPlaywright({ id: pwId, error: { message: e.message } });
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
sendToPlaywright(msg) {
|
|
263
|
+
if (this.playwrightSocket?.readyState === WebSocket.OPEN) {
|
|
264
|
+
const data = JSON.stringify(msg);
|
|
265
|
+
console.error(`[cdp-relay] → PW: ${data.slice(0, 250)}`);
|
|
266
|
+
this.playwrightSocket.send(data);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// ─── Cleanup ──────────────────────────────────────────────────────────────
|
|
270
|
+
async close() {
|
|
271
|
+
this.playwrightSocket?.close();
|
|
272
|
+
this.extensionSocket?.close();
|
|
273
|
+
this.wss.close();
|
|
274
|
+
await new Promise(r => this.httpServer.close(() => r()));
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=cdp-relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp-relay.js","sourceRoot":"","sources":["../src/cdp-relay.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export type { CompletionItem } from './completion-data.js';
|
|
|
14
14
|
export type { CommandInfo } from './resolve.js';
|
|
15
15
|
export { parseSnapshot, refToLocator, allRefLocators } from './snapshot-parser.js';
|
|
16
16
|
export type { SnapshotNode, LocatorResult, RefLocatorEntry } from './snapshot-parser.js';
|
|
17
|
+
export { isLocalCommand, handleLocalCommand, isVideoCommand, handleVideoCommand } from './local-commands.js';
|
|
18
|
+
export type { LocalCommandResult } from './local-commands.js';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,4 +10,5 @@ export { filterResponse } from './filter.js';
|
|
|
10
10
|
export { BridgeServer } from './bridge-server.js';
|
|
11
11
|
export { EvaluateConnection, findExtensionPath } from './evaluate-connection.js';
|
|
12
12
|
export { parseSnapshot, refToLocator, allRefLocators } from './snapshot-parser.js';
|
|
13
|
+
export { isLocalCommand, handleLocalCommand, isVideoCommand, handleVideoCommand } from './local-commands.js';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local command handlers — commands that run in Node.js instead of the
|
|
3
|
+
* extension service worker. Used by CLI, MCP, and VS Code.
|
|
4
|
+
*/
|
|
5
|
+
type BrowserContext = any;
|
|
6
|
+
export interface LocalCommandResult {
|
|
7
|
+
text: string;
|
|
8
|
+
isError?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function isVideoCommand(cmd: string): boolean;
|
|
11
|
+
export declare function handleVideoCommand(cmd: string, context: BrowserContext): Promise<LocalCommandResult>;
|
|
12
|
+
export declare function isLocalCommand(cmd: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Try to handle a command locally. Returns null if not a local command.
|
|
15
|
+
* Requires a BrowserContext (from EvaluateConnection.context).
|
|
16
|
+
*/
|
|
17
|
+
export declare function handleLocalCommand(cmd: string, context: BrowserContext | null): Promise<LocalCommandResult | null>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=local-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-commands.d.ts","sourceRoot":"","sources":["../src/local-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,KAAK,cAAc,GAAG,GAAG,CAAC;AAI1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAInD;AAID,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoC1G;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOxH"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local command handlers — commands that run in Node.js instead of the
|
|
3
|
+
* extension service worker. Used by CLI, MCP, and VS Code.
|
|
4
|
+
*/
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import os from 'node:os';
|
|
8
|
+
import { parseInput } from './parser.js';
|
|
9
|
+
// ─── Video commands ─────────────────────────────────────────────────────────
|
|
10
|
+
export function isVideoCommand(cmd) {
|
|
11
|
+
const trimmed = cmd.trim();
|
|
12
|
+
return trimmed.startsWith('video-start') || trimmed === 'video-stop'
|
|
13
|
+
|| trimmed.startsWith('video-chapter ') || trimmed === 'video-chapter';
|
|
14
|
+
}
|
|
15
|
+
let videoPath = null;
|
|
16
|
+
export async function handleVideoCommand(cmd, context) {
|
|
17
|
+
const pages = context.pages();
|
|
18
|
+
const page = pages[pages.length - 1];
|
|
19
|
+
if (!page)
|
|
20
|
+
return { text: 'No page available.', isError: true };
|
|
21
|
+
const trimmed = cmd.trim();
|
|
22
|
+
if (trimmed.startsWith('video-start')) {
|
|
23
|
+
const args = parseInput(trimmed);
|
|
24
|
+
const sizeStr = args?.size;
|
|
25
|
+
const size = sizeStr ? { width: parseInt(sizeStr.split('x')[0]), height: parseInt(sizeStr.split('x')[1]) } : undefined;
|
|
26
|
+
const outDir = path.join(os.homedir(), 'pw-videos');
|
|
27
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
28
|
+
const outPath = path.join(outDir, `pw-video-${Date.now()}.webm`);
|
|
29
|
+
videoPath = outPath;
|
|
30
|
+
await page.screencast.start({ path: outPath, size });
|
|
31
|
+
return { text: `Recording started → ${outPath}` };
|
|
32
|
+
}
|
|
33
|
+
if (trimmed === 'video-stop') {
|
|
34
|
+
await page.screencast.stop();
|
|
35
|
+
const msg = videoPath ? `Recording stopped → ${videoPath}` : 'Recording stopped.';
|
|
36
|
+
videoPath = null;
|
|
37
|
+
return { text: msg };
|
|
38
|
+
}
|
|
39
|
+
if (trimmed.startsWith('video-chapter')) {
|
|
40
|
+
const args = parseInput(trimmed);
|
|
41
|
+
const title = args?._?.slice(1).join(' ') || '';
|
|
42
|
+
const description = args?.description;
|
|
43
|
+
const duration = args?.duration ? parseInt(String(args.duration)) : undefined;
|
|
44
|
+
await page.screencast.showChapter(title, { description, duration });
|
|
45
|
+
return { text: `Chapter "${title}" added.` };
|
|
46
|
+
}
|
|
47
|
+
return { text: `Unknown video command: ${trimmed}`, isError: true };
|
|
48
|
+
}
|
|
49
|
+
// ─── Local command dispatcher ───────────────────────────────────────────────
|
|
50
|
+
export function isLocalCommand(cmd) {
|
|
51
|
+
return isVideoCommand(cmd);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Try to handle a command locally. Returns null if not a local command.
|
|
55
|
+
* Requires a BrowserContext (from EvaluateConnection.context).
|
|
56
|
+
*/
|
|
57
|
+
export async function handleLocalCommand(cmd, context) {
|
|
58
|
+
if (!isLocalCommand(cmd))
|
|
59
|
+
return null;
|
|
60
|
+
if (!context)
|
|
61
|
+
return { text: 'Local commands require evaluate mode.', isError: true };
|
|
62
|
+
if (isVideoCommand(cmd))
|
|
63
|
+
return handleVideoCommand(cmd, context);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=local-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-commands.js","sourceRoot":"","sources":["../src/local-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,EAAE,CAAA;CAAwB,CAAC;AAG3I,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAItE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,EAAE,CAAA;CAAwB,CAAC;AAG3I,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAItE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAoJhD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAY/C,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,aAO1B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASlD,CAAC"}
|
package/dist/resolve.js
CHANGED
|
@@ -145,6 +145,13 @@ export const COMMANDS = {
|
|
|
145
145
|
'locator': { desc: 'Generate Playwright locator for a ref', options: [],
|
|
146
146
|
usage: 'locator <ref>',
|
|
147
147
|
examples: ['locator e5'] },
|
|
148
|
+
'video-start': { desc: 'Start video recording', options: ['--size'],
|
|
149
|
+
usage: 'video-start [--size <WxH>]',
|
|
150
|
+
examples: ['video-start', 'video-start --size 800x600'] },
|
|
151
|
+
'video-stop': { desc: 'Stop video recording', options: [] },
|
|
152
|
+
'video-chapter': { desc: 'Add video chapter marker', options: ['--description', '--duration'],
|
|
153
|
+
usage: 'video-chapter <title> [--description <text>] [--duration <ms>]',
|
|
154
|
+
examples: ['video-chapter "Login flow"', 'video-chapter "Setup" --duration 3000'] },
|
|
148
155
|
'install-browser': { desc: 'Install browser', options: [] },
|
|
149
156
|
'list': { desc: 'List sessions', options: [] },
|
|
150
157
|
'close-all': { desc: 'Close all sessions', options: [] },
|
|
@@ -160,6 +167,7 @@ export const CATEGORIES = {
|
|
|
160
167
|
'LocalStorage': ['localstorage-list', 'localstorage-get', 'localstorage-set', 'localstorage-delete', 'localstorage-clear'],
|
|
161
168
|
'SessionStorage': ['sessionstorage-list', 'sessionstorage-get', 'sessionstorage-set', 'sessionstorage-delete', 'sessionstorage-clear'],
|
|
162
169
|
'State': ['state-save', 'state-load'],
|
|
170
|
+
'Video': ['video-start', 'video-stop', 'video-chapter'],
|
|
163
171
|
'Other': ['dialog-accept', 'dialog-dismiss', 'route', 'route-list', 'unroute', 'resize', 'pdf', 'upload', 'config-print'],
|
|
164
172
|
};
|
|
165
173
|
/** Commands that mutate the page — snapshot should be attached when includeSnapshot is on. */
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|