cbrowser 18.24.0 → 18.25.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.
@@ -12,6 +12,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from "
12
12
  import { join } from "path";
13
13
  import { homedir } from "os";
14
14
  import { CBrowser } from "../browser.js";
15
+ import { computeCombinedDistance, computeSmartBaseline, compareAgainstSmartBaseline, computeTransportMap, } from "./distance-metrics.js";
15
16
  /**
16
17
  * Get the path to visual baselines storage
17
18
  */
@@ -150,6 +151,339 @@ export function deleteVisualBaseline(name) {
150
151
  saveVisualBaselines(filtered);
151
152
  return true;
152
153
  }
154
+ // ── Smart Baseline Storage ──
155
+ function getSmartBaselinesPath() {
156
+ const baseDir = process.env.CBROWSER_DATA_DIR || join(homedir(), ".cbrowser");
157
+ const dir = join(baseDir, "smart-baselines");
158
+ if (!existsSync(dir))
159
+ mkdirSync(dir, { recursive: true });
160
+ return dir;
161
+ }
162
+ function loadSmartBaselines() {
163
+ const indexPath = join(getSmartBaselinesPath(), "smart-baselines.json");
164
+ if (!existsSync(indexPath))
165
+ return [];
166
+ try {
167
+ const data = JSON.parse(readFileSync(indexPath, "utf-8"));
168
+ // Restore Float64Arrays from JSON
169
+ return (data.baselines || []).map((b) => ({
170
+ ...b,
171
+ barycenter: {
172
+ r: new Float64Array(b.barycenter.r),
173
+ g: new Float64Array(b.barycenter.g),
174
+ b: new Float64Array(b.barycenter.b),
175
+ },
176
+ }));
177
+ }
178
+ catch {
179
+ return [];
180
+ }
181
+ }
182
+ function saveSmartBaselines(baselines) {
183
+ const indexPath = join(getSmartBaselinesPath(), "smart-baselines.json");
184
+ // Convert Float64Arrays to regular arrays for JSON
185
+ const serializable = baselines.map(b => ({
186
+ ...b,
187
+ barycenter: {
188
+ r: Array.from(b.barycenter.r),
189
+ g: Array.from(b.barycenter.g),
190
+ b: Array.from(b.barycenter.b),
191
+ },
192
+ }));
193
+ writeFileSync(indexPath, JSON.stringify({ baselines: serializable, updated: new Date().toISOString() }, null, 2));
194
+ }
195
+ /**
196
+ * Capture a Smart Barycenter Baseline.
197
+ *
198
+ * Takes N screenshots of a URL with delays between captures,
199
+ * computes the Wasserstein barycenter (optimal consensus),
200
+ * rejects outlier captures, and selects the median reference image.
201
+ *
202
+ * The result is a baseline that represents the "typical" rendering —
203
+ * robust to timing variations, dynamic content, animation states,
204
+ * and other sources of non-deterministic rendering.
205
+ *
206
+ * @since v18.0.0
207
+ * @see https://github.com/alexandriashai/cbrowser/issues/158
208
+ */
209
+ export async function captureSmartBaseline(url, name, options = {}) {
210
+ const numCaptures = options.numCaptures || 5;
211
+ const captureDelay = options.captureDelay || 1500;
212
+ const browser = new CBrowser({
213
+ device: options.device,
214
+ viewportWidth: options.viewport?.width || 1920,
215
+ viewportHeight: options.viewport?.height || 1080,
216
+ });
217
+ const screenshotsPath = join(getSmartBaselinesPath(), "screenshots");
218
+ if (!existsSync(screenshotsPath))
219
+ mkdirSync(screenshotsPath, { recursive: true });
220
+ const capturePaths = [];
221
+ try {
222
+ await browser.launch();
223
+ await browser.navigate(url);
224
+ // Wait if specified
225
+ if (options.waitFor) {
226
+ if (typeof options.waitFor === "number") {
227
+ await new Promise(resolve => setTimeout(resolve, options.waitFor));
228
+ }
229
+ else {
230
+ const page = await browser.getPage();
231
+ await page.waitForSelector(options.waitFor, { timeout: 10000 }).catch(() => { });
232
+ }
233
+ }
234
+ const page = await browser.getPage();
235
+ // Capture N screenshots
236
+ for (let i = 0; i < numCaptures; i++) {
237
+ const id = `${name.toLowerCase().replace(/[^a-z0-9]+/g, "-")}-${Date.now()}-${i}`;
238
+ const capturePath = join(screenshotsPath, `${id}.png`);
239
+ if (options.selector) {
240
+ const element = page.locator(options.selector).first();
241
+ await element.screenshot({ path: capturePath });
242
+ }
243
+ else {
244
+ await page.screenshot({ path: capturePath, fullPage: false });
245
+ }
246
+ capturePaths.push(capturePath);
247
+ // Delay between captures (except last)
248
+ if (i < numCaptures - 1) {
249
+ await new Promise(resolve => setTimeout(resolve, captureDelay));
250
+ }
251
+ }
252
+ }
253
+ finally {
254
+ await browser.close();
255
+ }
256
+ // Compute smart baseline
257
+ const baseline = await computeSmartBaseline(capturePaths, name, url, {
258
+ downscale: 0.5,
259
+ outlierThreshold: options.outlierThreshold || 2.0,
260
+ });
261
+ // Save to index
262
+ const baselines = loadSmartBaselines();
263
+ const filtered = baselines.filter(b => b.name !== name);
264
+ filtered.push(baseline);
265
+ saveSmartBaselines(filtered);
266
+ return baseline;
267
+ }
268
+ /**
269
+ * List all smart baselines
270
+ */
271
+ export function listSmartBaselines() {
272
+ return loadSmartBaselines();
273
+ }
274
+ /**
275
+ * Get a smart baseline by name
276
+ */
277
+ export function getSmartBaseline(name) {
278
+ return loadSmartBaselines().find(b => b.name === name);
279
+ }
280
+ /**
281
+ * Delete a smart baseline and its screenshots
282
+ */
283
+ export function deleteSmartBaseline(name) {
284
+ const baselines = loadSmartBaselines();
285
+ const baseline = baselines.find(b => b.name === name);
286
+ if (!baseline)
287
+ return false;
288
+ // Delete capture files
289
+ for (const path of baseline.capturePaths) {
290
+ if (existsSync(path))
291
+ unlinkSync(path);
292
+ }
293
+ const filtered = baselines.filter(b => b.name !== name);
294
+ saveSmartBaselines(filtered);
295
+ return true;
296
+ }
297
+ export async function runSmartRegression(url, baselineName, options = {}) {
298
+ const baseline = getSmartBaseline(baselineName);
299
+ if (!baseline) {
300
+ return {
301
+ baselineName,
302
+ url,
303
+ passed: false,
304
+ analysis: {
305
+ overallStatus: "fail",
306
+ summary: `Smart baseline "${baselineName}" not found. Capture one first with captureSmartBaseline().`,
307
+ changes: [],
308
+ similarityScore: 0,
309
+ productionReady: false,
310
+ confidence: 1,
311
+ },
312
+ baselineScreenshot: "",
313
+ currentScreenshot: "",
314
+ timestamp: new Date().toISOString(),
315
+ };
316
+ }
317
+ // Capture current screenshot
318
+ const browser = new CBrowser({
319
+ viewportWidth: baseline.url ? 1920 : 1920,
320
+ viewportHeight: 1080,
321
+ });
322
+ const screenshotsPath = getVisualScreenshotsPath();
323
+ const currentPath = join(screenshotsPath, `current-${Date.now()}.png`);
324
+ try {
325
+ await browser.launch();
326
+ await browser.navigate(url);
327
+ await new Promise(resolve => setTimeout(resolve, 2000));
328
+ const page = await browser.getPage();
329
+ await page.screenshot({ path: currentPath, fullPage: false });
330
+ }
331
+ finally {
332
+ await browser.close();
333
+ }
334
+ // Compare against smart baseline
335
+ const result = await compareAgainstSmartBaseline(currentPath, baseline, options.wassersteinConfig);
336
+ // Use adaptive threshold from baseline (or override)
337
+ const threshold = options.threshold || baseline.adaptiveThreshold;
338
+ const passed = result.normalizedScore >= threshold;
339
+ const changes = [];
340
+ let overallStatus = "pass";
341
+ if (!passed) {
342
+ if (result.normalizedScore < threshold - 0.15) {
343
+ overallStatus = "fail";
344
+ changes.push({
345
+ type: "layout",
346
+ severity: "breaking",
347
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
348
+ description: `Visual change exceeds smart baseline variance (score: ${result.normalizedScore.toFixed(3)}, threshold: ${threshold.toFixed(3)}, variance ratio: ${result.varianceRatio.toFixed(1)}σ)`,
349
+ reasoning: result.withinVariance
350
+ ? "Change is within observed render variance but below threshold"
351
+ : "Change exceeds the natural variance observed during baseline creation",
352
+ confidence: 0.92,
353
+ suggestion: "This appears to be a real visual change, not rendering noise",
354
+ });
355
+ }
356
+ else {
357
+ overallStatus = "warning";
358
+ changes.push({
359
+ type: "content",
360
+ severity: "warning",
361
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
362
+ description: `Marginal visual change near smart baseline threshold (score: ${result.normalizedScore.toFixed(3)}, threshold: ${threshold.toFixed(3)})`,
363
+ reasoning: "Change is close to the boundary of expected variance",
364
+ confidence: 0.8,
365
+ suggestion: "May be a real change or an unusually noisy render — consider re-running",
366
+ });
367
+ }
368
+ }
369
+ const channelInfo = result.details.channelDistances
370
+ ? ` | R: ${result.details.channelDistances.r.toFixed(4)}, G: ${result.details.channelDistances.g.toFixed(4)}, B: ${result.details.channelDistances.b.toFixed(4)}`
371
+ : '';
372
+ return {
373
+ baselineName,
374
+ url,
375
+ passed,
376
+ analysis: {
377
+ overallStatus,
378
+ summary: passed
379
+ ? `Visual regression passed (score: ${result.normalizedScore.toFixed(3)} ≥ adaptive threshold: ${threshold.toFixed(3)}, within ${result.varianceRatio.toFixed(1)}σ of baseline variance)`
380
+ : `Visual regression ${overallStatus}: score ${result.normalizedScore.toFixed(3)} < threshold ${threshold.toFixed(3)}`,
381
+ changes,
382
+ similarityScore: result.normalizedScore,
383
+ productionReady: passed,
384
+ confidence: 0.92,
385
+ rawAnalysis: `Smart baseline comparison (${baseline.numCaptures} captures, ${baseline.numOutliers} outliers rejected, adaptive threshold ${threshold.toFixed(3)})${channelInfo} | ${result.details.computeTimeMs?.toFixed(0)}ms`,
386
+ },
387
+ baselineScreenshot: baseline.referencePath,
388
+ currentScreenshot: currentPath,
389
+ timestamp: new Date().toISOString(),
390
+ };
391
+ }
392
+ /**
393
+ * Generate a Visual Transport Map between two screenshots.
394
+ *
395
+ * Shows WHERE visual mass moved, not just THAT it changed.
396
+ * Produces:
397
+ * - A heatmap of change magnitude per grid cell
398
+ * - Flow arrows showing how content shifted
399
+ * - Hotspot regions with the most significant changes
400
+ * - An SVG overlay visualization
401
+ *
402
+ * Can be used standalone or after a regression test to visualize what changed.
403
+ *
404
+ * @since v18.0.0 (Phase 3)
405
+ * @see https://github.com/alexandriashai/cbrowser/issues/158
406
+ */
407
+ export async function generateTransportMap(baselinePath, currentPath, config) {
408
+ return computeTransportMap(baselinePath, currentPath, config);
409
+ }
410
+ /**
411
+ * Run visual regression with transport map visualization.
412
+ *
413
+ * Combines Phase 1 (Wasserstein distance) with Phase 3 (transport map)
414
+ * for a complete "what changed and where" analysis.
415
+ */
416
+ export async function runRegressionWithTransportMap(url, baselineName, options = {}) {
417
+ // Check for smart baseline first, fall back to regular
418
+ const smartBaseline = getSmartBaseline(baselineName);
419
+ const regularBaseline = getVisualBaseline(baselineName);
420
+ if (!smartBaseline && !regularBaseline) {
421
+ return {
422
+ baselineName,
423
+ url,
424
+ passed: false,
425
+ analysis: {
426
+ overallStatus: "fail",
427
+ summary: `Baseline "${baselineName}" not found.`,
428
+ changes: [],
429
+ similarityScore: 0,
430
+ productionReady: false,
431
+ confidence: 1,
432
+ },
433
+ baselineScreenshot: "",
434
+ currentScreenshot: "",
435
+ timestamp: new Date().toISOString(),
436
+ };
437
+ }
438
+ const baselineScreenshot = smartBaseline?.referencePath || regularBaseline.screenshotPath;
439
+ // Capture current screenshot
440
+ const browser = new CBrowser({ viewportWidth: 1920, viewportHeight: 1080 });
441
+ const screenshotsPath = getVisualScreenshotsPath();
442
+ const currentPath = join(screenshotsPath, `current-${Date.now()}.png`);
443
+ try {
444
+ await browser.launch();
445
+ await browser.navigate(url);
446
+ await new Promise(resolve => setTimeout(resolve, 2000));
447
+ const page = await browser.getPage();
448
+ await page.screenshot({ path: currentPath, fullPage: false });
449
+ }
450
+ finally {
451
+ await browser.close();
452
+ }
453
+ // Run Wasserstein analysis
454
+ const analysis = await performWassersteinAnalysis(baselineScreenshot, currentPath, options);
455
+ // Generate transport map
456
+ const transportMap = await computeTransportMap(baselineScreenshot, currentPath, options.transportMapConfig);
457
+ // Save SVG to disk
458
+ let transportMapSvgPath; // eslint-disable-line prefer-const
459
+ const baseDir = process.env.CBROWSER_DATA_DIR || join(homedir(), ".cbrowser");
460
+ const mapsDir = join(baseDir, "transport-maps");
461
+ if (!existsSync(mapsDir))
462
+ mkdirSync(mapsDir, { recursive: true });
463
+ transportMapSvgPath = join(mapsDir, `transport-map-${Date.now()}.svg`);
464
+ writeFileSync(transportMapSvgPath, transportMap.svg);
465
+ // Enhance analysis summary with transport map data
466
+ const hotspotSummary = transportMap.hotspots.length > 0
467
+ ? ` | Hotspots: ${transportMap.hotspots.map(h => h.description).join('; ')}`
468
+ : '';
469
+ const threshold = options.threshold || 0.85;
470
+ const passed = analysis.similarityScore >= threshold;
471
+ return {
472
+ baselineName,
473
+ url,
474
+ passed,
475
+ analysis: {
476
+ ...analysis,
477
+ summary: analysis.summary + hotspotSummary,
478
+ rawAnalysis: (analysis.rawAnalysis || '') + ` | Transport map: ${transportMap.flows.length} flows, ${transportMap.hotspots.length} hotspots, cost ${transportMap.totalCost.toFixed(4)}, ${transportMap.computeTimeMs.toFixed(0)}ms`,
479
+ },
480
+ baselineScreenshot,
481
+ currentScreenshot: currentPath,
482
+ timestamp: new Date().toISOString(),
483
+ transportMap,
484
+ transportMapSvgPath,
485
+ };
486
+ }
153
487
  /**
154
488
  * Analyze visual differences using AI
155
489
  */
@@ -225,9 +559,11 @@ Respond ONLY with the JSON, no other text.`;
225
559
  { type: "base64", media_type: "image/png", data: currentImage },
226
560
  ],
227
561
  }));
228
- // For now, perform a heuristic comparison since we can't easily call Claude with images
229
- // This can be enhanced when proper API integration is available
230
- const analysis = performHeuristicAnalysis(baselinePath, currentPath, options);
562
+ // Use Wasserstein-enhanced analysis (v18.0.0) with byte-diff fallback
563
+ const distanceMetric = options.distanceMetric || 'wasserstein';
564
+ const analysis = distanceMetric === 'wasserstein' || distanceMetric === 'combined'
565
+ ? await performWassersteinAnalysis(baselinePath, currentPath, options).catch(() => performHeuristicAnalysis(baselinePath, currentPath, options))
566
+ : performHeuristicAnalysis(baselinePath, currentPath, options);
231
567
  // Clean up
232
568
  if (existsSync(requestPath)) {
233
569
  unlinkSync(requestPath);
@@ -238,8 +574,13 @@ Respond ONLY with the JSON, no other text.`;
238
574
  catch (e) {
239
575
  console.debug(`[CBrowser] AI visual analysis failed, using heuristics: ${e.message}`);
240
576
  }
241
- // Fallback: Heuristic analysis based on file comparison
242
- return performHeuristicAnalysis(baselinePath, currentPath, options);
577
+ // Fallback: Use Wasserstein if available, byte-diff otherwise
578
+ try {
579
+ return await performWassersteinAnalysis(baselinePath, currentPath, options);
580
+ }
581
+ catch {
582
+ return performHeuristicAnalysis(baselinePath, currentPath, options);
583
+ }
243
584
  }
244
585
  /**
245
586
  * Perform heuristic visual analysis when AI is not available.
@@ -370,6 +711,106 @@ function performHeuristicAnalysis(baselinePath, currentPath, options = {}) {
370
711
  rawAnalysis: "Byte-level PNG comparison (AI analysis not available)",
371
712
  };
372
713
  }
714
+ /**
715
+ * Perform Wasserstein-enhanced visual analysis.
716
+ * Uses Sliced Wasserstein Distance for robust comparison that handles
717
+ * sub-pixel shifts, anti-aliasing, and font rendering differences.
718
+ *
719
+ * @since v18.0.0
720
+ * @see https://github.com/alexandriashai/cbrowser/issues/158
721
+ */
722
+ async function performWassersteinAnalysis(baselinePath, currentPath, options = {}) {
723
+ const result = await computeCombinedDistance(baselinePath, currentPath, { byteDiff: 0.2, wasserstein: 0.8 }, {
724
+ numProjections: 64,
725
+ compareMode: 'combined',
726
+ downscale: 0.5,
727
+ ignoreRegions: options.ignoreRegions,
728
+ ...options.wassersteinConfig,
729
+ });
730
+ const similarityScore = Math.round(result.normalizedScore * 100) / 100;
731
+ const changes = [];
732
+ let overallStatus = "pass";
733
+ if (similarityScore < 0.7) {
734
+ changes.push({
735
+ type: "layout",
736
+ severity: "breaking",
737
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
738
+ description: `Significant visual differences detected (Wasserstein distance: ${result.distance.toFixed(4)})`,
739
+ reasoning: "Optimal transport analysis shows substantial redistribution of visual content",
740
+ confidence: 0.9,
741
+ suggestion: "Review the visual changes manually — layout or content has materially changed",
742
+ });
743
+ overallStatus = "fail";
744
+ }
745
+ else if (similarityScore < 0.85) {
746
+ changes.push({
747
+ type: "content",
748
+ severity: "warning",
749
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
750
+ description: `Moderate visual differences detected (Wasserstein distance: ${result.distance.toFixed(4)})`,
751
+ reasoning: "Optimal transport analysis shows meaningful visual distribution change",
752
+ confidence: 0.85,
753
+ suggestion: "Review to confirm changes are expected",
754
+ });
755
+ overallStatus = "warning";
756
+ }
757
+ else if (similarityScore < 0.98) {
758
+ changes.push({
759
+ type: "style",
760
+ severity: "info",
761
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
762
+ description: `Minor visual differences detected (Wasserstein distance: ${result.distance.toFixed(4)})`,
763
+ reasoning: "Sub-pixel or rendering engine differences — within normal variation",
764
+ confidence: 0.8,
765
+ });
766
+ }
767
+ // Sensitivity adjustments
768
+ if (options.sensitivity === "low" && overallStatus === "warning") {
769
+ overallStatus = "pass";
770
+ }
771
+ else if (options.sensitivity === "high" && changes.length === 0 && result.distance > 0.001) {
772
+ changes.push({
773
+ type: "style",
774
+ severity: "info",
775
+ region: { x: 0, y: 0, width: 1920, height: 1080 },
776
+ description: "Very minor visual change detected by Wasserstein analysis",
777
+ reasoning: "Slight distribution shift detected at high sensitivity",
778
+ confidence: 0.5,
779
+ });
780
+ overallStatus = "warning";
781
+ }
782
+ // Cross-browser: Wasserstein naturally handles font rendering differences
783
+ // much better than byte-diff, so thresholds are less aggressive
784
+ if (options.crossBrowser) {
785
+ if (overallStatus === "fail" && similarityScore >= 0.55) {
786
+ overallStatus = "warning";
787
+ if (changes.length > 0) {
788
+ changes[0].severity = "warning";
789
+ changes[0].reasoning = "Cross-browser rendering differences (Wasserstein is robust to font/anti-aliasing variation)";
790
+ }
791
+ }
792
+ if (overallStatus === "warning" && similarityScore >= 0.70) {
793
+ overallStatus = "pass";
794
+ if (changes.length > 0) {
795
+ changes[0].severity = "acceptable";
796
+ }
797
+ }
798
+ }
799
+ const channelInfo = result.details.channelDistances
800
+ ? ` | R: ${result.details.channelDistances.r.toFixed(4)}, G: ${result.details.channelDistances.g.toFixed(4)}, B: ${result.details.channelDistances.b.toFixed(4)}, Spatial: ${result.details.channelDistances.spatial.toFixed(4)}`
801
+ : '';
802
+ return {
803
+ overallStatus,
804
+ summary: changes.length === 0
805
+ ? `No significant visual changes detected (Wasserstein similarity: ${similarityScore})`
806
+ : `Found ${changes.length} visual change(s) with ${overallStatus} status`,
807
+ changes,
808
+ similarityScore,
809
+ productionReady: overallStatus !== "fail",
810
+ confidence: 0.9, // Higher than byte-diff (0.75) — Wasserstein is more robust
811
+ rawAnalysis: `Sliced Wasserstein Distance analysis (${result.details.numProjections} projections, ${result.details.computeTimeMs?.toFixed(0)}ms)${channelInfo}`,
812
+ };
813
+ }
373
814
  /**
374
815
  * Run visual regression test against a baseline
375
816
  */
@@ -1 +1 @@
1
- {"version":3,"file":"regression.js","sourceRoot":"","sources":["../../src/visual/regression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regression.js","sourceRoot":"","sources":["../../src/visual/regression.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cbrowser",
3
- "version": "18.24.0",
3
+ "version": "18.25.0",
4
4
  "type": "module",
5
5
  "description": "Cognitive browser automation that thinks like your users—and helps AI agents navigate too. Simulate real user cognition with abandonment detection, constitutional safety, chaos engineering, and UX friction discovery. Sites that pass CBrowser's cognitive tests are easier for both humans and AI agents to navigate.",
6
6
  "main": "dist/index.js",
@@ -129,6 +129,7 @@
129
129
  "jose": "^6.1.3",
130
130
  "mcp-guardian": "^2.2.1",
131
131
  "playwright": "^1.40.0",
132
+ "sharp": "^0.34.5",
132
133
  "zod": "^4.3.6"
133
134
  },
134
135
  "devDependencies": {