@cogitator-ai/browser 0.1.2

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 (106) hide show
  1. package/README.md +329 -0
  2. package/dist/__tests__/browser-tools.test.d.ts +2 -0
  3. package/dist/__tests__/browser-tools.test.d.ts.map +1 -0
  4. package/dist/__tests__/browser-tools.test.js +120 -0
  5. package/dist/__tests__/browser-tools.test.js.map +1 -0
  6. package/dist/__tests__/extraction.test.d.ts +2 -0
  7. package/dist/__tests__/extraction.test.d.ts.map +1 -0
  8. package/dist/__tests__/extraction.test.js +267 -0
  9. package/dist/__tests__/extraction.test.js.map +1 -0
  10. package/dist/__tests__/interaction.test.d.ts +2 -0
  11. package/dist/__tests__/interaction.test.d.ts.map +1 -0
  12. package/dist/__tests__/interaction.test.js +376 -0
  13. package/dist/__tests__/interaction.test.js.map +1 -0
  14. package/dist/__tests__/navigation.test.d.ts +2 -0
  15. package/dist/__tests__/navigation.test.d.ts.map +1 -0
  16. package/dist/__tests__/navigation.test.js +235 -0
  17. package/dist/__tests__/navigation.test.js.map +1 -0
  18. package/dist/__tests__/network.test.d.ts +2 -0
  19. package/dist/__tests__/network.test.d.ts.map +1 -0
  20. package/dist/__tests__/network.test.js +508 -0
  21. package/dist/__tests__/network.test.js.map +1 -0
  22. package/dist/__tests__/page-helpers.test.d.ts +2 -0
  23. package/dist/__tests__/page-helpers.test.d.ts.map +1 -0
  24. package/dist/__tests__/page-helpers.test.js +321 -0
  25. package/dist/__tests__/page-helpers.test.js.map +1 -0
  26. package/dist/__tests__/schemas.test.d.ts +2 -0
  27. package/dist/__tests__/schemas.test.d.ts.map +1 -0
  28. package/dist/__tests__/schemas.test.js +518 -0
  29. package/dist/__tests__/schemas.test.js.map +1 -0
  30. package/dist/__tests__/selectors.test.d.ts +2 -0
  31. package/dist/__tests__/selectors.test.d.ts.map +1 -0
  32. package/dist/__tests__/selectors.test.js +157 -0
  33. package/dist/__tests__/selectors.test.js.map +1 -0
  34. package/dist/__tests__/session.test.d.ts +2 -0
  35. package/dist/__tests__/session.test.d.ts.map +1 -0
  36. package/dist/__tests__/session.test.js +325 -0
  37. package/dist/__tests__/session.test.js.map +1 -0
  38. package/dist/__tests__/stealth.test.d.ts +2 -0
  39. package/dist/__tests__/stealth.test.d.ts.map +1 -0
  40. package/dist/__tests__/stealth.test.js +353 -0
  41. package/dist/__tests__/stealth.test.js.map +1 -0
  42. package/dist/__tests__/vision.test.d.ts +2 -0
  43. package/dist/__tests__/vision.test.d.ts.map +1 -0
  44. package/dist/__tests__/vision.test.js +226 -0
  45. package/dist/__tests__/vision.test.js.map +1 -0
  46. package/dist/index.d.ts +10 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +8 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/session.d.ts +29 -0
  51. package/dist/session.d.ts.map +1 -0
  52. package/dist/session.js +190 -0
  53. package/dist/session.js.map +1 -0
  54. package/dist/stealth/evasions.d.ts +2 -0
  55. package/dist/stealth/evasions.d.ts.map +1 -0
  56. package/dist/stealth/evasions.js +83 -0
  57. package/dist/stealth/evasions.js.map +1 -0
  58. package/dist/stealth/human-like.d.ts +5 -0
  59. package/dist/stealth/human-like.d.ts.map +1 -0
  60. package/dist/stealth/human-like.js +52 -0
  61. package/dist/stealth/human-like.js.map +1 -0
  62. package/dist/stealth/index.d.ts +8 -0
  63. package/dist/stealth/index.d.ts.map +1 -0
  64. package/dist/stealth/index.js +24 -0
  65. package/dist/stealth/index.js.map +1 -0
  66. package/dist/stealth/user-agents.d.ts +3 -0
  67. package/dist/stealth/user-agents.d.ts.map +1 -0
  68. package/dist/stealth/user-agents.js +55 -0
  69. package/dist/stealth/user-agents.js.map +1 -0
  70. package/dist/tools/extraction.d.ts +96 -0
  71. package/dist/tools/extraction.d.ts.map +1 -0
  72. package/dist/tools/extraction.js +196 -0
  73. package/dist/tools/extraction.js.map +1 -0
  74. package/dist/tools/index.d.ts +15 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +40 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/interaction.d.ts +128 -0
  79. package/dist/tools/interaction.d.ts.map +1 -0
  80. package/dist/tools/interaction.js +229 -0
  81. package/dist/tools/interaction.js.map +1 -0
  82. package/dist/tools/navigation.d.ts +63 -0
  83. package/dist/tools/navigation.d.ts.map +1 -0
  84. package/dist/tools/navigation.js +140 -0
  85. package/dist/tools/navigation.js.map +1 -0
  86. package/dist/tools/network.d.ts +122 -0
  87. package/dist/tools/network.d.ts.map +1 -0
  88. package/dist/tools/network.js +223 -0
  89. package/dist/tools/network.js.map +1 -0
  90. package/dist/tools/vision.d.ts +83 -0
  91. package/dist/tools/vision.d.ts.map +1 -0
  92. package/dist/tools/vision.js +134 -0
  93. package/dist/tools/vision.js.map +1 -0
  94. package/dist/utils/page-helpers.d.ts +11 -0
  95. package/dist/utils/page-helpers.d.ts.map +1 -0
  96. package/dist/utils/page-helpers.js +73 -0
  97. package/dist/utils/page-helpers.js.map +1 -0
  98. package/dist/utils/schemas.d.ts +209 -0
  99. package/dist/utils/schemas.d.ts.map +1 -0
  100. package/dist/utils/schemas.js +156 -0
  101. package/dist/utils/schemas.js.map +1 -0
  102. package/dist/utils/selectors.d.ts +4 -0
  103. package/dist/utils/selectors.d.ts.map +1 -0
  104. package/dist/utils/selectors.js +39 -0
  105. package/dist/utils/selectors.js.map +1 -0
  106. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.test.js","sourceRoot":"","sources":["../../src/__tests__/navigation.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=network.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/network.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,508 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { createWaitForResponseTool, createCaptureHarTool, createNetworkTools, } from '../tools/network.js';
3
+ function createMockSession() {
4
+ const listeners = new Map();
5
+ const routes = new Map();
6
+ const mockPage = {
7
+ route: vi.fn().mockImplementation(async (pattern, handler) => {
8
+ routes.set(pattern, handler);
9
+ }),
10
+ unroute: vi.fn().mockImplementation(async (pattern) => {
11
+ routes.delete(pattern);
12
+ }),
13
+ waitForResponse: vi.fn().mockResolvedValue({
14
+ url: () => 'https://api.example.com/data',
15
+ status: () => 200,
16
+ headers: () => ({ 'content-type': 'application/json' }),
17
+ text: () => Promise.resolve('{"data": true}'),
18
+ }),
19
+ on: vi.fn().mockImplementation((event, handler) => {
20
+ const list = listeners.get(event) ?? [];
21
+ list.push(handler);
22
+ listeners.set(event, list);
23
+ }),
24
+ removeListener: vi.fn().mockImplementation((event, handler) => {
25
+ const list = listeners.get(event) ?? [];
26
+ listeners.set(event, list.filter((h) => h !== handler));
27
+ }),
28
+ };
29
+ return {
30
+ session: { page: mockPage },
31
+ mockPage,
32
+ listeners,
33
+ routes,
34
+ };
35
+ }
36
+ const dummyContext = {
37
+ agentId: 'test',
38
+ runId: 'test-run',
39
+ signal: new AbortController().signal,
40
+ };
41
+ describe('network tools', () => {
42
+ let session;
43
+ let mockPage;
44
+ let listeners;
45
+ let routes;
46
+ beforeEach(() => {
47
+ const mock = createMockSession();
48
+ session = mock.session;
49
+ mockPage = mock.mockPage;
50
+ listeners = mock.listeners;
51
+ routes = mock.routes;
52
+ });
53
+ describe('createInterceptRequestTool', () => {
54
+ it('has correct shape', () => {
55
+ const tools = createNetworkTools(session);
56
+ const t = tools[0];
57
+ expect(t.name).toBe('browser_intercept_request');
58
+ expect(t.description).toBeTruthy();
59
+ expect(t.category).toBe('web');
60
+ expect(t.tags).toContain('browser');
61
+ expect(t.tags).toContain('network');
62
+ expect(typeof t.execute).toBe('function');
63
+ expect(typeof t.toJSON).toBe('function');
64
+ });
65
+ it('serializes to JSON schema', () => {
66
+ const tools = createNetworkTools(session);
67
+ const json = tools[0].toJSON();
68
+ expect(json.name).toBe('browser_intercept_request');
69
+ expect(json.parameters.type).toBe('object');
70
+ expect(json.parameters.properties).toHaveProperty('urlPattern');
71
+ expect(json.parameters.properties).toHaveProperty('action');
72
+ });
73
+ it('blocks matching requests', async () => {
74
+ const tools = createNetworkTools(session);
75
+ const t = tools[0];
76
+ const result = await t.execute({ urlPattern: '**/ads/**', action: 'block' }, dummyContext);
77
+ expect(result.interceptorId).toBe('interceptor_1');
78
+ expect(mockPage.route).toHaveBeenCalledWith('**/ads/**', expect.any(Function));
79
+ const handler = routes.get('**/ads/**');
80
+ const mockRoute = { abort: vi.fn(), continue: vi.fn() };
81
+ await handler(mockRoute);
82
+ expect(mockRoute.abort).toHaveBeenCalled();
83
+ expect(mockRoute.continue).not.toHaveBeenCalled();
84
+ });
85
+ it('modifies matching requests with headers, body, url', async () => {
86
+ const tools = createNetworkTools(session);
87
+ const t = tools[0];
88
+ await t.execute({
89
+ urlPattern: '**/api/**',
90
+ action: 'modify',
91
+ modify: {
92
+ headers: { Authorization: 'Bearer token' },
93
+ body: '{"modified": true}',
94
+ url: 'https://new-api.example.com/data',
95
+ },
96
+ }, dummyContext);
97
+ const handler = routes.get('**/api/**');
98
+ const mockRoute = { abort: vi.fn(), continue: vi.fn() };
99
+ await handler(mockRoute);
100
+ expect(mockRoute.continue).toHaveBeenCalledWith({
101
+ headers: { Authorization: 'Bearer token' },
102
+ postData: '{"modified": true}',
103
+ url: 'https://new-api.example.com/data',
104
+ });
105
+ });
106
+ it('continues requests when action is continue', async () => {
107
+ const tools = createNetworkTools(session);
108
+ const t = tools[0];
109
+ await t.execute({ urlPattern: '**/*', action: 'continue' }, dummyContext);
110
+ const handler = routes.get('**/*');
111
+ const mockRoute = { abort: vi.fn(), continue: vi.fn() };
112
+ await handler(mockRoute);
113
+ expect(mockRoute.continue).toHaveBeenCalledWith();
114
+ });
115
+ it('increments interceptor IDs', async () => {
116
+ const tools = createNetworkTools(session);
117
+ const t = tools[0];
118
+ const r1 = await t.execute({ urlPattern: '/a', action: 'block' }, dummyContext);
119
+ const r2 = await t.execute({ urlPattern: '/b', action: 'block' }, dummyContext);
120
+ expect(r1.interceptorId).toBe('interceptor_1');
121
+ expect(r2.interceptorId).toBe('interceptor_2');
122
+ });
123
+ });
124
+ describe('createWaitForResponseTool', () => {
125
+ it('has correct shape', () => {
126
+ const t = createWaitForResponseTool(session);
127
+ expect(t.name).toBe('browser_wait_for_response');
128
+ expect(t.category).toBe('web');
129
+ expect(t.tags).toContain('browser');
130
+ expect(t.tags).toContain('network');
131
+ });
132
+ it('returns url, status, headers, body', async () => {
133
+ const t = createWaitForResponseTool(session);
134
+ const result = await t.execute({ urlPattern: 'api.example.com' }, dummyContext);
135
+ expect(result).toEqual({
136
+ url: 'https://api.example.com/data',
137
+ status: 200,
138
+ headers: { 'content-type': 'application/json' },
139
+ body: '{"data": true}',
140
+ });
141
+ });
142
+ it('passes timeout to waitForResponse', async () => {
143
+ const t = createWaitForResponseTool(session);
144
+ await t.execute({ urlPattern: 'api.example.com', timeout: 5000 }, dummyContext);
145
+ expect(mockPage.waitForResponse).toHaveBeenCalledWith(expect.any(Function), {
146
+ timeout: 5000,
147
+ });
148
+ });
149
+ it('uses url predicate that checks includes', async () => {
150
+ const t = createWaitForResponseTool(session);
151
+ await t.execute({ urlPattern: 'api.example' }, dummyContext);
152
+ const predicate = mockPage.waitForResponse.mock.calls[0][0];
153
+ expect(predicate({ url: () => 'https://api.example.com/data' })).toBe(true);
154
+ expect(predicate({ url: () => 'https://other.com/data' })).toBe(false);
155
+ });
156
+ it('returns empty body when text() throws', async () => {
157
+ mockPage.waitForResponse.mockResolvedValueOnce({
158
+ url: () => 'https://api.example.com/binary',
159
+ status: () => 200,
160
+ headers: () => ({}),
161
+ text: () => Promise.reject(new Error('not text')),
162
+ });
163
+ const t = createWaitForResponseTool(session);
164
+ const result = await t.execute({ urlPattern: 'api.example.com' }, dummyContext);
165
+ expect(result.body).toBe('');
166
+ });
167
+ });
168
+ describe('createBlockResourcesTool', () => {
169
+ it('has correct shape', () => {
170
+ const tools = createNetworkTools(session);
171
+ const t = tools[2];
172
+ expect(t.name).toBe('browser_block_resources');
173
+ expect(t.category).toBe('web');
174
+ expect(t.tags).toContain('network');
175
+ });
176
+ it('sets up route for resource blocking', async () => {
177
+ const tools = createNetworkTools(session);
178
+ const t = tools[2];
179
+ const result = await t.execute({ types: ['image', 'stylesheet'] }, dummyContext);
180
+ expect(result.blocking).toBe(true);
181
+ expect(result.types).toEqual(['image', 'stylesheet']);
182
+ expect(result.interceptorId).toBeTruthy();
183
+ expect(mockPage.route).toHaveBeenCalledWith('**/*', expect.any(Function));
184
+ });
185
+ it('aborts blocked resource types', async () => {
186
+ const tools = createNetworkTools(session);
187
+ const t = tools[2];
188
+ await t.execute({ types: ['image', 'font'] }, dummyContext);
189
+ const handler = routes.get('**/*');
190
+ const imageRoute = {
191
+ request: () => ({ resourceType: () => 'image' }),
192
+ abort: vi.fn(),
193
+ continue: vi.fn(),
194
+ };
195
+ await handler(imageRoute);
196
+ expect(imageRoute.abort).toHaveBeenCalled();
197
+ const fontRoute = {
198
+ request: () => ({ resourceType: () => 'font' }),
199
+ abort: vi.fn(),
200
+ continue: vi.fn(),
201
+ };
202
+ await handler(fontRoute);
203
+ expect(fontRoute.abort).toHaveBeenCalled();
204
+ });
205
+ it('continues non-blocked resource types', async () => {
206
+ const tools = createNetworkTools(session);
207
+ const t = tools[2];
208
+ await t.execute({ types: ['image'] }, dummyContext);
209
+ const handler = routes.get('**/*');
210
+ const docRoute = {
211
+ request: () => ({ resourceType: () => 'document' }),
212
+ abort: vi.fn(),
213
+ continue: vi.fn(),
214
+ };
215
+ await handler(docRoute);
216
+ expect(docRoute.continue).toHaveBeenCalled();
217
+ expect(docRoute.abort).not.toHaveBeenCalled();
218
+ });
219
+ });
220
+ describe('createCaptureHarTool', () => {
221
+ it('has correct shape', () => {
222
+ const t = createCaptureHarTool(session);
223
+ expect(t.name).toBe('browser_capture_har');
224
+ expect(t.category).toBe('web');
225
+ expect(t.tags).toContain('network');
226
+ });
227
+ it('starts capture and registers listener', async () => {
228
+ const t = createCaptureHarTool(session);
229
+ const result = await t.execute({ action: 'start' }, dummyContext);
230
+ expect(result).toEqual({ capturing: true, entries: 0 });
231
+ expect(mockPage.on).toHaveBeenCalledWith('response', expect.any(Function));
232
+ });
233
+ it('stops capture and returns entries', async () => {
234
+ const t = createCaptureHarTool(session);
235
+ await t.execute({ action: 'start' }, dummyContext);
236
+ const responseHandlers = listeners.get('response') ?? [];
237
+ const handler = responseHandlers[responseHandlers.length - 1];
238
+ await handler({
239
+ request: () => ({
240
+ url: () => 'https://api.example.com/users',
241
+ method: () => 'GET',
242
+ headers: () => ({ accept: 'application/json' }),
243
+ timing: () => ({ responseEnd: 150 }),
244
+ }),
245
+ status: () => 200,
246
+ headers: () => ({ 'content-type': 'application/json' }),
247
+ text: () => Promise.resolve('[]'),
248
+ });
249
+ const result = await t.execute({ action: 'stop' }, dummyContext);
250
+ expect(result.capturing).toBe(false);
251
+ expect(result.entries).toBe(1);
252
+ expect(result.har).toHaveLength(1);
253
+ expect(result.har[0]).toEqual({
254
+ url: 'https://api.example.com/users',
255
+ method: 'GET',
256
+ status: 200,
257
+ timing: 150,
258
+ requestHeaders: { accept: 'application/json' },
259
+ responseHeaders: { 'content-type': 'application/json' },
260
+ responseBody: '[]',
261
+ });
262
+ });
263
+ it('removes listener on stop', async () => {
264
+ const t = createCaptureHarTool(session);
265
+ await t.execute({ action: 'start' }, dummyContext);
266
+ await t.execute({ action: 'stop' }, dummyContext);
267
+ expect(mockPage.removeListener).toHaveBeenCalledWith('response', expect.any(Function));
268
+ });
269
+ it('clears entries after stop', async () => {
270
+ const t = createCaptureHarTool(session);
271
+ await t.execute({ action: 'start' }, dummyContext);
272
+ const responseHandlers = listeners.get('response') ?? [];
273
+ const handler = responseHandlers[responseHandlers.length - 1];
274
+ await handler({
275
+ request: () => ({
276
+ url: () => 'https://example.com',
277
+ method: () => 'GET',
278
+ headers: () => ({}),
279
+ timing: () => ({}),
280
+ }),
281
+ status: () => 200,
282
+ headers: () => ({}),
283
+ text: () => Promise.resolve(''),
284
+ });
285
+ await t.execute({ action: 'stop' }, dummyContext);
286
+ await t.execute({ action: 'start' }, dummyContext);
287
+ const result2 = await t.execute({ action: 'stop' }, dummyContext);
288
+ expect(result2.entries).toBe(0);
289
+ });
290
+ it('handles timing with no responseEnd', async () => {
291
+ const t = createCaptureHarTool(session);
292
+ await t.execute({ action: 'start' }, dummyContext);
293
+ const responseHandlers = listeners.get('response') ?? [];
294
+ const handler = responseHandlers[responseHandlers.length - 1];
295
+ await handler({
296
+ request: () => ({
297
+ url: () => 'https://example.com',
298
+ method: () => 'GET',
299
+ headers: () => ({}),
300
+ timing: () => ({}),
301
+ }),
302
+ status: () => 200,
303
+ headers: () => ({}),
304
+ text: () => Promise.resolve(''),
305
+ });
306
+ const result = await t.execute({ action: 'stop' }, dummyContext);
307
+ expect(result.har[0].timing).toBe(0);
308
+ });
309
+ });
310
+ describe('createGetApiCallsTool', () => {
311
+ it('has correct shape', () => {
312
+ const tools = createNetworkTools(session);
313
+ const t = tools[4];
314
+ expect(t.name).toBe('browser_get_api_calls');
315
+ expect(t.category).toBe('web');
316
+ expect(t.tags).toContain('network');
317
+ });
318
+ it('starts listening and returns empty calls initially', async () => {
319
+ const tools = createNetworkTools(session);
320
+ const t = tools[4];
321
+ const result = await t.execute({}, dummyContext);
322
+ expect(result.calls).toEqual([]);
323
+ expect(mockPage.on).toHaveBeenCalledWith('response', expect.any(Function));
324
+ });
325
+ it('captures xhr/fetch calls', async () => {
326
+ const tools = createNetworkTools(session);
327
+ const t = tools[4];
328
+ await t.execute({}, dummyContext);
329
+ const responseHandlers = listeners.get('response') ?? [];
330
+ const handler = responseHandlers[responseHandlers.length - 1];
331
+ await handler({
332
+ request: () => ({
333
+ url: () => 'https://api.example.com/users',
334
+ method: () => 'GET',
335
+ resourceType: () => 'xhr',
336
+ headers: () => ({ accept: 'application/json' }),
337
+ }),
338
+ status: () => 200,
339
+ headers: () => ({ 'content-type': 'application/json' }),
340
+ });
341
+ await handler({
342
+ request: () => ({
343
+ url: () => 'https://api.example.com/posts',
344
+ method: () => 'POST',
345
+ resourceType: () => 'fetch',
346
+ headers: () => ({}),
347
+ }),
348
+ status: () => 201,
349
+ headers: () => ({}),
350
+ });
351
+ await handler({
352
+ request: () => ({
353
+ url: () => 'https://example.com/style.css',
354
+ method: () => 'GET',
355
+ resourceType: () => 'stylesheet',
356
+ headers: () => ({}),
357
+ }),
358
+ status: () => 200,
359
+ headers: () => ({}),
360
+ });
361
+ const result = await t.execute({}, dummyContext);
362
+ expect(result.calls).toHaveLength(2);
363
+ expect(result.calls[0].url).toBe('https://api.example.com/users');
364
+ expect(result.calls[1].url).toBe('https://api.example.com/posts');
365
+ });
366
+ it('filters by urlPattern', async () => {
367
+ const tools = createNetworkTools(session);
368
+ const t = tools[4];
369
+ await t.execute({}, dummyContext);
370
+ const responseHandlers = listeners.get('response') ?? [];
371
+ const handler = responseHandlers[responseHandlers.length - 1];
372
+ await handler({
373
+ request: () => ({
374
+ url: () => 'https://api.example.com/users',
375
+ method: () => 'GET',
376
+ resourceType: () => 'xhr',
377
+ headers: () => ({}),
378
+ }),
379
+ status: () => 200,
380
+ headers: () => ({}),
381
+ });
382
+ await handler({
383
+ request: () => ({
384
+ url: () => 'https://api.example.com/posts',
385
+ method: () => 'GET',
386
+ resourceType: () => 'fetch',
387
+ headers: () => ({}),
388
+ }),
389
+ status: () => 200,
390
+ headers: () => ({}),
391
+ });
392
+ const result = await t.execute({ urlPattern: '/users' }, dummyContext);
393
+ expect(result.calls).toHaveLength(1);
394
+ expect(result.calls[0].url).toContain('/users');
395
+ });
396
+ it('filters by method', async () => {
397
+ const tools = createNetworkTools(session);
398
+ const t = tools[4];
399
+ await t.execute({}, dummyContext);
400
+ const responseHandlers = listeners.get('response') ?? [];
401
+ const handler = responseHandlers[responseHandlers.length - 1];
402
+ await handler({
403
+ request: () => ({
404
+ url: () => 'https://api.example.com/data',
405
+ method: () => 'GET',
406
+ resourceType: () => 'xhr',
407
+ headers: () => ({}),
408
+ }),
409
+ status: () => 200,
410
+ headers: () => ({}),
411
+ });
412
+ await handler({
413
+ request: () => ({
414
+ url: () => 'https://api.example.com/data',
415
+ method: () => 'POST',
416
+ resourceType: () => 'fetch',
417
+ headers: () => ({}),
418
+ }),
419
+ status: () => 201,
420
+ headers: () => ({}),
421
+ });
422
+ const result = await t.execute({ method: 'post' }, dummyContext);
423
+ expect(result.calls).toHaveLength(1);
424
+ expect(result.calls[0].method).toBe('POST');
425
+ });
426
+ it('filters by both urlPattern and method', async () => {
427
+ const tools = createNetworkTools(session);
428
+ const t = tools[4];
429
+ await t.execute({}, dummyContext);
430
+ const responseHandlers = listeners.get('response') ?? [];
431
+ const handler = responseHandlers[responseHandlers.length - 1];
432
+ await handler({
433
+ request: () => ({
434
+ url: () => 'https://api.example.com/users',
435
+ method: () => 'GET',
436
+ resourceType: () => 'xhr',
437
+ headers: () => ({}),
438
+ }),
439
+ status: () => 200,
440
+ headers: () => ({}),
441
+ });
442
+ await handler({
443
+ request: () => ({
444
+ url: () => 'https://api.example.com/users',
445
+ method: () => 'POST',
446
+ resourceType: () => 'fetch',
447
+ headers: () => ({}),
448
+ }),
449
+ status: () => 201,
450
+ headers: () => ({}),
451
+ });
452
+ await handler({
453
+ request: () => ({
454
+ url: () => 'https://api.example.com/posts',
455
+ method: () => 'POST',
456
+ resourceType: () => 'fetch',
457
+ headers: () => ({}),
458
+ }),
459
+ status: () => 201,
460
+ headers: () => ({}),
461
+ });
462
+ const result = await t.execute({ urlPattern: '/users', method: 'POST' }, dummyContext);
463
+ expect(result.calls).toHaveLength(1);
464
+ expect(result.calls[0].url).toContain('/users');
465
+ expect(result.calls[0].method).toBe('POST');
466
+ });
467
+ });
468
+ describe('createNetworkTools', () => {
469
+ it('returns all 5 tools', () => {
470
+ const tools = createNetworkTools(session);
471
+ expect(tools).toHaveLength(5);
472
+ });
473
+ it('all tools have unique names', () => {
474
+ const tools = createNetworkTools(session);
475
+ const names = tools.map((t) => t.name);
476
+ expect(new Set(names).size).toBe(5);
477
+ });
478
+ it('tools are in expected order', () => {
479
+ const tools = createNetworkTools(session);
480
+ expect(tools[0].name).toBe('browser_intercept_request');
481
+ expect(tools[1].name).toBe('browser_wait_for_response');
482
+ expect(tools[2].name).toBe('browser_block_resources');
483
+ expect(tools[3].name).toBe('browser_capture_har');
484
+ expect(tools[4].name).toBe('browser_get_api_calls');
485
+ });
486
+ it('all tools have web category', () => {
487
+ const tools = createNetworkTools(session);
488
+ for (const t of tools) {
489
+ expect(t.category).toBe('web');
490
+ }
491
+ });
492
+ it('all tools have network tag', () => {
493
+ const tools = createNetworkTools(session);
494
+ for (const t of tools) {
495
+ expect(t.tags).toContain('network');
496
+ }
497
+ });
498
+ it('all tools serialize to JSON', () => {
499
+ const tools = createNetworkTools(session);
500
+ for (const t of tools) {
501
+ const json = t.toJSON();
502
+ expect(json.name).toBe(t.name);
503
+ expect(json.parameters.type).toBe('object');
504
+ }
505
+ });
506
+ });
507
+ });
508
+ //# sourceMappingURL=network.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.test.js","sourceRoot":"","sources":["../../src/__tests__/network.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=page-helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-helpers.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/page-helpers.test.ts"],"names":[],"mappings":""}