@mytai20100/opencode-browser 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -658,7 +658,7 @@ const TOOLS = [
658
658
  // EXTENSION META
659
659
  {
660
660
  name: "chrome_get_extension_info",
661
- description: "Get info about the Opencode Brower extension itself",
661
+ description: "Get info about the Opencode Brower extension itself, including author metadata",
662
662
  inputSchema: { type: "object", properties: {} },
663
663
  },
664
664
  // DEVTOOLS / DEBUGGER (CDP)
@@ -1142,6 +1142,894 @@ const TOOLS = [
1142
1142
  },
1143
1143
  },
1144
1144
  },
1145
+ {
1146
+ name: "chrome_double_click",
1147
+ description: "Double click an element by CSS selector or at specific coordinates",
1148
+ inputSchema: {
1149
+ type: "object",
1150
+ properties: {
1151
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1152
+ x: { type: "number", description: "X coordinate for visual double click" },
1153
+ y: { type: "number", description: "Y coordinate for visual double click" },
1154
+ tabId: { type: "number" },
1155
+ },
1156
+ },
1157
+ },
1158
+ {
1159
+ name: "chrome_right_click",
1160
+ description: "Right click an element to open context menu",
1161
+ inputSchema: {
1162
+ type: "object",
1163
+ properties: {
1164
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1165
+ x: { type: "number", description: "X coordinate" },
1166
+ y: { type: "number", description: "Y coordinate" },
1167
+ tabId: { type: "number" },
1168
+ },
1169
+ },
1170
+ },
1171
+ {
1172
+ name: "chrome_middle_click",
1173
+ description: "Middle click (open in new tab)",
1174
+ inputSchema: {
1175
+ type: "object",
1176
+ properties: {
1177
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1178
+ x: { type: "number", description: "X coordinate" },
1179
+ y: { type: "number", description: "Y coordinate" },
1180
+ tabId: { type: "number" },
1181
+ },
1182
+ },
1183
+ },
1184
+ {
1185
+ name: "chrome_drag_drop",
1186
+ description: "Drag and drop from element A to element B or coordinates",
1187
+ inputSchema: {
1188
+ type: "object",
1189
+ properties: {
1190
+ fromSelector: { type: "string", description: "Source element selector" },
1191
+ toSelector: { type: "string", description: "Target element selector" },
1192
+ fromX: { type: "number", description: "Source X coordinate" },
1193
+ fromY: { type: "number", description: "Source Y coordinate" },
1194
+ toX: { type: "number", description: "Target X coordinate" },
1195
+ toY: { type: "number", description: "Target Y coordinate" },
1196
+ tabId: { type: "number" },
1197
+ },
1198
+ },
1199
+ },
1200
+ {
1201
+ name: "chrome_keyboard_shortcut",
1202
+ description: "Execute keyboard shortcuts like Ctrl+C, Ctrl+V, Ctrl+A, etc.",
1203
+ inputSchema: {
1204
+ type: "object",
1205
+ properties: {
1206
+ shortcut: { type: "string", description: "Shortcut like 'Ctrl+C', 'Ctrl+V', 'Ctrl+A', 'Ctrl+Z', 'Ctrl+S'" },
1207
+ tabId: { type: "number" },
1208
+ },
1209
+ required: ["shortcut"],
1210
+ },
1211
+ },
1212
+ // WAIT TOOLS
1213
+ {
1214
+ name: "chrome_wait_for_navigation",
1215
+ description: "Wait for page navigation to complete after clicking a link",
1216
+ inputSchema: {
1217
+ type: "object",
1218
+ properties: {
1219
+ timeout: { type: "number", description: "Max wait in ms (default 30000)" },
1220
+ tabId: { type: "number" },
1221
+ },
1222
+ },
1223
+ },
1224
+ {
1225
+ name: "chrome_wait_for_network_idle",
1226
+ description: "Wait until no network requests for N milliseconds",
1227
+ inputSchema: {
1228
+ type: "object",
1229
+ properties: {
1230
+ idleTime: { type: "number", description: "Idle time in ms (default 500)" },
1231
+ timeout: { type: "number", description: "Max wait in ms (default 30000)" },
1232
+ tabId: { type: "number" },
1233
+ },
1234
+ },
1235
+ },
1236
+ // SCREENSHOT TOOLS
1237
+ {
1238
+ name: "chrome_screenshot_element",
1239
+ description: "Take screenshot of a specific element",
1240
+ inputSchema: {
1241
+ type: "object",
1242
+ properties: {
1243
+ selector: { type: "string", description: "CSS selector of element" },
1244
+ format: { type: "string", enum: ["png", "jpeg"] },
1245
+ quality: { type: "number", description: "JPEG quality 0-100" },
1246
+ tabId: { type: "number" },
1247
+ },
1248
+ required: ["selector"],
1249
+ },
1250
+ },
1251
+ {
1252
+ name: "chrome_screenshot_fullpage",
1253
+ description: "Take full page screenshot (scrolls and stitches)",
1254
+ inputSchema: {
1255
+ type: "object",
1256
+ properties: {
1257
+ format: { type: "string", enum: ["png", "jpeg"] },
1258
+ quality: { type: "number", description: "JPEG quality 0-100" },
1259
+ tabId: { type: "number" },
1260
+ },
1261
+ },
1262
+ },
1263
+ {
1264
+ name: "chrome_pdf_print",
1265
+ description: "Save current page as PDF",
1266
+ inputSchema: {
1267
+ type: "object",
1268
+ properties: {
1269
+ landscape: { type: "boolean", description: "Landscape orientation" },
1270
+ displayHeaderFooter: { type: "boolean" },
1271
+ printBackground: { type: "boolean", description: "Print background graphics" },
1272
+ scale: { type: "number", description: "Scale 0.1-2.0 (default 1)" },
1273
+ paperWidth: { type: "number", description: "Paper width in inches" },
1274
+ paperHeight: { type: "number", description: "Paper height in inches" },
1275
+ marginTop: { type: "number", description: "Top margin in inches" },
1276
+ marginBottom: { type: "number", description: "Bottom margin in inches" },
1277
+ marginLeft: { type: "number", description: "Left margin in inches" },
1278
+ marginRight: { type: "number", description: "Right margin in inches" },
1279
+ tabId: { type: "number" },
1280
+ },
1281
+ },
1282
+ },
1283
+ // CSS INJECTION
1284
+ {
1285
+ name: "chrome_inject_css",
1286
+ description: "Inject CSS stylesheet into the page",
1287
+ inputSchema: {
1288
+ type: "object",
1289
+ properties: {
1290
+ css: { type: "string", description: "CSS code to inject" },
1291
+ tabId: { type: "number" },
1292
+ },
1293
+ required: ["css"],
1294
+ },
1295
+ },
1296
+ {
1297
+ name: "chrome_remove_css",
1298
+ description: "Remove previously injected CSS",
1299
+ inputSchema: {
1300
+ type: "object",
1301
+ properties: {
1302
+ cssId: { type: "string", description: "ID of injected CSS to remove" },
1303
+ tabId: { type: "number" },
1304
+ },
1305
+ required: ["cssId"],
1306
+ },
1307
+ },
1308
+ // TEXT SELECTION
1309
+ {
1310
+ name: "chrome_select_text",
1311
+ description: "Select/highlight text on the page",
1312
+ inputSchema: {
1313
+ type: "object",
1314
+ properties: {
1315
+ selector: { type: "string", description: "Element containing text to select" },
1316
+ startOffset: { type: "number", description: "Start character offset" },
1317
+ endOffset: { type: "number", description: "End character offset" },
1318
+ tabId: { type: "number" },
1319
+ },
1320
+ required: ["selector"],
1321
+ },
1322
+ },
1323
+ {
1324
+ name: "chrome_get_selected_text",
1325
+ description: "Get currently selected/highlighted text",
1326
+ inputSchema: {
1327
+ type: "object",
1328
+ properties: {
1329
+ tabId: { type: "number" },
1330
+ },
1331
+ },
1332
+ },
1333
+ {
1334
+ name: "chrome_focus_element",
1335
+ description: "Focus an element without clicking",
1336
+ inputSchema: {
1337
+ type: "object",
1338
+ properties: {
1339
+ selector: { type: "string", description: "CSS selector" },
1340
+ tabId: { type: "number" },
1341
+ },
1342
+ required: ["selector"],
1343
+ },
1344
+ },
1345
+ {
1346
+ name: "chrome_clear_input",
1347
+ description: "Clear an input field",
1348
+ inputSchema: {
1349
+ type: "object",
1350
+ properties: {
1351
+ selector: { type: "string", description: "CSS selector of input" },
1352
+ tabId: { type: "number" },
1353
+ },
1354
+ required: ["selector"],
1355
+ },
1356
+ },
1357
+ ,
1358
+ {
1359
+ name: "chrome_double_click",
1360
+ description: "Double click an element by CSS selector or at specific coordinates",
1361
+ inputSchema: {
1362
+ type: "object",
1363
+ properties: {
1364
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1365
+ x: { type: "number", description: "X coordinate for visual double click" },
1366
+ y: { type: "number", description: "Y coordinate for visual double click" },
1367
+ tabId: { type: "number" },
1368
+ },
1369
+ },
1370
+ },
1371
+ {
1372
+ name: "chrome_right_click",
1373
+ description: "Right click an element to open context menu",
1374
+ inputSchema: {
1375
+ type: "object",
1376
+ properties: {
1377
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1378
+ x: { type: "number", description: "X coordinate" },
1379
+ y: { type: "number", description: "Y coordinate" },
1380
+ tabId: { type: "number" },
1381
+ },
1382
+ },
1383
+ },
1384
+ {
1385
+ name: "chrome_middle_click",
1386
+ description: "Middle click (open in new tab)",
1387
+ inputSchema: {
1388
+ type: "object",
1389
+ properties: {
1390
+ selector: { type: "string", description: "CSS selector (optional if x/y provided)" },
1391
+ x: { type: "number", description: "X coordinate" },
1392
+ y: { type: "number", description: "Y coordinate" },
1393
+ tabId: { type: "number" },
1394
+ },
1395
+ },
1396
+ },
1397
+ {
1398
+ name: "chrome_drag_drop",
1399
+ description: "Drag and drop from element A to element B or coordinates",
1400
+ inputSchema: {
1401
+ type: "object",
1402
+ properties: {
1403
+ fromSelector: { type: "string", description: "Source element selector" },
1404
+ toSelector: { type: "string", description: "Target element selector" },
1405
+ fromX: { type: "number", description: "Source X coordinate" },
1406
+ fromY: { type: "number", description: "Source Y coordinate" },
1407
+ toX: { type: "number", description: "Target X coordinate" },
1408
+ toY: { type: "number", description: "Target Y coordinate" },
1409
+ tabId: { type: "number" },
1410
+ },
1411
+ },
1412
+ },
1413
+ {
1414
+ name: "chrome_keyboard_shortcut",
1415
+ description: "Execute keyboard shortcuts like Ctrl+C, Ctrl+V, Ctrl+A, etc.",
1416
+ inputSchema: {
1417
+ type: "object",
1418
+ properties: {
1419
+ shortcut: { type: "string", description: "Shortcut like 'Ctrl+C', 'Ctrl+V', 'Ctrl+A', 'Ctrl+Z', 'Ctrl+S'" },
1420
+ tabId: { type: "number" },
1421
+ },
1422
+ required: ["shortcut"],
1423
+ },
1424
+ },
1425
+ {
1426
+ name: "chrome_wait_for_navigation",
1427
+ description: "Wait for page navigation to complete after clicking a link",
1428
+ inputSchema: {
1429
+ type: "object",
1430
+ properties: {
1431
+ timeout: { type: "number", description: "Max wait in ms (default 30000)" },
1432
+ tabId: { type: "number" },
1433
+ },
1434
+ },
1435
+ },
1436
+ {
1437
+ name: "chrome_wait_for_network_idle",
1438
+ description: "Wait until no network requests for N milliseconds",
1439
+ inputSchema: {
1440
+ type: "object",
1441
+ properties: {
1442
+ idleTime: { type: "number", description: "Idle time in ms (default 500)" },
1443
+ timeout: { type: "number", description: "Max wait in ms (default 30000)" },
1444
+ tabId: { type: "number" },
1445
+ },
1446
+ },
1447
+ },
1448
+ {
1449
+ name: "chrome_screenshot_element",
1450
+ description: "Take screenshot of a specific element",
1451
+ inputSchema: {
1452
+ type: "object",
1453
+ properties: {
1454
+ selector: { type: "string", description: "CSS selector of element" },
1455
+ format: { type: "string", enum: ["png", "jpeg"] },
1456
+ quality: { type: "number", description: "JPEG quality 0-100" },
1457
+ tabId: { type: "number" },
1458
+ },
1459
+ required: ["selector"],
1460
+ },
1461
+ },
1462
+ {
1463
+ name: "chrome_screenshot_fullpage",
1464
+ description: "Take full page screenshot (scrolls and stitches)",
1465
+ inputSchema: {
1466
+ type: "object",
1467
+ properties: {
1468
+ format: { type: "string", enum: ["png", "jpeg"] },
1469
+ quality: { type: "number", description: "JPEG quality 0-100" },
1470
+ tabId: { type: "number" },
1471
+ },
1472
+ },
1473
+ },
1474
+ {
1475
+ name: "chrome_pdf_print",
1476
+ description: "Save current page as PDF",
1477
+ inputSchema: {
1478
+ type: "object",
1479
+ properties: {
1480
+ landscape: { type: "boolean", description: "Landscape orientation" },
1481
+ displayHeaderFooter: { type: "boolean" },
1482
+ printBackground: { type: "boolean", description: "Print background graphics" },
1483
+ scale: { type: "number", description: "Scale 0.1-2.0 (default 1)" },
1484
+ paperWidth: { type: "number", description: "Paper width in inches" },
1485
+ paperHeight: { type: "number", description: "Paper height in inches" },
1486
+ marginTop: { type: "number", description: "Top margin in inches" },
1487
+ marginBottom: { type: "number", description: "Bottom margin in inches" },
1488
+ marginLeft: { type: "number", description: "Left margin in inches" },
1489
+ marginRight: { type: "number", description: "Right margin in inches" },
1490
+ tabId: { type: "number" },
1491
+ },
1492
+ },
1493
+ },
1494
+ {
1495
+ name: "chrome_inject_css",
1496
+ description: "Inject CSS stylesheet into the page",
1497
+ inputSchema: {
1498
+ type: "object",
1499
+ properties: {
1500
+ css: { type: "string", description: "CSS code to inject" },
1501
+ tabId: { type: "number" },
1502
+ },
1503
+ required: ["css"],
1504
+ },
1505
+ },
1506
+ {
1507
+ name: "chrome_remove_css",
1508
+ description: "Remove previously injected CSS",
1509
+ inputSchema: {
1510
+ type: "object",
1511
+ properties: {
1512
+ cssId: { type: "string", description: "ID of injected CSS to remove" },
1513
+ tabId: { type: "number" },
1514
+ },
1515
+ required: ["cssId"],
1516
+ },
1517
+ },
1518
+ {
1519
+ name: "chrome_select_text",
1520
+ description: "Select/highlight text on the page",
1521
+ inputSchema: {
1522
+ type: "object",
1523
+ properties: {
1524
+ selector: { type: "string", description: "Element containing text to select" },
1525
+ startOffset: { type: "number", description: "Start character offset" },
1526
+ endOffset: { type: "number", description: "End character offset" },
1527
+ tabId: { type: "number" },
1528
+ },
1529
+ required: ["selector"],
1530
+ },
1531
+ },
1532
+ {
1533
+ name: "chrome_get_selected_text",
1534
+ description: "Get currently selected/highlighted text",
1535
+ inputSchema: {
1536
+ type: "object",
1537
+ properties: {
1538
+ tabId: { type: "number" },
1539
+ },
1540
+ },
1541
+ },
1542
+ {
1543
+ name: "chrome_focus_element",
1544
+ description: "Focus an element without clicking",
1545
+ inputSchema: {
1546
+ type: "object",
1547
+ properties: {
1548
+ selector: { type: "string", description: "CSS selector" },
1549
+ tabId: { type: "number" },
1550
+ },
1551
+ required: ["selector"],
1552
+ },
1553
+ },
1554
+ {
1555
+ name: "chrome_clear_input",
1556
+ description: "Clear an input field",
1557
+ inputSchema: {
1558
+ type: "object",
1559
+ properties: {
1560
+ selector: { type: "string", description: "CSS selector of input" },
1561
+ tabId: { type: "number" },
1562
+ },
1563
+ required: ["selector"],
1564
+ },
1565
+ },
1566
+ {
1567
+ name: "chrome_mock_geolocation",
1568
+ description: "Mock GPS location for testing",
1569
+ inputSchema: {
1570
+ type: "object",
1571
+ properties: {
1572
+ latitude: { type: "number", description: "Latitude coordinate" },
1573
+ longitude: { type: "number", description: "Longitude coordinate" },
1574
+ accuracy: { type: "number", description: "Accuracy in meters (default 100)" },
1575
+ tabId: { type: "number" },
1576
+ },
1577
+ required: ["latitude", "longitude"],
1578
+ },
1579
+ },
1580
+ {
1581
+ name: "chrome_mock_timezone",
1582
+ description: "Override timezone of the page",
1583
+ inputSchema: {
1584
+ type: "object",
1585
+ properties: {
1586
+ timezoneId: { type: "string", description: "IANA timezone ID e.g. 'America/New_York', 'Asia/Tokyo'" },
1587
+ tabId: { type: "number" },
1588
+ },
1589
+ required: ["timezoneId"],
1590
+ },
1591
+ },
1592
+ {
1593
+ name: "chrome_mock_locale",
1594
+ description: "Override locale/language of the page",
1595
+ inputSchema: {
1596
+ type: "object",
1597
+ properties: {
1598
+ locale: { type: "string", description: "Locale code e.g. 'en-US', 'ja-JP', 'fr-FR'" },
1599
+ tabId: { type: "number" },
1600
+ },
1601
+ required: ["locale"],
1602
+ },
1603
+ },
1604
+ {
1605
+ name: "chrome_mock_battery",
1606
+ description: "Mock battery status API",
1607
+ inputSchema: {
1608
+ type: "object",
1609
+ properties: {
1610
+ charging: { type: "boolean", description: "Is battery charging" },
1611
+ chargingTime: { type: "number", description: "Seconds until fully charged" },
1612
+ dischargingTime: { type: "number", description: "Seconds until empty" },
1613
+ level: { type: "number", description: "Battery level 0.0-1.0" },
1614
+ tabId: { type: "number" },
1615
+ },
1616
+ required: ["charging", "level"],
1617
+ },
1618
+ },
1619
+ {
1620
+ name: "chrome_mock_media_type",
1621
+ description: "Override CSS media type (print/screen)",
1622
+ inputSchema: {
1623
+ type: "object",
1624
+ properties: {
1625
+ mediaType: { type: "string", enum: ["screen", "print"], description: "Media type" },
1626
+ tabId: { type: "number" },
1627
+ },
1628
+ required: ["mediaType"],
1629
+ },
1630
+ },
1631
+ {
1632
+ name: "chrome_emulate_vision",
1633
+ description: "Emulate vision deficiencies (color blindness, blurred vision)",
1634
+ inputSchema: {
1635
+ type: "object",
1636
+ properties: {
1637
+ type: {
1638
+ type: "string",
1639
+ enum: ["none", "achromatopsia", "blurredVision", "deuteranopia", "protanopia", "tritanopia"],
1640
+ description: "Vision deficiency type"
1641
+ },
1642
+ tabId: { type: "number" },
1643
+ },
1644
+ required: ["type"],
1645
+ },
1646
+ },
1647
+ {
1648
+ name: "chrome_cpu_throttle",
1649
+ description: "Throttle CPU to simulate slower devices",
1650
+ inputSchema: {
1651
+ type: "object",
1652
+ properties: {
1653
+ rate: { type: "number", description: "Throttle rate (1 = no throttle, 4 = 4x slowdown)" },
1654
+ tabId: { type: "number" },
1655
+ },
1656
+ required: ["rate"],
1657
+ },
1658
+ },
1659
+ {
1660
+ name: "chrome_mock_date_time",
1661
+ description: "Override Date.now() for deterministic testing",
1662
+ inputSchema: {
1663
+ type: "object",
1664
+ properties: {
1665
+ timestamp: { type: "number", description: "Unix timestamp in milliseconds" },
1666
+ freeze: { type: "boolean", description: "Freeze time at this value" },
1667
+ tabId: { type: "number" },
1668
+ },
1669
+ required: ["timestamp"],
1670
+ },
1671
+ },
1672
+ {
1673
+ name: "chrome_modify_response_body",
1674
+ description: "Modify response body before page receives it",
1675
+ inputSchema: {
1676
+ type: "object",
1677
+ properties: {
1678
+ urlPattern: { type: "string", description: "URL pattern to match" },
1679
+ newBody: { type: "string", description: "New response body" },
1680
+ tabId: { type: "number" },
1681
+ },
1682
+ required: ["urlPattern", "newBody"],
1683
+ },
1684
+ },
1685
+ {
1686
+ name: "chrome_get_ws_frames",
1687
+ description: "Capture WebSocket frames",
1688
+ inputSchema: {
1689
+ type: "object",
1690
+ properties: {
1691
+ limit: { type: "number", description: "Max frames to return (default 100)" },
1692
+ tabId: { type: "number" },
1693
+ },
1694
+ },
1695
+ },
1696
+ {
1697
+ name: "chrome_set_extra_headers",
1698
+ description: "Add extra HTTP headers to all requests",
1699
+ inputSchema: {
1700
+ type: "object",
1701
+ properties: {
1702
+ headers: { type: "object", description: "Headers to add" },
1703
+ tabId: { type: "number" },
1704
+ },
1705
+ required: ["headers"],
1706
+ },
1707
+ },
1708
+ {
1709
+ name: "chrome_get_request_body",
1710
+ description: "Get POST body of a sent request",
1711
+ inputSchema: {
1712
+ type: "object",
1713
+ properties: {
1714
+ requestId: { type: "string", description: "Request ID from debug_get_network" },
1715
+ tabId: { type: "number" },
1716
+ },
1717
+ required: ["requestId"],
1718
+ },
1719
+ },
1720
+ {
1721
+ name: "chrome_profiling_start",
1722
+ description: "Start CPU profiling",
1723
+ inputSchema: {
1724
+ type: "object",
1725
+ properties: {
1726
+ tabId: { type: "number" },
1727
+ },
1728
+ },
1729
+ },
1730
+ {
1731
+ name: "chrome_profiling_stop",
1732
+ description: "Stop CPU profiling and get profile data",
1733
+ inputSchema: {
1734
+ type: "object",
1735
+ properties: {
1736
+ tabId: { type: "number" },
1737
+ },
1738
+ },
1739
+ },
1740
+ {
1741
+ name: "chrome_heap_snapshot",
1742
+ description: "Take a heap snapshot for memory analysis",
1743
+ inputSchema: {
1744
+ type: "object",
1745
+ properties: {
1746
+ tabId: { type: "number" },
1747
+ },
1748
+ },
1749
+ },
1750
+ {
1751
+ name: "chrome_trace_start",
1752
+ description: "Start tracing (Timeline/Performance recording)",
1753
+ inputSchema: {
1754
+ type: "object",
1755
+ properties: {
1756
+ categories: { type: "array", items: { type: "string" }, description: "Trace categories" },
1757
+ tabId: { type: "number" },
1758
+ },
1759
+ },
1760
+ },
1761
+ {
1762
+ name: "chrome_trace_stop",
1763
+ description: "Stop tracing and get trace events",
1764
+ inputSchema: {
1765
+ type: "object",
1766
+ properties: {
1767
+ tabId: { type: "number" },
1768
+ },
1769
+ },
1770
+ },
1771
+ {
1772
+ name: "chrome_pause_on_exception",
1773
+ description: "Pause debugger on exceptions",
1774
+ inputSchema: {
1775
+ type: "object",
1776
+ properties: {
1777
+ state: { type: "string", enum: ["none", "uncaught", "all"], description: "When to pause" },
1778
+ tabId: { type: "number" },
1779
+ },
1780
+ required: ["state"],
1781
+ },
1782
+ },
1783
+ {
1784
+ name: "chrome_debugger_resume",
1785
+ description: "Resume execution after debugger pause",
1786
+ inputSchema: {
1787
+ type: "object",
1788
+ properties: {
1789
+ tabId: { type: "number" },
1790
+ },
1791
+ },
1792
+ },
1793
+ {
1794
+ name: "chrome_debugger_step_over",
1795
+ description: "Step over current line",
1796
+ inputSchema: {
1797
+ type: "object",
1798
+ properties: {
1799
+ tabId: { type: "number" },
1800
+ },
1801
+ },
1802
+ },
1803
+ {
1804
+ name: "chrome_debugger_step_into",
1805
+ description: "Step into function call",
1806
+ inputSchema: {
1807
+ type: "object",
1808
+ properties: {
1809
+ tabId: { type: "number" },
1810
+ },
1811
+ },
1812
+ },
1813
+ {
1814
+ name: "chrome_debugger_step_out",
1815
+ description: "Step out of current function",
1816
+ inputSchema: {
1817
+ type: "object",
1818
+ properties: {
1819
+ tabId: { type: "number" },
1820
+ },
1821
+ },
1822
+ },
1823
+ {
1824
+ name: "chrome_get_call_frames",
1825
+ description: "Get call stack when paused",
1826
+ inputSchema: {
1827
+ type: "object",
1828
+ properties: {
1829
+ tabId: { type: "number" },
1830
+ },
1831
+ },
1832
+ },
1833
+ {
1834
+ name: "chrome_evaluate_on_call_frame",
1835
+ description: "Evaluate expression in paused call frame",
1836
+ inputSchema: {
1837
+ type: "object",
1838
+ properties: {
1839
+ callFrameId: { type: "string", description: "Call frame ID" },
1840
+ expression: { type: "string", description: "Expression to evaluate" },
1841
+ tabId: { type: "number" },
1842
+ },
1843
+ required: ["callFrameId", "expression"],
1844
+ },
1845
+ },
1846
+ {
1847
+ name: "chrome_get_script_source",
1848
+ description: "Get source code of a script",
1849
+ inputSchema: {
1850
+ type: "object",
1851
+ properties: {
1852
+ scriptId: { type: "string", description: "Script ID" },
1853
+ tabId: { type: "number" },
1854
+ },
1855
+ required: ["scriptId"],
1856
+ },
1857
+ },
1858
+ {
1859
+ name: "chrome_live_edit_script",
1860
+ description: "Live edit JavaScript without reload",
1861
+ inputSchema: {
1862
+ type: "object",
1863
+ properties: {
1864
+ scriptId: { type: "string", description: "Script ID to edit" },
1865
+ scriptSource: { type: "string", description: "New script source" },
1866
+ tabId: { type: "number" },
1867
+ },
1868
+ required: ["scriptId", "scriptSource"],
1869
+ },
1870
+ },
1871
+ {
1872
+ name: "chrome_call_function_on",
1873
+ description: "Call function on remote object",
1874
+ inputSchema: {
1875
+ type: "object",
1876
+ properties: {
1877
+ objectId: { type: "string", description: "Remote object ID" },
1878
+ functionDeclaration: { type: "string", description: "Function to call" },
1879
+ arguments: { type: "array", description: "Function arguments" },
1880
+ tabId: { type: "number" },
1881
+ },
1882
+ required: ["objectId", "functionDeclaration"],
1883
+ },
1884
+ },
1885
+ {
1886
+ name: "chrome_get_properties",
1887
+ description: "Get properties of a remote object",
1888
+ inputSchema: {
1889
+ type: "object",
1890
+ properties: {
1891
+ objectId: { type: "string", description: "Remote object ID" },
1892
+ ownProperties: { type: "boolean", description: "Only own properties" },
1893
+ tabId: { type: "number" },
1894
+ },
1895
+ required: ["objectId"],
1896
+ },
1897
+ },
1898
+ {
1899
+ name: "chrome_compile_script",
1900
+ description: "Check JavaScript syntax without executing",
1901
+ inputSchema: {
1902
+ type: "object",
1903
+ properties: {
1904
+ expression: { type: "string", description: "JavaScript code to compile" },
1905
+ sourceURL: { type: "string", description: "Source URL for error reporting" },
1906
+ tabId: { type: "number" },
1907
+ },
1908
+ required: ["expression"],
1909
+ },
1910
+ },
1911
+ {
1912
+ name: "chrome_get_indexeddb",
1913
+ description: "Read IndexedDB data from the page",
1914
+ inputSchema: {
1915
+ type: "object",
1916
+ properties: {
1917
+ databaseName: { type: "string", description: "Database name" },
1918
+ objectStoreName: { type: "string", description: "Object store name" },
1919
+ tabId: { type: "number" },
1920
+ },
1921
+ required: ["databaseName", "objectStoreName"],
1922
+ },
1923
+ },
1924
+ {
1925
+ name: "chrome_get_session_storage",
1926
+ description: "Read sessionStorage from the page",
1927
+ inputSchema: {
1928
+ type: "object",
1929
+ properties: {
1930
+ key: { type: "string", description: "Specific key (omit to get all)" },
1931
+ tabId: { type: "number" },
1932
+ },
1933
+ },
1934
+ },
1935
+ {
1936
+ name: "chrome_get_cache_storage",
1937
+ description: "Read Service Worker cache storage",
1938
+ inputSchema: {
1939
+ type: "object",
1940
+ properties: {
1941
+ cacheName: { type: "string", description: "Cache name" },
1942
+ tabId: { type: "number" },
1943
+ },
1944
+ required: ["cacheName"],
1945
+ },
1946
+ },
1947
+ {
1948
+ name: "chrome_get_security_state",
1949
+ description: "Get HTTPS security state and certificate info",
1950
+ inputSchema: {
1951
+ type: "object",
1952
+ properties: {
1953
+ tabId: { type: "number" },
1954
+ },
1955
+ },
1956
+ },
1957
+ {
1958
+ name: "chrome_ignore_cert_errors",
1959
+ description: "Ignore SSL certificate errors",
1960
+ inputSchema: {
1961
+ type: "object",
1962
+ properties: {
1963
+ ignore: { type: "boolean", description: "true to ignore, false to restore" },
1964
+ tabId: { type: "number" },
1965
+ },
1966
+ required: ["ignore"],
1967
+ },
1968
+ },
1969
+ {
1970
+ name: "chrome_set_color_scheme",
1971
+ description: "Force dark or light mode",
1972
+ inputSchema: {
1973
+ type: "object",
1974
+ properties: {
1975
+ scheme: { type: "string", enum: ["light", "dark", "no-preference"], description: "Color scheme" },
1976
+ tabId: { type: "number" },
1977
+ },
1978
+ required: ["scheme"],
1979
+ },
1980
+ },
1981
+ {
1982
+ name: "chrome_highlight_element",
1983
+ description: "Highlight element on screen (for debugging)",
1984
+ inputSchema: {
1985
+ type: "object",
1986
+ properties: {
1987
+ selector: { type: "string", description: "CSS selector" },
1988
+ color: { type: "string", description: "Highlight color (default red)" },
1989
+ tabId: { type: "number" },
1990
+ },
1991
+ required: ["selector"],
1992
+ },
1993
+ },
1994
+ {
1995
+ name: "chrome_hide_element",
1996
+ description: "Hide or show element",
1997
+ inputSchema: {
1998
+ type: "object",
1999
+ properties: {
2000
+ selector: { type: "string", description: "CSS selector" },
2001
+ hide: { type: "boolean", description: "true to hide, false to show" },
2002
+ tabId: { type: "number" },
2003
+ },
2004
+ required: ["selector", "hide"],
2005
+ },
2006
+ },
2007
+ {
2008
+ name: "chrome_dom_set_attribute",
2009
+ description: "Set DOM attribute via CDP",
2010
+ inputSchema: {
2011
+ type: "object",
2012
+ properties: {
2013
+ selector: { type: "string", description: "CSS selector" },
2014
+ name: { type: "string", description: "Attribute name" },
2015
+ value: { type: "string", description: "Attribute value" },
2016
+ tabId: { type: "number" },
2017
+ },
2018
+ required: ["selector", "name", "value"],
2019
+ },
2020
+ },
2021
+ {
2022
+ name: "chrome_dom_remove_node",
2023
+ description: "Remove DOM node",
2024
+ inputSchema: {
2025
+ type: "object",
2026
+ properties: {
2027
+ selector: { type: "string", description: "CSS selector" },
2028
+ tabId: { type: "number" },
2029
+ },
2030
+ required: ["selector"],
2031
+ },
2032
+ }
1145
2033
  ];
1146
2034
  // TOOL GRAPH (server-side, no extension needed)
1147
2035
  const TOOL_GRAPH = {