@petukhovart/agent-view 0.9.2 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.claude-plugin/plugin.json +21 -21
  2. package/LICENSE +21 -21
  3. package/README.md +26 -1
  4. package/dist/adapters/browser.d.ts.map +1 -1
  5. package/dist/adapters/browser.js +2 -2
  6. package/dist/adapters/browser.js.map +1 -1
  7. package/dist/adapters/electron.d.ts.map +1 -1
  8. package/dist/adapters/electron.js +2 -2
  9. package/dist/adapters/electron.js.map +1 -1
  10. package/dist/adapters/target-filter.d.ts +11 -0
  11. package/dist/adapters/target-filter.d.ts.map +1 -0
  12. package/dist/adapters/target-filter.js +19 -0
  13. package/dist/adapters/target-filter.js.map +1 -0
  14. package/dist/adapters/tauri.d.ts +2 -5
  15. package/dist/adapters/tauri.d.ts.map +1 -1
  16. package/dist/adapters/tauri.js +2 -13
  17. package/dist/adapters/tauri.js.map +1 -1
  18. package/dist/cdp/network-stream.d.ts +27 -0
  19. package/dist/cdp/network-stream.d.ts.map +1 -0
  20. package/dist/cdp/network-stream.js +336 -0
  21. package/dist/cdp/network-stream.js.map +1 -0
  22. package/dist/cdp/transport.d.ts.map +1 -1
  23. package/dist/cdp/transport.js +167 -8
  24. package/dist/cdp/transport.js.map +1 -1
  25. package/dist/cdp/types.d.ts +187 -0
  26. package/dist/cdp/types.d.ts.map +1 -1
  27. package/dist/cdp/types.js +55 -0
  28. package/dist/cdp/types.js.map +1 -1
  29. package/dist/cli/commands/network.d.ts +19 -0
  30. package/dist/cli/commands/network.d.ts.map +1 -0
  31. package/dist/cli/commands/network.js +55 -0
  32. package/dist/cli/commands/network.js.map +1 -0
  33. package/dist/cli/index.js +23 -1
  34. package/dist/cli/index.js.map +1 -1
  35. package/dist/config/manager.d.ts.map +1 -1
  36. package/dist/config/manager.js +6 -0
  37. package/dist/config/manager.js.map +1 -1
  38. package/dist/config/types.d.ts +8 -0
  39. package/dist/config/types.d.ts.map +1 -1
  40. package/dist/inspectors/network/index.d.ts +19 -0
  41. package/dist/inspectors/network/index.d.ts.map +1 -0
  42. package/dist/inspectors/network/index.js +169 -0
  43. package/dist/inspectors/network/index.js.map +1 -0
  44. package/dist/server/server.d.ts +12 -0
  45. package/dist/server/server.d.ts.map +1 -1
  46. package/dist/server/server.js +193 -18
  47. package/dist/server/server.js.map +1 -1
  48. package/package.json +9 -8
  49. package/skills/verify/SKILL.md +319 -292
  50. package/skills/verify-recipe/SKILL.md +286 -286
  51. package/dist/cdp/console-stream.d.ts +0 -35
  52. package/dist/cdp/console-stream.d.ts.map +0 -1
  53. package/dist/cdp/console-stream.js +0 -103
  54. package/dist/cdp/console-stream.js.map +0 -1
  55. package/dist/inspectors/dom.d.ts +0 -17
  56. package/dist/inspectors/dom.d.ts.map +0 -1
  57. package/dist/inspectors/dom.js +0 -131
  58. package/dist/inspectors/dom.js.map +0 -1
  59. package/dist/inspectors/scene/pixi.d.ts +0 -3
  60. package/dist/inspectors/scene/pixi.d.ts.map +0 -1
  61. package/dist/inspectors/scene/pixi.js +0 -52
  62. package/dist/inspectors/scene/pixi.js.map +0 -1
@@ -0,0 +1,336 @@
1
+ import { NetworkEventKind, NetworkEntryState, NetworkResourceType, WebSocketOpcode, WebSocketDirection, } from './types.js';
2
+ const DEFAULT_CAPACITY = 200;
3
+ const FRAME_RING = 100;
4
+ const PAYLOAD_CAP = 2048;
5
+ const BODY_CAP = 16 * 1024;
6
+ function globToRegex(pattern) {
7
+ const segments = pattern.split('*');
8
+ const escaped = segments.map(s => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
9
+ return new RegExp(escaped.join('.*'), 'i');
10
+ }
11
+ function isBinaryMime(mime) {
12
+ return !mime.startsWith('text/') && !mime.includes('json') && !mime.includes('xml') && !mime.includes('javascript');
13
+ }
14
+ export class NetworkStream {
15
+ capacity;
16
+ captureBody;
17
+ targets = new Map();
18
+ subscribers = new Set();
19
+ constructor(opts = {}) {
20
+ this.capacity = opts.capacity ?? DEFAULT_CAPACITY;
21
+ this.captureBody = opts.captureBody ?? false;
22
+ }
23
+ get attachedCount() {
24
+ return this.targets.size;
25
+ }
26
+ async attach(session) {
27
+ const id = session.target.id;
28
+ if (this.targets.has(id))
29
+ return;
30
+ const entries = new Map();
31
+ const dispose = session.onNetwork((ev) => this.handleEvent(id, entries, session, ev));
32
+ this.targets.set(id, { session, entries, dispose });
33
+ await session.enableNetwork();
34
+ }
35
+ detach(targetId) {
36
+ if (targetId === undefined) {
37
+ for (const t of this.targets.values())
38
+ t.dispose();
39
+ this.targets.clear();
40
+ return;
41
+ }
42
+ const t = this.targets.get(targetId);
43
+ if (!t)
44
+ return;
45
+ t.dispose();
46
+ this.targets.delete(targetId);
47
+ }
48
+ clear(targetId) {
49
+ if (targetId === undefined) {
50
+ for (const t of this.targets.values())
51
+ t.entries.clear();
52
+ return;
53
+ }
54
+ this.targets.get(targetId)?.entries.clear();
55
+ }
56
+ subscribe(handler) {
57
+ this.subscribers.add(handler);
58
+ return () => this.subscribers.delete(handler);
59
+ }
60
+ drain(filter = {}) {
61
+ const urlRe = filter.url ? (filter.url.includes('*') ? globToRegex(filter.url) : null) : null;
62
+ const hasStatusFilter = (filter.statusClasses !== undefined && filter.statusClasses.size > 0) ||
63
+ (filter.statusCodes !== undefined && filter.statusCodes.size > 0) ||
64
+ filter.includeFailed === true;
65
+ const result = [];
66
+ for (const [id, target] of this.targets) {
67
+ if (filter.targetId && filter.targetId !== id)
68
+ continue;
69
+ for (const entry of target.entries.values()) {
70
+ if (filter.since !== undefined && entry.startTs < filter.since)
71
+ continue;
72
+ if (filter.url) {
73
+ const lowerUrl = entry.url.toLowerCase();
74
+ if (urlRe) {
75
+ if (!urlRe.test(entry.url))
76
+ continue;
77
+ }
78
+ else {
79
+ if (!lowerUrl.includes(filter.url.toLowerCase()))
80
+ continue;
81
+ }
82
+ }
83
+ if (filter.method) {
84
+ if (!entry.method)
85
+ continue;
86
+ if (!filter.method.has(entry.method.toUpperCase()))
87
+ continue;
88
+ }
89
+ if (hasStatusFilter) {
90
+ const matchesFailed = filter.includeFailed === true && entry.state === NetworkEntryState.Failed;
91
+ let matchesNumeric = false;
92
+ if (entry.status !== undefined) {
93
+ const cls = Math.floor(entry.status / 100);
94
+ const matchesClass = filter.statusClasses ? filter.statusClasses.has(cls) : false;
95
+ const matchesCode = filter.statusCodes ? filter.statusCodes.has(entry.status) : false;
96
+ matchesNumeric = matchesClass || matchesCode;
97
+ }
98
+ if (!matchesFailed && !matchesNumeric)
99
+ continue;
100
+ }
101
+ if (filter.type && !filter.type.has(entry.resourceType))
102
+ continue;
103
+ result.push({ ...entry, targetId: id, targetType: target.session.target.type });
104
+ }
105
+ }
106
+ result.sort((a, b) => a.startTs - b.startTs);
107
+ return result;
108
+ }
109
+ getEntry(targetId, requestId) {
110
+ const target = this.targets.get(targetId);
111
+ if (!target)
112
+ return undefined;
113
+ const entry = target.entries.get(requestId);
114
+ if (!entry)
115
+ return undefined;
116
+ return { ...entry, targetId, targetType: target.session.target.type };
117
+ }
118
+ notify(targetId, target, entry) {
119
+ const stamped = { ...entry, targetId, targetType: target.session.target.type };
120
+ for (const sub of this.subscribers) {
121
+ try {
122
+ sub(stamped);
123
+ }
124
+ catch { /* ignore */ }
125
+ }
126
+ }
127
+ upsertEntry(targetId, target, requestId, entry) {
128
+ const isNew = !target.entries.has(requestId);
129
+ target.entries.set(requestId, entry);
130
+ if (isNew && target.entries.size > this.capacity) {
131
+ const firstKey = target.entries.keys().next().value;
132
+ if (firstKey !== undefined)
133
+ target.entries.delete(firstKey);
134
+ }
135
+ this.notify(targetId, target, entry);
136
+ }
137
+ handleEvent(targetId, entries, session, ev) {
138
+ const target = this.targets.get(targetId);
139
+ if (!target)
140
+ return;
141
+ switch (ev.kind) {
142
+ case NetworkEventKind.RequestWillBeSent: {
143
+ const entry = {
144
+ requestId: ev.requestId,
145
+ url: ev.url,
146
+ method: ev.method,
147
+ resourceType: ev.resourceType,
148
+ state: NetworkEntryState.Pending,
149
+ requestHeaders: ev.headers,
150
+ startTs: ev.ts,
151
+ requestBody: this.captureBody ? ev.postData : undefined,
152
+ };
153
+ this.upsertEntry(targetId, target, ev.requestId, entry);
154
+ break;
155
+ }
156
+ case NetworkEventKind.ResponseReceived: {
157
+ const existing = entries.get(ev.requestId);
158
+ const entry = existing ?? {
159
+ requestId: ev.requestId,
160
+ url: '',
161
+ resourceType: ev.resourceType,
162
+ state: NetworkEntryState.Pending,
163
+ startTs: ev.ts,
164
+ };
165
+ entry.status = ev.status;
166
+ entry.statusText = ev.statusText;
167
+ entry.responseHeaders = ev.headers;
168
+ entry.mimeType = ev.mimeType;
169
+ entry.ttfbMs = existing ? ev.ts - existing.startTs : 0;
170
+ this.upsertEntry(targetId, target, ev.requestId, entry);
171
+ break;
172
+ }
173
+ case NetworkEventKind.LoadingFinished: {
174
+ const existing = entries.get(ev.requestId);
175
+ if (!existing)
176
+ break;
177
+ existing.state = NetworkEntryState.Complete;
178
+ existing.endTs = ev.ts;
179
+ existing.totalMs = ev.ts - existing.startTs;
180
+ existing.encodedDataLength = ev.encodedDataLength;
181
+ this.notify(targetId, target, existing);
182
+ if (this.captureBody) {
183
+ session.getResponseBody(ev.requestId).then(({ body, base64Encoded }) => {
184
+ const mime = existing.mimeType ?? '';
185
+ const binary = base64Encoded || isBinaryMime(mime);
186
+ let networkBody;
187
+ if (binary) {
188
+ const decoded = base64Encoded ? Buffer.from(body, 'base64') : Buffer.from(body);
189
+ networkBody = { text: '', base64: base64Encoded, size: decoded.byteLength, binary: true };
190
+ }
191
+ else {
192
+ const size = Buffer.byteLength(body);
193
+ networkBody = { text: body.slice(0, BODY_CAP), base64: false, size, binary: false };
194
+ }
195
+ existing.responseBody = networkBody;
196
+ this.notify(targetId, target, existing);
197
+ }).catch(() => { });
198
+ }
199
+ break;
200
+ }
201
+ case NetworkEventKind.LoadingFailed: {
202
+ const existing = entries.get(ev.requestId);
203
+ if (!existing)
204
+ break;
205
+ existing.state = NetworkEntryState.Failed;
206
+ existing.endTs = ev.ts;
207
+ existing.totalMs = ev.ts - existing.startTs;
208
+ existing.errorText = ev.errorText;
209
+ existing.canceled = ev.canceled;
210
+ this.notify(targetId, target, existing);
211
+ break;
212
+ }
213
+ case NetworkEventKind.WebSocketCreated: {
214
+ const entry = {
215
+ requestId: ev.requestId,
216
+ url: ev.url,
217
+ resourceType: NetworkResourceType.WebSocket,
218
+ isWebSocket: true,
219
+ state: NetworkEntryState.Pending,
220
+ startTs: ev.ts,
221
+ frames: [],
222
+ };
223
+ this.upsertEntry(targetId, target, ev.requestId, entry);
224
+ break;
225
+ }
226
+ case NetworkEventKind.WebSocketFrameSent:
227
+ case NetworkEventKind.WebSocketFrameReceived: {
228
+ let entry = entries.get(ev.requestId);
229
+ if (!entry) {
230
+ entry = {
231
+ requestId: ev.requestId,
232
+ url: '',
233
+ resourceType: NetworkResourceType.WebSocket,
234
+ isWebSocket: true,
235
+ state: NetworkEntryState.Pending,
236
+ startTs: ev.ts,
237
+ frames: [],
238
+ };
239
+ this.upsertEntry(targetId, target, ev.requestId, entry);
240
+ }
241
+ if (!entry.frames)
242
+ entry.frames = [];
243
+ const direction = ev.kind === NetworkEventKind.WebSocketFrameSent
244
+ ? WebSocketDirection.Sent
245
+ : WebSocketDirection.Received;
246
+ const isBinaryFrame = ev.opcode === WebSocketOpcode.Binary;
247
+ const frame = {
248
+ direction,
249
+ opcode: ev.opcode,
250
+ ts: ev.ts,
251
+ size: Buffer.byteLength(ev.payloadData),
252
+ ...(isBinaryFrame ? { binary: true } : { payload: ev.payloadData.slice(0, PAYLOAD_CAP) }),
253
+ };
254
+ entry.frames.push(frame);
255
+ if (entry.frames.length > FRAME_RING)
256
+ entry.frames.shift();
257
+ this.notify(targetId, target, entry);
258
+ break;
259
+ }
260
+ case NetworkEventKind.WebSocketFrameError: {
261
+ const entry = entries.get(ev.requestId);
262
+ if (!entry)
263
+ break;
264
+ if (!entry.frames)
265
+ entry.frames = [];
266
+ const frame = {
267
+ direction: WebSocketDirection.Received,
268
+ opcode: WebSocketOpcode.Continuation,
269
+ ts: ev.ts,
270
+ size: 0,
271
+ terminal: 'error',
272
+ errorMessage: ev.errorMessage,
273
+ };
274
+ entry.frames.push(frame);
275
+ if (entry.frames.length > FRAME_RING)
276
+ entry.frames.shift();
277
+ this.notify(targetId, target, entry);
278
+ break;
279
+ }
280
+ case NetworkEventKind.WebSocketClosed: {
281
+ const entry = entries.get(ev.requestId);
282
+ if (!entry)
283
+ break;
284
+ if (!entry.frames)
285
+ entry.frames = [];
286
+ const frame = {
287
+ direction: WebSocketDirection.Received,
288
+ opcode: WebSocketOpcode.Close,
289
+ ts: ev.ts,
290
+ size: 0,
291
+ terminal: 'closed',
292
+ };
293
+ entry.frames.push(frame);
294
+ if (entry.frames.length > FRAME_RING)
295
+ entry.frames.shift();
296
+ entry.state = NetworkEntryState.Complete;
297
+ entry.endTs = ev.ts;
298
+ this.notify(targetId, target, entry);
299
+ break;
300
+ }
301
+ case NetworkEventKind.EventSourceMessageReceived: {
302
+ let entry = entries.get(ev.requestId);
303
+ if (!entry) {
304
+ entry = {
305
+ requestId: ev.requestId,
306
+ url: '',
307
+ resourceType: NetworkResourceType.EventSource,
308
+ isEventSource: true,
309
+ state: NetworkEntryState.Pending,
310
+ startTs: ev.ts,
311
+ frames: [],
312
+ };
313
+ this.upsertEntry(targetId, target, ev.requestId, entry);
314
+ }
315
+ if (!entry.frames)
316
+ entry.frames = [];
317
+ if (!entry.isEventSource)
318
+ entry.isEventSource = true;
319
+ const rawPayload = (ev.eventName ? ev.eventName + ': ' : '') + ev.data;
320
+ const frame = {
321
+ direction: WebSocketDirection.Received,
322
+ opcode: WebSocketOpcode.Text,
323
+ ts: ev.ts,
324
+ size: Buffer.byteLength(ev.data),
325
+ payload: rawPayload.slice(0, PAYLOAD_CAP),
326
+ };
327
+ entry.frames.push(frame);
328
+ if (entry.frames.length > FRAME_RING)
329
+ entry.frames.shift();
330
+ this.notify(targetId, target, entry);
331
+ break;
332
+ }
333
+ }
334
+ }
335
+ }
336
+ //# sourceMappingURL=network-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-stream.js","sourceRoot":"","sources":["../../src/cdp/network-stream.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/cdp/transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAMjB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAoBhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBpE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQ9E;AAsKD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBhG;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,WAAW,CAAC,CA4NtB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/cdp/transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAOjB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAoBhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBpE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQ9E;AAgWD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBhG;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,WAAW,CAAC,CAgOtB"}
@@ -1,6 +1,6 @@
1
1
  // @ts-expect-error no types available for chrome-remote-interface
2
2
  import CDP from 'chrome-remote-interface';
3
- import { TargetType, ConsoleLevel, ConsoleSource, EvaluationError, MouseButton, } from './types.js';
3
+ import { TargetType, ConsoleLevel, ConsoleSource, EvaluationError, MouseButton, NetworkEventKind, NetworkResourceType, } from './types.js';
4
4
  // CDP hosts to try: IPv4 first, then IPv6 (WebView2/Tauri often listens on ::1)
5
5
  const CDP_HOSTS = ['127.0.0.1', '::1'];
6
6
  // Maps targetId → host for connection routing
@@ -140,6 +140,157 @@ function attachConsoleSubscription(client) {
140
140
  },
141
141
  };
142
142
  }
143
+ const CDP_RESOURCE_TYPE_MAP = {
144
+ Document: NetworkResourceType.Document,
145
+ Stylesheet: NetworkResourceType.Stylesheet,
146
+ Image: NetworkResourceType.Image,
147
+ Media: NetworkResourceType.Media,
148
+ Font: NetworkResourceType.Font,
149
+ Script: NetworkResourceType.Script,
150
+ TextTrack: NetworkResourceType.TextTrack,
151
+ XHR: NetworkResourceType.Xhr,
152
+ Fetch: NetworkResourceType.Fetch,
153
+ EventSource: NetworkResourceType.EventSource,
154
+ WebSocket: NetworkResourceType.WebSocket,
155
+ Manifest: NetworkResourceType.Manifest,
156
+ Ping: NetworkResourceType.Ping,
157
+ Other: NetworkResourceType.Other,
158
+ };
159
+ function toResourceType(raw) {
160
+ return (typeof raw === 'string' && CDP_RESOURCE_TYPE_MAP[raw]) || NetworkResourceType.Other;
161
+ }
162
+ function toStringRecord(raw) {
163
+ if (raw && typeof raw === 'object' && !Array.isArray(raw)) {
164
+ return raw;
165
+ }
166
+ return {};
167
+ }
168
+ function str(v) { return typeof v === 'string' ? v : ''; }
169
+ function num(v) { return typeof v === 'number' ? v : 0; }
170
+ function bool(v) { return typeof v === 'boolean' ? v : false; }
171
+ function attachNetworkSubscription(network) {
172
+ const handlers = new Set();
173
+ let networkEnabled = false;
174
+ const emit = (ev) => {
175
+ for (const h of handlers) {
176
+ try {
177
+ h(ev);
178
+ }
179
+ catch { /* ignore */ }
180
+ }
181
+ };
182
+ network.requestWillBeSent((p) => {
183
+ emit({
184
+ kind: NetworkEventKind.RequestWillBeSent,
185
+ requestId: str(p['requestId']),
186
+ ts: Date.now(),
187
+ url: str(p['request']?.['url'] ?? p['documentURL']),
188
+ method: str(p['request']?.['method']),
189
+ resourceType: toResourceType(p['type']),
190
+ headers: toStringRecord(p['request']?.['headers']),
191
+ postData: typeof p['request']?.['postData'] === 'string'
192
+ ? str(p['request']['postData'])
193
+ : undefined,
194
+ });
195
+ });
196
+ network.responseReceived((p) => {
197
+ const response = p['response'] ?? {};
198
+ emit({
199
+ kind: NetworkEventKind.ResponseReceived,
200
+ requestId: str(p['requestId']),
201
+ ts: Date.now(),
202
+ status: num(response['status']),
203
+ statusText: str(response['statusText']),
204
+ headers: toStringRecord(response['headers']),
205
+ mimeType: str(response['mimeType']),
206
+ resourceType: toResourceType(p['type']),
207
+ });
208
+ });
209
+ network.loadingFinished((p) => {
210
+ emit({
211
+ kind: NetworkEventKind.LoadingFinished,
212
+ requestId: str(p['requestId']),
213
+ ts: Date.now(),
214
+ encodedDataLength: num(p['encodedDataLength']),
215
+ });
216
+ });
217
+ network.loadingFailed((p) => {
218
+ emit({
219
+ kind: NetworkEventKind.LoadingFailed,
220
+ requestId: str(p['requestId']),
221
+ ts: Date.now(),
222
+ errorText: str(p['errorText']),
223
+ canceled: bool(p['canceled']),
224
+ resourceType: toResourceType(p['type']),
225
+ });
226
+ });
227
+ network.webSocketCreated((p) => {
228
+ emit({
229
+ kind: NetworkEventKind.WebSocketCreated,
230
+ requestId: str(p['requestId']),
231
+ ts: Date.now(),
232
+ url: str(p['url']),
233
+ });
234
+ });
235
+ network.webSocketFrameSent((p) => {
236
+ const frame = p['response'] ?? {};
237
+ emit({
238
+ kind: NetworkEventKind.WebSocketFrameSent,
239
+ requestId: str(p['requestId']),
240
+ ts: Date.now(),
241
+ opcode: num(frame['opcode']),
242
+ payloadData: str(frame['payloadData']),
243
+ });
244
+ });
245
+ network.webSocketFrameReceived((p) => {
246
+ const frame = p['response'] ?? {};
247
+ emit({
248
+ kind: NetworkEventKind.WebSocketFrameReceived,
249
+ requestId: str(p['requestId']),
250
+ ts: Date.now(),
251
+ opcode: num(frame['opcode']),
252
+ payloadData: str(frame['payloadData']),
253
+ });
254
+ });
255
+ network.webSocketFrameError((p) => {
256
+ emit({
257
+ kind: NetworkEventKind.WebSocketFrameError,
258
+ requestId: str(p['requestId']),
259
+ ts: Date.now(),
260
+ errorMessage: str(p['errorMessage']),
261
+ });
262
+ });
263
+ network.webSocketClosed((p) => {
264
+ emit({
265
+ kind: NetworkEventKind.WebSocketClosed,
266
+ requestId: str(p['requestId']),
267
+ ts: Date.now(),
268
+ });
269
+ });
270
+ network.eventSourceMessageReceived((p) => {
271
+ emit({
272
+ kind: NetworkEventKind.EventSourceMessageReceived,
273
+ requestId: str(p['requestId']),
274
+ ts: Date.now(),
275
+ eventName: str(p['eventName']),
276
+ data: str(p['data']),
277
+ messageId: str(p['eventId']),
278
+ });
279
+ });
280
+ return {
281
+ add(handler) {
282
+ handlers.add(handler);
283
+ return () => handlers.delete(handler);
284
+ },
285
+ async enable() {
286
+ if (networkEnabled)
287
+ return;
288
+ networkEnabled = true;
289
+ await network.enable();
290
+ },
291
+ getResponseBody: (requestId) => network.getResponseBody({ requestId }),
292
+ };
293
+ }
143
294
  async function evaluateImpl(client, expression, opts) {
144
295
  const returnByValue = opts?.returnByValue ?? true;
145
296
  const awaitPromise = opts?.awaitPromise ?? false;
@@ -170,12 +321,16 @@ export async function connectToRuntime(port, target) {
170
321
  const client = await openClient(port, target);
171
322
  // Subscribe BEFORE enable so we catch buffered messages emitted at enable-time.
172
323
  const consoleSub = attachConsoleSubscription(client);
324
+ const networkSub = attachNetworkSubscription(client.Network);
173
325
  await client.Runtime.enable();
174
326
  await client.Log.enable();
175
327
  return {
176
328
  target,
177
329
  evaluate: (expression, opts) => evaluateImpl(client, expression, opts),
178
330
  onConsole: (handler) => consoleSub.add(handler),
331
+ onNetwork: (handler) => networkSub.add(handler),
332
+ enableNetwork: () => networkSub.enable(),
333
+ getResponseBody: (requestId) => networkSub.getResponseBody(requestId),
179
334
  async close() {
180
335
  await client.close();
181
336
  },
@@ -194,6 +349,7 @@ export async function connectToPage(port, target, cache) {
194
349
  const cacheKey = `${port}:${target.id}`;
195
350
  // Subscribe BEFORE enable so we catch buffered console/log entries emitted at enable-time.
196
351
  const consoleSub = attachConsoleSubscription(client);
352
+ const networkSub = attachNetworkSubscription(client.Network);
197
353
  await Page.enable();
198
354
  await DOM.enable();
199
355
  await Accessibility.enable();
@@ -272,6 +428,9 @@ export async function connectToPage(port, target, cache) {
272
428
  target,
273
429
  evaluate: (expression, opts) => evaluateImpl(client, expression, opts),
274
430
  onConsole: (handler) => consoleSub.add(handler),
431
+ onNetwork: (handler) => networkSub.add(handler),
432
+ enableNetwork: () => networkSub.enable(),
433
+ getResponseBody: (requestId) => networkSub.getResponseBody(requestId),
275
434
  async getAccessibilityTree() {
276
435
  const cached = cache.get(cacheKey);
277
436
  if (cached)
@@ -361,13 +520,13 @@ export async function connectToPage(port, target, cache) {
361
520
  await DOM.focus({ backendNodeId });
362
521
  await Runtime.callFunctionOn({
363
522
  objectId: object.objectId,
364
- functionDeclaration: `function(val) {
365
- const nativeSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set
366
- || Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value')?.set;
367
- if (nativeSetter) nativeSetter.call(this, val);
368
- else this.value = val;
369
- this.dispatchEvent(new Event('input', { bubbles: true }));
370
- this.dispatchEvent(new Event('change', { bubbles: true }));
523
+ functionDeclaration: `function(val) {
524
+ const nativeSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set
525
+ || Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value')?.set;
526
+ if (nativeSetter) nativeSetter.call(this, val);
527
+ else this.value = val;
528
+ this.dispatchEvent(new Event('input', { bubbles: true }));
529
+ this.dispatchEvent(new Event('change', { bubbles: true }));
371
530
  }`,
372
531
  arguments: [{ value }],
373
532
  });