@eddym06/custom-chrome-mcp 1.0.4 โ†’ 1.1.0

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 (72) hide show
  1. package/CONDITIONAL_DESCRIPTIONS.md +174 -0
  2. package/FUTURE_FEATURES.txt +1503 -0
  3. package/README.md +300 -3
  4. package/TEST_WORKFLOW.md +311 -0
  5. package/USAGE_GUIDE.md +393 -0
  6. package/demo_features.ts +115 -0
  7. package/dist/chrome-connector.d.ts +31 -4
  8. package/dist/chrome-connector.d.ts.map +1 -1
  9. package/dist/chrome-connector.js +402 -53
  10. package/dist/chrome-connector.js.map +1 -1
  11. package/dist/index.js +69 -12
  12. package/dist/index.js.map +1 -1
  13. package/dist/tests/execute-script-tests.d.ts +62 -0
  14. package/dist/tests/execute-script-tests.d.ts.map +1 -0
  15. package/dist/tests/execute-script-tests.js +280 -0
  16. package/dist/tests/execute-script-tests.js.map +1 -0
  17. package/dist/tests/run-execute-tests.d.ts +7 -0
  18. package/dist/tests/run-execute-tests.d.ts.map +1 -0
  19. package/dist/tests/run-execute-tests.js +88 -0
  20. package/dist/tests/run-execute-tests.js.map +1 -0
  21. package/dist/tools/advanced-network.backup.d.ts +245 -0
  22. package/dist/tools/advanced-network.backup.d.ts.map +1 -0
  23. package/dist/tools/advanced-network.backup.js +996 -0
  24. package/dist/tools/advanced-network.backup.js.map +1 -0
  25. package/dist/tools/advanced-network.d.ts +580 -0
  26. package/dist/tools/advanced-network.d.ts.map +1 -0
  27. package/dist/tools/advanced-network.js +1325 -0
  28. package/dist/tools/advanced-network.js.map +1 -0
  29. package/dist/tools/anti-detection.d.ts.map +1 -1
  30. package/dist/tools/anti-detection.js +13 -8
  31. package/dist/tools/anti-detection.js.map +1 -1
  32. package/dist/tools/capture.d.ts +15 -9
  33. package/dist/tools/capture.d.ts.map +1 -1
  34. package/dist/tools/capture.js +21 -12
  35. package/dist/tools/capture.js.map +1 -1
  36. package/dist/tools/interaction.d.ts +84 -10
  37. package/dist/tools/interaction.d.ts.map +1 -1
  38. package/dist/tools/interaction.js +88 -33
  39. package/dist/tools/interaction.js.map +1 -1
  40. package/dist/tools/navigation.d.ts.map +1 -1
  41. package/dist/tools/navigation.js +43 -21
  42. package/dist/tools/navigation.js.map +1 -1
  43. package/dist/tools/network-accessibility.d.ts +67 -0
  44. package/dist/tools/network-accessibility.d.ts.map +1 -0
  45. package/dist/tools/network-accessibility.js +367 -0
  46. package/dist/tools/network-accessibility.js.map +1 -0
  47. package/dist/tools/playwright-launcher.d.ts +1 -1
  48. package/dist/tools/playwright-launcher.js +6 -6
  49. package/dist/tools/playwright-launcher.js.map +1 -1
  50. package/dist/tools/service-worker.d.ts +2 -2
  51. package/dist/tools/service-worker.d.ts.map +1 -1
  52. package/dist/tools/service-worker.js +22 -12
  53. package/dist/tools/service-worker.js.map +1 -1
  54. package/dist/tools/session.d.ts.map +1 -1
  55. package/dist/tools/session.js +23 -14
  56. package/dist/tools/session.js.map +1 -1
  57. package/dist/tools/system.d.ts +2 -2
  58. package/dist/tools/system.d.ts.map +1 -1
  59. package/dist/tools/system.js +9 -5
  60. package/dist/tools/system.js.map +1 -1
  61. package/dist/utils/truncate.d.ts +29 -0
  62. package/dist/utils/truncate.d.ts.map +1 -0
  63. package/dist/utils/truncate.js +46 -0
  64. package/dist/utils/truncate.js.map +1 -0
  65. package/dist/verify-tools.d.ts +7 -0
  66. package/dist/verify-tools.d.ts.map +1 -0
  67. package/dist/verify-tools.js +137 -0
  68. package/dist/verify-tools.js.map +1 -0
  69. package/package.json +3 -3
  70. package/recordings/demo_recording.har +3036 -0
  71. package/.npmrc.example +0 -2
  72. package/test-playwright.js +0 -57
package/dist/index.js CHANGED
@@ -15,6 +15,8 @@ import { createCaptureTools } from './tools/capture.js';
15
15
  import { createSessionTools } from './tools/session.js';
16
16
  import { createSystemTools } from './tools/system.js';
17
17
  import { createPlaywrightLauncherTools } from './tools/playwright-launcher.js';
18
+ import { createNetworkAccessibilityTools } from './tools/network-accessibility.js';
19
+ import { createAdvancedNetworkTools } from './tools/advanced-network.js';
18
20
  // Parse command line arguments
19
21
  const args = process.argv.slice(2);
20
22
  const portArg = args.find(arg => arg.startsWith('--port='));
@@ -40,6 +42,8 @@ const allTools = [
40
42
  ...createCaptureTools(connector),
41
43
  ...createSessionTools(connector),
42
44
  ...createSystemTools(connector),
45
+ ...createNetworkAccessibilityTools(connector), // Network interception + Accessibility tree
46
+ ...createAdvancedNetworkTools(connector), // Advanced network tools (Response, Mock, WebSocket, HAR, Patterns, Injection)
43
47
  ];
44
48
  // Create tool map for quick lookup
45
49
  const toolMap = new Map(allTools.map(tool => [tool.name, tool]));
@@ -48,18 +52,36 @@ function zodTypeToJsonSchema(schema) {
48
52
  if (!schema)
49
53
  return { type: 'string' };
50
54
  let current = schema;
51
- let isOptional = false;
52
- // Unwrap Optional/Default wrappers
53
- while (current._def.typeName === 'ZodOptional' || current._def.typeName === 'ZodDefault') {
54
- if (current._def.typeName === 'ZodOptional')
55
- isOptional = true;
56
- current = current._def.innerType;
55
+ let description = current.description;
56
+ let defaultValue = undefined;
57
+ // Unwrap Optional/Default/Effects wrappers and collect metadata
58
+ while (current._def.typeName === 'ZodOptional' ||
59
+ current._def.typeName === 'ZodDefault' ||
60
+ current._def.typeName === 'ZodEffects') {
61
+ if (current.description)
62
+ description = current.description;
63
+ if (current._def.typeName === 'ZodDefault') {
64
+ defaultValue = current._def.defaultValue();
65
+ }
66
+ if (current._def.typeName === 'ZodEffects') {
67
+ current = current._def.schema;
68
+ }
69
+ else {
70
+ current = current._def.innerType;
71
+ }
72
+ }
73
+ // If we still haven't found a description on the wrappers, check the inner type
74
+ if (!description && current.description) {
75
+ description = current.description;
57
76
  }
58
77
  const def = current._def;
59
78
  let type = 'string'; // Default fallback
60
79
  const jsonSchema = {};
61
- if (current.description) {
62
- jsonSchema.description = current.description;
80
+ if (description) {
81
+ jsonSchema.description = description;
82
+ }
83
+ if (defaultValue !== undefined) {
84
+ jsonSchema.default = defaultValue;
63
85
  }
64
86
  switch (def.typeName) {
65
87
  case 'ZodString':
@@ -75,6 +97,15 @@ function zodTypeToJsonSchema(schema) {
75
97
  type = 'string';
76
98
  jsonSchema.enum = def.values;
77
99
  break;
100
+ case 'ZodArray':
101
+ type = 'array';
102
+ jsonSchema.items = zodTypeToJsonSchema(def.type);
103
+ break;
104
+ case 'ZodNativeEnum':
105
+ type = 'string';
106
+ // Basic support for numeric enums or string enums
107
+ jsonSchema.enum = Object.values(def.values);
108
+ break;
78
109
  }
79
110
  jsonSchema.type = type;
80
111
  return jsonSchema;
@@ -94,10 +125,19 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
94
125
  // Check if required
95
126
  let isOptional = false;
96
127
  let current = zodSchema;
97
- while (current._def.typeName === 'ZodOptional' || current._def.typeName === 'ZodDefault') {
98
- if (current._def.typeName === 'ZodOptional')
128
+ // Unwrap to check strict optionality
129
+ while (current._def.typeName === 'ZodOptional' ||
130
+ current._def.typeName === 'ZodDefault' ||
131
+ current._def.typeName === 'ZodEffects') {
132
+ if (current._def.typeName === 'ZodOptional' || current._def.typeName === 'ZodDefault') {
99
133
  isOptional = true;
100
- current = current._def.innerType;
134
+ }
135
+ if (current._def.typeName === 'ZodEffects') {
136
+ current = current._def.schema;
137
+ }
138
+ else {
139
+ current = current._def.innerType;
140
+ }
101
141
  }
102
142
  if (!isOptional) {
103
143
  required.push(key);
@@ -177,7 +217,24 @@ async function main() {
177
217
  console.error(' - Session & Cookies (9 tools)');
178
218
  console.error(' - System & Extensions (4 tools)');
179
219
  console.error('');
180
- console.error('โœจ Server ready! Use launch_chrome_with_profile to start...');
220
+ console.error('โœจ Server ready!');
221
+ console.error('');
222
+ // Auto-launch Chrome on startup
223
+ console.error('๐Ÿš€ Auto-launching Chrome with Default profile...');
224
+ try {
225
+ const launchTool = allTools.find(t => t.name === 'launch_chrome_with_profile');
226
+ if (launchTool?.handler) {
227
+ const launchPromise = launchTool.handler({ profileDirectory: 'Default' });
228
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Launch timeout after 15s')), 15000));
229
+ await Promise.race([launchPromise, timeoutPromise]);
230
+ console.error('โœ… Chrome launched successfully!');
231
+ }
232
+ }
233
+ catch (error) {
234
+ console.error('โš ๏ธ Auto-launch failed:', error.message);
235
+ console.error(' You can manually use "launch_chrome_with_profile" tool later');
236
+ }
237
+ console.error('');
181
238
  // Start MCP server with stdio transport
182
239
  const transport = new StdioServerTransport();
183
240
  await server.connect(transport);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Execute Script Testing Suite
3
+ * Progressive tests from simple to complex
4
+ */
5
+ export declare const executeScriptTests: ({
6
+ name: string;
7
+ script: string;
8
+ expectedResult: number;
9
+ timeoutMs: number;
10
+ awaitPromise?: undefined;
11
+ shouldFail?: undefined;
12
+ } | {
13
+ name: string;
14
+ script: string;
15
+ expectedResult: string;
16
+ timeoutMs: number;
17
+ awaitPromise?: undefined;
18
+ shouldFail?: undefined;
19
+ } | {
20
+ name: string;
21
+ script: string;
22
+ expectedResult: number[];
23
+ timeoutMs: number;
24
+ awaitPromise?: undefined;
25
+ shouldFail?: undefined;
26
+ } | {
27
+ name: string;
28
+ script: string;
29
+ expectedResult: {
30
+ name: string;
31
+ value: number;
32
+ };
33
+ timeoutMs: number;
34
+ awaitPromise?: undefined;
35
+ shouldFail?: undefined;
36
+ } | {
37
+ name: string;
38
+ script: string;
39
+ expectedResult: string;
40
+ timeoutMs: number;
41
+ awaitPromise: boolean;
42
+ shouldFail?: undefined;
43
+ } | {
44
+ name: string;
45
+ script: string;
46
+ expectedResult: string;
47
+ shouldFail: boolean;
48
+ timeoutMs: number;
49
+ awaitPromise?: undefined;
50
+ })[];
51
+ /**
52
+ * Test runner instructions for AI
53
+ */
54
+ export declare const testInstructions = "\nEXECUTE_SCRIPT TESTING PROTOCOL\n\nPrerequisites:\n1. Chrome browser must be running (launch_chrome_with_profile)\n2. Navigate to a test page (e.g., https://example.com or https://apple.com)\n\nTesting Sequence:\n1. Start with LEVEL 1 tests (simple expressions)\n2. If all pass, proceed to LEVEL 2 (basic DOM)\n3. Continue through levels progressively\n4. Stop at first failure and report\n\nFor each test:\n1. Call execute_script with the test script\n2. Record: success/failure, result, execution time\n3. Compare result with expected (if not error test)\n4. Note any deviations or unexpected behavior\n\nExpected Outcomes:\n- LEVEL 1-2: Should have 100% success rate\n- LEVEL 3-4: Should have >90% success rate\n- LEVEL 5: May have some failures (network dependent)\n- LEVEL 6: Should fail gracefully with error messages (not crash)\n\nFailure Analysis:\nIf a test fails, check:\n1. Is Chrome connection active? (list_tabs)\n2. Is page loaded? (get_url, screenshot)\n3. Is timeout sufficient? (increase timeoutMs)\n4. Is error message descriptive?\n\nReport Format:\n{\n level: \"LEVEL X\",\n passed: X,\n failed: Y,\n total: Z,\n failures: [{test: \"name\", error: \"message\"}]\n}\n";
55
+ /**
56
+ * Real-world usage examples
57
+ */
58
+ export declare const realWorldExamples: {
59
+ scenario: string;
60
+ script: string;
61
+ }[];
62
+ //# sourceMappingURL=execute-script-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-script-tests.d.ts","sourceRoot":"","sources":["../../src/tests/execute-script-tests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2L9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,+qCAwC5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;GA4C7B,CAAC"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Execute Script Testing Suite
3
+ * Progressive tests from simple to complex
4
+ */
5
+ export const executeScriptTests = [
6
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
7
+ // LEVEL 1: BASIC EXPRESSIONS (should all work)
8
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
9
+ {
10
+ name: "Simple arithmetic",
11
+ script: "return 1 + 1;",
12
+ expectedResult: 2,
13
+ timeoutMs: 5000
14
+ },
15
+ {
16
+ name: "String concatenation",
17
+ script: "return 'Hello' + ' ' + 'World';",
18
+ expectedResult: "Hello World",
19
+ timeoutMs: 5000
20
+ },
21
+ {
22
+ name: "Get page title",
23
+ script: "return document.title;",
24
+ expectedResult: "<any string>",
25
+ timeoutMs: 5000
26
+ },
27
+ {
28
+ name: "Get URL",
29
+ script: "return window.location.href;",
30
+ expectedResult: "<url>",
31
+ timeoutMs: 5000
32
+ },
33
+ {
34
+ name: "Array creation",
35
+ script: "return [1, 2, 3, 4, 5];",
36
+ expectedResult: [1, 2, 3, 4, 5],
37
+ timeoutMs: 5000
38
+ },
39
+ {
40
+ name: "Object creation",
41
+ script: "return {name: 'test', value: 123};",
42
+ expectedResult: { name: 'test', value: 123 },
43
+ timeoutMs: 5000
44
+ },
45
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
46
+ // LEVEL 2: DOM QUERIES (basic)
47
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
48
+ {
49
+ name: "Count all elements",
50
+ script: "return document.querySelectorAll('*').length;",
51
+ expectedResult: "<number>",
52
+ timeoutMs: 5000
53
+ },
54
+ {
55
+ name: "Get all link hrefs",
56
+ script: `
57
+ return Array.from(document.querySelectorAll('a'))
58
+ .map(a => a.href)
59
+ .filter(href => href.startsWith('http'));
60
+ `,
61
+ expectedResult: "<array of urls>",
62
+ timeoutMs: 10000
63
+ },
64
+ {
65
+ name: "Get all button texts",
66
+ script: `
67
+ return Array.from(document.querySelectorAll('button'))
68
+ .map(btn => btn.textContent.trim())
69
+ .filter(text => text.length > 0);
70
+ `,
71
+ expectedResult: "<array of strings>",
72
+ timeoutMs: 10000
73
+ },
74
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
75
+ // LEVEL 3: COMPLEX QUERIES
76
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
77
+ {
78
+ name: "Extract structured data",
79
+ script: `
80
+ return Array.from(document.querySelectorAll('article, .post, .item'))
81
+ .slice(0, 10)
82
+ .map(item => ({
83
+ text: item.textContent.trim().substring(0, 100),
84
+ links: Array.from(item.querySelectorAll('a')).length,
85
+ images: Array.from(item.querySelectorAll('img')).length
86
+ }));
87
+ `,
88
+ expectedResult: "<array of objects>",
89
+ timeoutMs: 15000
90
+ },
91
+ {
92
+ name: "Get form field info",
93
+ script: `
94
+ return Array.from(document.querySelectorAll('input, textarea, select'))
95
+ .map(field => ({
96
+ type: field.type || field.tagName,
97
+ name: field.name || field.id,
98
+ value: field.value ? '[has value]' : '[empty]'
99
+ }));
100
+ `,
101
+ expectedResult: "<array of form fields>",
102
+ timeoutMs: 10000
103
+ },
104
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
105
+ // LEVEL 4: WINDOW OBJECT ACCESS
106
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
107
+ {
108
+ name: "Check window variables",
109
+ script: `
110
+ return {
111
+ hasJQuery: typeof window.jQuery !== 'undefined',
112
+ hasReact: typeof window.React !== 'undefined',
113
+ hasAngular: typeof window.angular !== 'undefined',
114
+ hasVue: typeof window.Vue !== 'undefined'
115
+ };
116
+ `,
117
+ expectedResult: "<object with boolean values>",
118
+ timeoutMs: 5000
119
+ },
120
+ {
121
+ name: "Get localStorage items",
122
+ script: `
123
+ const items = {};
124
+ for (let i = 0; i < localStorage.length; i++) {
125
+ const key = localStorage.key(i);
126
+ items[key] = localStorage.getItem(key).substring(0, 50);
127
+ }
128
+ return items;
129
+ `,
130
+ expectedResult: "<object>",
131
+ timeoutMs: 5000
132
+ },
133
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
134
+ // LEVEL 5: ASYNC OPERATIONS
135
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
136
+ {
137
+ name: "Async timeout",
138
+ script: `
139
+ return new Promise(resolve => {
140
+ setTimeout(() => resolve('Async completed'), 1000);
141
+ });
142
+ `,
143
+ expectedResult: "Async completed",
144
+ timeoutMs: 5000,
145
+ awaitPromise: true
146
+ },
147
+ {
148
+ name: "Fetch test (if available)",
149
+ script: `
150
+ if (typeof fetch === 'undefined') {
151
+ return 'Fetch not available';
152
+ }
153
+ return 'Fetch available (use with caution in tests)';
154
+ `,
155
+ expectedResult: "<string>",
156
+ timeoutMs: 5000
157
+ },
158
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
159
+ // LEVEL 6: ERROR HANDLING TESTS (should fail gracefully)
160
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
161
+ {
162
+ name: "Syntax error",
163
+ script: "return this is invalid javascript;",
164
+ expectedResult: "<error>",
165
+ shouldFail: true,
166
+ timeoutMs: 5000
167
+ },
168
+ {
169
+ name: "Runtime error",
170
+ script: "return undefinedVariable.property;",
171
+ expectedResult: "<error>",
172
+ shouldFail: true,
173
+ timeoutMs: 5000
174
+ },
175
+ {
176
+ name: "Return DOM node (should be handled)",
177
+ script: "return document.body;",
178
+ expectedResult: "[DOM Node - use get_text or get_attribute instead]",
179
+ timeoutMs: 5000
180
+ },
181
+ {
182
+ name: "Return function (should be handled)",
183
+ script: "return function() { return 'test'; };",
184
+ expectedResult: "[Function]",
185
+ timeoutMs: 5000
186
+ }
187
+ ];
188
+ /**
189
+ * Test runner instructions for AI
190
+ */
191
+ export const testInstructions = `
192
+ EXECUTE_SCRIPT TESTING PROTOCOL
193
+
194
+ Prerequisites:
195
+ 1. Chrome browser must be running (launch_chrome_with_profile)
196
+ 2. Navigate to a test page (e.g., https://example.com or https://apple.com)
197
+
198
+ Testing Sequence:
199
+ 1. Start with LEVEL 1 tests (simple expressions)
200
+ 2. If all pass, proceed to LEVEL 2 (basic DOM)
201
+ 3. Continue through levels progressively
202
+ 4. Stop at first failure and report
203
+
204
+ For each test:
205
+ 1. Call execute_script with the test script
206
+ 2. Record: success/failure, result, execution time
207
+ 3. Compare result with expected (if not error test)
208
+ 4. Note any deviations or unexpected behavior
209
+
210
+ Expected Outcomes:
211
+ - LEVEL 1-2: Should have 100% success rate
212
+ - LEVEL 3-4: Should have >90% success rate
213
+ - LEVEL 5: May have some failures (network dependent)
214
+ - LEVEL 6: Should fail gracefully with error messages (not crash)
215
+
216
+ Failure Analysis:
217
+ If a test fails, check:
218
+ 1. Is Chrome connection active? (list_tabs)
219
+ 2. Is page loaded? (get_url, screenshot)
220
+ 3. Is timeout sufficient? (increase timeoutMs)
221
+ 4. Is error message descriptive?
222
+
223
+ Report Format:
224
+ {
225
+ level: "LEVEL X",
226
+ passed: X,
227
+ failed: Y,
228
+ total: Z,
229
+ failures: [{test: "name", error: "message"}]
230
+ }
231
+ `;
232
+ /**
233
+ * Real-world usage examples
234
+ */
235
+ export const realWorldExamples = [
236
+ {
237
+ scenario: "Extract product prices from e-commerce",
238
+ script: `
239
+ return Array.from(document.querySelectorAll('.price, [data-price], .product-price'))
240
+ .map(el => el.textContent.trim())
241
+ .filter(text => text.match(/\\$|โ‚ฌ|ยฃ/));
242
+ `
243
+ },
244
+ {
245
+ scenario: "Check if user is logged in",
246
+ script: `
247
+ return {
248
+ hasLoginButton: !!document.querySelector('[href*="login"], button:contains("Login")'),
249
+ hasUserMenu: !!document.querySelector('.user-menu, .profile-menu, [data-user]'),
250
+ hasLogoutButton: !!document.querySelector('[href*="logout"], button:contains("Logout")')
251
+ };
252
+ `
253
+ },
254
+ {
255
+ scenario: "Get all image URLs",
256
+ script: `
257
+ return Array.from(document.querySelectorAll('img'))
258
+ .map(img => ({
259
+ src: img.src,
260
+ alt: img.alt,
261
+ width: img.naturalWidth,
262
+ height: img.naturalHeight
263
+ }))
264
+ .filter(img => img.width > 100);
265
+ `
266
+ },
267
+ {
268
+ scenario: "Inject console logger",
269
+ script: `
270
+ window.originalConsoleLog = console.log;
271
+ window.logHistory = [];
272
+ console.log = function(...args) {
273
+ window.logHistory.push(args);
274
+ window.originalConsoleLog.apply(console, args);
275
+ };
276
+ return 'Console logger injected. Access logs via window.logHistory';
277
+ `
278
+ }
279
+ ];
280
+ //# sourceMappingURL=execute-script-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-script-tests.js","sourceRoot":"","sources":["../../src/tests/execute-script-tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Automated Execute Script Testing
4
+ * Run this after building to verify execute_script works correctly
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=run-execute-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-execute-tests.d.ts","sourceRoot":"","sources":["../../src/tests/run-execute-tests.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Automated Execute Script Testing
4
+ * Run this after building to verify execute_script works correctly
5
+ */
6
+ import { executeScriptTests, testInstructions } from './execute-script-tests.js';
7
+ console.log('๐Ÿงช EXECUTE_SCRIPT TESTING SUITE');
8
+ console.log('โ•'.repeat(80));
9
+ console.log('\n' + testInstructions + '\n');
10
+ console.log('โ•'.repeat(80));
11
+ console.log('\n๐Ÿ“‹ TEST DEFINITIONS LOADED\n');
12
+ // Group tests by level
13
+ const testsByLevel = {
14
+ 'LEVEL 1: BASIC EXPRESSIONS': [],
15
+ 'LEVEL 2: DOM QUERIES (basic)': [],
16
+ 'LEVEL 3: COMPLEX QUERIES': [],
17
+ 'LEVEL 4: WINDOW OBJECT ACCESS': [],
18
+ 'LEVEL 5: ASYNC OPERATIONS': [],
19
+ 'LEVEL 6: ERROR HANDLING': []
20
+ };
21
+ let currentLevel = 'LEVEL 1: BASIC EXPRESSIONS';
22
+ executeScriptTests.forEach((test, index) => {
23
+ if (index === 6)
24
+ currentLevel = 'LEVEL 2: DOM QUERIES (basic)';
25
+ if (index === 9)
26
+ currentLevel = 'LEVEL 3: COMPLEX QUERIES';
27
+ if (index === 11)
28
+ currentLevel = 'LEVEL 4: WINDOW OBJECT ACCESS';
29
+ if (index === 13)
30
+ currentLevel = 'LEVEL 5: ASYNC OPERATIONS';
31
+ if (index === 15)
32
+ currentLevel = 'LEVEL 6: ERROR HANDLING';
33
+ testsByLevel[currentLevel].push(test);
34
+ });
35
+ // Print test summary
36
+ Object.entries(testsByLevel).forEach(([level, tests]) => {
37
+ console.log(`\n${level}`);
38
+ console.log('โ”€'.repeat(80));
39
+ tests.forEach((test, i) => {
40
+ const status = test.shouldFail ? 'โš ๏ธ ' : 'โœ“ ';
41
+ console.log(` ${status}${i + 1}. ${test.name}`);
42
+ console.log(` Script: ${test.script.trim().substring(0, 60)}...`);
43
+ console.log(` Timeout: ${test.timeoutMs}ms`);
44
+ if (test.shouldFail) {
45
+ console.log(` Expected: Error (graceful failure)`);
46
+ }
47
+ });
48
+ });
49
+ console.log('\n\n' + 'โ•'.repeat(80));
50
+ console.log('๐Ÿ“ TESTING INSTRUCTIONS');
51
+ console.log('โ•'.repeat(80));
52
+ console.log(`
53
+ To run these tests manually with the MCP:
54
+
55
+ 1. Start MCP server: npm run build && node dist/index.js
56
+ 2. Connect via MCP client (VS Code Copilot)
57
+ 3. Execute these commands in order:
58
+
59
+ # Setup
60
+ launch_chrome_with_profile()
61
+ navigate({ url: "https://example.com" })
62
+ wait_for_load_state({ state: "networkidle" })
63
+
64
+ # Run Level 1 tests (copy one by one)
65
+ execute_script({ script: "return 1 + 1;", timeoutMs: 5000 })
66
+ execute_script({ script: "return 'Hello' + ' ' + 'World';", timeoutMs: 5000 })
67
+ execute_script({ script: "return document.title;", timeoutMs: 5000 })
68
+
69
+ # ... etc
70
+
71
+ 4. Record results in this format:
72
+ {
73
+ test: "Simple arithmetic",
74
+ expected: 2,
75
+ actual: 2,
76
+ success: true,
77
+ timeMs: 45
78
+ }
79
+
80
+ 5. Report any failures with full error messages
81
+
82
+ AUTOMATED TESTING (if MCP client supports it):
83
+ You can also use the MCP programmatically to run all tests in sequence.
84
+ See the executeScriptTests array for the complete test suite.
85
+ `);
86
+ console.log('\nโœ… Test definitions ready. Total tests: ' + executeScriptTests.length);
87
+ console.log('โœ… To execute, run tests manually through MCP or use automated test runner\n');
88
+ //# sourceMappingURL=run-execute-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-execute-tests.js","sourceRoot":"","sources":["../../src/tests/run-execute-tests.ts"],"names":[],"mappings":"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"}