@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,63 @@
1
+ import type { BrowserSession } from '../session.js';
2
+ export declare function createNavigateTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
3
+ url: string;
4
+ waitUntil?: "load" | "domcontentloaded" | "networkidle" | "commit" | undefined;
5
+ }, {
6
+ url: string;
7
+ title: string;
8
+ status: number;
9
+ }>;
10
+ export declare function createGoBackTool(session: BrowserSession): import("@cogitator-ai/types").Tool<Record<string, never>, {
11
+ url: string;
12
+ title: string;
13
+ }>;
14
+ export declare function createGoForwardTool(session: BrowserSession): import("@cogitator-ai/types").Tool<Record<string, never>, {
15
+ url: string;
16
+ title: string;
17
+ }>;
18
+ export declare function createReloadTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
19
+ waitUntil?: "load" | "domcontentloaded" | "networkidle" | "commit" | undefined;
20
+ }, {
21
+ url: string;
22
+ title: string;
23
+ }>;
24
+ export declare function createWaitForNavigationTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
25
+ url?: string | undefined;
26
+ timeout?: number | undefined;
27
+ }, {
28
+ url: string;
29
+ title: string;
30
+ }>;
31
+ export declare function createGetCurrentUrlTool(session: BrowserSession): import("@cogitator-ai/types").Tool<Record<string, never>, {
32
+ url: string;
33
+ title: string;
34
+ }>;
35
+ export declare function createWaitForSelectorTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
36
+ selector: string;
37
+ state?: "visible" | "hidden" | "attached" | "detached" | undefined;
38
+ timeout?: number | undefined;
39
+ }, {
40
+ found: boolean;
41
+ }>;
42
+ export declare function createNavigationTools(session: BrowserSession): (import("@cogitator-ai/types").Tool<Record<string, never>, {
43
+ url: string;
44
+ title: string;
45
+ }> | import("@cogitator-ai/types").Tool<{
46
+ waitUntil?: "load" | "domcontentloaded" | "networkidle" | "commit" | undefined;
47
+ }, {
48
+ url: string;
49
+ title: string;
50
+ }> | import("@cogitator-ai/types").Tool<{
51
+ url?: string | undefined;
52
+ timeout?: number | undefined;
53
+ }, {
54
+ url: string;
55
+ title: string;
56
+ }> | import("@cogitator-ai/types").Tool<{
57
+ selector: string;
58
+ state?: "visible" | "hidden" | "attached" | "detached" | undefined;
59
+ timeout?: number | undefined;
60
+ }, {
61
+ found: boolean;
62
+ }>)[];
63
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAejD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;;GAoBzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;;;GAgBvD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc;;;GAgB1D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;;;;;GAgBvD;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc;;;;;;GAgBlE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc;;;GAe9D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc;;;;;;GAqBhE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;MAU5D"}
@@ -0,0 +1,140 @@
1
+ import { tool } from '@cogitator-ai/core';
2
+ import { navigateSchema, goBackSchema, goForwardSchema, reloadSchema, waitForNavigationSchema, getCurrentUrlSchema, waitForSelectorSchema, } from '../utils/schemas.js';
3
+ export function createNavigateTool(session) {
4
+ return tool({
5
+ name: 'browser_navigate',
6
+ description: 'Navigate to a URL in the browser. Returns the final URL, page title, and HTTP status.',
7
+ category: 'web',
8
+ tags: ['browser', 'navigation'],
9
+ parameters: navigateSchema,
10
+ execute: async (params) => {
11
+ const page = session.page;
12
+ const response = await page.goto(params.url, {
13
+ waitUntil: params.waitUntil ?? 'load',
14
+ });
15
+ return {
16
+ url: page.url(),
17
+ title: await page.title(),
18
+ status: response?.status() ?? 0,
19
+ };
20
+ },
21
+ });
22
+ }
23
+ export function createGoBackTool(session) {
24
+ return tool({
25
+ name: 'browser_go_back',
26
+ description: 'Go back to the previous page in browser history.',
27
+ category: 'web',
28
+ tags: ['browser', 'navigation'],
29
+ parameters: goBackSchema,
30
+ execute: async () => {
31
+ const page = session.page;
32
+ await page.goBack();
33
+ return {
34
+ url: page.url(),
35
+ title: await page.title(),
36
+ };
37
+ },
38
+ });
39
+ }
40
+ export function createGoForwardTool(session) {
41
+ return tool({
42
+ name: 'browser_go_forward',
43
+ description: 'Go forward to the next page in browser history.',
44
+ category: 'web',
45
+ tags: ['browser', 'navigation'],
46
+ parameters: goForwardSchema,
47
+ execute: async () => {
48
+ const page = session.page;
49
+ await page.goForward();
50
+ return {
51
+ url: page.url(),
52
+ title: await page.title(),
53
+ };
54
+ },
55
+ });
56
+ }
57
+ export function createReloadTool(session) {
58
+ return tool({
59
+ name: 'browser_reload',
60
+ description: 'Reload the current page.',
61
+ category: 'web',
62
+ tags: ['browser', 'navigation'],
63
+ parameters: reloadSchema,
64
+ execute: async (params) => {
65
+ const page = session.page;
66
+ await page.reload({ waitUntil: params.waitUntil ?? 'load' });
67
+ return {
68
+ url: page.url(),
69
+ title: await page.title(),
70
+ };
71
+ },
72
+ });
73
+ }
74
+ export function createWaitForNavigationTool(session) {
75
+ return tool({
76
+ name: 'browser_wait_for_navigation',
77
+ description: 'Wait for the page to navigate to a URL matching the given pattern.',
78
+ category: 'web',
79
+ tags: ['browser', 'navigation'],
80
+ parameters: waitForNavigationSchema,
81
+ execute: async (params) => {
82
+ const page = session.page;
83
+ await page.waitForURL(params.url ?? '**', { timeout: params.timeout });
84
+ return {
85
+ url: page.url(),
86
+ title: await page.title(),
87
+ };
88
+ },
89
+ });
90
+ }
91
+ export function createGetCurrentUrlTool(session) {
92
+ return tool({
93
+ name: 'browser_get_current_url',
94
+ description: 'Get the current page URL and title.',
95
+ category: 'web',
96
+ tags: ['browser', 'navigation'],
97
+ parameters: getCurrentUrlSchema,
98
+ execute: async () => {
99
+ const page = session.page;
100
+ return {
101
+ url: page.url(),
102
+ title: await page.title(),
103
+ };
104
+ },
105
+ });
106
+ }
107
+ export function createWaitForSelectorTool(session) {
108
+ return tool({
109
+ name: 'browser_wait_for_selector',
110
+ description: 'Wait for a CSS selector to appear on the page. Returns whether the element was found.',
111
+ category: 'web',
112
+ tags: ['browser', 'navigation'],
113
+ parameters: waitForSelectorSchema,
114
+ execute: async (params) => {
115
+ const page = session.page;
116
+ try {
117
+ await page.waitForSelector(params.selector, {
118
+ state: params.state,
119
+ timeout: params.timeout,
120
+ });
121
+ return { found: true };
122
+ }
123
+ catch {
124
+ return { found: false };
125
+ }
126
+ },
127
+ });
128
+ }
129
+ export function createNavigationTools(session) {
130
+ return [
131
+ createNavigateTool(session),
132
+ createGoBackTool(session),
133
+ createGoForwardTool(session),
134
+ createReloadTool(session),
135
+ createWaitForNavigationTool(session),
136
+ createGetCurrentUrlTool(session),
137
+ createWaitForSelectorTool(session),
138
+ ];
139
+ }
140
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import type { BrowserSession } from '../session.js';
2
+ interface ApiCallRecord {
3
+ url: string;
4
+ method: string;
5
+ status: number;
6
+ timing: number;
7
+ requestHeaders: Record<string, string>;
8
+ responseHeaders: Record<string, string>;
9
+ }
10
+ interface HarEntry {
11
+ url: string;
12
+ method: string;
13
+ status: number;
14
+ timing: number;
15
+ requestHeaders: Record<string, string>;
16
+ responseHeaders: Record<string, string>;
17
+ responseBody: string;
18
+ }
19
+ declare class NetworkState {
20
+ private _interceptors;
21
+ private _apiCalls;
22
+ private _listening;
23
+ private _interceptorCounter;
24
+ get apiCalls(): ApiCallRecord[];
25
+ addInterceptor(_page: unknown, id: string, remover: () => Promise<void>): Promise<void>;
26
+ removeInterceptor(id: string): Promise<void>;
27
+ startListening(page: BrowserSession['page']): void;
28
+ nextId(): string;
29
+ clearApiCalls(): void;
30
+ }
31
+ export declare function createInterceptRequestTool(session: BrowserSession, state: NetworkState): import("@cogitator-ai/types").Tool<{
32
+ urlPattern: string;
33
+ action: "block" | "modify" | "continue";
34
+ modify?: {
35
+ headers?: Record<string, string> | undefined;
36
+ body?: string | undefined;
37
+ url?: string | undefined;
38
+ } | undefined;
39
+ }, {
40
+ interceptorId: string;
41
+ }>;
42
+ export declare function createWaitForResponseTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
43
+ urlPattern: string;
44
+ timeout?: number | undefined;
45
+ }, {
46
+ url: string;
47
+ status: number;
48
+ headers: {
49
+ [key: string]: string;
50
+ };
51
+ body: string;
52
+ }>;
53
+ export declare function createBlockResourcesTool(session: BrowserSession, state: NetworkState): import("@cogitator-ai/types").Tool<{
54
+ types: ("image" | "stylesheet" | "font" | "media" | "script")[];
55
+ }, {
56
+ blocking: boolean;
57
+ interceptorId: string;
58
+ types: ("image" | "stylesheet" | "font" | "media" | "script")[];
59
+ }>;
60
+ export declare function createCaptureHarTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
61
+ action: "start" | "stop";
62
+ path?: string | undefined;
63
+ }, {
64
+ capturing: boolean;
65
+ entries: number;
66
+ har?: undefined;
67
+ } | {
68
+ capturing: boolean;
69
+ entries: number;
70
+ har: HarEntry[];
71
+ }>;
72
+ export declare function createGetApiCallsTool(session: BrowserSession, state: NetworkState): import("@cogitator-ai/types").Tool<{
73
+ urlPattern?: string | undefined;
74
+ method?: string | undefined;
75
+ }, {
76
+ calls: ApiCallRecord[];
77
+ }>;
78
+ export declare function createNetworkTools(session: BrowserSession): (import("@cogitator-ai/types").Tool<{
79
+ urlPattern: string;
80
+ action: "block" | "modify" | "continue";
81
+ modify?: {
82
+ headers?: Record<string, string> | undefined;
83
+ body?: string | undefined;
84
+ url?: string | undefined;
85
+ } | undefined;
86
+ }, {
87
+ interceptorId: string;
88
+ }> | import("@cogitator-ai/types").Tool<{
89
+ urlPattern: string;
90
+ timeout?: number | undefined;
91
+ }, {
92
+ url: string;
93
+ status: number;
94
+ headers: {
95
+ [key: string]: string;
96
+ };
97
+ body: string;
98
+ }> | import("@cogitator-ai/types").Tool<{
99
+ types: ("image" | "stylesheet" | "font" | "media" | "script")[];
100
+ }, {
101
+ blocking: boolean;
102
+ interceptorId: string;
103
+ types: ("image" | "stylesheet" | "font" | "media" | "script")[];
104
+ }> | import("@cogitator-ai/types").Tool<{
105
+ action: "start" | "stop";
106
+ path?: string | undefined;
107
+ }, {
108
+ capturing: boolean;
109
+ entries: number;
110
+ har?: undefined;
111
+ } | {
112
+ capturing: boolean;
113
+ entries: number;
114
+ har: HarEntry[];
115
+ }> | import("@cogitator-ai/types").Tool<{
116
+ urlPattern?: string | undefined;
117
+ method?: string | undefined;
118
+ }, {
119
+ calls: ApiCallRecord[];
120
+ }>)[];
121
+ export {};
122
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAcjD,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAEhC,IAAI,QAAQ,oBAEX;IAEK,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAIvE,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAQlC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;IA+B3C,MAAM;IAIN,aAAa;CAGd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY;;;;;;;;;;GAoCtF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;GA4BhE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY;;;;;;GAiCpF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;GAkE3D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY;;;;;GAqBjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASzD"}
@@ -0,0 +1,223 @@
1
+ import { tool } from '@cogitator-ai/core';
2
+ import { interceptRequestSchema, waitForResponseSchema, blockResourcesSchema, captureHarSchema, getApiCallsSchema, } from '../utils/schemas.js';
3
+ class NetworkState {
4
+ _interceptors = new Map();
5
+ _apiCalls = [];
6
+ _listening = false;
7
+ _interceptorCounter = 0;
8
+ get apiCalls() {
9
+ return this._apiCalls;
10
+ }
11
+ async addInterceptor(_page, id, remover) {
12
+ this._interceptors.set(id, remover);
13
+ }
14
+ async removeInterceptor(id) {
15
+ const remover = this._interceptors.get(id);
16
+ if (remover) {
17
+ await remover();
18
+ this._interceptors.delete(id);
19
+ }
20
+ }
21
+ startListening(page) {
22
+ if (this._listening)
23
+ return;
24
+ this._listening = true;
25
+ page.on('response', async (response) => {
26
+ const request = response.request();
27
+ const resourceType = request.resourceType();
28
+ if (resourceType === 'xhr' || resourceType === 'fetch') {
29
+ this._apiCalls.push({
30
+ url: request.url(),
31
+ method: request.method(),
32
+ status: response.status(),
33
+ timing: 0,
34
+ requestHeaders: request.headers(),
35
+ responseHeaders: response.headers(),
36
+ });
37
+ }
38
+ });
39
+ }
40
+ nextId() {
41
+ return `interceptor_${++this._interceptorCounter}`;
42
+ }
43
+ clearApiCalls() {
44
+ this._apiCalls = [];
45
+ }
46
+ }
47
+ export function createInterceptRequestTool(session, state) {
48
+ return tool({
49
+ name: 'browser_intercept_request',
50
+ description: 'Intercept and modify, block, or continue HTTP requests matching a URL pattern.',
51
+ category: 'web',
52
+ tags: ['browser', 'network'],
53
+ parameters: interceptRequestSchema,
54
+ execute: async (params) => {
55
+ const page = session.page;
56
+ const id = state.nextId();
57
+ const handler = async (route) => {
58
+ if (params.action === 'block') {
59
+ await route.abort();
60
+ }
61
+ else if (params.action === 'modify' && params.modify) {
62
+ const overrides = {};
63
+ if (params.modify.headers)
64
+ overrides.headers = params.modify.headers;
65
+ if (params.modify.body)
66
+ overrides.postData = params.modify.body;
67
+ if (params.modify.url)
68
+ overrides.url = params.modify.url;
69
+ await route.continue(overrides);
70
+ }
71
+ else {
72
+ await route.continue();
73
+ }
74
+ };
75
+ await page.route(params.urlPattern, handler);
76
+ await state.addInterceptor(page, id, async () => {
77
+ await page.unroute(params.urlPattern, handler);
78
+ });
79
+ return { interceptorId: id };
80
+ },
81
+ });
82
+ }
83
+ export function createWaitForResponseTool(session) {
84
+ return tool({
85
+ name: 'browser_wait_for_response',
86
+ description: 'Wait for an HTTP response matching a URL pattern. Returns status, headers, and body.',
87
+ category: 'web',
88
+ tags: ['browser', 'network'],
89
+ parameters: waitForResponseSchema,
90
+ execute: async (params) => {
91
+ const page = session.page;
92
+ const response = await page.waitForResponse((resp) => resp.url().includes(params.urlPattern), { timeout: params.timeout });
93
+ let body;
94
+ try {
95
+ body = await response.text();
96
+ }
97
+ catch {
98
+ body = '';
99
+ }
100
+ return {
101
+ url: response.url(),
102
+ status: response.status(),
103
+ headers: response.headers(),
104
+ body,
105
+ };
106
+ },
107
+ });
108
+ }
109
+ export function createBlockResourcesTool(session, state) {
110
+ return tool({
111
+ name: 'browser_block_resources',
112
+ description: 'Block specific resource types (images, stylesheets, fonts, media, scripts) from loading.',
113
+ category: 'web',
114
+ tags: ['browser', 'network'],
115
+ parameters: blockResourcesSchema,
116
+ execute: async (params) => {
117
+ const page = session.page;
118
+ const types = new Set(params.types);
119
+ const handler = async (route) => {
120
+ if (types.has(route.request().resourceType())) {
121
+ await route.abort();
122
+ }
123
+ else {
124
+ await route.continue();
125
+ }
126
+ };
127
+ const id = state.nextId();
128
+ await page.route('**/*', handler);
129
+ await state.addInterceptor(page, id, async () => {
130
+ await page.unroute('**/*', handler);
131
+ });
132
+ return { blocking: true, interceptorId: id, types: params.types };
133
+ },
134
+ });
135
+ }
136
+ export function createCaptureHarTool(session) {
137
+ let harEntries = [];
138
+ let harCapturing = false;
139
+ let responseHandler = null;
140
+ return tool({
141
+ name: 'browser_capture_har',
142
+ description: 'Start or stop capturing HTTP traffic in HAR format. On stop, returns all captured entries.',
143
+ category: 'web',
144
+ tags: ['browser', 'network'],
145
+ parameters: captureHarSchema,
146
+ execute: async (params) => {
147
+ const page = session.page;
148
+ if (params.action === 'start') {
149
+ harEntries = [];
150
+ harCapturing = true;
151
+ responseHandler = async (response) => {
152
+ if (!harCapturing)
153
+ return;
154
+ const startTime = Date.now();
155
+ const resp = response;
156
+ const request = resp.request();
157
+ let body = '';
158
+ try {
159
+ body = await resp.text();
160
+ }
161
+ catch {
162
+ /* response body may not be available */
163
+ }
164
+ harEntries.push({
165
+ url: request.url(),
166
+ method: request.method(),
167
+ status: resp.status(),
168
+ timing: Date.now() - startTime,
169
+ requestHeaders: request.headers(),
170
+ responseHeaders: resp.headers(),
171
+ responseBody: body,
172
+ });
173
+ };
174
+ page.on('response', responseHandler);
175
+ return { capturing: true, entries: 0 };
176
+ }
177
+ harCapturing = false;
178
+ if (responseHandler) {
179
+ page.removeListener('response', responseHandler);
180
+ responseHandler = null;
181
+ }
182
+ if (params.path) {
183
+ const { writeFile } = await import('node:fs/promises');
184
+ await writeFile(params.path, JSON.stringify({ entries: harEntries }, null, 2));
185
+ }
186
+ const entries = [...harEntries];
187
+ harEntries = [];
188
+ return { capturing: false, entries: entries.length, har: entries };
189
+ },
190
+ });
191
+ }
192
+ export function createGetApiCallsTool(session, state) {
193
+ return tool({
194
+ name: 'browser_get_api_calls',
195
+ description: 'Get captured XHR/fetch API calls, optionally filtered by URL pattern or HTTP method.',
196
+ category: 'web',
197
+ tags: ['browser', 'network'],
198
+ parameters: getApiCallsSchema,
199
+ execute: async (params) => {
200
+ state.startListening(session.page);
201
+ let calls = state.apiCalls;
202
+ if (params.urlPattern) {
203
+ calls = calls.filter((c) => c.url.includes(params.urlPattern));
204
+ }
205
+ if (params.method) {
206
+ const method = params.method.toUpperCase();
207
+ calls = calls.filter((c) => c.method === method);
208
+ }
209
+ return { calls };
210
+ },
211
+ });
212
+ }
213
+ export function createNetworkTools(session) {
214
+ const state = new NetworkState();
215
+ return [
216
+ createInterceptRequestTool(session, state),
217
+ createWaitForResponseTool(session),
218
+ createBlockResourcesTool(session, state),
219
+ createCaptureHarTool(session),
220
+ createGetApiCallsTool(session, state),
221
+ ];
222
+ }
223
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import type { BrowserSession } from '../session.js';
2
+ export declare function createScreenshotTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
3
+ fullPage?: boolean | undefined;
4
+ selector?: string | undefined;
5
+ quality?: number | undefined;
6
+ }, {
7
+ image: string;
8
+ width: number;
9
+ height: number;
10
+ }>;
11
+ export declare function createScreenshotElementTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
12
+ selector: string;
13
+ }, {
14
+ image: string;
15
+ boundingBox: {
16
+ x: number;
17
+ y: number;
18
+ width: number;
19
+ height: number;
20
+ } | null;
21
+ }>;
22
+ export declare function createFindByDescriptionTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
23
+ description: string;
24
+ }, {
25
+ elements: {
26
+ role: string;
27
+ name: string;
28
+ description: string;
29
+ }[];
30
+ }>;
31
+ export declare function createClickByDescriptionTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
32
+ description: string;
33
+ index?: number | undefined;
34
+ }, {
35
+ clicked: boolean;
36
+ element: {
37
+ description: string;
38
+ index: number;
39
+ };
40
+ } | {
41
+ clicked: boolean;
42
+ element: null;
43
+ }>;
44
+ export declare function createVisionTools(session: BrowserSession): (import("@cogitator-ai/types").Tool<{
45
+ fullPage?: boolean | undefined;
46
+ selector?: string | undefined;
47
+ quality?: number | undefined;
48
+ }, {
49
+ image: string;
50
+ width: number;
51
+ height: number;
52
+ }> | import("@cogitator-ai/types").Tool<{
53
+ selector: string;
54
+ }, {
55
+ image: string;
56
+ boundingBox: {
57
+ x: number;
58
+ y: number;
59
+ width: number;
60
+ height: number;
61
+ } | null;
62
+ }> | import("@cogitator-ai/types").Tool<{
63
+ description: string;
64
+ }, {
65
+ elements: {
66
+ role: string;
67
+ name: string;
68
+ description: string;
69
+ }[];
70
+ }> | import("@cogitator-ai/types").Tool<{
71
+ description: string;
72
+ index?: number | undefined;
73
+ }, {
74
+ clicked: boolean;
75
+ element: {
76
+ description: string;
77
+ index: number;
78
+ };
79
+ } | {
80
+ clicked: boolean;
81
+ element: null;
82
+ }>)[];
83
+ //# sourceMappingURL=vision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/tools/vision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAajD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;;;;;;;;GAgC3D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;GAmBlE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc;;;;cAchC,MAAM;cAAQ,MAAM;qBAAe,MAAM;;GA2B3E;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;GAoCnE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;cAnEtB,MAAM;cAAQ,MAAM;qBAAe,MAAM;;;;;;;;;;;;;;MA0E3E"}