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.
- package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
- package/dist/analysis/accessibility-empathy.js +31 -16
- package/dist/analysis/accessibility-empathy.js.map +1 -1
- package/dist/cif-score.d.ts +141 -0
- package/dist/cif-score.d.ts.map +1 -0
- package/dist/cif-score.js +634 -0
- package/dist/cif-score.js.map +1 -0
- package/dist/ideal-profiles-gap.d.ts +92 -0
- package/dist/ideal-profiles-gap.d.ts.map +1 -0
- package/dist/ideal-profiles-gap.js +325 -0
- package/dist/ideal-profiles-gap.js.map +1 -0
- package/dist/ideal-profiles.d.ts +70 -0
- package/dist/ideal-profiles.d.ts.map +1 -0
- package/dist/ideal-profiles.js +404 -0
- package/dist/ideal-profiles.js.map +1 -0
- package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.js +40 -16
- package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
- package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -1
- package/dist/mcp-tools/persona-creation-tools.js +119 -15
- package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
- package/dist/visual/attention-transport.d.ts +24 -4
- package/dist/visual/attention-transport.d.ts.map +1 -1
- package/dist/visual/attention-transport.js +253 -9
- package/dist/visual/attention-transport.js.map +1 -1
- package/dist/visual/cognitive-transport-chain.d.ts.map +1 -1
- package/dist/visual/cognitive-transport-chain.js +6 -1
- package/dist/visual/cognitive-transport-chain.js.map +1 -1
- package/dist/visual/cognitive-transport.d.ts.map +1 -1
- package/dist/visual/cognitive-transport.js +18 -4
- package/dist/visual/cognitive-transport.js.map +1 -1
- package/dist/visual/perceptual-transport.d.ts +15 -3
- package/dist/visual/perceptual-transport.d.ts.map +1 -1
- package/dist/visual/perceptual-transport.js +92 -6
- package/dist/visual/perceptual-transport.js.map +1 -1
- 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
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
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
|
-
|
|
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: "
|
|
629
|
+
tool: "empathy_audit",
|
|
525
630
|
params: {
|
|
526
|
-
|
|
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
|
-
*
|
|
84
|
-
*
|
|
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;
|
|
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;AAuYD,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAwLD;;;;;;;;;;;;GAYG;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,EACvC,WAAW,CAAC,EAAE,mBAAmB,EAAE,EACnC,IAAI,CAAC,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAwI5B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAW,EACrB,WAAW,CAAC,EAAE,mBAAmB,EAAE,EACnC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,yBAAyB,CAAC,CA2CpC"}
|
|
@@ -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
|
-
*
|
|
282
|
-
*
|
|
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
|
-
//
|
|
526
|
+
// Layer 1: Visual saliency — W₂ on CIE-Lab distributions
|
|
305
527
|
const baseSaliency = await computeLabSaliency(screenshotPath, cellSize);
|
|
306
|
-
//
|
|
307
|
-
|
|
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;
|