cbrowser 5.2.0 → 6.0.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.
- package/README.md +80 -3
- package/dist/browser.d.ts +24 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +206 -0
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +404 -13
- package/dist/cli.js.map +1 -1
- package/dist/personas.d.ts +31 -1
- package/dist/personas.d.ts.map +1 -1
- package/dist/personas.js +349 -2
- package/dist/personas.js.map +1 -1
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -55,6 +55,52 @@ npx cbrowser assert "page contains 'Welcome'"
|
|
|
55
55
|
npx cbrowser generate-tests "https://example.com"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## v6.0.0 Features
|
|
59
|
+
|
|
60
|
+
### Multi-Persona Comparison
|
|
61
|
+
|
|
62
|
+
Run the same journey with multiple personas in parallel and compare results:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Compare how different user types experience your site
|
|
66
|
+
npx cbrowser compare-personas \
|
|
67
|
+
--start "https://example.com" \
|
|
68
|
+
--goal "Complete checkout" \
|
|
69
|
+
--personas power-user,first-timer,elderly-user,mobile-user
|
|
70
|
+
|
|
71
|
+
# Output:
|
|
72
|
+
# ┌─────────────────┬──────────┬──────────┬──────────┬─────────────────┐
|
|
73
|
+
# │ Persona │ Success │ Time │ Friction │ Key Issues │
|
|
74
|
+
# ├─────────────────┼──────────┼──────────┼──────────┼─────────────────┤
|
|
75
|
+
# │ power-user │ ✓ │ 12.5s │ 0 │ - │
|
|
76
|
+
# │ first-timer │ ✓ │ 45.2s │ 2 │ Confusing CTA │
|
|
77
|
+
# │ elderly-user │ ✗ │ 120.3s │ 5 │ Small buttons │
|
|
78
|
+
# │ mobile-user │ ✓ │ 28.1s │ 1 │ Scroll issue │
|
|
79
|
+
# └─────────────────┴──────────┴──────────┴──────────┴─────────────────┘
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Generate reports:**
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# JSON report
|
|
86
|
+
npx cbrowser compare-personas --start "..." --goal "..." --output report.json
|
|
87
|
+
|
|
88
|
+
# HTML report (visual dashboard)
|
|
89
|
+
npx cbrowser compare-personas --start "..." --goal "..." --html
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**What you learn:**
|
|
93
|
+
- Which personas struggle most (friction points)
|
|
94
|
+
- Time differences between expert and beginner users
|
|
95
|
+
- Mobile vs desktop experience gaps
|
|
96
|
+
- Accessibility issues affecting specific user types
|
|
97
|
+
- Actionable recommendations for improvement
|
|
98
|
+
|
|
99
|
+
**Automatic recommendations:**
|
|
100
|
+
- "Beginners take 3.5x longer than experts - consider adding more guidance"
|
|
101
|
+
- "Mobile users experience 2x more friction - review mobile UX"
|
|
102
|
+
- "Common friction: 'Button too small for touch', 'Form validation unclear'"
|
|
103
|
+
|
|
58
104
|
## v5.0.0 Features
|
|
59
105
|
|
|
60
106
|
### Smart Click with Auto-Retry
|
|
@@ -291,6 +337,37 @@ cbrowser persona list
|
|
|
291
337
|
| `elderly-user` | Vision/motor limitations |
|
|
292
338
|
| `impatient-user` | Quick to abandon |
|
|
293
339
|
|
|
340
|
+
**AI Persona Creation (v5.3.0):**
|
|
341
|
+
|
|
342
|
+
Create custom personas from natural language descriptions:
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
# Describe the user - AI generates all parameters
|
|
346
|
+
npx cbrowser persona create "impatient developer who hates slow UIs" --name speed-demon
|
|
347
|
+
npx cbrowser persona create "elderly grandmother new to computers with tremors" --name grandma
|
|
348
|
+
npx cbrowser persona create "distracted teenager on their phone"
|
|
349
|
+
|
|
350
|
+
# List all personas (built-in + custom)
|
|
351
|
+
npx cbrowser persona list
|
|
352
|
+
|
|
353
|
+
# View full persona config
|
|
354
|
+
npx cbrowser persona show speed-demon
|
|
355
|
+
|
|
356
|
+
# Export/import for sharing
|
|
357
|
+
npx cbrowser persona export speed-demon
|
|
358
|
+
npx cbrowser persona import custom-persona.json
|
|
359
|
+
|
|
360
|
+
# Delete custom persona
|
|
361
|
+
npx cbrowser persona delete speed-demon
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
The AI analyzes your description and generates appropriate:
|
|
365
|
+
- **Timing**: reaction times, click delays, typing speed
|
|
366
|
+
- **Error rates**: misclicks, typos, accidental double-clicks
|
|
367
|
+
- **Mouse behavior**: movement speed, jitter, overshoot
|
|
368
|
+
- **Attention patterns**: reading style, scroll behavior, focus areas
|
|
369
|
+
- **Viewport**: device-appropriate screen size
|
|
370
|
+
|
|
294
371
|
### Multi-Browser Support
|
|
295
372
|
|
|
296
373
|
```bash
|
|
@@ -446,7 +523,7 @@ npx cbrowser heal-clear
|
|
|
446
523
|
## Contributing
|
|
447
524
|
|
|
448
525
|
```bash
|
|
449
|
-
git clone https://github.com/
|
|
526
|
+
git clone https://github.com/alexandriashai/cbrowser.git
|
|
450
527
|
cd cbrowser
|
|
451
528
|
bun install
|
|
452
529
|
bun run dev
|
|
@@ -461,6 +538,6 @@ MIT - see [LICENSE](LICENSE)
|
|
|
461
538
|
## Links
|
|
462
539
|
|
|
463
540
|
- [NPM Package](https://www.npmjs.com/package/cbrowser)
|
|
464
|
-
- [GitHub Repository](https://github.com/
|
|
465
|
-
- [Issue Tracker](https://github.com/
|
|
541
|
+
- [GitHub Repository](https://github.com/alexandriashai/cbrowser)
|
|
542
|
+
- [Issue Tracker](https://github.com/alexandriashai/cbrowser/issues)
|
|
466
543
|
- [Roadmap](ROADMAP.md)
|
package/dist/browser.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* AI-powered browser automation with constitutional safety.
|
|
5
5
|
*/
|
|
6
6
|
import { type CBrowserConfig } from "./config.js";
|
|
7
|
-
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult } from "./types.js";
|
|
7
|
+
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult, PersonaComparisonResult } from "./types.js";
|
|
8
8
|
export declare class CBrowser {
|
|
9
9
|
private config;
|
|
10
10
|
private paths;
|
|
@@ -543,4 +543,27 @@ export declare function runChaosTest(browser: CBrowser, url: string, chaos: Chao
|
|
|
543
543
|
duration: number;
|
|
544
544
|
screenshot: string;
|
|
545
545
|
}>;
|
|
546
|
+
export interface ComparePersonasOptions {
|
|
547
|
+
/** Starting URL for the journey */
|
|
548
|
+
startUrl: string;
|
|
549
|
+
/** Goal to accomplish */
|
|
550
|
+
goal: string;
|
|
551
|
+
/** Personas to compare (names) */
|
|
552
|
+
personas: string[];
|
|
553
|
+
/** Maximum steps per journey */
|
|
554
|
+
maxSteps?: number;
|
|
555
|
+
/** Maximum concurrent browsers */
|
|
556
|
+
maxConcurrency?: number;
|
|
557
|
+
/** Headless mode */
|
|
558
|
+
headless?: boolean;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Run the same journey with multiple personas and compare results.
|
|
562
|
+
* This runs personas in parallel (up to maxConcurrency) for efficiency.
|
|
563
|
+
*/
|
|
564
|
+
export declare function comparePersonas(options: ComparePersonasOptions): Promise<PersonaComparisonResult>;
|
|
565
|
+
/**
|
|
566
|
+
* Generate a formatted comparison report.
|
|
567
|
+
*/
|
|
568
|
+
export declare function formatComparisonReport(comparison: PersonaComparisonResult): string;
|
|
546
569
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -14,6 +14,8 @@ exports.huntBugs = huntBugs;
|
|
|
14
14
|
exports.crossBrowserDiff = crossBrowserDiff;
|
|
15
15
|
exports.applyChaos = applyChaos;
|
|
16
16
|
exports.runChaosTest = runChaosTest;
|
|
17
|
+
exports.comparePersonas = comparePersonas;
|
|
18
|
+
exports.formatComparisonReport = formatComparisonReport;
|
|
17
19
|
const playwright_1 = require("playwright");
|
|
18
20
|
const fs_1 = require("fs");
|
|
19
21
|
const path_1 = require("path");
|
|
@@ -2671,4 +2673,208 @@ async function runChaosTest(browser, url, chaos, actions = []) {
|
|
|
2671
2673
|
};
|
|
2672
2674
|
}
|
|
2673
2675
|
}
|
|
2676
|
+
/**
|
|
2677
|
+
* Run the same journey with multiple personas and compare results.
|
|
2678
|
+
* This runs personas in parallel (up to maxConcurrency) for efficiency.
|
|
2679
|
+
*/
|
|
2680
|
+
async function comparePersonas(options) {
|
|
2681
|
+
const { startUrl, goal, personas, maxSteps = 20, maxConcurrency = 3, headless = true, } = options;
|
|
2682
|
+
const startTime = Date.now();
|
|
2683
|
+
const results = [];
|
|
2684
|
+
console.log(`\n🔄 Comparing ${personas.length} personas...`);
|
|
2685
|
+
console.log(` URL: ${startUrl}`);
|
|
2686
|
+
console.log(` Goal: ${goal}`);
|
|
2687
|
+
console.log(` Concurrency: ${maxConcurrency}\n`);
|
|
2688
|
+
// Process personas in batches
|
|
2689
|
+
for (let i = 0; i < personas.length; i += maxConcurrency) {
|
|
2690
|
+
const batch = personas.slice(i, i + maxConcurrency);
|
|
2691
|
+
console.log(`📦 Batch ${Math.floor(i / maxConcurrency) + 1}: ${batch.join(", ")}`);
|
|
2692
|
+
const batchPromises = batch.map(async (personaName) => {
|
|
2693
|
+
const browser = new CBrowser({ headless });
|
|
2694
|
+
try {
|
|
2695
|
+
const persona = (0, personas_js_1.getPersona)(personaName) || personas_js_1.BUILTIN_PERSONAS["first-timer"];
|
|
2696
|
+
const journeyStart = Date.now();
|
|
2697
|
+
// Run the journey
|
|
2698
|
+
const journey = await browser.journey({
|
|
2699
|
+
persona: personaName,
|
|
2700
|
+
startUrl,
|
|
2701
|
+
goal,
|
|
2702
|
+
maxSteps,
|
|
2703
|
+
});
|
|
2704
|
+
// Calculate average reaction time from persona config
|
|
2705
|
+
const timing = persona.humanBehavior?.timing;
|
|
2706
|
+
const avgReactionTime = timing
|
|
2707
|
+
? (timing.reactionTime.min + timing.reactionTime.max) / 2
|
|
2708
|
+
: 500;
|
|
2709
|
+
// Calculate error rate from persona config
|
|
2710
|
+
const errors = persona.humanBehavior?.errors;
|
|
2711
|
+
const errorRate = errors
|
|
2712
|
+
? (errors.misClickRate + errors.typoRate) / 2
|
|
2713
|
+
: 0.05;
|
|
2714
|
+
const result = {
|
|
2715
|
+
persona: personaName,
|
|
2716
|
+
description: persona.description,
|
|
2717
|
+
techLevel: persona.demographics.tech_level || "intermediate",
|
|
2718
|
+
device: persona.demographics.device || "desktop",
|
|
2719
|
+
success: journey.success,
|
|
2720
|
+
totalTime: journey.totalTime,
|
|
2721
|
+
stepCount: journey.steps.length,
|
|
2722
|
+
frictionCount: journey.frictionPoints.length,
|
|
2723
|
+
frictionPoints: journey.frictionPoints,
|
|
2724
|
+
avgReactionTime,
|
|
2725
|
+
errorRate,
|
|
2726
|
+
screenshots: {
|
|
2727
|
+
start: journey.steps[0]?.screenshot || "",
|
|
2728
|
+
end: journey.steps[journey.steps.length - 1]?.screenshot || "",
|
|
2729
|
+
},
|
|
2730
|
+
};
|
|
2731
|
+
console.log(` ✓ ${personaName}: ${journey.success ? "SUCCESS" : "FAILED"} (${journey.totalTime}ms, ${journey.frictionPoints.length} friction)`);
|
|
2732
|
+
return result;
|
|
2733
|
+
}
|
|
2734
|
+
catch (e) {
|
|
2735
|
+
console.log(` ✗ ${personaName}: ERROR - ${e.message}`);
|
|
2736
|
+
return {
|
|
2737
|
+
persona: personaName,
|
|
2738
|
+
description: "Unknown",
|
|
2739
|
+
techLevel: "unknown",
|
|
2740
|
+
device: "unknown",
|
|
2741
|
+
success: false,
|
|
2742
|
+
totalTime: 0,
|
|
2743
|
+
stepCount: 0,
|
|
2744
|
+
frictionCount: 1,
|
|
2745
|
+
frictionPoints: [`Error: ${e.message}`],
|
|
2746
|
+
avgReactionTime: 0,
|
|
2747
|
+
errorRate: 0,
|
|
2748
|
+
screenshots: { start: "", end: "" },
|
|
2749
|
+
};
|
|
2750
|
+
}
|
|
2751
|
+
finally {
|
|
2752
|
+
await browser.close();
|
|
2753
|
+
}
|
|
2754
|
+
});
|
|
2755
|
+
const batchResults = await Promise.all(batchPromises);
|
|
2756
|
+
results.push(...batchResults);
|
|
2757
|
+
}
|
|
2758
|
+
// Generate summary
|
|
2759
|
+
const successfulResults = results.filter((r) => r.success);
|
|
2760
|
+
const failedResults = results.filter((r) => !r.success);
|
|
2761
|
+
const sortedByTime = [...successfulResults].sort((a, b) => a.totalTime - b.totalTime);
|
|
2762
|
+
const sortedByFriction = [...results].sort((a, b) => b.frictionCount - a.frictionCount);
|
|
2763
|
+
// Collect all friction points
|
|
2764
|
+
const allFrictionPoints = results.flatMap((r) => r.frictionPoints);
|
|
2765
|
+
const frictionCounts = allFrictionPoints.reduce((acc, fp) => {
|
|
2766
|
+
acc[fp] = (acc[fp] || 0) + 1;
|
|
2767
|
+
return acc;
|
|
2768
|
+
}, {});
|
|
2769
|
+
const commonFriction = Object.entries(frictionCounts)
|
|
2770
|
+
.filter(([_, count]) => count > 1)
|
|
2771
|
+
.sort((a, b) => b[1] - a[1])
|
|
2772
|
+
.slice(0, 5)
|
|
2773
|
+
.map(([fp]) => fp);
|
|
2774
|
+
// Generate recommendations
|
|
2775
|
+
const recommendations = [];
|
|
2776
|
+
if (failedResults.length > 0) {
|
|
2777
|
+
recommendations.push(`⚠️ ${failedResults.length} persona(s) failed to complete the journey: ${failedResults.map((r) => r.persona).join(", ")}`);
|
|
2778
|
+
}
|
|
2779
|
+
if (sortedByFriction[0]?.frictionCount > 0) {
|
|
2780
|
+
recommendations.push(`🔧 "${sortedByFriction[0].persona}" experienced the most friction (${sortedByFriction[0].frictionCount} points) - review for accessibility improvements`);
|
|
2781
|
+
}
|
|
2782
|
+
const beginnerPersonas = results.filter((r) => r.techLevel === "beginner");
|
|
2783
|
+
const expertPersonas = results.filter((r) => r.techLevel === "expert");
|
|
2784
|
+
if (beginnerPersonas.length > 0 && expertPersonas.length > 0) {
|
|
2785
|
+
const avgBeginnerTime = beginnerPersonas.reduce((sum, r) => sum + r.totalTime, 0) / beginnerPersonas.length;
|
|
2786
|
+
const avgExpertTime = expertPersonas.reduce((sum, r) => sum + r.totalTime, 0) / expertPersonas.length;
|
|
2787
|
+
if (avgBeginnerTime > avgExpertTime * 3) {
|
|
2788
|
+
recommendations.push(`📚 Beginners take ${(avgBeginnerTime / avgExpertTime).toFixed(1)}x longer than experts - consider adding more guidance`);
|
|
2789
|
+
}
|
|
2790
|
+
}
|
|
2791
|
+
const mobilePersonas = results.filter((r) => r.device === "mobile");
|
|
2792
|
+
const desktopPersonas = results.filter((r) => r.device === "desktop");
|
|
2793
|
+
if (mobilePersonas.length > 0 && desktopPersonas.length > 0) {
|
|
2794
|
+
const mobileFriction = mobilePersonas.reduce((sum, r) => sum + r.frictionCount, 0) / mobilePersonas.length;
|
|
2795
|
+
const desktopFriction = desktopPersonas.reduce((sum, r) => sum + r.frictionCount, 0) / desktopPersonas.length;
|
|
2796
|
+
if (mobileFriction > desktopFriction * 2) {
|
|
2797
|
+
recommendations.push(`📱 Mobile users experience ${(mobileFriction / desktopFriction).toFixed(1)}x more friction - review mobile UX`);
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
if (commonFriction.length > 0) {
|
|
2801
|
+
recommendations.push(`🎯 Common friction points across personas: ${commonFriction.slice(0, 3).join("; ")}`);
|
|
2802
|
+
}
|
|
2803
|
+
if (recommendations.length === 0) {
|
|
2804
|
+
recommendations.push("✅ All personas completed the journey without significant issues");
|
|
2805
|
+
}
|
|
2806
|
+
const avgTime = successfulResults.length > 0
|
|
2807
|
+
? successfulResults.reduce((sum, r) => sum + r.totalTime, 0) / successfulResults.length
|
|
2808
|
+
: 0;
|
|
2809
|
+
const comparison = {
|
|
2810
|
+
url: startUrl,
|
|
2811
|
+
goal,
|
|
2812
|
+
timestamp: new Date().toISOString(),
|
|
2813
|
+
duration: Date.now() - startTime,
|
|
2814
|
+
personas: results,
|
|
2815
|
+
summary: {
|
|
2816
|
+
totalPersonas: personas.length,
|
|
2817
|
+
successCount: successfulResults.length,
|
|
2818
|
+
failureCount: failedResults.length,
|
|
2819
|
+
fastestPersona: sortedByTime[0]?.persona || "N/A",
|
|
2820
|
+
slowestPersona: sortedByTime[sortedByTime.length - 1]?.persona || "N/A",
|
|
2821
|
+
mostFriction: sortedByFriction[0]?.persona || "N/A",
|
|
2822
|
+
leastFriction: sortedByFriction[sortedByFriction.length - 1]?.persona || "N/A",
|
|
2823
|
+
avgCompletionTime: Math.round(avgTime),
|
|
2824
|
+
commonFrictionPoints: commonFriction,
|
|
2825
|
+
},
|
|
2826
|
+
recommendations,
|
|
2827
|
+
};
|
|
2828
|
+
return comparison;
|
|
2829
|
+
}
|
|
2830
|
+
/**
|
|
2831
|
+
* Generate a formatted comparison report.
|
|
2832
|
+
*/
|
|
2833
|
+
function formatComparisonReport(comparison) {
|
|
2834
|
+
const lines = [];
|
|
2835
|
+
lines.push("");
|
|
2836
|
+
lines.push("╔══════════════════════════════════════════════════════════════════════════════╗");
|
|
2837
|
+
lines.push("║ MULTI-PERSONA COMPARISON REPORT ║");
|
|
2838
|
+
lines.push("╚══════════════════════════════════════════════════════════════════════════════╝");
|
|
2839
|
+
lines.push("");
|
|
2840
|
+
lines.push(`📍 URL: ${comparison.url}`);
|
|
2841
|
+
lines.push(`🎯 Goal: ${comparison.goal}`);
|
|
2842
|
+
lines.push(`⏱️ Total Duration: ${(comparison.duration / 1000).toFixed(1)}s`);
|
|
2843
|
+
lines.push(`📅 Timestamp: ${comparison.timestamp}`);
|
|
2844
|
+
lines.push("");
|
|
2845
|
+
// Results table
|
|
2846
|
+
lines.push("┌─────────────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────────────┐");
|
|
2847
|
+
lines.push("│ Persona │ Success │ Time │ Steps │ Friction │ Key Issues │");
|
|
2848
|
+
lines.push("├─────────────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────────────┤");
|
|
2849
|
+
for (const result of comparison.personas) {
|
|
2850
|
+
const name = result.persona.padEnd(19).slice(0, 19);
|
|
2851
|
+
const success = result.success ? "✓".padEnd(8) : "✗".padEnd(8);
|
|
2852
|
+
const time = `${(result.totalTime / 1000).toFixed(1)}s`.padEnd(8);
|
|
2853
|
+
const steps = `${result.stepCount}`.padEnd(8);
|
|
2854
|
+
const friction = `${result.frictionCount}`.padEnd(8);
|
|
2855
|
+
const issues = (result.frictionPoints[0] || "-").slice(0, 27).padEnd(27);
|
|
2856
|
+
lines.push(`│ ${name} │ ${success} │ ${time} │ ${steps} │ ${friction} │ ${issues} │`);
|
|
2857
|
+
}
|
|
2858
|
+
lines.push("└─────────────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────────────┘");
|
|
2859
|
+
lines.push("");
|
|
2860
|
+
// Summary
|
|
2861
|
+
lines.push("📊 SUMMARY");
|
|
2862
|
+
lines.push("─".repeat(60));
|
|
2863
|
+
lines.push(` Total Personas: ${comparison.summary.totalPersonas}`);
|
|
2864
|
+
lines.push(` Success Rate: ${comparison.summary.successCount}/${comparison.summary.totalPersonas} (${Math.round((comparison.summary.successCount / comparison.summary.totalPersonas) * 100)}%)`);
|
|
2865
|
+
lines.push(` Avg Completion Time: ${(comparison.summary.avgCompletionTime / 1000).toFixed(1)}s`);
|
|
2866
|
+
lines.push(` Fastest: ${comparison.summary.fastestPersona}`);
|
|
2867
|
+
lines.push(` Slowest: ${comparison.summary.slowestPersona}`);
|
|
2868
|
+
lines.push(` Most Friction: ${comparison.summary.mostFriction}`);
|
|
2869
|
+
lines.push(` Least Friction: ${comparison.summary.leastFriction}`);
|
|
2870
|
+
lines.push("");
|
|
2871
|
+
// Recommendations
|
|
2872
|
+
lines.push("💡 RECOMMENDATIONS");
|
|
2873
|
+
lines.push("─".repeat(60));
|
|
2874
|
+
for (const rec of comparison.recommendations) {
|
|
2875
|
+
lines.push(` ${rec}`);
|
|
2876
|
+
}
|
|
2877
|
+
lines.push("");
|
|
2878
|
+
return lines.join("\n");
|
|
2879
|
+
}
|
|
2674
2880
|
//# sourceMappingURL=browser.js.map
|