cbrowser 18.55.1 → 18.56.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 (60) hide show
  1. package/README.md +4 -4
  2. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  3. package/dist/analysis/accessibility-empathy.js +4 -34
  4. package/dist/analysis/accessibility-empathy.js.map +1 -1
  5. package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
  6. package/dist/analysis/agent-ready-audit.js +37 -32
  7. package/dist/analysis/agent-ready-audit.js.map +1 -1
  8. package/dist/analysis/competitive-benchmark.d.ts.map +1 -1
  9. package/dist/analysis/competitive-benchmark.js +4 -13
  10. package/dist/analysis/competitive-benchmark.js.map +1 -1
  11. package/dist/browser.d.ts.map +1 -1
  12. package/dist/browser.js +97 -46
  13. package/dist/browser.js.map +1 -1
  14. package/dist/cli.js +90 -1
  15. package/dist/cli.js.map +1 -1
  16. package/dist/mcp-server-remote.d.ts.map +1 -1
  17. package/dist/mcp-server-remote.js +93 -118
  18. package/dist/mcp-server-remote.js.map +1 -1
  19. package/dist/mcp-tools/base/advanced-interaction-tools.d.ts +14 -0
  20. package/dist/mcp-tools/base/advanced-interaction-tools.d.ts.map +1 -0
  21. package/dist/mcp-tools/base/advanced-interaction-tools.js +174 -0
  22. package/dist/mcp-tools/base/advanced-interaction-tools.js.map +1 -0
  23. package/dist/mcp-tools/base/audit-tools.d.ts +3 -3
  24. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  25. package/dist/mcp-tools/base/audit-tools.js +172 -47
  26. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  27. package/dist/mcp-tools/base/browser-management-tools.d.ts.map +1 -1
  28. package/dist/mcp-tools/base/browser-management-tools.js +62 -0
  29. package/dist/mcp-tools/base/browser-management-tools.js.map +1 -1
  30. package/dist/mcp-tools/base/browser-state-tools.d.ts +14 -0
  31. package/dist/mcp-tools/base/browser-state-tools.d.ts.map +1 -0
  32. package/dist/mcp-tools/base/browser-state-tools.js +229 -0
  33. package/dist/mcp-tools/base/browser-state-tools.js.map +1 -0
  34. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
  35. package/dist/mcp-tools/base/cognitive-tools.js +10 -5
  36. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
  37. package/dist/mcp-tools/base/index.d.ts +2 -0
  38. package/dist/mcp-tools/base/index.d.ts.map +1 -1
  39. package/dist/mcp-tools/base/index.js +10 -2
  40. package/dist/mcp-tools/base/index.js.map +1 -1
  41. package/dist/mcp-tools/base/navigation-tools.d.ts.map +1 -1
  42. package/dist/mcp-tools/base/navigation-tools.js +9 -2
  43. package/dist/mcp-tools/base/navigation-tools.js.map +1 -1
  44. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  45. package/dist/mcp-tools/base/persona-comparison-tools.js +27 -2
  46. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  47. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  48. package/dist/mcp-tools/base/visual-testing-tools.js +3 -1
  49. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  50. package/dist/mcp-tools/tool-categories.d.ts.map +1 -1
  51. package/dist/mcp-tools/tool-categories.js +12 -0
  52. package/dist/mcp-tools/tool-categories.js.map +1 -1
  53. package/dist/remediation/llms-txt.js +4 -14
  54. package/dist/remediation/llms-txt.js.map +1 -1
  55. package/dist/remediation/structured-data.js +4 -13
  56. package/dist/remediation/structured-data.js.map +1 -1
  57. package/dist/types.d.ts +16 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/types.js.map +1 -1
  60. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1581,6 +1581,81 @@ Documentation: https://github.com/alexandriashai/cbrowser/wiki
1581
1581
  }
1582
1582
  break;
1583
1583
  }
1584
+ case "type": {
1585
+ const text = args[0];
1586
+ if (!text) {
1587
+ console.error("Usage: cbrowser type \"text to type\" [--delay <ms>]");
1588
+ process.exit(1);
1589
+ }
1590
+ if (options.url)
1591
+ await browser.navigate(options.url);
1592
+ const page = await browser.getPage();
1593
+ const delay = typeof options.delay === "number" ? options.delay : 50;
1594
+ await page.keyboard.type(text, { delay });
1595
+ console.log(`✓ Typed ${text.length} characters`);
1596
+ break;
1597
+ }
1598
+ case "press": {
1599
+ const key = args[0];
1600
+ if (!key) {
1601
+ console.error("Usage: cbrowser press <key> (e.g., Enter, Tab, Escape, Control+a)");
1602
+ process.exit(1);
1603
+ }
1604
+ if (options.url)
1605
+ await browser.navigate(options.url);
1606
+ const page = await browser.getPage();
1607
+ await page.keyboard.press(key);
1608
+ console.log(`✓ Pressed ${key}`);
1609
+ break;
1610
+ }
1611
+ case "drag": {
1612
+ const source = args[0];
1613
+ const target = args[1];
1614
+ if (!source || !target) {
1615
+ console.error("Usage: cbrowser drag <source-selector> <target-selector>");
1616
+ process.exit(1);
1617
+ }
1618
+ if (options.url)
1619
+ await browser.navigate(options.url);
1620
+ const page = await browser.getPage();
1621
+ await page.dragAndDrop(source, target);
1622
+ console.log(`✓ Dragged ${source} → ${target}`);
1623
+ break;
1624
+ }
1625
+ case "eval":
1626
+ case "evaluate": {
1627
+ const script = args[0];
1628
+ if (!script) {
1629
+ console.error("Usage: cbrowser eval \"<javascript>\"");
1630
+ process.exit(1);
1631
+ }
1632
+ if (options.url)
1633
+ await browser.navigate(options.url);
1634
+ const page = await browser.getPage();
1635
+ try {
1636
+ const evalResult = await page.evaluate(script);
1637
+ console.log(typeof evalResult === "string" ? evalResult : JSON.stringify(evalResult, null, 2));
1638
+ }
1639
+ catch (e) {
1640
+ console.error(`✗ ${e.message}`);
1641
+ process.exit(1);
1642
+ }
1643
+ break;
1644
+ }
1645
+ case "upload": {
1646
+ const selector = args[0];
1647
+ const filePath = args[1];
1648
+ if (!selector || !filePath) {
1649
+ console.error("Usage: cbrowser upload <selector> <file-path>");
1650
+ process.exit(1);
1651
+ }
1652
+ if (options.url)
1653
+ await browser.navigate(options.url);
1654
+ const page = await browser.getPage();
1655
+ await page.locator(selector).setInputFiles(filePath);
1656
+ console.log(`✓ Uploaded ${filePath} to ${selector}`);
1657
+ break;
1658
+ }
1584
1659
  case "fill": {
1585
1660
  const selector = args[0];
1586
1661
  const value = args[1];
@@ -4847,10 +4922,24 @@ Documentation: https://github.com/alexandriashai/cbrowser/wiki
4847
4922
  console.error("Run 'cbrowser lightpanda-setup' for instructions.");
4848
4923
  process.exit(1);
4849
4924
  }
4850
- console.log(`\n🤖 Running Agent-Ready Audit on ${url}...${useLightpanda ? " (with Lightpanda)" : ""}\n`);
4925
+ // Resolve geo proxy if --geo-region is specified
4926
+ const geoRegion = options["geo-region"];
4927
+ let auditProxy;
4928
+ if (geoRegion) {
4929
+ const { getGeoProxy } = await import("./geo-proxy.js");
4930
+ const geoProxy = getGeoProxy(geoRegion);
4931
+ if (geoProxy) {
4932
+ auditProxy = { server: geoProxy.server, username: geoProxy.username, password: geoProxy.password };
4933
+ }
4934
+ else {
4935
+ console.error(`Warning: geo-region "${geoRegion}" not configured. Run without proxy.`);
4936
+ }
4937
+ }
4938
+ console.log(`\n🤖 Running Agent-Ready Audit on ${url}...${useLightpanda ? " (with Lightpanda)" : ""}${geoRegion ? ` (via ${geoRegion})` : ""}\n`);
4851
4939
  const result = await runAgentReadyAudit(url, {
4852
4940
  headless,
4853
4941
  useLightpanda,
4942
+ ...(auditProxy ? { proxy: auditProxy } : {}),
4854
4943
  });
4855
4944
  // Print formatted report
4856
4945
  const report = formatAgentReadyReport(result);