@ytspar/sweetlink 1.16.1 → 1.18.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 (55) hide show
  1. package/claude-skills/screenshot/SKILL.md +2 -0
  2. package/dist/cli/sweetlink-dev.js +0 -0
  3. package/dist/cli/sweetlink.js +338 -29
  4. package/dist/cli/sweetlink.js.map +1 -1
  5. package/dist/daemon/browser.d.ts +12 -0
  6. package/dist/daemon/browser.d.ts.map +1 -1
  7. package/dist/daemon/browser.js +62 -12
  8. package/dist/daemon/browser.js.map +1 -1
  9. package/dist/daemon/cursor.d.ts.map +1 -1
  10. package/dist/daemon/cursor.js +39 -8
  11. package/dist/daemon/cursor.js.map +1 -1
  12. package/dist/daemon/devices.d.ts +9 -4
  13. package/dist/daemon/devices.d.ts.map +1 -1
  14. package/dist/daemon/devices.js +25 -4
  15. package/dist/daemon/devices.js.map +1 -1
  16. package/dist/daemon/diff.d.ts +6 -0
  17. package/dist/daemon/diff.d.ts.map +1 -1
  18. package/dist/daemon/diff.js +46 -26
  19. package/dist/daemon/diff.js.map +1 -1
  20. package/dist/daemon/index.js +0 -0
  21. package/dist/daemon/listeners.d.ts +8 -2
  22. package/dist/daemon/listeners.d.ts.map +1 -1
  23. package/dist/daemon/listeners.js +39 -6
  24. package/dist/daemon/listeners.js.map +1 -1
  25. package/dist/daemon/recording.d.ts +28 -3
  26. package/dist/daemon/recording.d.ts.map +1 -1
  27. package/dist/daemon/recording.js +159 -17
  28. package/dist/daemon/recording.js.map +1 -1
  29. package/dist/daemon/refs.d.ts.map +1 -1
  30. package/dist/daemon/refs.js +7 -2
  31. package/dist/daemon/refs.js.map +1 -1
  32. package/dist/daemon/server.d.ts.map +1 -1
  33. package/dist/daemon/server.js +326 -19
  34. package/dist/daemon/server.js.map +1 -1
  35. package/dist/daemon/session.d.ts +2 -0
  36. package/dist/daemon/session.d.ts.map +1 -1
  37. package/dist/daemon/summary.d.ts.map +1 -1
  38. package/dist/daemon/summary.js +57 -11
  39. package/dist/daemon/summary.js.map +1 -1
  40. package/dist/daemon/types.d.ts +1 -1
  41. package/dist/daemon/types.d.ts.map +1 -1
  42. package/dist/daemon/types.js.map +1 -1
  43. package/dist/daemon/viewer.d.ts +7 -0
  44. package/dist/daemon/viewer.d.ts.map +1 -1
  45. package/dist/daemon/viewer.js +12 -4
  46. package/dist/daemon/viewer.js.map +1 -1
  47. package/dist/daemon/visualDiff.d.ts +2 -0
  48. package/dist/daemon/visualDiff.d.ts.map +1 -1
  49. package/dist/daemon/visualDiff.js +61 -2
  50. package/dist/daemon/visualDiff.js.map +1 -1
  51. package/dist/ruler.d.ts +1 -1
  52. package/dist/ruler.d.ts.map +1 -1
  53. package/dist/ruler.js +53 -32
  54. package/dist/ruler.js.map +1 -1
  55. package/package.json +10 -11
@@ -15,15 +15,22 @@ 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
  // ============================================================================
26
30
  let recording = false;
31
+ let paused = false;
32
+ let pausedAt = null;
33
+ let totalPausedMs = 0;
27
34
  let sessionId = null;
28
35
  let startedAt = null;
29
36
  let actions = [];
@@ -35,6 +42,11 @@ let recordingVideoPath = null;
35
42
  let recordingUrl = null;
36
43
  let recordingGitBranch = null;
37
44
  let recordingGitCommit = null;
45
+ let recordingLabel = null;
46
+ // Buffer cursors snapshotted at startRecording so the manifest only counts
47
+ // events that landed during this session (the ring buffers are global).
48
+ let consoleStartCursor = 0;
49
+ let networkStartCursor = 0;
38
50
  function detectGit() {
39
51
  try {
40
52
  const branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
@@ -56,37 +68,59 @@ function detectGit() {
56
68
  * Start recording a session with real video capture.
57
69
  * Creates a new BrowserContext with recordVideo enabled.
58
70
  */
59
- export async function startRecording(browser, url, outputDir) {
71
+ export async function startRecording(browser, url, outputDir, options) {
60
72
  if (recording) {
61
73
  throw new Error('Recording already in progress. Stop it first.');
62
74
  }
63
- sessionId = `session-${Date.now()}`;
75
+ // Human-sortable timestamp: session-2026-04-26T19-47-14
76
+ const d = new Date();
77
+ const pad = (n) => String(n).padStart(2, '0');
78
+ const stamp = `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}` +
79
+ `T${pad(d.getHours())}-${pad(d.getMinutes())}-${pad(d.getSeconds())}`;
80
+ sessionId = `session-${stamp}`;
64
81
  sessionDir = path.join(outputDir, sessionId);
65
82
  await fs.mkdir(sessionDir, { recursive: true });
66
- // Create a new context with video recording
83
+ const viewport = options?.viewport ?? RECORDING_VIEWPORT;
84
+ // Create a new context with video recording (and optionally
85
+ // pre-authenticated storage state for testing logged-in flows).
67
86
  recordingContext = await browser.newContext({
68
- viewport: RECORDING_VIEWPORT,
87
+ viewport,
69
88
  recordVideo: {
70
89
  dir: sessionDir,
71
- size: RECORDING_VIEWPORT,
90
+ size: viewport,
72
91
  },
92
+ ...(options?.storageState ? { storageState: options.storageState } : {}),
73
93
  });
94
+ // Optional Playwright trace for full DevTools-grade debugging.
95
+ if (options?.trace) {
96
+ try {
97
+ await recordingContext.tracing.start({ screenshots: true, snapshots: true, sources: true });
98
+ }
99
+ catch (e) {
100
+ console.error('[Daemon] Could not start trace:', e instanceof Error ? e.message : e);
101
+ }
102
+ }
74
103
  recordingPage = await recordingContext.newPage();
75
104
  // Install cursor highlight so clicks are visible in the video
76
105
  await installCursorHighlight(recordingPage);
77
106
  // Install event listeners for ring buffer capture during recording
78
107
  installListeners(recordingPage);
79
- // Navigate to the same URL
80
- await recordingPage.goto(url, { waitUntil: 'domcontentloaded', timeout: 30_000 });
108
+ // Mark session start BEFORE navigating so any console/network events
109
+ // emitted during the initial page load are attributed to this session.
81
110
  recording = true;
82
111
  startedAt = Date.now();
83
112
  actions = [];
84
113
  screenshotPaths = [];
114
+ consoleStartCursor = consoleBuffer.size;
115
+ networkStartCursor = networkBuffer.size;
85
116
  recordingUrl = url;
117
+ recordingLabel = options?.label ?? null;
118
+ // Navigate to the same URL (events from this load count toward the session)
119
+ await recordingPage.goto(url, { waitUntil: 'domcontentloaded', timeout: 30_000 });
86
120
  const git = detectGit();
87
121
  recordingGitBranch = git.branch;
88
122
  recordingGitCommit = git.commit;
89
- console.error(`[Daemon] Recording started: ${sessionId} (video: ${RECORDING_VIEWPORT.width}x${RECORDING_VIEWPORT.height})`);
123
+ console.error(`[Daemon] Recording started: ${sessionId} (video: ${viewport.width}x${viewport.height})`);
90
124
  return { sessionId };
91
125
  }
92
126
  /**
@@ -100,14 +134,68 @@ export function getRecordingPage() {
100
134
  * Log an action during recording.
101
135
  * Captures a screenshot at the moment of the action for the viewer thumbnail.
102
136
  */
103
- export async function logAction(action, args, page, boundingBox) {
137
+ export async function logAction(action, args, page, boundingBox, durationMs) {
104
138
  if (!recording || !startedAt || !sessionDir)
105
139
  return;
106
- const timestamp = (Date.now() - startedAt) / 1000;
140
+ // Drop actions while paused the user explicitly asked us to ignore
141
+ // this window. The action will appear once they resume.
142
+ if (paused)
143
+ return;
144
+ // Subtract the time we spent paused from the timeline so timestamps
145
+ // stay relative to active recording.
146
+ const timestamp = (Date.now() - startedAt - totalPausedMs) / 1000;
107
147
  const screenshotName = `action-${actions.length}.png`;
108
148
  const screenshotPath = path.join(sessionDir, screenshotName);
109
149
  try {
150
+ // If we have a bounding box, briefly inject a marker pulse at the
151
+ // action's center so the action screenshot makes the click site
152
+ // visible. The marker is removed before resolving.
153
+ let markerInjected = false;
154
+ if (boundingBox) {
155
+ const cx = Math.round(boundingBox.x + boundingBox.width / 2);
156
+ const cy = Math.round(boundingBox.y + boundingBox.height / 2);
157
+ try {
158
+ await page.evaluate(({ cx, cy }) => {
159
+ const m = document.createElement('div');
160
+ m.id = '__sl_action_marker__';
161
+ Object.assign(m.style, {
162
+ position: 'fixed',
163
+ left: `${cx}px`,
164
+ top: `${cy}px`,
165
+ width: '0', height: '0',
166
+ pointerEvents: 'none',
167
+ zIndex: '2147483647',
168
+ transform: 'translate(-50%, -50%)',
169
+ boxSizing: 'border-box',
170
+ });
171
+ const dot = document.createElement('div');
172
+ Object.assign(dot.style, {
173
+ position: 'absolute',
174
+ left: '50%', top: '50%', transform: 'translate(-50%, -50%)',
175
+ width: '20px', height: '20px',
176
+ borderRadius: '50%',
177
+ background: 'rgba(255, 64, 32, 0.85)',
178
+ border: '3px solid #fff',
179
+ boxShadow: '0 0 0 2px rgba(255, 64, 32, 0.5), 0 2px 8px rgba(0,0,0,0.3)',
180
+ });
181
+ m.appendChild(dot);
182
+ document.body.appendChild(m);
183
+ }, { cx, cy });
184
+ markerInjected = true;
185
+ }
186
+ catch { /* page may not be ready */ }
187
+ }
110
188
  const buffer = await page.screenshot();
189
+ if (markerInjected) {
190
+ try {
191
+ await page.evaluate(() => {
192
+ const m = document.getElementById('__sl_action_marker__');
193
+ if (m)
194
+ m.remove();
195
+ });
196
+ }
197
+ catch { /* ignore */ }
198
+ }
111
199
  await fs.writeFile(screenshotPath, buffer);
112
200
  screenshotPaths.push(screenshotPath);
113
201
  }
@@ -118,7 +206,7 @@ export async function logAction(action, args, page, boundingBox) {
118
206
  timestamp,
119
207
  action,
120
208
  args,
121
- duration: 0,
209
+ duration: durationMs ?? 0,
122
210
  boundingBox,
123
211
  screenshot: screenshotName,
124
212
  });
@@ -131,8 +219,16 @@ export async function stopRecording() {
131
219
  if (!recording || !sessionId || !startedAt || !sessionDir) {
132
220
  return null;
133
221
  }
222
+ const startedAtMs = startedAt;
223
+ // If we stop while paused, finalise the pause window first.
224
+ if (paused && pausedAt) {
225
+ totalPausedMs += Date.now() - pausedAt;
226
+ paused = false;
227
+ pausedAt = null;
228
+ }
134
229
  const endedAt = Date.now();
135
- const duration = (endedAt - startedAt) / 1000;
230
+ // Active-recording duration excludes time spent paused.
231
+ const duration = (endedAt - startedAtMs - totalPausedMs) / 1000;
136
232
  // Get video path BEFORE closing (it's set when the page was created)
137
233
  let videoFilename;
138
234
  if (recordingPage) {
@@ -147,6 +243,12 @@ export async function stopRecording() {
147
243
  catch { /* may already be closed */ }
148
244
  }
149
245
  if (recordingContext) {
246
+ // If tracing was active, stop and write trace.zip into the session dir
247
+ // before closing the context.
248
+ try {
249
+ await recordingContext.tracing.stop({ path: path.join(sessionDir, 'trace.zip') });
250
+ }
251
+ catch { /* tracing may not have been started */ }
150
252
  try {
151
253
  await recordingContext.close();
152
254
  }
@@ -167,18 +269,27 @@ export async function stopRecording() {
167
269
  videoFilename = undefined;
168
270
  }
169
271
  }
272
+ // Count only entries pushed AFTER startRecording (cursor-based). The
273
+ // ring buffers are daemon-global so timestamp filtering alone would
274
+ // miss events that fire after startRecording but share a millisecond
275
+ // with init-time events. Cursor-based slicing is atomic.
276
+ const consoleSlice = consoleBuffer.toArray().slice(consoleStartCursor);
277
+ const networkSlice = networkBuffer.toArray().slice(networkStartCursor);
278
+ const consoleErrors = consoleSlice.filter((e) => e.level === 'error').length;
279
+ const networkFailures = networkSlice.filter((e) => e.status === 0 || e.status >= 400).length;
170
280
  const manifest = {
171
281
  sessionId,
282
+ label: recordingLabel ?? undefined,
172
283
  url: recordingUrl ?? undefined,
173
284
  gitBranch: recordingGitBranch ?? undefined,
174
285
  gitCommit: recordingGitCommit ?? undefined,
175
- startedAt: new Date(startedAt).toISOString(),
286
+ startedAt: new Date(startedAtMs).toISOString(),
176
287
  endedAt: new Date(endedAt).toISOString(),
177
288
  duration,
178
289
  commands: actions,
179
290
  screenshots: screenshotPaths.map((p) => path.basename(p)),
180
291
  video: videoFilename,
181
- errors: { console: 0, network: 0, server: 0 },
292
+ errors: { console: consoleErrors, network: networkFailures, server: 0 },
182
293
  };
183
294
  // Write manifest
184
295
  const manifestPath = path.join(sessionDir, 'sweetlink-session.json');
@@ -198,12 +309,43 @@ export async function stopRecording() {
198
309
  recordingUrl = null;
199
310
  recordingGitBranch = null;
200
311
  recordingGitCommit = null;
312
+ recordingLabel = null;
313
+ paused = false;
314
+ pausedAt = null;
315
+ totalPausedMs = 0;
201
316
  return result;
202
317
  }
203
- /** Check if recording is in progress. */
318
+ /** Check if recording is in progress (returns true even when paused). */
204
319
  export function isRecording() {
205
320
  return recording;
206
321
  }
322
+ /** Check if recording is paused. */
323
+ export function isRecordingPaused() {
324
+ return paused;
325
+ }
326
+ /**
327
+ * Pause the active recording. Subsequent action logs are skipped, and the
328
+ * paused window is subtracted from the manifest duration. The video
329
+ * stream from Playwright keeps recording (Playwright's video API has no
330
+ * pause primitive), but the action timeline is gapped honestly.
331
+ */
332
+ export function pauseRecording() {
333
+ if (!recording || paused)
334
+ return null;
335
+ paused = true;
336
+ pausedAt = Date.now();
337
+ return { pausedAt };
338
+ }
339
+ /** Resume a paused recording. */
340
+ export function resumeRecording() {
341
+ if (!recording || !paused || !pausedAt)
342
+ return null;
343
+ const delta = Date.now() - pausedAt;
344
+ totalPausedMs += delta;
345
+ paused = false;
346
+ pausedAt = null;
347
+ return { pausedDurationMs: delta };
348
+ }
207
349
  /** Get recording status info. */
208
350
  export function getRecordingStatus() {
209
351
  return {
@@ -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;AA45BH,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"}