@ytspar/sweetlink 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/claude-skills/console-check-sweetlink/SKILL.md +1 -1
  2. package/claude-skills/console-check-sweetlink/evals/evals.json +35 -0
  3. package/claude-skills/resize-for-claude/evals/evals.json +23 -0
  4. package/claude-skills/responsive-screenshots/SKILL.md +1 -1
  5. package/claude-skills/responsive-screenshots/evals/evals.json +23 -0
  6. package/claude-skills/screenshot/SKILL.md +2 -0
  7. package/claude-skills/screenshot/evals/evals.json +35 -0
  8. package/dist/cli/sweetlink.js +70 -12
  9. package/dist/cli/sweetlink.js.map +1 -1
  10. package/dist/daemon/browser.d.ts +10 -0
  11. package/dist/daemon/browser.d.ts.map +1 -1
  12. package/dist/daemon/browser.js +57 -12
  13. package/dist/daemon/browser.js.map +1 -1
  14. package/dist/daemon/devices.d.ts +9 -4
  15. package/dist/daemon/devices.d.ts.map +1 -1
  16. package/dist/daemon/devices.js +25 -4
  17. package/dist/daemon/devices.js.map +1 -1
  18. package/dist/daemon/diff.d.ts +6 -0
  19. package/dist/daemon/diff.d.ts.map +1 -1
  20. package/dist/daemon/diff.js +46 -26
  21. package/dist/daemon/diff.js.map +1 -1
  22. package/dist/daemon/listeners.d.ts +2 -2
  23. package/dist/daemon/listeners.d.ts.map +1 -1
  24. package/dist/daemon/listeners.js +7 -5
  25. package/dist/daemon/listeners.js.map +1 -1
  26. package/dist/daemon/recording.d.ts +6 -1
  27. package/dist/daemon/recording.d.ts.map +1 -1
  28. package/dist/daemon/recording.js +81 -11
  29. package/dist/daemon/recording.js.map +1 -1
  30. package/dist/daemon/refs.d.ts.map +1 -1
  31. package/dist/daemon/refs.js +7 -2
  32. package/dist/daemon/refs.js.map +1 -1
  33. package/dist/daemon/server.d.ts.map +1 -1
  34. package/dist/daemon/server.js +127 -12
  35. package/dist/daemon/server.js.map +1 -1
  36. package/dist/daemon/summary.d.ts.map +1 -1
  37. package/dist/daemon/summary.js +52 -10
  38. package/dist/daemon/summary.js.map +1 -1
  39. package/dist/daemon/types.d.ts +1 -1
  40. package/dist/daemon/types.d.ts.map +1 -1
  41. package/dist/daemon/types.js.map +1 -1
  42. package/dist/daemon/viewer.d.ts +7 -0
  43. package/dist/daemon/viewer.d.ts.map +1 -1
  44. package/dist/daemon/viewer.js +12 -4
  45. package/dist/daemon/viewer.js.map +1 -1
  46. package/dist/ruler.d.ts +1 -1
  47. package/dist/ruler.d.ts.map +1 -1
  48. package/dist/ruler.js +53 -32
  49. package/dist/ruler.js.map +1 -1
  50. package/package.json +37 -19
@@ -57,15 +57,35 @@ export const DEVICE_PRESETS = {
57
57
  isMobile: false,
58
58
  },
59
59
  };
60
+ /**
61
+ * Short aliases that resolve to a canonical preset key. Lets users say
62
+ * `ipad` instead of remembering `ipad-mini` vs `ipad-pro-11`.
63
+ */
64
+ const DEVICE_ALIASES = {
65
+ iphone: 'iphone-14',
66
+ ipad: 'ipad-mini',
67
+ pixel: 'pixel-7',
68
+ android: 'pixel-7',
69
+ mobile: 'iphone-14',
70
+ tablet: 'ipad-mini',
71
+ };
72
+ /** Names a user might type (presets + aliases) for help/error messages. */
73
+ export function listDeviceNames() {
74
+ return [
75
+ ...Object.keys(DEVICE_PRESETS),
76
+ ...Object.keys(DEVICE_ALIASES).map((a) => `${a} (→${DEVICE_ALIASES[a]})`),
77
+ ].sort();
78
+ }
60
79
  /**
61
80
  * Parse a device name (case-insensitive) to a DeviceConfig.
62
81
  * Falls back to custom viewport parsing for "WIDTHxHEIGHT" format.
63
82
  */
64
83
  export function parseDevice(name) {
65
84
  const normalized = name.toLowerCase().replace(/\s+/g, '-');
85
+ const resolved = DEVICE_ALIASES[normalized] ?? normalized;
66
86
  // Check presets
67
- if (DEVICE_PRESETS[normalized]) {
68
- return DEVICE_PRESETS[normalized];
87
+ if (DEVICE_PRESETS[resolved]) {
88
+ return DEVICE_PRESETS[resolved];
69
89
  }
70
90
  // Try WIDTHxHEIGHT format
71
91
  const match = name.match(/^(\d+)x(\d+)$/);
@@ -82,11 +102,12 @@ export function parseDevice(name) {
82
102
  */
83
103
  export async function takeDeviceScreenshots(page, devices, options) {
84
104
  const results = [];
105
+ const unknown = [];
85
106
  const originalViewport = page.viewportSize() ?? { width: 1440, height: 900 };
86
107
  for (const deviceName of devices) {
87
108
  const device = parseDevice(deviceName);
88
109
  if (!device) {
89
- console.error(`[Daemon] Unknown device: ${deviceName}`);
110
+ unknown.push(deviceName);
90
111
  continue;
91
112
  }
92
113
  await page.setViewportSize(device.viewport);
@@ -96,6 +117,6 @@ export async function takeDeviceScreenshots(page, devices, options) {
96
117
  }
97
118
  // Restore original viewport
98
119
  await page.setViewportSize(originalViewport);
99
- return results;
120
+ return { results, unknown };
100
121
  }
101
122
  //# sourceMappingURL=devices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,12 @@ export declare function diffSnapshots(baseline: RefMap, current: RefMap): string
14
14
  /**
15
15
  * Take an annotated screenshot with ref labels overlaid on elements.
16
16
  * Injects temporary overlay divs, captures screenshot, then removes them.
17
+ *
18
+ * - Captures the full page so annotations below the fold are visible.
19
+ * - Skips elements with zero bounding-box (avoids stray labels at 0,0).
20
+ * - Positions labels above the element (or below if at the page top),
21
+ * uses absolute (document-relative) coordinates so they line up in
22
+ * the full-page image.
17
23
  */
18
24
  export declare function annotateScreenshot(page: Page, refMap: RefMap): Promise<Buffer>;
19
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkDvE;AA2CD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAuFjB"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkDvE;AA2CD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAuGjB"}
@@ -100,13 +100,24 @@ function computeLCS(a, b) {
100
100
  /**
101
101
  * Take an annotated screenshot with ref labels overlaid on elements.
102
102
  * Injects temporary overlay divs, captures screenshot, then removes them.
103
+ *
104
+ * - Captures the full page so annotations below the fold are visible.
105
+ * - Skips elements with zero bounding-box (avoids stray labels at 0,0).
106
+ * - Positions labels above the element (or below if at the page top),
107
+ * uses absolute (document-relative) coordinates so they line up in
108
+ * the full-page image.
103
109
  */
104
110
  export async function annotateScreenshot(page, refMap) {
105
111
  // Inject overlay elements
106
112
  await page.evaluate((refs) => {
107
113
  const container = document.createElement('div');
108
114
  container.id = '__sweetlink_annotations__';
109
- container.style.cssText = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 999999;';
115
+ // Absolute positioning so labels stay attached to elements as the
116
+ // page scrolls — matters for full-page screenshots.
117
+ container.style.cssText =
118
+ 'position: absolute; top: 0; left: 0; width: 100%; pointer-events: none; z-index: 2147483647;';
119
+ const sx = window.scrollX;
120
+ const sy = window.scrollY;
110
121
  for (const refEntry of refs) {
111
122
  // Find element by role + name using ARIA
112
123
  let element = null;
@@ -115,7 +126,6 @@ export async function annotateScreenshot(page, refMap) {
115
126
  const role = el.getAttribute('role') ?? el.tagName?.toLowerCase();
116
127
  const name = el.getAttribute('aria-label') ??
117
128
  el.textContent?.trim().substring(0, 50) ?? '';
118
- // Match by role keyword and name substring
119
129
  const roleMatch = role === refEntry.role ||
120
130
  (refEntry.role === 'button' && el.tagName === 'BUTTON') ||
121
131
  (refEntry.role === 'link' && el.tagName === 'A') ||
@@ -131,47 +141,57 @@ export async function annotateScreenshot(page, refMap) {
131
141
  if (!element)
132
142
  continue;
133
143
  const rect = element.getBoundingClientRect();
134
- // Create label (emerald accent from design system)
144
+ // Skip elements without a real visual presence — these were
145
+ // producing stray labels at (0,0) on the screenshot.
146
+ if (rect.width < 1 || rect.height < 1)
147
+ continue;
148
+ // Document-space coords (so labels line up with the captured
149
+ // full-page image, not the viewport).
150
+ const docLeft = rect.left + sx;
151
+ const docTop = rect.top + sy;
152
+ const labelHeight = 18;
153
+ const padX = 6;
154
+ // Place the label above the element when possible, else below.
155
+ const goAbove = docTop >= labelHeight + 2;
156
+ const labelTop = goAbove ? docTop - labelHeight - 2 : docTop + rect.height + 2;
135
157
  const label = document.createElement('div');
136
158
  label.style.cssText = `
137
- position: fixed;
138
- left: ${rect.left}px;
139
- top: ${Math.max(0, rect.top - 18)}px;
140
- background: rgba(16, 185, 129, 0.9);
159
+ position: absolute;
160
+ left: ${docLeft}px;
161
+ top: ${labelTop}px;
162
+ background: rgba(16, 185, 129, 0.95);
141
163
  color: #0a0f1a;
142
- font-size: 11px;
164
+ font-size: 12px;
143
165
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
144
- font-weight: bold;
145
- padding: 1px 4px;
146
- border-radius: 2px;
147
- z-index: 999999;
148
- pointer-events: none;
149
- line-height: 16px;
166
+ font-weight: 700;
167
+ padding: 2px ${padX}px;
168
+ border-radius: 3px;
169
+ height: ${labelHeight}px;
170
+ line-height: ${labelHeight - 4}px;
171
+ box-shadow: 0 1px 2px rgba(0,0,0,0.25);
172
+ white-space: nowrap;
150
173
  `;
151
174
  label.textContent = refEntry.ref;
152
- // Create outline
153
175
  const outline = document.createElement('div');
154
176
  outline.style.cssText = `
155
- position: fixed;
156
- left: ${rect.left}px;
157
- top: ${rect.top}px;
177
+ position: absolute;
178
+ left: ${docLeft}px;
179
+ top: ${docTop}px;
158
180
  width: ${rect.width}px;
159
181
  height: ${rect.height}px;
160
- border: 2px solid rgba(16, 185, 129, 0.7);
161
- border-radius: 2px;
162
- z-index: 999998;
163
- pointer-events: none;
182
+ border: 2px solid rgba(16, 185, 129, 0.8);
183
+ border-radius: 3px;
184
+ box-sizing: border-box;
164
185
  `;
165
186
  container.appendChild(label);
166
187
  container.appendChild(outline);
167
188
  }
168
189
  document.body.appendChild(container);
169
190
  }, refMap.entries.map(e => ({ ref: e.ref, role: e.role, name: e.name })));
170
- // Small wait for rendering
171
191
  await page.waitForTimeout(50);
172
- // Take screenshot
173
- const buffer = await page.screenshot();
174
- // Remove overlay
192
+ // Capture full page so refs below the fold are visible. Without this
193
+ // the annotated screenshot misses anything past the viewport.
194
+ const buffer = await page.screenshot({ fullPage: true });
175
195
  await page.evaluate(() => {
176
196
  const container = document.getElementById('__sweetlink_annotations__');
177
197
  container?.remove();
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,8 @@ export declare const consoleBuffer: RingBuffer<ConsoleEntry>;
31
31
  export declare const networkBuffer: RingBuffer<NetworkEntry>;
32
32
  export declare const dialogBuffer: RingBuffer<DialogEntry>;
33
33
  /**
34
- * Install event listeners on the daemon page.
35
- * Safe to call multiple times only installs once.
34
+ * Install event listeners on a page. Safe to call multiple times for the
35
+ * same page (no-op on re-install) and supports multiple distinct pages.
36
36
  */
37
37
  export declare function installListeners(page: Page): void;
38
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,YAAY,yBAAsC,CAAC;AAWhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAmEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAapE"}
1
+ {"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,YAAY,yBAAsC,CAAC;AAahE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAmEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAapE"}
@@ -16,15 +16,17 @@ const pendingRequests = new Map();
16
16
  // ============================================================================
17
17
  // Setup
18
18
  // ============================================================================
19
- let listenersInstalled = false;
19
+ // Track installed pages so a daemon with both a main page and a recording
20
+ // page captures events from both into the shared ring buffers.
21
+ const installedPages = new WeakSet();
20
22
  /**
21
- * Install event listeners on the daemon page.
22
- * Safe to call multiple times only installs once.
23
+ * Install event listeners on a page. Safe to call multiple times for the
24
+ * same page (no-op on re-install) and supports multiple distinct pages.
23
25
  */
24
26
  export function installListeners(page) {
25
- if (listenersInstalled)
27
+ if (installedPages.has(page))
26
28
  return;
27
- listenersInstalled = true;
29
+ installedPages.add(page);
28
30
  // Console events
29
31
  page.on('console', (msg) => {
30
32
  consoleBuffer.push({
@@ -1 +1 @@
1
- {"version":3,"file":"listeners.js","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listeners.js","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,12 @@ type Page = import('playwright').Page;
18
18
  * Start recording a session with real video capture.
19
19
  * Creates a new BrowserContext with recordVideo enabled.
20
20
  */
21
- export declare function startRecording(browser: Browser, url: string, outputDir: string): Promise<{
21
+ export declare function startRecording(browser: Browser, url: string, outputDir: string, options?: {
22
+ viewport?: {
23
+ width: number;
24
+ height: number;
25
+ };
26
+ }): Promise<{
22
27
  sessionId: string;
23
28
  }>;
24
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAIjE,KAAK,OAAO,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC;AAE5C,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AA2CtC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAwChC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,IAAI,EACV,WAAW,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA+ErE;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,IAAI;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAOA"}
1
+ {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAKjE,KAAK,OAAO,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC;AAE5C,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAkDtC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACzD,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA+ChC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,IAAI,EACV,WAAW,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAuEf;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyFrE;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,IAAI;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAOA"}
@@ -15,11 +15,15 @@ import { execFileSync } from 'child_process';
15
15
  import { promises as fs } from 'fs';
16
16
  import * as path from 'path';
17
17
  import { installCursorHighlight } from './cursor.js';
18
- import { installListeners } from './listeners.js';
18
+ import { consoleBuffer, installListeners, networkBuffer } from './listeners.js';
19
+ import { DEFAULT_VIEWPORT } from '../viewportUtils.js';
19
20
  // ============================================================================
20
21
  // Constants
21
22
  // ============================================================================
22
- const RECORDING_VIEWPORT = { width: 1280, height: 720 };
23
+ // Match the daemon's default viewport so what's recorded looks like what
24
+ // the user sees in their normal browser tab. Callers can override via
25
+ // startRecording's `viewport` option (e.g. `record start --viewport mobile`).
26
+ const RECORDING_VIEWPORT = DEFAULT_VIEWPORT;
23
27
  // ============================================================================
24
28
  // State
25
29
  // ============================================================================
@@ -35,6 +39,10 @@ let recordingVideoPath = null;
35
39
  let recordingUrl = null;
36
40
  let recordingGitBranch = null;
37
41
  let recordingGitCommit = null;
42
+ // Buffer cursors snapshotted at startRecording so the manifest only counts
43
+ // events that landed during this session (the ring buffers are global).
44
+ let consoleStartCursor = 0;
45
+ let networkStartCursor = 0;
38
46
  function detectGit() {
39
47
  try {
40
48
  const branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
@@ -56,19 +64,20 @@ function detectGit() {
56
64
  * Start recording a session with real video capture.
57
65
  * Creates a new BrowserContext with recordVideo enabled.
58
66
  */
59
- export async function startRecording(browser, url, outputDir) {
67
+ export async function startRecording(browser, url, outputDir, options) {
60
68
  if (recording) {
61
69
  throw new Error('Recording already in progress. Stop it first.');
62
70
  }
63
71
  sessionId = `session-${Date.now()}`;
64
72
  sessionDir = path.join(outputDir, sessionId);
65
73
  await fs.mkdir(sessionDir, { recursive: true });
74
+ const viewport = options?.viewport ?? RECORDING_VIEWPORT;
66
75
  // Create a new context with video recording
67
76
  recordingContext = await browser.newContext({
68
- viewport: RECORDING_VIEWPORT,
77
+ viewport,
69
78
  recordVideo: {
70
79
  dir: sessionDir,
71
- size: RECORDING_VIEWPORT,
80
+ size: viewport,
72
81
  },
73
82
  });
74
83
  recordingPage = await recordingContext.newPage();
@@ -76,17 +85,21 @@ export async function startRecording(browser, url, outputDir) {
76
85
  await installCursorHighlight(recordingPage);
77
86
  // Install event listeners for ring buffer capture during recording
78
87
  installListeners(recordingPage);
79
- // Navigate to the same URL
80
- await recordingPage.goto(url, { waitUntil: 'domcontentloaded', timeout: 30_000 });
88
+ // Mark session start BEFORE navigating so any console/network events
89
+ // emitted during the initial page load are attributed to this session.
81
90
  recording = true;
82
91
  startedAt = Date.now();
83
92
  actions = [];
84
93
  screenshotPaths = [];
94
+ consoleStartCursor = consoleBuffer.size;
95
+ networkStartCursor = networkBuffer.size;
85
96
  recordingUrl = url;
97
+ // Navigate to the same URL (events from this load count toward the session)
98
+ await recordingPage.goto(url, { waitUntil: 'domcontentloaded', timeout: 30_000 });
86
99
  const git = detectGit();
87
100
  recordingGitBranch = git.branch;
88
101
  recordingGitCommit = git.commit;
89
- console.error(`[Daemon] Recording started: ${sessionId} (video: ${RECORDING_VIEWPORT.width}x${RECORDING_VIEWPORT.height})`);
102
+ console.error(`[Daemon] Recording started: ${sessionId} (video: ${viewport.width}x${viewport.height})`);
90
103
  return { sessionId };
91
104
  }
92
105
  /**
@@ -107,7 +120,55 @@ export async function logAction(action, args, page, boundingBox) {
107
120
  const screenshotName = `action-${actions.length}.png`;
108
121
  const screenshotPath = path.join(sessionDir, screenshotName);
109
122
  try {
123
+ // If we have a bounding box, briefly inject a marker pulse at the
124
+ // action's center so the action screenshot makes the click site
125
+ // visible. The marker is removed before resolving.
126
+ let markerInjected = false;
127
+ if (boundingBox) {
128
+ const cx = Math.round(boundingBox.x + boundingBox.width / 2);
129
+ const cy = Math.round(boundingBox.y + boundingBox.height / 2);
130
+ try {
131
+ await page.evaluate(({ cx, cy }) => {
132
+ const m = document.createElement('div');
133
+ m.id = '__sl_action_marker__';
134
+ Object.assign(m.style, {
135
+ position: 'fixed',
136
+ left: `${cx}px`,
137
+ top: `${cy}px`,
138
+ width: '0', height: '0',
139
+ pointerEvents: 'none',
140
+ zIndex: '2147483647',
141
+ transform: 'translate(-50%, -50%)',
142
+ boxSizing: 'border-box',
143
+ });
144
+ const dot = document.createElement('div');
145
+ Object.assign(dot.style, {
146
+ position: 'absolute',
147
+ left: '50%', top: '50%', transform: 'translate(-50%, -50%)',
148
+ width: '20px', height: '20px',
149
+ borderRadius: '50%',
150
+ background: 'rgba(255, 64, 32, 0.85)',
151
+ border: '3px solid #fff',
152
+ boxShadow: '0 0 0 2px rgba(255, 64, 32, 0.5), 0 2px 8px rgba(0,0,0,0.3)',
153
+ });
154
+ m.appendChild(dot);
155
+ document.body.appendChild(m);
156
+ }, { cx, cy });
157
+ markerInjected = true;
158
+ }
159
+ catch { /* page may not be ready */ }
160
+ }
110
161
  const buffer = await page.screenshot();
162
+ if (markerInjected) {
163
+ try {
164
+ await page.evaluate(() => {
165
+ const m = document.getElementById('__sl_action_marker__');
166
+ if (m)
167
+ m.remove();
168
+ });
169
+ }
170
+ catch { /* ignore */ }
171
+ }
111
172
  await fs.writeFile(screenshotPath, buffer);
112
173
  screenshotPaths.push(screenshotPath);
113
174
  }
@@ -131,8 +192,9 @@ export async function stopRecording() {
131
192
  if (!recording || !sessionId || !startedAt || !sessionDir) {
132
193
  return null;
133
194
  }
195
+ const startedAtMs = startedAt;
134
196
  const endedAt = Date.now();
135
- const duration = (endedAt - startedAt) / 1000;
197
+ const duration = (endedAt - startedAtMs) / 1000;
136
198
  // Get video path BEFORE closing (it's set when the page was created)
137
199
  let videoFilename;
138
200
  if (recordingPage) {
@@ -167,18 +229,26 @@ export async function stopRecording() {
167
229
  videoFilename = undefined;
168
230
  }
169
231
  }
232
+ // Count only entries pushed AFTER startRecording (cursor-based). The
233
+ // ring buffers are daemon-global so timestamp filtering alone would
234
+ // miss events that fire after startRecording but share a millisecond
235
+ // with init-time events. Cursor-based slicing is atomic.
236
+ const consoleSlice = consoleBuffer.toArray().slice(consoleStartCursor);
237
+ const networkSlice = networkBuffer.toArray().slice(networkStartCursor);
238
+ const consoleErrors = consoleSlice.filter((e) => e.level === 'error').length;
239
+ const networkFailures = networkSlice.filter((e) => e.status === 0 || e.status >= 400).length;
170
240
  const manifest = {
171
241
  sessionId,
172
242
  url: recordingUrl ?? undefined,
173
243
  gitBranch: recordingGitBranch ?? undefined,
174
244
  gitCommit: recordingGitCommit ?? undefined,
175
- startedAt: new Date(startedAt).toISOString(),
245
+ startedAt: new Date(startedAtMs).toISOString(),
176
246
  endedAt: new Date(endedAt).toISOString(),
177
247
  duration,
178
248
  commands: actions,
179
249
  screenshots: screenshotPaths.map((p) => path.basename(p)),
180
250
  video: videoFilename,
181
- errors: { console: 0, network: 0, server: 0 },
251
+ errors: { console: consoleErrors, network: networkFailures, server: 0 },
182
252
  };
183
253
  // Write manifest
184
254
  const manifestPath = path.join(sessionDir, 'sweetlink-session.json');
@@ -1 +1 @@
1
- {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/daemon/refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AACtC,KAAK,OAAO,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC;AAM5C,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,QAAQ,EAAE,CA0CZ;AAMD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAmB3D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBnD;AAMD,2DAA2D;AAC3D,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C;AAED,+BAA+B;AAC/B,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,gDAAgD;AAChD,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/daemon/refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AACtC,KAAK,OAAO,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC;AAM5C,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,QAAQ,EAAE,CA0CZ;AAMD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAwB3D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBnD;AAMD,2DAA2D;AAC3D,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C;AAED,+BAA+B;AAC/B,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,gDAAgD;AAChD,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
@@ -112,11 +112,16 @@ export async function buildRefMap(page, options) {
112
112
  */
113
113
  export function resolveRef(page, ref) {
114
114
  if (!currentRefMap) {
115
- throw new Error('No snapshot taken yet. Run `snapshot -i` first.');
115
+ throw new Error('No snapshot taken yet. Run `sweetlink snapshot` first to populate refs.');
116
116
  }
117
117
  const entry = currentRefMap.byRef.get(ref);
118
118
  if (!entry) {
119
- throw new Error(`Unknown ref ${ref}. Available refs: ${Array.from(currentRefMap.byRef.keys()).join(', ')}`);
119
+ const available = Array.from(currentRefMap.byRef.keys());
120
+ const preview = available.length <= 10
121
+ ? available.join(', ')
122
+ : available.slice(0, 8).join(', ') + ` ... (${available.length - 8} more)`;
123
+ throw new Error(`Ref ${ref} is not in the current snapshot (have ${available.length}: ${preview}). ` +
124
+ `If the page changed, re-run \`sweetlink snapshot\` to refresh refs.`);
120
125
  }
121
126
  // Build locator from role + name
122
127
  const locator = page.getByRole(entry.role, {
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/daemon/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/daemon/refs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAskBH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GtE;AAED;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB9C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2sBH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GtE;AAED;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB9C"}