cbrowser 18.63.2 → 18.64.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 (36) hide show
  1. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  2. package/dist/analysis/accessibility-empathy.js +31 -16
  3. package/dist/analysis/accessibility-empathy.js.map +1 -1
  4. package/dist/cif-score.d.ts +141 -0
  5. package/dist/cif-score.d.ts.map +1 -0
  6. package/dist/cif-score.js +634 -0
  7. package/dist/cif-score.js.map +1 -0
  8. package/dist/ideal-profiles-gap.d.ts +92 -0
  9. package/dist/ideal-profiles-gap.d.ts.map +1 -0
  10. package/dist/ideal-profiles-gap.js +325 -0
  11. package/dist/ideal-profiles-gap.js.map +1 -0
  12. package/dist/ideal-profiles.d.ts +70 -0
  13. package/dist/ideal-profiles.d.ts.map +1 -0
  14. package/dist/ideal-profiles.js +404 -0
  15. package/dist/ideal-profiles.js.map +1 -0
  16. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  17. package/dist/mcp-tools/base/visual-testing-tools.js +40 -16
  18. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  19. package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -1
  20. package/dist/mcp-tools/persona-creation-tools.js +119 -15
  21. package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
  22. package/dist/visual/attention-transport.d.ts +24 -4
  23. package/dist/visual/attention-transport.d.ts.map +1 -1
  24. package/dist/visual/attention-transport.js +253 -9
  25. package/dist/visual/attention-transport.js.map +1 -1
  26. package/dist/visual/cognitive-transport-chain.d.ts.map +1 -1
  27. package/dist/visual/cognitive-transport-chain.js +6 -1
  28. package/dist/visual/cognitive-transport-chain.js.map +1 -1
  29. package/dist/visual/cognitive-transport.d.ts.map +1 -1
  30. package/dist/visual/cognitive-transport.js +18 -4
  31. package/dist/visual/cognitive-transport.js.map +1 -1
  32. package/dist/visual/perceptual-transport.d.ts +15 -3
  33. package/dist/visual/perceptual-transport.d.ts.map +1 -1
  34. package/dist/visual/perceptual-transport.js +92 -6
  35. package/dist/visual/perceptual-transport.js.map +1 -1
  36. package/package.json +1 -1
@@ -475,16 +475,35 @@ Phase: VALUES (${session.currentIndex + 1} of ${session.valueQuestions.length})`
475
475
  mode: "manual_inference",
476
476
  persona_name,
477
477
  user_description: description,
478
- instruction: `Based on the user's description, infer appropriate trait values (0.0 to 1.0) for each cognitive trait. Use the trait reference matrix below to guide your inference. Return the traits via persona_create_submit_traits.`,
478
+ instruction: `Based on the user's description, infer appropriate trait values (0.0 to 1.0) for each cognitive trait. Use the trait reference matrix below to guide your inference. If the description mentions ANY physical or sensory disability (vision loss, motor impairment, color blindness, hearing loss, tremor, etc.), you MUST also include accessibilityTraits. Without accessibilityTraits, the persona gets cognitive-only modeling and the perceptual transport layer will report near-perfect perception — which is wrong for someone with a disability. Return the traits via persona_create_submit_traits.`,
479
479
  trait_reference: traitInfo,
480
+ accessibility_traits_reference: {
481
+ visionLevel: "0=blind, 0.3=legally blind, 0.5=low vision (needs magnification), 0.7=mild vision loss, 1.0=sighted",
482
+ contrastSensitivity: "0=needs very high contrast (7:1+), 0.5=needs elevated contrast, 1.0=normal",
483
+ colorBlindness: "red-green (deuteranopia/protanopia), blue-yellow (tritanopia), monochrome (achromatopsia), or omit if none",
484
+ motorControl: "0=severe impairment (can barely click), 0.3=significant difficulty, 0.5=moderate (slow, imprecise), 0.7=mild, 1.0=full control",
485
+ tremor: "true if involuntary hand movement (Parkinson's, essential tremor, etc.)",
486
+ processingSpeed: "0=very slow (needs 5x more time), 0.5=moderate, 1.0=fast",
487
+ attentionSpan: "0=very short (< 30 seconds sustained focus), 0.5=moderate, 1.0=sustained",
488
+ hearingLevel: "0=deaf, 0.5=hard of hearing, 1.0=full hearing",
489
+ },
480
490
  example_output: {
481
- patience: 0.25,
482
- riskTolerance: 0.75,
483
- comprehension: 0.75,
484
- persistence: 0.5,
485
- curiosity: 0.5,
486
- workingMemory: 0.75,
487
- readingTendency: 0.25,
491
+ traits: {
492
+ patience: 0.8,
493
+ riskTolerance: 0.25,
494
+ comprehension: 0.6,
495
+ persistence: 0.7,
496
+ curiosity: 0.3,
497
+ workingMemory: 0.5,
498
+ readingTendency: 0.9,
499
+ },
500
+ accessibilityTraits: {
501
+ visionLevel: 0.4,
502
+ contrastSensitivity: 0.3,
503
+ motorControl: 0.7,
504
+ processingSpeed: 0.5,
505
+ },
506
+ ageRange: "65+",
488
507
  },
489
508
  follow_up_tool: "persona_create_submit_traits",
490
509
  }, null, 2),
@@ -493,11 +512,22 @@ Phase: VALUES (${session.currentIndex + 1} of ${session.valueQuestions.length})`
493
512
  });
494
513
  server.registerTool("persona_create_submit_traits", {
495
514
  title: "Submit Persona Traits",
496
- description: "Submit inferred traits for a persona created from description. Use after persona_create_from_description.",
515
+ description: "Submit inferred traits for a persona created from description. Use after persona_create_from_description. For disability personas, include accessibilityTraits to enable sensory/motor modeling in empathy_audit.",
497
516
  inputSchema: {
498
517
  persona_name: z.string().describe("Name for the persona"),
499
- traits: z.record(z.string(), z.number()).describe("Map of trait names to values (0-1)"),
518
+ traits: z.record(z.string(), z.number()).describe("Map of cognitive trait names to values (0-1)"),
500
519
  description: z.string().optional().describe("Original description for reference"),
520
+ accessibilityTraits: z.object({
521
+ visionLevel: z.number().min(0).max(1).optional().describe("Vision level: 0=blind, 0.5=low vision, 1=sighted"),
522
+ contrastSensitivity: z.number().min(0).max(1).optional().describe("Contrast sensitivity: 0=needs very high contrast, 1=normal"),
523
+ colorBlindness: z.enum(["red-green", "blue-yellow", "monochrome"]).optional().describe("Type of color blindness, if any"),
524
+ motorControl: z.number().min(0).max(1).optional().describe("Motor control: 0=severe impairment, 1=full control"),
525
+ tremor: z.boolean().optional().describe("Has hand tremor (Parkinson's, essential tremor)"),
526
+ processingSpeed: z.number().min(0).max(1).optional().describe("Information processing speed: 0=very slow, 1=fast"),
527
+ attentionSpan: z.number().min(0).max(1).optional().describe("Focus duration before fatigue: 0=very short, 1=sustained"),
528
+ hearingLevel: z.number().min(0).max(1).optional().describe("Hearing level: 0=deaf, 1=full hearing"),
529
+ }).optional().describe("Sensory/motor/physical traits for disability modeling. Without these, the persona gets cognitive-only modeling (no vision/motor simulation in empathy_audit)."),
530
+ ageRange: z.string().optional().describe("Age range: '18-24', '25-45', '45-65', '65+'"),
501
531
  },
502
532
  annotations: {
503
533
  title: "Submit Persona Traits",
@@ -506,9 +536,76 @@ Phase: VALUES (${session.currentIndex + 1} of ${session.valueQuestions.length})`
506
536
  idempotentHint: false,
507
537
  openWorldHint: false,
508
538
  },
509
- }, async ({ persona_name, traits, description }) => {
539
+ }, async ({ persona_name, traits, description, accessibilityTraits, ageRange }) => {
510
540
  const builtTraits = buildTraitsFromAnswers(traits);
511
541
  const derivedResult = deriveValuesFromTraits(builtTraits);
542
+ // Register the persona in the runtime so empathy_audit, cognitive_effort, etc. can find it
543
+ const { createCognitivePersona, registerPersonas } = await import("../personas.js");
544
+ const personaObj = createCognitivePersona(persona_name, description || persona_name, builtTraits, { ageRange: ageRange || undefined });
545
+ // Attach accessibility traits — either from explicit parameter or inferred from name/description
546
+ let resolvedAccessibilityTraits = accessibilityTraits;
547
+ if (!resolvedAccessibilityTraits || Object.keys(resolvedAccessibilityTraits).length === 0) {
548
+ // Infer disability traits from persona name and description
549
+ const text = `${persona_name} ${description || ''}`.toLowerCase();
550
+ const hasVision = /vision|blind|magnif|low.?vis|sight|visual.?impair/.test(text);
551
+ const hasMotor = /motor|tremor|parkinson|arthrit|dexterity|mobility/.test(text);
552
+ const hasCognitive = /adhd|dyslexic|dyslexia|cognitive|autism|intellectual/.test(text);
553
+ const hasHearing = /deaf|hearing|hard.?of.?hearing/.test(text);
554
+ const hasElderly = /elderly|senior|65|70|75|80|retired|aging|aged/.test(text);
555
+ if (hasVision || hasMotor || hasCognitive || hasHearing || hasElderly) {
556
+ resolvedAccessibilityTraits = {
557
+ visionLevel: hasVision ? 0.4 : hasElderly ? 0.6 : 1.0,
558
+ contrastSensitivity: hasVision ? 0.3 : hasElderly ? 0.5 : 1.0,
559
+ motorControl: hasMotor ? 0.3 : hasElderly ? 0.6 : 1.0,
560
+ tremor: hasMotor,
561
+ processingSpeed: hasCognitive ? 0.4 : hasElderly ? 0.5 : builtTraits.comprehension ?? 0.8,
562
+ attentionSpan: hasCognitive ? 0.3 : builtTraits.patience ?? 0.7,
563
+ hearingLevel: hasHearing ? 0.2 : 1.0,
564
+ };
565
+ }
566
+ }
567
+ if (resolvedAccessibilityTraits && Object.keys(resolvedAccessibilityTraits).length > 0) {
568
+ personaObj.accessibilityTraits = {
569
+ motorControl: resolvedAccessibilityTraits.motorControl ?? 1.0,
570
+ tremor: resolvedAccessibilityTraits.tremor ?? false,
571
+ reachability: (resolvedAccessibilityTraits.motorControl ?? 1.0) < 0.5 ? 0.4 : 1.0,
572
+ visionLevel: resolvedAccessibilityTraits.visionLevel ?? 1.0,
573
+ contrastSensitivity: resolvedAccessibilityTraits.contrastSensitivity ?? 1.0,
574
+ colorBlindness: resolvedAccessibilityTraits.colorBlindness,
575
+ processingSpeed: resolvedAccessibilityTraits.processingSpeed ?? builtTraits.comprehension ?? 0.8,
576
+ attentionSpan: resolvedAccessibilityTraits.attentionSpan ?? builtTraits.patience ?? 0.7,
577
+ fatigueSusceptibility: (resolvedAccessibilityTraits.visionLevel ?? 1.0) < 0.7 || (resolvedAccessibilityTraits.motorControl ?? 1.0) < 0.7 ? 0.7 : 0.3,
578
+ };
579
+ }
580
+ registerPersonas([personaObj]);
581
+ // Also save to CMS if an API key is configured (makes it persistent across sessions)
582
+ let savedToCms = false;
583
+ try {
584
+ const { getSessionApiKey } = await import("./base/cognitive-tools.js");
585
+ const apiKey = getSessionApiKey();
586
+ if (apiKey) {
587
+ const cmsUrl = process.env.CMS_URL || "http://localhost:3200";
588
+ const slug = persona_name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
589
+ const res = await fetch(`${cmsUrl}/api/personas`, {
590
+ method: "POST",
591
+ headers: { "Authorization": `Bearer ${apiKey}`, "Content-Type": "application/json" },
592
+ body: JSON.stringify({
593
+ name: persona_name,
594
+ slug,
595
+ description: description || persona_name,
596
+ traits: builtTraits,
597
+ schwartz_values: derivedResult.values,
598
+ accessibility_traits: resolvedAccessibilityTraits || null,
599
+ age_range: ageRange || personaObj.demographics?.age_range || null,
600
+ source: "mcp",
601
+ }),
602
+ });
603
+ savedToCms = res.ok;
604
+ }
605
+ }
606
+ catch (e) {
607
+ // CMS save is best-effort — persona is still usable via runtime registry
608
+ }
512
609
  return {
513
610
  content: [{
514
611
  type: "text",
@@ -519,12 +616,19 @@ Phase: VALUES (${session.currentIndex + 1} of ${session.valueQuestions.length})`
519
616
  traits: builtTraits,
520
617
  values: derivedResult.values,
521
618
  derivations: derivedResult.derivations,
522
- instruction: `Persona "${persona_name}" created. Use with cognitive_journey_init.`,
619
+ accessibilityTraits: resolvedAccessibilityTraits || null,
620
+ hasDisabilityModeling: !!(resolvedAccessibilityTraits && Object.keys(resolvedAccessibilityTraits).length > 0),
621
+ disabilityTraitsSource: accessibilityTraits ? 'explicit' : resolvedAccessibilityTraits ? 'inferred_from_description' : 'none',
622
+ ageRange: ageRange || personaObj.demographics?.age_range || null,
623
+ registered: true,
624
+ savedToCms,
625
+ instruction: resolvedAccessibilityTraits
626
+ ? `Persona "${persona_name}" created with disability modeling (vision=${resolvedAccessibilityTraits.visionLevel ?? 'default'}, motor=${resolvedAccessibilityTraits.motorControl ?? 'default'}). The perceptual transport layer will simulate sensory impairment. Use with empathy_audit for accurate disability scoring.`
627
+ : `Persona "${persona_name}" created with cognitive-only modeling. For disability-specific scoring (vision impairment, motor difficulty, etc.), recreate with accessibilityTraits parameter.`,
523
628
  usage_example: {
524
- tool: "cognitive_journey_init",
629
+ tool: "empathy_audit",
525
630
  params: {
526
- persona: persona_name,
527
- customTraits: builtTraits,
631
+ disabilities: [persona_name],
528
632
  },
529
633
  },
530
634
  }, null, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"persona-creation-tools.js","sourceRoot":"","sources":["../../src/mcp-tools/persona-creation-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persona-creation-tools.js","sourceRoot":"","sources":["../../src/mcp-tools/persona-creation-tools.ts"],"names":[],"mappings":"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"}
@@ -77,17 +77,37 @@ export interface AttentionComparisonResult {
77
77
  divergence: number;
78
78
  }>;
79
79
  }
80
+ /** DOM element with bounding rect for semantic attention mapping */
81
+ export interface DOMAttentionElement {
82
+ type: string;
83
+ x: number;
84
+ y: number;
85
+ width: number;
86
+ height: number;
87
+ text?: string;
88
+ isCTA?: boolean;
89
+ isHeading?: boolean;
90
+ isNav?: boolean;
91
+ isDecorative?: boolean;
92
+ }
80
93
  /**
81
94
  * Compute persona-specific attention analysis for a screenshot.
82
95
  *
83
- * Generates a saliency map using W₂ on CIE-Lab distributions,
84
- * applies the persona's perceptual filter, and computes attention metrics.
96
+ * Two-layer attention model:
97
+ * 1. Visual saliency W₂ on CIE-Lab distributions (what POPS visually)
98
+ * 2. Semantic attention — DOM element classification × persona priorities (what MATTERS)
99
+ *
100
+ * Blended at 35% visual / 65% semantic (research shows task-driven attention
101
+ * dominates bottom-up saliency for goal-oriented users — Yarbus 1967,
102
+ * Henderson 2003, Tatler et al. 2011).
103
+ *
104
+ * When DOM elements are not provided, falls back to visual-only mode.
85
105
  */
86
- export declare function analyzeAttention(screenshotPath: string, personaName: string, cellSize?: number, schwartzValues?: Record<string, number>): Promise<AttentionAnalysis>;
106
+ export declare function analyzeAttention(screenshotPath: string, personaName: string, cellSize?: number, schwartzValues?: Record<string, number>, domElements?: DOMAttentionElement[], goal?: string, cognitiveTraits?: Record<string, number>): Promise<AttentionAnalysis>;
87
107
  /**
88
108
  * Compare attention patterns between two personas on the same screenshot.
89
109
  * Returns the Wasserstein divergence between their saliency maps and
90
110
  * identifies regions where attention differs most.
91
111
  */
92
- export declare function compareAttention(screenshotPath: string, personaA: string, personaB: string, cellSize?: number): Promise<AttentionComparisonResult>;
112
+ export declare function compareAttention(screenshotPath: string, personaA: string, personaB: string, cellSize?: number, domElements?: DOMAttentionElement[], goal?: string): Promise<AttentionComparisonResult>;
93
113
  //# sourceMappingURL=attention-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attention-transport.d.ts","sourceRoot":"","sources":["../../src/visual/attention-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,KAAK,EAAE,YAAY,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,oBAAoB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,gBAAgB,EAAE,KAAK,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AA0UD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAW,EACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CA0G5B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,yBAAyB,CAAC,CA2CpC"}
1
+ {"version":3,"file":"attention-transport.d.ts","sourceRoot":"","sources":["../../src/visual/attention-transport.ts"],"names":[],"mappings":"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"}
@@ -274,14 +274,236 @@ function applyPersonaFilter(saliency, rows, cols, filter, schwartzValues) {
274
274
  filtered[i] /= max;
275
275
  return filtered;
276
276
  }
277
+ // ── DOM-Based Semantic Attention Layer ──
278
+ /**
279
+ * Element type → base attention weight.
280
+ * These represent how inherently attention-grabbing each element type is,
281
+ * independent of visual appearance. A search bar is visually subtle but
282
+ * a power user looks there first.
283
+ */
284
+ const ELEMENT_TYPE_WEIGHTS = {
285
+ cta: 1.0, // Calls to action — highest inherent draw
286
+ heading: 0.8, // Headings — structural anchors
287
+ form: 0.7, // Form fields — interactive, task-relevant
288
+ search: 0.7, // Search bars — navigation entry point
289
+ image: 0.5, // Images — visual anchors
290
+ navigation: 0.4, // Nav elements — wayfinding
291
+ link: 0.3, // Regular links
292
+ content: 0.2, // Body text
293
+ decorative: 0.1, // Decorative images, spacers
294
+ price: 0.9, // Prices — high commercial relevance
295
+ error: 0.9, // Error messages — demand immediate attention
296
+ };
297
+ /**
298
+ * Persona trait → element type weight modifiers.
299
+ * Each persona amplifies or suppresses attention to certain element types
300
+ * based on their cognitive traits and goals.
301
+ */
302
+ const PERSONA_ELEMENT_MODIFIERS = {
303
+ "first-timer": {
304
+ cta: 1.2, heading: 1.3, navigation: 1.2, search: 1.0, content: 0.6, decorative: 0.4,
305
+ },
306
+ "power-user": {
307
+ cta: 0.6, heading: 0.5, navigation: 1.4, search: 1.5, content: 0.3, form: 1.2, decorative: 0.1,
308
+ },
309
+ "impatient-user": {
310
+ cta: 1.5, heading: 1.0, navigation: 0.8, search: 1.3, content: 0.2, decorative: 0.1, price: 1.3,
311
+ },
312
+ "elderly-user": {
313
+ cta: 1.0, heading: 1.4, navigation: 1.3, search: 0.8, content: 0.8, form: 0.9, decorative: 0.3,
314
+ },
315
+ "cognitive-adhd": {
316
+ cta: 0.8, heading: 0.7, navigation: 0.5, image: 1.5, decorative: 1.2, content: 0.3, search: 0.6,
317
+ },
318
+ "anxious-user": {
319
+ cta: 0.7, heading: 1.0, price: 1.5, error: 1.5, form: 0.8, decorative: 0.3,
320
+ },
321
+ "motor-impairment-tremor": {
322
+ cta: 1.0, heading: 0.8, navigation: 0.6, form: 0.7, search: 0.9, content: 0.5,
323
+ },
324
+ "dyslexic-user": {
325
+ cta: 1.1, heading: 1.3, image: 1.3, content: 0.4, navigation: 0.9, decorative: 0.5,
326
+ },
327
+ "low-vision-magnified": {
328
+ cta: 1.2, heading: 1.5, navigation: 1.0, content: 0.5, image: 0.8, decorative: 0.2,
329
+ },
330
+ "mobile-user": {
331
+ cta: 1.3, heading: 1.0, search: 1.2, navigation: 0.7, content: 0.4, decorative: 0.2,
332
+ },
333
+ "confident-user": {
334
+ cta: 0.7, heading: 0.5, navigation: 1.3, search: 1.4, form: 1.2, content: 0.3, decorative: 0.1,
335
+ },
336
+ };
337
+ /**
338
+ * Compute trait-driven element modifiers from cognitive traits.
339
+ * Generalizes the static PERSONA_ELEMENT_MODIFIERS table to work with
340
+ * ANY persona's trait values, not just the 11 hardcoded ones.
341
+ */
342
+ function computeTraitModifiers(traits) {
343
+ const t = (key) => traits[key] ?? 0.5;
344
+ return {
345
+ // Low patience → fixate on CTAs and search, skip content
346
+ cta: 1.0 + (1.0 - t("patience")) * 0.5,
347
+ search: 0.7 + (1.0 - t("patience")) * 0.6,
348
+ content: 0.2 + t("patience") * 0.4,
349
+ // High curiosity → explore headings, images, more elements
350
+ heading: 0.8 + t("curiosity") * 0.4,
351
+ image: 0.5 + t("curiosity") * 0.5,
352
+ // Low siteFamiliarity → navigation, headings are important
353
+ navigation: 0.4 + (1.0 - t("siteFamiliarity")) * 0.6,
354
+ // High readingTendency → content draws attention
355
+ // (overrides patience for reading-heavy personas)
356
+ ...(t("readingTendency") > 0.6 ? { content: 0.4 + t("readingTendency") * 0.4 } : {}),
357
+ // Low selfEfficacy → error messages, help text draw attention
358
+ error: 0.5 + (1.0 - t("selfEfficacy")) * 0.5,
359
+ // High riskTolerance → prices don't scare, CTAs are natural
360
+ price: 0.5 + (1.0 - t("riskTolerance")) * 0.5,
361
+ // Decorative: ADHD-like attention (low metacognitivePlanning = distracted by visuals)
362
+ decorative: 0.1 + (1.0 - t("metacognitivePlanning")) * 0.4,
363
+ form: 0.5 + t("proceduralFluency") * 0.3,
364
+ };
365
+ }
366
+ /**
367
+ * Compute goal relevance boost for an element.
368
+ * If the element's text matches the user's goal, massively boost its weight.
369
+ * This is the "task-driven attention" component (Yarbus 1967).
370
+ */
371
+ function computeGoalRelevance(elementText, goal) {
372
+ if (!goal || !elementText)
373
+ return 0;
374
+ const goalLower = goal.toLowerCase();
375
+ const textLower = elementText.toLowerCase();
376
+ // Extract goal keywords (remove stop words)
377
+ const stopWords = new Set(["the", "a", "an", "to", "for", "of", "in", "on", "at", "is", "it", "my", "i", "me", "and", "or", "how", "do", "can"]);
378
+ const goalWords = goalLower.split(/\s+/).filter(w => w.length > 2 && !stopWords.has(w));
379
+ if (goalWords.length === 0)
380
+ return 0;
381
+ // Score based on keyword matches
382
+ let matches = 0;
383
+ for (const word of goalWords) {
384
+ if (textLower.includes(word))
385
+ matches++;
386
+ }
387
+ if (matches === 0)
388
+ return 0;
389
+ // Partial match: some keywords found
390
+ const matchRatio = matches / goalWords.length;
391
+ // 2.0x boost for full match, proportional for partial
392
+ return matchRatio * 2.0;
393
+ }
394
+ /**
395
+ * Build a semantic attention map from DOM elements.
396
+ *
397
+ * Three layers of element weighting:
398
+ * 1. Base weight by element type (CTA=1.0, heading=0.8, etc.)
399
+ * 2. Persona modifiers from cognitive traits (patience, curiosity, familiarity)
400
+ * 3. Goal relevance — elements matching the user's goal get massive boost
401
+ *
402
+ * Also applies Schwartz value relevance (trust signals for security-oriented,
403
+ * novelty badges for stimulation-seeking, etc.)
404
+ */
405
+ function buildSemanticMap(elements, rows, cols, cellSize, imageWidth, imageHeight, personaName, goal, cognitiveTraits, schwartzValues) {
406
+ const map = new Float64Array(rows * cols);
407
+ // Use trait-driven modifiers if traits available, else fall back to static table
408
+ const modifiers = cognitiveTraits
409
+ ? computeTraitModifiers(cognitiveTraits)
410
+ : (PERSONA_ELEMENT_MODIFIERS[personaName] || {});
411
+ // Value-driven semantic patterns (imported from attention-quality)
412
+ const VALUE_PATTERNS = {
413
+ trust: { pattern: /secur|trust|verif|guarant|privacy|encrypt|safe|protect/i, values: { security: 1.0, conformity: 0.5 } },
414
+ social: { pattern: /review|rating|star|trusted.?by|\d+[kK]?\+?\s*users|testimonial/i, values: { conformity: 1.0, security: 0.6 } },
415
+ novelty: { pattern: /\bnew\b|beta|launch|updat|just.?added|latest|early.?access/i, values: { stimulation: 1.0, selfDirection: 0.5 } },
416
+ metrics: { pattern: /\d+%|\d+x\s|roi|faster|improv|performance|\$\d/i, values: { achievement: 1.0, power: 0.4 } },
417
+ urgency: { pattern: /limited|only\s*\d|hurry|expire|last.?chance|act.?now/i, values: { stimulation: 0.5, achievement: 0.4 } },
418
+ community: { pattern: /community|join|forum|together|open.?source|contrib/i, values: { benevolence: 0.8, universalism: 0.6 } },
419
+ };
420
+ for (const el of elements) {
421
+ // Determine element type
422
+ let elType = el.type || "content";
423
+ if (el.isCTA)
424
+ elType = "cta";
425
+ else if (el.isHeading)
426
+ elType = "heading";
427
+ else if (el.isNav)
428
+ elType = "navigation";
429
+ else if (el.isDecorative)
430
+ elType = "decorative";
431
+ // Layer 1: Base weight by element type
432
+ let weight = ELEMENT_TYPE_WEIGHTS[elType] ?? 0.2;
433
+ // Layer 2: Persona modifier (trait-driven or static lookup)
434
+ const modifier = modifiers[elType] ?? 1.0;
435
+ weight *= modifier;
436
+ // Layer 3: Goal relevance — elements matching the goal get up to 3x boost
437
+ if (goal && el.text) {
438
+ const goalBoost = computeGoalRelevance(el.text, goal);
439
+ if (goalBoost > 0) {
440
+ weight *= (1.0 + goalBoost); // Up to 3x for full goal match
441
+ }
442
+ }
443
+ // Layer 4: Schwartz value relevance — elements matching persona values get boost
444
+ if (schwartzValues && el.text) {
445
+ for (const [, pattern] of Object.entries(VALUE_PATTERNS)) {
446
+ if (pattern.pattern.test(el.text)) {
447
+ let valueBoost = 0;
448
+ for (const [valueName, valueWeight] of Object.entries(pattern.values)) {
449
+ const personaValue = schwartzValues[valueName] ?? 0.5;
450
+ valueBoost += (personaValue - 0.5) * valueWeight;
451
+ }
452
+ weight *= (1.0 + Math.max(0, valueBoost));
453
+ }
454
+ }
455
+ }
456
+ // Map element bounds to grid cells
457
+ const pxPerCol = imageWidth / cols;
458
+ const pxPerRow = imageHeight / rows;
459
+ const startCol = Math.max(0, Math.floor(el.x / pxPerCol));
460
+ const endCol = Math.min(cols - 1, Math.floor((el.x + el.width) / pxPerCol));
461
+ const startRow = Math.max(0, Math.floor(el.y / pxPerRow));
462
+ const endRow = Math.min(rows - 1, Math.floor((el.y + el.height) / pxPerRow));
463
+ for (let r = startRow; r <= endRow; r++) {
464
+ for (let c = startCol; c <= endCol; c++) {
465
+ const idx = r * cols + c;
466
+ map[idx] = Math.max(map[idx], weight);
467
+ }
468
+ }
469
+ }
470
+ // Normalize to 0-1
471
+ const maxVal = Math.max(...Array.from(map), 0.001);
472
+ for (let i = 0; i < map.length; i++)
473
+ map[i] /= maxVal;
474
+ return map;
475
+ }
476
+ /**
477
+ * Blend visual saliency with semantic attention map.
478
+ * visual: what POPS visually (color contrast)
479
+ * semantic: what MATTERS structurally (element types × persona priorities)
480
+ */
481
+ function blendSaliencyMaps(visual, semantic, visualWeight = 0.35, semanticWeight = 0.65) {
482
+ const blended = new Float64Array(visual.length);
483
+ for (let i = 0; i < visual.length; i++) {
484
+ blended[i] = visual[i] * visualWeight + semantic[i] * semanticWeight;
485
+ }
486
+ // Renormalize
487
+ const max = Math.max(...Array.from(blended), 0.001);
488
+ for (let i = 0; i < blended.length; i++)
489
+ blended[i] /= max;
490
+ return blended;
491
+ }
277
492
  // ── Public API ──
278
493
  /**
279
494
  * Compute persona-specific attention analysis for a screenshot.
280
495
  *
281
- * Generates a saliency map using W₂ on CIE-Lab distributions,
282
- * applies the persona's perceptual filter, and computes attention metrics.
496
+ * Two-layer attention model:
497
+ * 1. Visual saliency W₂ on CIE-Lab distributions (what POPS visually)
498
+ * 2. Semantic attention — DOM element classification × persona priorities (what MATTERS)
499
+ *
500
+ * Blended at 35% visual / 65% semantic (research shows task-driven attention
501
+ * dominates bottom-up saliency for goal-oriented users — Yarbus 1967,
502
+ * Henderson 2003, Tatler et al. 2011).
503
+ *
504
+ * When DOM elements are not provided, falls back to visual-only mode.
283
505
  */
284
- export async function analyzeAttention(screenshotPath, personaName, cellSize = 16, schwartzValues) {
506
+ export async function analyzeAttention(screenshotPath, personaName, cellSize = 16, schwartzValues, domElements, goal, cognitiveTraits) {
285
507
  const startTime = performance.now();
286
508
  const profile = getPerceptualProfile(personaName);
287
509
  // v18.54.0: If no values passed, try to look them up from the built-in value profiles
@@ -301,10 +523,32 @@ export async function analyzeAttention(screenshotPath, personaName, cellSize = 1
301
523
  }
302
524
  catch { /* values not available — use filter-only mode */ }
303
525
  }
304
- // Compute base saliency
526
+ // Layer 1: Visual saliency — W₂ on CIE-Lab distributions
305
527
  const baseSaliency = await computeLabSaliency(screenshotPath, cellSize);
306
- // Apply persona filter + value-driven attention modulation
307
- const filtered = applyPersonaFilter(baseSaliency.cells, baseSaliency.rows, baseSaliency.cols, profile.visualFilter, values);
528
+ // Layer 2: Semantic attention DOM element types × persona priorities
529
+ let combinedSaliency;
530
+ if (domElements && domElements.length > 0) {
531
+ // Load cognitive traits if not provided
532
+ let traits = cognitiveTraits;
533
+ if (!traits) {
534
+ try {
535
+ const { getAnyPersona, getCognitiveProfile } = await import('../personas.js');
536
+ const p = getAnyPersona(personaName);
537
+ if (p)
538
+ traits = getCognitiveProfile(p).traits;
539
+ }
540
+ catch { }
541
+ }
542
+ const semanticMap = buildSemanticMap(domElements, baseSaliency.rows, baseSaliency.cols, cellSize, baseSaliency.width, baseSaliency.height, personaName, goal, traits, values);
543
+ // Blend: 35% visual (what pops) + 65% semantic (what matters)
544
+ combinedSaliency = blendSaliencyMaps(baseSaliency.cells, semanticMap, 0.35, 0.65);
545
+ }
546
+ else {
547
+ // No DOM data — fall back to visual-only
548
+ combinedSaliency = baseSaliency.cells;
549
+ }
550
+ // Apply persona perceptual filter + value-driven attention modulation
551
+ const filtered = applyPersonaFilter(combinedSaliency, baseSaliency.rows, baseSaliency.cols, profile.visualFilter, values);
308
552
  // Build saliency map with hotspots
309
553
  const indexed = Array.from(filtered).map((s, i) => ({ s, i }));
310
554
  indexed.sort((a, b) => b.s - a.s);
@@ -379,10 +623,10 @@ export async function analyzeAttention(screenshotPath, personaName, cellSize = 1
379
623
  * Returns the Wasserstein divergence between their saliency maps and
380
624
  * identifies regions where attention differs most.
381
625
  */
382
- export async function compareAttention(screenshotPath, personaA, personaB, cellSize = 16) {
626
+ export async function compareAttention(screenshotPath, personaA, personaB, cellSize = 16, domElements, goal) {
383
627
  const [analysisA, analysisB] = await Promise.all([
384
- analyzeAttention(screenshotPath, personaA, cellSize),
385
- analyzeAttention(screenshotPath, personaB, cellSize),
628
+ analyzeAttention(screenshotPath, personaA, cellSize, undefined, domElements, goal),
629
+ analyzeAttention(screenshotPath, personaB, cellSize, undefined, domElements, goal),
386
630
  ]);
387
631
  const salA = analysisA.saliencyMap.cells;
388
632
  const salB = analysisB.saliencyMap.cells;