cbrowser 19.1.9 → 19.2.1

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 (83) hide show
  1. package/README.md +2 -2
  2. package/dist/analysis/accessibility-empathy.d.ts +5 -0
  3. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  4. package/dist/analysis/accessibility-empathy.js +62 -76
  5. package/dist/analysis/accessibility-empathy.js.map +1 -1
  6. package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
  7. package/dist/analysis/agent-ready-audit.js +7 -5
  8. package/dist/analysis/agent-ready-audit.js.map +1 -1
  9. package/dist/analysis/competitive-benchmark.js +2 -2
  10. package/dist/analysis/competitive-benchmark.js.map +1 -1
  11. package/dist/analysis/natural-language.d.ts +12 -4
  12. package/dist/analysis/natural-language.d.ts.map +1 -1
  13. package/dist/analysis/natural-language.js +2395 -504
  14. package/dist/analysis/natural-language.js.map +1 -1
  15. package/dist/analysis/persona-comparison.d.ts.map +1 -1
  16. package/dist/analysis/persona-comparison.js +5 -1
  17. package/dist/analysis/persona-comparison.js.map +1 -1
  18. package/dist/browser.d.ts +14 -0
  19. package/dist/browser.d.ts.map +1 -1
  20. package/dist/browser.js +20 -2
  21. package/dist/browser.js.map +1 -1
  22. package/dist/cli.js +44 -7
  23. package/dist/cli.js.map +1 -1
  24. package/dist/daemon.d.ts +2 -0
  25. package/dist/daemon.d.ts.map +1 -1
  26. package/dist/daemon.js +8 -1
  27. package/dist/daemon.js.map +1 -1
  28. package/dist/mcp-server.d.ts.map +1 -1
  29. package/dist/mcp-server.js +4 -4
  30. package/dist/mcp-server.js.map +1 -1
  31. package/dist/mcp-tools/account-personas.d.ts +3 -2
  32. package/dist/mcp-tools/account-personas.d.ts.map +1 -1
  33. package/dist/mcp-tools/account-personas.js +13 -4
  34. package/dist/mcp-tools/account-personas.js.map +1 -1
  35. package/dist/mcp-tools/base/advanced-interaction-tools.js +1 -1
  36. package/dist/mcp-tools/base/advanced-interaction-tools.js.map +1 -1
  37. package/dist/mcp-tools/base/analysis-tools.js +4 -4
  38. package/dist/mcp-tools/base/analysis-tools.js.map +1 -1
  39. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  40. package/dist/mcp-tools/base/audit-tools.js +42 -15
  41. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  42. package/dist/mcp-tools/base/browser-state-tools.d.ts.map +1 -1
  43. package/dist/mcp-tools/base/browser-state-tools.js +25 -4
  44. package/dist/mcp-tools/base/browser-state-tools.js.map +1 -1
  45. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
  46. package/dist/mcp-tools/base/cognitive-tools.js +14 -2
  47. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
  48. package/dist/mcp-tools/base/gif-tools.d.ts +19 -0
  49. package/dist/mcp-tools/base/gif-tools.d.ts.map +1 -1
  50. package/dist/mcp-tools/base/gif-tools.js +53 -24
  51. package/dist/mcp-tools/base/gif-tools.js.map +1 -1
  52. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  53. package/dist/mcp-tools/base/persona-comparison-tools.js +38 -28
  54. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  55. package/dist/mcp-tools/base/values-tools.d.ts.map +1 -1
  56. package/dist/mcp-tools/base/values-tools.js +12 -0
  57. package/dist/mcp-tools/base/values-tools.js.map +1 -1
  58. package/dist/mcp-tools/base/visual-testing-tools.d.ts +17 -0
  59. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  60. package/dist/mcp-tools/base/visual-testing-tools.js +184 -148
  61. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  62. package/dist/mcp-tools/inline-image.d.ts +82 -0
  63. package/dist/mcp-tools/inline-image.d.ts.map +1 -0
  64. package/dist/mcp-tools/inline-image.js +163 -0
  65. package/dist/mcp-tools/inline-image.js.map +1 -0
  66. package/dist/personas.d.ts +32 -0
  67. package/dist/personas.d.ts.map +1 -1
  68. package/dist/personas.js +90 -3
  69. package/dist/personas.js.map +1 -1
  70. package/dist/security/audit-wrapper.d.ts.map +1 -1
  71. package/dist/security/audit-wrapper.js +1 -0
  72. package/dist/security/audit-wrapper.js.map +1 -1
  73. package/dist/security/script-gate.d.ts +33 -0
  74. package/dist/security/script-gate.d.ts.map +1 -0
  75. package/dist/security/script-gate.js +37 -0
  76. package/dist/security/script-gate.js.map +1 -0
  77. package/dist/security/tool-permissions.d.ts.map +1 -1
  78. package/dist/security/tool-permissions.js +4 -0
  79. package/dist/security/tool-permissions.js.map +1 -1
  80. package/dist/types.d.ts +39 -1
  81. package/dist/types.d.ts.map +1 -1
  82. package/dist/types.js.map +1 -1
  83. package/package.json +1 -1
package/dist/browser.js CHANGED
@@ -14,7 +14,7 @@ import { isStaleSingletonLock } from "./utils.js";
14
14
  import { join, dirname } from "path";
15
15
  import { execSync } from "child_process";
16
16
  import { mergeConfig, getPaths, ensureDirectories } from "./config.js";
17
- import { BUILTIN_PERSONAS, getPersona } from "./personas.js";
17
+ import { getPersonaOrRefuse } from "./personas.js";
18
18
  import { DEVICE_PRESETS, LOCATION_PRESETS, CBrowserErrorCode } from "./types.js";
19
19
  import { runCognitiveJourney, isApiKeyConfigured, } from "./cognitive/index.js";
20
20
  import { SessionManager } from "./browser/session-manager.js";
@@ -5176,7 +5176,7 @@ For more help: https://playwright.dev/docs/browsers
5176
5176
  // Heuristic mode (no API key or cognitive journey failed)
5177
5177
  // NOTE: This is simplified exploration. For realistic user simulation,
5178
5178
  // configure an API key: npx cbrowser config set-api-key YOUR_KEY
5179
- const persona = getPersona(personaName) || BUILTIN_PERSONAS["first-timer"];
5179
+ const persona = getPersonaOrRefuse(personaName);
5180
5180
  this.currentPersona = persona;
5181
5181
  // Set viewport based on persona
5182
5182
  if (persona.context?.viewport) {
@@ -5897,6 +5897,24 @@ For more help: https://playwright.dev/docs/browsers
5897
5897
  await h.dispose();
5898
5898
  return el;
5899
5899
  }
5900
+ /**
5901
+ * The click gate's verdict on the element `selector` resolves to, judged on the element ITSELF (no
5902
+ * hit-test, so nothing scrolls). find_element_by_intent reports it as `zone`. A real click is additionally
5903
+ * judged where the pointer lands, so a container (a card, a section) can read yellow here and still be
5904
+ * refused when the control at its centre is red. Resolves `selector` as CSS, not through the text-first
5905
+ * click resolver or the self-healing cache. The finder's selectors are built so that the text-first resolver
5906
+ * reaches the same element (no form that is also page text, no lone tag), but click() consults the self-healing
5907
+ * cache before resolving, so a stale cache entry for the same selector string can still send click() to a
5908
+ * different element than the one judged here.
5909
+ */
5910
+ async elementZone(selector) {
5911
+ const page = await this.getPage();
5912
+ const loc = page.locator(selector).first();
5913
+ if ((await loc.count().catch(() => 0)) === 0)
5914
+ return null;
5915
+ const el = await this.classifyElement(loc, { skipHit: true });
5916
+ return el ? { zone: el.zone, label: el.label } : null;
5917
+ }
5900
5918
  /**
5901
5919
  * Refusal message when a click at viewport point (x, y) would activate a red-zone control, else null.
5902
5920
  * Used by the NL test runner's "click at X, Y".