cbrowser 18.78.0 → 18.80.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 (235) hide show
  1. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  2. package/dist/analysis/accessibility-empathy.js +395 -66
  3. package/dist/analysis/accessibility-empathy.js.map +1 -1
  4. package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
  5. package/dist/analysis/agent-ready-audit.js +78 -0
  6. package/dist/analysis/agent-ready-audit.js.map +1 -1
  7. package/dist/analysis/page-understanding.d.ts +139 -1
  8. package/dist/analysis/page-understanding.d.ts.map +1 -1
  9. package/dist/analysis/page-understanding.js +179 -12
  10. package/dist/analysis/page-understanding.js.map +1 -1
  11. package/dist/artifact-store.d.ts +19 -5
  12. package/dist/artifact-store.d.ts.map +1 -1
  13. package/dist/artifact-store.js +41 -11
  14. package/dist/artifact-store.js.map +1 -1
  15. package/dist/browser.d.ts +9 -0
  16. package/dist/browser.d.ts.map +1 -1
  17. package/dist/browser.js +81 -5
  18. package/dist/browser.js.map +1 -1
  19. package/dist/cli.js +55 -10
  20. package/dist/cli.js.map +1 -1
  21. package/dist/cognitive/index.d.ts.map +1 -1
  22. package/dist/cognitive/index.js +3 -2
  23. package/dist/cognitive/index.js.map +1 -1
  24. package/dist/config.d.ts +57 -0
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +234 -7
  27. package/dist/config.js.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/mcp-server-remote.d.ts.map +1 -1
  31. package/dist/mcp-server-remote.js +108 -4
  32. package/dist/mcp-server-remote.js.map +1 -1
  33. package/dist/mcp-server.d.ts.map +1 -1
  34. package/dist/mcp-server.js +62 -938
  35. package/dist/mcp-server.js.map +1 -1
  36. package/dist/mcp-tools/account-personas.d.ts +41 -0
  37. package/dist/mcp-tools/account-personas.d.ts.map +1 -0
  38. package/dist/mcp-tools/account-personas.js +98 -0
  39. package/dist/mcp-tools/account-personas.js.map +1 -0
  40. package/dist/mcp-tools/base/analysis-tools.d.ts.map +1 -1
  41. package/dist/mcp-tools/base/analysis-tools.js +12 -2
  42. package/dist/mcp-tools/base/analysis-tools.js.map +1 -1
  43. package/dist/mcp-tools/base/artifact-tools.d.ts +3 -0
  44. package/dist/mcp-tools/base/artifact-tools.d.ts.map +1 -0
  45. package/dist/mcp-tools/base/artifact-tools.js +78 -0
  46. package/dist/mcp-tools/base/artifact-tools.js.map +1 -0
  47. package/dist/mcp-tools/base/audit-tools.d.ts +11 -0
  48. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  49. package/dist/mcp-tools/base/audit-tools.js +595 -340
  50. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  51. package/dist/mcp-tools/base/browser-management-tools.d.ts.map +1 -1
  52. package/dist/mcp-tools/base/browser-management-tools.js +18 -0
  53. package/dist/mcp-tools/base/browser-management-tools.js.map +1 -1
  54. package/dist/mcp-tools/base/bug-analysis-tools.d.ts.map +1 -1
  55. package/dist/mcp-tools/base/bug-analysis-tools.js +59 -3
  56. package/dist/mcp-tools/base/bug-analysis-tools.js.map +1 -1
  57. package/dist/mcp-tools/base/capture-tools.d.ts +37 -0
  58. package/dist/mcp-tools/base/capture-tools.d.ts.map +1 -1
  59. package/dist/mcp-tools/base/capture-tools.js +267 -6
  60. package/dist/mcp-tools/base/capture-tools.js.map +1 -1
  61. package/dist/mcp-tools/base/cognitive-tools.d.ts +12 -0
  62. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
  63. package/dist/mcp-tools/base/cognitive-tools.js +63 -15
  64. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
  65. package/dist/mcp-tools/base/extraction-tools.d.ts.map +1 -1
  66. package/dist/mcp-tools/base/extraction-tools.js +33 -2
  67. package/dist/mcp-tools/base/extraction-tools.js.map +1 -1
  68. package/dist/mcp-tools/base/index.d.ts +2 -0
  69. package/dist/mcp-tools/base/index.d.ts.map +1 -1
  70. package/dist/mcp-tools/base/index.js +9 -0
  71. package/dist/mcp-tools/base/index.js.map +1 -1
  72. package/dist/mcp-tools/base/marketing-tools.js +3 -3
  73. package/dist/mcp-tools/base/marketing-tools.js.map +1 -1
  74. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  75. package/dist/mcp-tools/base/persona-comparison-tools.js +529 -40
  76. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  77. package/dist/mcp-tools/base/site-knowledge-tools.d.ts.map +1 -1
  78. package/dist/mcp-tools/base/site-knowledge-tools.js +36 -3
  79. package/dist/mcp-tools/base/site-knowledge-tools.js.map +1 -1
  80. package/dist/mcp-tools/base/values-tools.d.ts +113 -0
  81. package/dist/mcp-tools/base/values-tools.d.ts.map +1 -1
  82. package/dist/mcp-tools/base/values-tools.js +868 -78
  83. package/dist/mcp-tools/base/values-tools.js.map +1 -1
  84. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  85. package/dist/mcp-tools/base/visual-testing-tools.js +130 -10
  86. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  87. package/dist/mcp-tools/index.d.ts +3 -1
  88. package/dist/mcp-tools/index.d.ts.map +1 -1
  89. package/dist/mcp-tools/index.js +3 -28
  90. package/dist/mcp-tools/index.js.map +1 -1
  91. package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -1
  92. package/dist/mcp-tools/persona-creation-tools.js +363 -20
  93. package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
  94. package/dist/mcp-tools/persona-lifecycle-tools.d.ts +3 -0
  95. package/dist/mcp-tools/persona-lifecycle-tools.d.ts.map +1 -0
  96. package/dist/mcp-tools/persona-lifecycle-tools.js +406 -0
  97. package/dist/mcp-tools/persona-lifecycle-tools.js.map +1 -0
  98. package/dist/mcp-tools/screenshot-utils.d.ts.map +1 -1
  99. package/dist/mcp-tools/screenshot-utils.js +56 -10
  100. package/dist/mcp-tools/screenshot-utils.js.map +1 -1
  101. package/dist/mcp-tools/tier-gate.js +2 -2
  102. package/dist/mcp-tools/tier-gate.js.map +1 -1
  103. package/dist/mcp-tools/tool-categories.d.ts.map +1 -1
  104. package/dist/mcp-tools/tool-categories.js +4 -1
  105. package/dist/mcp-tools/tool-categories.js.map +1 -1
  106. package/dist/mcp-tools/ui-resources.d.ts +167 -0
  107. package/dist/mcp-tools/ui-resources.d.ts.map +1 -0
  108. package/dist/mcp-tools/ui-resources.js +707 -0
  109. package/dist/mcp-tools/ui-resources.js.map +1 -0
  110. package/dist/mcp-tools/widget-kit.d.ts +299 -0
  111. package/dist/mcp-tools/widget-kit.d.ts.map +1 -0
  112. package/dist/mcp-tools/widget-kit.js +2034 -0
  113. package/dist/mcp-tools/widget-kit.js.map +1 -0
  114. package/dist/mcp-ui-resources.d.ts.map +1 -1
  115. package/dist/mcp-ui-resources.js +14 -4
  116. package/dist/mcp-ui-resources.js.map +1 -1
  117. package/dist/persona-questionnaire.d.ts +69 -1
  118. package/dist/persona-questionnaire.d.ts.map +1 -1
  119. package/dist/persona-questionnaire.js +177 -76
  120. package/dist/persona-questionnaire.js.map +1 -1
  121. package/dist/persona-scope.d.ts +20 -0
  122. package/dist/persona-scope.d.ts.map +1 -0
  123. package/dist/persona-scope.js +59 -0
  124. package/dist/persona-scope.js.map +1 -0
  125. package/dist/personas.d.ts +51 -17
  126. package/dist/personas.d.ts.map +1 -1
  127. package/dist/personas.js +947 -286
  128. package/dist/personas.js.map +1 -1
  129. package/dist/recording/capture-player.d.ts +68 -0
  130. package/dist/recording/capture-player.d.ts.map +1 -0
  131. package/dist/recording/capture-player.js +298 -0
  132. package/dist/recording/capture-player.js.map +1 -0
  133. package/dist/recording/engine.d.ts +52 -0
  134. package/dist/recording/engine.d.ts.map +1 -1
  135. package/dist/recording/engine.js +241 -3
  136. package/dist/recording/engine.js.map +1 -1
  137. package/dist/recording/inline-player.d.ts +39 -0
  138. package/dist/recording/inline-player.d.ts.map +1 -0
  139. package/dist/recording/inline-player.js +272 -0
  140. package/dist/recording/inline-player.js.map +1 -0
  141. package/dist/recording/saliency-overlay.d.ts +133 -0
  142. package/dist/recording/saliency-overlay.d.ts.map +1 -0
  143. package/dist/recording/saliency-overlay.js +360 -0
  144. package/dist/recording/saliency-overlay.js.map +1 -0
  145. package/dist/recording/types.d.ts +32 -0
  146. package/dist/recording/types.d.ts.map +1 -1
  147. package/dist/recording/types.js +46 -0
  148. package/dist/recording/types.js.map +1 -1
  149. package/dist/site-model/manager.d.ts +20 -0
  150. package/dist/site-model/manager.d.ts.map +1 -1
  151. package/dist/site-model/manager.js +52 -0
  152. package/dist/site-model/manager.js.map +1 -1
  153. package/dist/trait-reference.d.ts +26 -2
  154. package/dist/trait-reference.d.ts.map +1 -1
  155. package/dist/trait-reference.js +129 -19
  156. package/dist/trait-reference.js.map +1 -1
  157. package/dist/types.d.ts +105 -18
  158. package/dist/types.d.ts.map +1 -1
  159. package/dist/types.js.map +1 -1
  160. package/dist/url-resolution.d.ts +58 -0
  161. package/dist/url-resolution.d.ts.map +1 -0
  162. package/dist/url-resolution.js +143 -0
  163. package/dist/url-resolution.js.map +1 -0
  164. package/dist/values/big-five-inference.d.ts +121 -0
  165. package/dist/values/big-five-inference.d.ts.map +1 -0
  166. package/dist/values/big-five-inference.js +241 -0
  167. package/dist/values/big-five-inference.js.map +1 -0
  168. package/dist/values/big-five-values.d.ts +76 -0
  169. package/dist/values/big-five-values.d.ts.map +1 -0
  170. package/dist/values/big-five-values.js +152 -0
  171. package/dist/values/big-five-values.js.map +1 -0
  172. package/dist/values/index.d.ts +1 -1
  173. package/dist/values/index.d.ts.map +1 -1
  174. package/dist/values/index.js +1 -1
  175. package/dist/values/index.js.map +1 -1
  176. package/dist/values/persona-completeness.d.ts +91 -0
  177. package/dist/values/persona-completeness.d.ts.map +1 -0
  178. package/dist/values/persona-completeness.js +114 -0
  179. package/dist/values/persona-completeness.js.map +1 -0
  180. package/dist/values/persona-diff.d.ts +50 -0
  181. package/dist/values/persona-diff.d.ts.map +1 -0
  182. package/dist/values/persona-diff.js +126 -0
  183. package/dist/values/persona-diff.js.map +1 -0
  184. package/dist/values/persona-values.d.ts +16 -0
  185. package/dist/values/persona-values.d.ts.map +1 -1
  186. package/dist/values/persona-values.js +33 -0
  187. package/dist/values/persona-values.js.map +1 -1
  188. package/dist/values/schwartz-values.d.ts +9 -1
  189. package/dist/values/schwartz-values.d.ts.map +1 -1
  190. package/dist/values/schwartz-values.js +10 -2
  191. package/dist/values/schwartz-values.js.map +1 -1
  192. package/dist/values/value-mappings.d.ts +41 -2
  193. package/dist/values/value-mappings.d.ts.map +1 -1
  194. package/dist/values/value-mappings.js +65 -8
  195. package/dist/values/value-mappings.js.map +1 -1
  196. package/dist/visual/attention-quality.d.ts +27 -0
  197. package/dist/visual/attention-quality.d.ts.map +1 -1
  198. package/dist/visual/attention-quality.js +164 -2
  199. package/dist/visual/attention-quality.js.map +1 -1
  200. package/dist/visual/attention-transport.d.ts +41 -2
  201. package/dist/visual/attention-transport.d.ts.map +1 -1
  202. package/dist/visual/attention-transport.js +98 -26
  203. package/dist/visual/attention-transport.js.map +1 -1
  204. package/dist/visual/barrier-overlay-html.d.ts +10 -0
  205. package/dist/visual/barrier-overlay-html.d.ts.map +1 -1
  206. package/dist/visual/barrier-overlay-html.js.map +1 -1
  207. package/dist/visual/cognitive-models.d.ts +109 -13
  208. package/dist/visual/cognitive-models.d.ts.map +1 -1
  209. package/dist/visual/cognitive-models.js +166 -3
  210. package/dist/visual/cognitive-models.js.map +1 -1
  211. package/dist/visual/cognitive-transport-chain.d.ts +149 -5
  212. package/dist/visual/cognitive-transport-chain.d.ts.map +1 -1
  213. package/dist/visual/cognitive-transport-chain.js +558 -30
  214. package/dist/visual/cognitive-transport-chain.js.map +1 -1
  215. package/dist/visual/cognitive-transport.d.ts +45 -3
  216. package/dist/visual/cognitive-transport.d.ts.map +1 -1
  217. package/dist/visual/cognitive-transport.js +126 -12
  218. package/dist/visual/cognitive-transport.js.map +1 -1
  219. package/dist/visual/fixation-corpus.d.ts +52 -0
  220. package/dist/visual/fixation-corpus.d.ts.map +1 -1
  221. package/dist/visual/fixation-corpus.js +95 -0
  222. package/dist/visual/fixation-corpus.js.map +1 -1
  223. package/dist/visual/llm-relevance.d.ts +193 -0
  224. package/dist/visual/llm-relevance.d.ts.map +1 -0
  225. package/dist/visual/llm-relevance.js +480 -0
  226. package/dist/visual/llm-relevance.js.map +1 -0
  227. package/dist/visual/perceptual-transport.d.ts +60 -0
  228. package/dist/visual/perceptual-transport.d.ts.map +1 -1
  229. package/dist/visual/perceptual-transport.js +228 -19
  230. package/dist/visual/perceptual-transport.js.map +1 -1
  231. package/dist/visual/persona-context.d.ts +23 -0
  232. package/dist/visual/persona-context.d.ts.map +1 -0
  233. package/dist/visual/persona-context.js +44 -0
  234. package/dist/visual/persona-context.js.map +1 -0
  235. package/package.json +2 -1
@@ -315,6 +315,7 @@ export const INFLUENCE_PATTERNS = [
315
315
  description: "Limited availability or time creates urgency",
316
316
  researchBasis: "Cialdini (2001): Scarcity increases perceived value",
317
317
  targetValues: ["stimulation", "achievement", "power"],
318
+ relatedTraits: [{ trait: "fearOfMissingOut", direction: "positive" }, { trait: "patience", direction: "negative" }, { trait: "trustCalibration", direction: "positive" }],
318
319
  mechanism: "FOMO activation, loss aversion trigger",
319
320
  examples: ["Only 3 left in stock", "Offer ends in 2 hours", "Limited edition"],
320
321
  effectivenessData: {
@@ -328,6 +329,7 @@ export const INFLUENCE_PATTERNS = [
328
329
  description: "Evidence of others' behavior guides decisions",
329
330
  researchBasis: "Goldstein et al. (2008): Social norms drive behavior",
330
331
  targetValues: ["conformity", "security"],
332
+ relatedTraits: [{ trait: "socialProofSensitivity", direction: "positive" }],
331
333
  mechanism: "Uncertainty reduction through social validation",
332
334
  examples: ["Trusted by 1M users", "4.8 stars from 10K reviews", "Most popular choice"],
333
335
  effectivenessData: {
@@ -341,6 +343,7 @@ export const INFLUENCE_PATTERNS = [
341
343
  description: "Expert endorsement increases credibility",
342
344
  researchBasis: "Milgram (1963): Authority figures drive compliance",
343
345
  targetValues: ["security", "conformity", "tradition"],
346
+ relatedTraits: [{ trait: "authoritySensitivity", direction: "positive" }, { trait: "trustCalibration", direction: "positive" }],
344
347
  mechanism: "Trust transfer from authority to product",
345
348
  examples: ["Recommended by doctors", "Used by Fortune 500", "Expert endorsed"],
346
349
  },
@@ -349,6 +352,7 @@ export const INFLUENCE_PATTERNS = [
349
352
  description: "Giving something creates obligation to return",
350
353
  researchBasis: "Cialdini (2001): Reciprocity norm is universal",
351
354
  targetValues: ["benevolence", "conformity"],
355
+ relatedTraits: [{ trait: "emotionalContagion", direction: "positive" }],
352
356
  mechanism: "Obligation creation through value provision",
353
357
  examples: ["Free ebook download", "No-obligation trial", "Free assessment"],
354
358
  },
@@ -357,6 +361,7 @@ export const INFLUENCE_PATTERNS = [
357
361
  description: "Small commitments lead to larger ones",
358
362
  researchBasis: "Cialdini (2001): Consistency principle",
359
363
  targetValues: ["achievement", "selfDirection"],
364
+ relatedTraits: [{ trait: "persistence", direction: "positive" }, { trait: "satisficing", direction: "negative" }],
360
365
  mechanism: "Self-consistency motivation after initial commitment",
361
366
  examples: ["Save progress", "Quiz completion", "Profile building"],
362
367
  },
@@ -365,6 +370,7 @@ export const INFLUENCE_PATTERNS = [
365
370
  description: "Attractiveness and similarity increase persuasion",
366
371
  researchBasis: "Cialdini (2001): We comply with those we like",
367
372
  targetValues: ["hedonism", "benevolence"],
373
+ relatedTraits: [{ trait: "emotionalContagion", direction: "positive" }, { trait: "trustCalibration", direction: "positive" }],
368
374
  mechanism: "Positive affect transfer to product",
369
375
  examples: ["Friendly tone", "Similar user stories", "Attractive design"],
370
376
  },
@@ -373,6 +379,7 @@ export const INFLUENCE_PATTERNS = [
373
379
  description: "Shared identity creates belonging",
374
380
  researchBasis: "Cialdini (2016): The 7th principle of persuasion",
375
381
  targetValues: ["benevolence", "tradition", "conformity"],
382
+ relatedTraits: [{ trait: "socialProofSensitivity", direction: "positive" }, { trait: "emotionalContagion", direction: "positive" }],
376
383
  mechanism: "In-group identification and loyalty",
377
384
  examples: ["Join our community", "Fellow founders", "Part of the family"],
378
385
  },
@@ -381,6 +388,7 @@ export const INFLUENCE_PATTERNS = [
381
388
  description: "First number sets reference point for comparison",
382
389
  researchBasis: "Tversky & Kahneman (1974): Anchoring heuristic",
383
390
  targetValues: ["achievement", "security"],
391
+ relatedTraits: [{ trait: "anchoringBias", direction: "positive" }],
384
392
  mechanism: "Reference point manipulation for value perception",
385
393
  examples: ["Was $99, now $49", "Compare at $199", "Save 50%"],
386
394
  effectivenessData: {
@@ -394,6 +402,7 @@ export const INFLUENCE_PATTERNS = [
394
402
  description: "Inferior option makes target look better",
395
403
  researchBasis: "Heath & Chatterjee (1995): Asymmetric dominance",
396
404
  targetValues: ["achievement", "selfDirection"],
405
+ relatedTraits: [{ trait: "satisficing", direction: "positive" }, { trait: "comprehension", direction: "negative" }],
397
406
  mechanism: "Comparative evaluation bias toward target",
398
407
  examples: ["Basic/Pro/Enterprise tiers", "Odd pricing structures"],
399
408
  effectivenessData: {
@@ -407,6 +416,7 @@ export const INFLUENCE_PATTERNS = [
407
416
  description: "Framing as loss is more motivating than gain",
408
417
  researchBasis: "Kahneman & Tversky (1979): Losses felt 2-2.5x more than gains",
409
418
  targetValues: ["security", "achievement"],
419
+ relatedTraits: [{ trait: "riskTolerance", direction: "negative" }],
410
420
  mechanism: "Fear of loss activation",
411
421
  examples: ["Don't miss out", "Stop losing leads", "Avoid costly mistakes"],
412
422
  },
@@ -415,6 +425,7 @@ export const INFLUENCE_PATTERNS = [
415
425
  description: "Pre-selected options are more likely to be chosen",
416
426
  researchBasis: "Thaler & Sunstein (2008): Nudge theory",
417
427
  targetValues: ["conformity", "security"],
428
+ relatedTraits: [{ trait: "satisficing", direction: "positive" }, { trait: "metacognitivePlanning", direction: "negative" }],
418
429
  mechanism: "Status quo bias, effort minimization",
419
430
  examples: ["Pre-checked boxes", "Recommended tier highlighted", "Auto-enrolled"],
420
431
  effectivenessData: {
@@ -490,30 +501,76 @@ export const VALUE_PROFILE_PATTERNS = [
490
501
  * @param pattern The influence pattern to evaluate
491
502
  * @returns Susceptibility score 0-1 (higher = more susceptible)
492
503
  */
493
- export function calculatePatternSusceptibility(values, pattern) {
504
+ export function calculatePatternSusceptibility(values, pattern, traits,
505
+ /**
506
+ * Axes the persona's derivation route cannot reach, which sit at 0.5 as a
507
+ * PLACEHOLDER rather than as a measurement.
508
+ *
509
+ * They used to be averaged in, because `values[value] !== undefined` is true
510
+ * of a baseline just as it is of a real number -- so the function's own
511
+ * description, "mean of defined target values", was accurate about the check
512
+ * and misleading about the result. Averaging a placeholder is imputation, and
513
+ * imputing the midpoint shrinks a contaminated pattern toward 0.5 while
514
+ * leaving a clean one alone: a directional bias, not added noise. Excluding
515
+ * them is the same convention `maslowLevel` uses, and having three different
516
+ * conventions in one payload while a caveat argues against one of them is
517
+ * worse than any of the three. Measured across every persona on this install:
518
+ * no ranking changed and the largest score move was 0.045. (2026-08-01)
519
+ */
520
+ frozen) {
494
521
  const targetValues = pattern.targetValues;
495
522
  if (targetValues.length === 0)
496
523
  return 0.5;
497
524
  let sum = 0;
498
525
  let count = 0;
526
+ let present = 0;
499
527
  for (const value of targetValues) {
500
- if (values[value] !== undefined) {
501
- sum += values[value];
502
- count++;
503
- }
528
+ if (values[value] === undefined)
529
+ continue;
530
+ present++;
531
+ if (frozen?.has(value))
532
+ continue;
533
+ sum += values[value];
534
+ count++;
535
+ }
536
+ // Every target frozen: there is nothing to score on, so fall back to the
537
+ // midpoint rather than inventing a number from an empty mean.
538
+ const valueScore = count > 0 ? sum / count : (present > 0 ? 0.5 : 0.5);
539
+ // Traits modulate the value-derived score. Without this the formula reads
540
+ // only Schwartz values, so two patterns with the same targetValues can never
541
+ // differ no matter how the persona's traits point, and a trait named for its
542
+ // pattern (anchoringBias -> anchoring) is ignored entirely.
543
+ const related = pattern.relatedTraits;
544
+ if (!traits || !related?.length)
545
+ return valueScore;
546
+ let tSum = 0, tCount = 0;
547
+ for (const { trait, direction } of related) {
548
+ const v = traits[trait];
549
+ if (typeof v !== "number")
550
+ continue;
551
+ tSum += direction === "positive" ? v : 1 - v;
552
+ tCount++;
504
553
  }
505
- return count > 0 ? sum / count : 0.5;
554
+ if (tCount === 0)
555
+ return valueScore;
556
+ // Values carry the motivational frame, traits the individual disposition.
557
+ // 60/40 keeps the Schwartz grounding dominant while letting a strong trait
558
+ // move the result and break ties.
559
+ return Math.round((valueScore * 0.6 + (tSum / tCount) * 0.4) * 1000) / 1000;
506
560
  }
507
561
  /**
508
562
  * Rank influence patterns by effectiveness for a given value profile.
509
563
  * @param values The persona's value profile
510
564
  * @returns Influence patterns sorted by susceptibility (most effective first)
511
565
  */
512
- export function rankInfluencePatternsForProfile(values) {
566
+ export function rankInfluencePatternsForProfile(values, traits, frozen) {
513
567
  return INFLUENCE_PATTERNS
514
568
  .map((pattern) => ({
515
569
  pattern,
516
- susceptibility: calculatePatternSusceptibility(values, pattern),
570
+ susceptibility: calculatePatternSusceptibility(values, pattern, traits, frozen),
571
+ // The pre-2026-08-01 number, carried so the convention change is
572
+ // auditable from the outside rather than only from the changelog.
573
+ susceptibilityWithImputed: calculatePatternSusceptibility(values, pattern, traits),
517
574
  }))
518
575
  .sort((a, b) => b.susceptibility - a.susceptibility);
519
576
  }
@@ -1 +1 @@
1
- {"version":3,"file":"value-mappings.js","sourceRoot":"","sources":["../../src/values/value-mappings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-mappings.js","sourceRoot":"","sources":["../../src/values/value-mappings.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,13 @@ export declare function computeValueRelevance(semanticType: SemanticType, values
20
20
  export interface AttentionQualityResult {
21
21
  /** CTA capture rate: fraction of top saliency in CTA zones (0-1) */
22
22
  ctaCaptureRate: number;
23
+ /** Heading share alone — valuePropSalience includes CTA and hides this. */
24
+ headingShare?: number;
25
+ /** The classifier's default bucket, previously published nowhere. */
26
+ contentRatio?: number;
27
+ /** Residual after every bucket, so a gap is visible rather than silent. */
28
+ unaccountedRatio?: number;
29
+ ratioNote?: string;
23
30
  /** Value prop salience: is the primary heading in top attention? (0-1) */
24
31
  valuePropSalience: number;
25
32
  /** Distractor ratio: fraction of top attention on non-actionable elements (0-1) */
@@ -106,6 +113,26 @@ export declare function extractPageElementsForAttention(page: unknown): Promise<
106
113
  isNav: boolean;
107
114
  isDecorative: boolean;
108
115
  classList: string;
116
+ /** Computed foreground colour, as the browser reports it. */
117
+ color?: string;
118
+ /** Nearest non-transparent background colour walking up the tree. */
119
+ backgroundColor?: string;
120
+ fontSize?: number;
121
+ fontWeight?: number;
122
+ /**
123
+ * Per-word bounding boxes for this element's text, in viewport coordinates.
124
+ *
125
+ * A heading's relevance belongs on its glyphs, not on the whitespace its box
126
+ * happens to span — a 400x44 heading box is mostly empty pixels, and painting
127
+ * the whole rect puts heat where there is nothing to look at.
128
+ */
129
+ words?: Array<{
130
+ text: string;
131
+ x: number;
132
+ y: number;
133
+ width: number;
134
+ height: number;
135
+ }>;
109
136
  }>>;
110
137
  export {};
111
138
  //# sourceMappingURL=attention-quality.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attention-quality.d.ts","sourceRoot":"","sources":["../../src/visual/attention-quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attention-quality.d.ts","sourceRoot":"","sources":["../../src/visual/attention-quality.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,21 @@ export function computeAttentionQuality(hotspots, pageElements, cellSize = 4, pe
194
194
  const ctaCaptureRate = ctaSaliency / totalTopSaliency;
195
195
  const valuePropSalience = (headingSaliency + ctaSaliency) / totalTopSaliency;
196
196
  const distractorRatio = (decorativeSaliency + unknownSaliency + navSaliency) / totalTopSaliency;
197
+ // contentSaliency was accumulated and consumed by NOTHING.
198
+ //
199
+ // It is the DEFAULT bucket -- anything the classifier does not recognise as
200
+ // cta / heading / nav / decorative lands here -- so unrecognised elements
201
+ // vanished from every published ratio and the ratios did not sum to 1. On a
202
+ // real university homepage that produced `distractorRatio: 0` while the
203
+ // persona was demonstrably fixating on nav-like dropdown triggers: they were
204
+ // not flagged isNav, fell through to content, and were counted nowhere.
205
+ //
206
+ // Published now, along with the residual, so a reader can see what share of
207
+ // attention the classifier could not account for. (2026-08-02)
208
+ const contentRatio = contentSaliency / totalTopSaliency;
209
+ const unaccountedRatio = Math.max(0, 1 - (ctaCaptureRate + (headingSaliency / totalTopSaliency)
210
+ + distractorRatio + contentRatio));
211
+ const headingShare = headingSaliency / totalTopSaliency;
197
212
  // Value relevance score (only when persona values provided)
198
213
  let valueRelevanceScore;
199
214
  if (personaValues) {
@@ -219,8 +234,23 @@ export function computeAttentionQuality(hotspots, pageElements, cellSize = 4, pe
219
234
  )));
220
235
  // Interpretation
221
236
  let interpretation;
222
- if (ctaCaptureRate > 0.3 && valuePropSalience > 0.5) {
223
- interpretation = "Strong attention quality — the persona sees the value prop and CTAs. Design intent is working.";
237
+ // headingShare, not valuePropSalience, decides whether the value prop was
238
+ // seen. valuePropSalience INCLUDES ctaSaliency, so it can never be low when
239
+ // CTA capture is high -- the metric is structurally unable to detect "sees
240
+ // the CTA, misses the value prop". Measured on a real run: ctaCaptureRate and
241
+ // valuePropSalience both 0.598 to three decimals, which happens exactly when
242
+ // headingSaliency is zero, and the tool nonetheless reported "the persona
243
+ // sees the value prop". It saw no heading at all.
244
+ if (ctaCaptureRate > 0.3 && headingShare > 0.15) {
245
+ // "Design intent is working" removed: it is a claim about the whole design,
246
+ // and this metric only knows whether the CTAs and heading drew top saliency.
247
+ // Sitting beside an alignment verdict that said the opposite, it read as the
248
+ // tool contradicting itself. Scoped to what it measures. (2026-08-02)
249
+ interpretation = "Strong attention capture — the CTAs and the value prop both drew top attention for this persona. This is about the conversion elements specifically; see interpretation.alignment for whether the overall distribution matches the design.";
250
+ }
251
+ else if (ctaCaptureRate > 0.3 && headingShare <= 0.02) {
252
+ interpretation = "CTAs capture attention but the value prop does not — headings drew "
253
+ + Math.round(headingShare * 100) + "% of top attention. The persona is seeing where to click without reading what it is for.";
224
254
  }
225
255
  else if (ctaCaptureRate > 0.1 && valuePropSalience > 0.3) {
226
256
  interpretation = "Moderate attention quality — the persona partially sees key elements but attention is split with other content.";
@@ -237,7 +267,14 @@ export function computeAttentionQuality(hotspots, pageElements, cellSize = 4, pe
237
267
  return {
238
268
  ctaCaptureRate: Math.round(ctaCaptureRate * 1000) / 1000,
239
269
  valuePropSalience: Math.round(valuePropSalience * 1000) / 1000,
270
+ // Separated out because valuePropSalience is heading+CTA and therefore
271
+ // equals ctaCaptureRate exactly whenever this is 0 -- two metrics agreeing
272
+ // to three decimals is that, not a coincidence.
273
+ headingShare: Math.round(headingShare * 1000) / 1000,
240
274
  distractorRatio: Math.round(distractorRatio * 1000) / 1000,
275
+ contentRatio: Math.round(contentRatio * 1000) / 1000,
276
+ unaccountedRatio: Math.round(unaccountedRatio * 1000) / 1000,
277
+ ratioNote: "ctaCaptureRate + headingShare + distractorRatio + contentRatio sum to 1. contentRatio is the classifier's default bucket: attention on elements it did not recognise as CTA, heading, nav or decorative. A high contentRatio next to distractorRatio 0 means the distractor classifier is not recognising the distractors, not that there are none.",
241
278
  qualityScore,
242
279
  valueRelevanceScore,
243
280
  // Deduplicated by element. The loop above walks HOTSPOTS — grid cells — and
@@ -300,6 +337,66 @@ export async function extractPageElementsForAttention(page) {
300
337
  const inViewport = (rect) => rect.width > 0 && rect.height > 0 &&
301
338
  rect.bottom > 0 && rect.top < vh &&
302
339
  rect.right > 0 && rect.left < vw;
340
+ // Colour and type size, so a downstream judge can tell a buried grey link
341
+ // from a filled primary button. Background walks UP the tree: an element's
342
+ // own background is transparent far more often than not, and reporting
343
+ // "rgba(0,0,0,0)" as the background makes every contrast judgement wrong.
344
+ // Per-word rects via Range over the element's text nodes. Range.getClientRects
345
+ // returns one rect per line box, so a word wrapped across lines yields the
346
+ // pieces rather than one box spanning both — which is what makes this usable
347
+ // on real running text instead of only on single-line labels.
348
+ const wordRects = (el) => {
349
+ const out = [];
350
+ try {
351
+ const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT);
352
+ let node;
353
+ while ((node = walker.nextNode())) {
354
+ const raw = node.textContent ?? "";
355
+ if (!raw.trim())
356
+ continue;
357
+ // Walk the string so offsets stay aligned with the ORIGINAL text —
358
+ // splitting and re-joining loses the real character positions and the
359
+ // rects drift word by word across the line.
360
+ const re = /\S+/g;
361
+ let m;
362
+ while ((m = re.exec(raw))) {
363
+ if (out.length >= 300)
364
+ return out; // a pathological page is not worth an unbounded walk
365
+ const range = document.createRange();
366
+ range.setStart(node, m.index);
367
+ range.setEnd(node, m.index + m[0].length);
368
+ for (const r of Array.from(range.getClientRects())) {
369
+ if (r.width <= 0 || r.height <= 0)
370
+ continue;
371
+ out.push({ text: m[0], x: r.x, y: r.y, width: r.width, height: r.height });
372
+ }
373
+ range.detach?.();
374
+ }
375
+ }
376
+ }
377
+ catch { /* an element whose text cannot be ranged still returns its box */ }
378
+ return out;
379
+ };
380
+ const styleOf = (el) => {
381
+ try {
382
+ const cs = window.getComputedStyle(el);
383
+ let bg = cs.backgroundColor;
384
+ let node = el.parentElement;
385
+ while (node && (!bg || bg === "transparent" || /rgba\([^)]*,\s*0\s*\)/.test(bg))) {
386
+ bg = window.getComputedStyle(node).backgroundColor;
387
+ node = node.parentElement;
388
+ }
389
+ return {
390
+ color: cs.color,
391
+ backgroundColor: bg,
392
+ fontSize: parseFloat(cs.fontSize) || undefined,
393
+ fontWeight: parseInt(cs.fontWeight, 10) || undefined,
394
+ };
395
+ }
396
+ catch {
397
+ return {};
398
+ }
399
+ };
303
400
  const elements = [];
304
401
  // CTAs: buttons with action text, prominent links
305
402
  const ctaPatterns = /apply|sign.?up|register|get.?started|buy|order|subscribe|enroll|join|donate|download|try|start|begin|contact|request|book/i;
@@ -319,6 +416,8 @@ export async function extractPageElementsForAttention(page) {
319
416
  isNav: false,
320
417
  isDecorative: false,
321
418
  classList: el.className || "",
419
+ ...styleOf(el),
420
+ words: wordRects(el),
322
421
  });
323
422
  });
324
423
  // Buttons and links — viewport only
@@ -342,9 +441,70 @@ export async function extractPageElementsForAttention(page) {
342
441
  isNav,
343
442
  isDecorative: false,
344
443
  classList: el.className || "",
444
+ ...styleOf(el),
445
+ words: wordRects(el),
345
446
  });
346
447
  });
347
448
  // Images (decorative) — viewport only
449
+ // Body content, prices and form fields.
450
+ //
451
+ // The extractor emitted only headings, links/buttons and images, which made
452
+ // ELEMENT_TYPE_WEIGHTS' `content`, `form`, `search`, `price` and `error`
453
+ // entries unreachable — the semantic layer had literally nothing to say
454
+ // about the text of a page. Visibly: a pricing page rendered heat on its
455
+ // heading and nav while every plan card, price and feature line sat dead,
456
+ // because none of them were extracted.
457
+ const priceRe = /(?:[$£€¥]\s?\d|\d+\s?(?:USD|EUR|GBP)|\/\s?(?:mo|month|year|yr)\b)/i;
458
+ const CONTENT_LIMIT = 120;
459
+ let contentSeen = 0;
460
+ document.querySelectorAll("p, li, td, th, dd, blockquote").forEach(el => {
461
+ if (contentSeen >= CONTENT_LIMIT)
462
+ return;
463
+ const rect = el.getBoundingClientRect();
464
+ if (!inViewport(rect))
465
+ return;
466
+ // Skip wrappers: a <li> containing a link is represented by the link.
467
+ if (el.querySelector("a, button, input, p, li"))
468
+ return;
469
+ const text = el.innerText?.trim() || "";
470
+ if (!text || text.length < 2)
471
+ return;
472
+ contentSeen++;
473
+ elements.push({
474
+ selector: el.tagName.toLowerCase(),
475
+ text: text.slice(0, 200),
476
+ type: priceRe.test(text) ? "price" : "content",
477
+ x: rect.x, y: rect.y, width: rect.width, height: rect.height,
478
+ isHeading: false,
479
+ isCTA: false,
480
+ isNav: !!(el.closest("nav") || el.closest('[role="navigation"]')),
481
+ isDecorative: false,
482
+ classList: el.className || "",
483
+ ...styleOf(el),
484
+ words: wordRects(el),
485
+ });
486
+ });
487
+ // Form fields — the `form` and `search` weights were equally unreachable.
488
+ document.querySelectorAll("input:not([type=submit]):not([type=hidden]), textarea, select").forEach(el => {
489
+ const rect = el.getBoundingClientRect();
490
+ if (!inViewport(rect))
491
+ return;
492
+ const input = el;
493
+ const label = input.getAttribute("aria-label") || input.placeholder || input.name || "";
494
+ const isSearch = input.type === "search" || /search/i.test(label);
495
+ elements.push({
496
+ selector: el.tagName.toLowerCase(),
497
+ text: label.slice(0, 100),
498
+ type: isSearch ? "search" : "form",
499
+ x: rect.x, y: rect.y, width: rect.width, height: rect.height,
500
+ isHeading: false,
501
+ isCTA: false,
502
+ isNav: false,
503
+ isDecorative: false,
504
+ classList: el.className || "",
505
+ ...styleOf(el),
506
+ });
507
+ });
348
508
  document.querySelectorAll("img, svg, video").forEach(el => {
349
509
  const rect = el.getBoundingClientRect();
350
510
  if (!inViewport(rect))
@@ -363,6 +523,8 @@ export async function extractPageElementsForAttention(page) {
363
523
  isNav: false,
364
524
  isDecorative,
365
525
  classList: el.className || "",
526
+ ...styleOf(el),
527
+ words: wordRects(el),
366
528
  });
367
529
  });
368
530
  return elements;
@@ -1 +1 @@
1
- {"version":3,"file":"attention-quality.js","sourceRoot":"","sources":["../../src/visual/attention-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH,MAAM,cAAc,GAAG,kHAAkH,CAAC;AAC1I,MAAM,qBAAqB,GAAG,yJAAyJ,CAAC;AACxL,MAAM,gBAAgB,GAAG,wFAAwF,CAAC;AAClH,MAAM,gBAAgB,GAAG,gGAAgG,CAAC;AAC1H,MAAM,gBAAgB,GAAG,qGAAqG,CAAC;AAC/H,MAAM,kBAAkB,GAAG,sFAAsF,CAAC;AAClH,MAAM,kBAAkB,GAAG,gGAAgG,CAAC;AAE5H,gEAAgE;AAChE,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,SAAkB;IACnE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;IACpD,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACzD,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IAChE,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IAC1D,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,MAAM,sBAAsB,GAAiD;IAC3E,cAAc,EAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IACnE,cAAc,EAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IACnE,SAAS,EAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE;IACzD,SAAS,EAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IACjD,SAAS,EAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;IACvD,WAAW,EAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;IACzE,WAAW,EAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC/E,MAAM,EAAW,EAAE;CACpB,CAAC;AAEF,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CACnC,YAA0B,EAC1B,MAAuC;IAEvC,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE5D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;QAC9C,WAAW,IAAI,YAAY,GAAG,MAAM,CAAC;QACrC,WAAW,IAAI,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAwCD;;;;;;;;GAQG;AACH;;;;;;;;;;;;;;;GAeG;AACH,SAAS,sBAAsB,CAC7B,OAAsD;IAEtD,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAC;IACJ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YAChF,QAAQ,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,2EAA2E;IAC3E,8EAA8E;IAC9E,sBAAsB;IACtB,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAA2B,EAC3B,YAaE,EACF,WAAmB,CAAC,EACpB,aAA+C;IAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAE5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC;YACf,mBAAmB,EAAE,EAAE;YACvB,cAAc,EAAE,6BAA6B;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,MAAM,OAAO,GAAkD,EAAE,CAAC;IAElE,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC;QAE1B,gDAAgD;QAChD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,kEAAkE;YAClE,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,sBAAsB;YACtC,IACE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG;gBAC/C,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,GAAG,EAChD,CAAC;gBACD,IAAI,IAAI,GAAgE,SAAS,CAAC;gBAElF,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,GAAG,KAAK,CAAC;oBACb,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;gBAClC,CAAC;qBAAM,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACxB,IAAI,GAAG,SAAS,CAAC;oBACjB,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;gBACtC,CAAC;qBAAM,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;oBACpB,IAAI,GAAG,YAAY,CAAC;oBACpB,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;gBAClC,CAAC;qBAAM,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;oBAC3B,IAAI,GAAG,YAAY,CAAC;oBACpB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;gBACtC,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,IAAI,oBAAoB,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACpF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEzF,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI;oBACJ,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ;oBAC7C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI;oBACpD,YAAY,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACtD,cAAc,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;iBACpF,CAAC,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;gBACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI;aACrD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,cAAc,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACtD,MAAM,iBAAiB,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC;IAC7E,MAAM,eAAe,GAAG,CAAC,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC;IAEhG,4DAA4D;IAC5D,IAAI,mBAAuC,CAAC;IAC5C,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC3D,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC;gBAC3C,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,mBAAmB,GAAG,WAAW,GAAG,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;YAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,uFAAuF;IACvF,MAAM,UAAU,GAAG,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CACvD,cAAc,GAAG,EAAE,GAAY,4BAA4B;QAC3D,iBAAiB,GAAG,EAAE,GAAS,sCAAsC;QACrE,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,GAAK,gCAAgC;QAC/D,UAAU,GAAqB,+CAA+C;QAC9E,CAAC,CAA8B,gBAAgB;KAChD,CAAC,CAAC,CAAC;IAEJ,iBAAiB;IACjB,IAAI,cAAsB,CAAC;IAC3B,IAAI,cAAc,GAAG,GAAG,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC;QACpD,cAAc,GAAG,gGAAgG,CAAC;IACpH,CAAC;SAAM,IAAI,cAAc,GAAG,GAAG,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC;QAC3D,cAAc,GAAG,iHAAiH,CAAC;IACrI,CAAC;SAAM,IAAI,eAAe,GAAG,GAAG,EAAE,CAAC;QACjC,cAAc,GAAG,4IAA4I,CAAC;IAChK,CAAC;SAAM,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;QACjC,cAAc,GAAG,iLAAiL,CAAC;IACrM,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,iHAAiH,CAAC;IACrI,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,IAAI;QACxD,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,IAAI;QAC9D,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI;QAC1D,YAAY;QACZ,mBAAmB;QACnB,4EAA4E;QAC5E,qEAAqE;QACrE,6EAA6E;QAC7E,mEAAmE;QACnE,2EAA2E;QAC3E,6EAA6E;QAC7E,wEAAwE;QACxE,eAAe;QACf,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjE,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAa;IAY7D,MAAM,GAAG,GAAG,MAAM,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAW,MAAO,IAA4D;SACpF,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;SACvC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;QACb,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;QACb,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG;QACrB,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,GAAG;QACvB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,YAAY,EAAE,EAAE,CAAC,YAAY;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,IAAa;IAcjE,MAAM,CAAC,GAAG,IAA6D,CAAC;IACxE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;QAE9B,mEAAmE;QACnE,MAAM,UAAU,GAAG,CAAC,IAAa,EAAW,EAAE,CAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAaT,EAAE,CAAC;QAER,kDAAkD;QAClD,MAAM,WAAW,GAAG,4HAA4H,CAAC;QAEjJ,2BAA2B;QAC3B,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnD,MAAM,IAAI,GAAI,EAAkB,CAAC,qBAAqB,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC9B,MAAM,IAAI,GAAI,EAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;gBAClC,IAAI;gBACJ,IAAI,EAAE,SAAS;gBACf,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;gBAC5D,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAG,EAAkB,CAAC,SAAS,IAAI,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,QAAQ,CAAC,gBAAgB,CAAC,kDAAkD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACzF,MAAM,IAAI,GAAI,EAAkB,CAAC,qBAAqB,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC9B,MAAM,IAAI,GAAI,EAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAK,EAAuB,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3F,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CACtB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrB,EAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,IAAI;gBACnF,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,0BAA0B;aAC5E,CAAC;YAEF,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;gBACnD,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;gBAC5D,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK;gBACL,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAG,EAAkB,CAAC,SAAS,IAAI,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACxD,MAAM,IAAI,GAAI,EAAkB,CAAC,qBAAqB,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,CAAC,kBAAkB;YACnE,MAAM,GAAG,GAAI,EAAuB,CAAC,GAAG,IAAI,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,IAAK,EAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,cAAc,CAAC;YACvG,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;gBAClC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBACtB,IAAI,EAAE,OAAO;gBACb,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;gBAC5D,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,YAAY;gBACZ,SAAS,EAAG,EAAkB,CAAC,SAAS,IAAI,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAKE,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"attention-quality.js","sourceRoot":"","sources":["../../src/visual/attention-quality.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,30 @@ export interface AttentionComparisonResult {
87
87
  divergence: number;
88
88
  }>;
89
89
  }
90
+ /**
91
+ * Compute saliency map using Wasserstein-2 distance on CIE-Lab distributions.
92
+ *
93
+ * For each grid cell, computes the mean and variance of the Lab color distribution.
94
+ * Saliency = W₂ distance between the cell's distribution and its surround's
95
+ * distribution (center-surround contrast, Klein & Frintrop method).
96
+ *
97
+ * For Gaussian measures, W₂ has a closed-form solution:
98
+ * BW²(N(μ₁,σ₁²), N(μ₂,σ₂²)) = ||μ₁-μ₂||² + (σ₁-σ₂)²
99
+ */
100
+ /**
101
+ * Exported so calibration work can obtain the PRE-filter saliency once per
102
+ * image and then sweep persona parameters over it cheaply. Recomputing the
103
+ * Lab pass for every parameter combination would make a grid search
104
+ * impractical, and re-deriving it in a separate script is how the Study 1
105
+ * Python port drifted from shipped code. (2026-07-29)
106
+ */
107
+ export declare function computeLabSaliency(imagePath: string, cellSize?: number, surroundRadius?: number): Promise<{
108
+ cells: Float64Array;
109
+ rows: number;
110
+ cols: number;
111
+ width: number;
112
+ height: number;
113
+ }>;
90
114
  /** DOM element with bounding rect for semantic attention mapping */
91
115
  export interface DOMAttentionElement {
92
116
  type: string;
@@ -99,6 +123,21 @@ export interface DOMAttentionElement {
99
123
  isHeading?: boolean;
100
124
  isNav?: boolean;
101
125
  isDecorative?: boolean;
126
+ /**
127
+ * Per-word boxes for this element's text.
128
+ *
129
+ * When present the semantic map paints THESE instead of the element rect, so
130
+ * heat lands on glyphs rather than on the whitespace a text box spans. A
131
+ * 400x44 heading is mostly empty pixels; painting the box puts attention where
132
+ * there is nothing to attend to.
133
+ */
134
+ words?: Array<{
135
+ text: string;
136
+ x: number;
137
+ y: number;
138
+ width: number;
139
+ height: number;
140
+ }>;
102
141
  }
103
142
  /**
104
143
  * Compute persona-specific attention analysis for a screenshot.
@@ -124,8 +163,8 @@ export interface DOMAttentionElement {
124
163
  * are interchangeable. Typical runtime: 5-30ms vs 1500-3000ms for the full
125
164
  * version.
126
165
  */
127
- export declare function analyzeAttentionFromDOM(viewportWidth: number, viewportHeight: number, domElements: DOMAttentionElement[], personaName: string, cellSize?: number, schwartzValues?: Record<string, number>, goal?: string, cognitiveTraits?: Record<string, number>): Promise<AttentionAnalysis>;
128
- export declare function analyzeAttention(screenshotPath: string, personaName: string, cellSize?: number, schwartzValues?: Record<string, number>, domElements?: DOMAttentionElement[], goal?: string, cognitiveTraits?: Record<string, number>): Promise<AttentionAnalysis>;
166
+ export declare function analyzeAttentionFromDOM(viewportWidth: number, viewportHeight: number, domElements: DOMAttentionElement[], personaName: string, cellSize?: number, schwartzValues?: Record<string, number>, goal?: string, cognitiveTraits?: Record<string, number>, relevanceScores?: Record<number, number>): Promise<AttentionAnalysis>;
167
+ export declare function analyzeAttention(screenshotPath: string, personaName: string, cellSize?: number, schwartzValues?: Record<string, number>, domElements?: DOMAttentionElement[], goal?: string, cognitiveTraits?: Record<string, number>, relevanceScores?: Record<number, number>): Promise<AttentionAnalysis>;
129
168
  /**
130
169
  * Compare attention patterns between two personas on the same screenshot.
131
170
  * Returns the Wasserstein divergence between their saliency maps and