codeloop-mcp-server 0.1.88 → 0.1.95

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 (104) hide show
  1. package/README.md +30 -0
  2. package/dist/evidence/change_coverage.d.ts +41 -0
  3. package/dist/evidence/change_coverage.d.ts.map +1 -1
  4. package/dist/evidence/change_coverage.js +69 -2
  5. package/dist/evidence/change_coverage.js.map +1 -1
  6. package/dist/evidence/interaction_coverage.d.ts.map +1 -1
  7. package/dist/evidence/interaction_coverage.js +2 -0
  8. package/dist/evidence/interaction_coverage.js.map +1 -1
  9. package/dist/evidence/interaction_evidence.d.ts +38 -0
  10. package/dist/evidence/interaction_evidence.d.ts.map +1 -1
  11. package/dist/evidence/interaction_evidence.js +60 -0
  12. package/dist/evidence/interaction_evidence.js.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +311 -57
  16. package/dist/index.js.map +1 -1
  17. package/dist/runners/active_target.d.ts +31 -0
  18. package/dist/runners/active_target.d.ts.map +1 -0
  19. package/dist/runners/active_target.js +65 -0
  20. package/dist/runners/active_target.js.map +1 -0
  21. package/dist/runners/android_sdk.d.ts +50 -0
  22. package/dist/runners/android_sdk.d.ts.map +1 -0
  23. package/dist/runners/android_sdk.js +123 -0
  24. package/dist/runners/android_sdk.js.map +1 -0
  25. package/dist/runners/app_launcher.d.ts +59 -1
  26. package/dist/runners/app_launcher.d.ts.map +1 -1
  27. package/dist/runners/app_launcher.js +184 -33
  28. package/dist/runners/app_launcher.js.map +1 -1
  29. package/dist/runners/app_logger.d.ts +1 -1
  30. package/dist/runners/app_logger.d.ts.map +1 -1
  31. package/dist/runners/app_logger.js +9 -8
  32. package/dist/runners/app_logger.js.map +1 -1
  33. package/dist/runners/device_probe.d.ts +18 -0
  34. package/dist/runners/device_probe.d.ts.map +1 -1
  35. package/dist/runners/device_probe.js +52 -22
  36. package/dist/runners/device_probe.js.map +1 -1
  37. package/dist/runners/interaction_engine.d.ts +6 -0
  38. package/dist/runners/interaction_engine.d.ts.map +1 -1
  39. package/dist/runners/interaction_engine.js +71 -21
  40. package/dist/runners/interaction_engine.js.map +1 -1
  41. package/dist/runners/ios_sim_input.d.ts +106 -0
  42. package/dist/runners/ios_sim_input.d.ts.map +1 -0
  43. package/dist/runners/ios_sim_input.js +453 -0
  44. package/dist/runners/ios_sim_input.js.map +1 -0
  45. package/dist/runners/journey_to_maestro.d.ts +27 -0
  46. package/dist/runners/journey_to_maestro.d.ts.map +1 -1
  47. package/dist/runners/journey_to_maestro.js +54 -0
  48. package/dist/runners/journey_to_maestro.js.map +1 -1
  49. package/dist/runners/logging_readiness.d.ts.map +1 -1
  50. package/dist/runners/logging_readiness.js +38 -7
  51. package/dist/runners/logging_readiness.js.map +1 -1
  52. package/dist/runners/maestro.d.ts +27 -2
  53. package/dist/runners/maestro.d.ts.map +1 -1
  54. package/dist/runners/maestro.js +57 -7
  55. package/dist/runners/maestro.js.map +1 -1
  56. package/dist/runners/maestro_generator.d.ts +1 -1
  57. package/dist/runners/maestro_generator.d.ts.map +1 -1
  58. package/dist/runners/maestro_generator.js +3 -2
  59. package/dist/runners/maestro_generator.js.map +1 -1
  60. package/dist/runners/screenshot.d.ts +6 -0
  61. package/dist/runners/screenshot.d.ts.map +1 -1
  62. package/dist/runners/screenshot.js +20 -10
  63. package/dist/runners/screenshot.js.map +1 -1
  64. package/dist/runners/semantics_audit.d.ts +32 -0
  65. package/dist/runners/semantics_audit.d.ts.map +1 -0
  66. package/dist/runners/semantics_audit.js +140 -0
  67. package/dist/runners/semantics_audit.js.map +1 -0
  68. package/dist/runners/video_recorder.d.ts +3 -1
  69. package/dist/runners/video_recorder.d.ts.map +1 -1
  70. package/dist/runners/video_recorder.js +44 -12
  71. package/dist/runners/video_recorder.js.map +1 -1
  72. package/dist/runners/wayland.d.ts +32 -0
  73. package/dist/runners/wayland.d.ts.map +1 -0
  74. package/dist/runners/wayland.js +49 -0
  75. package/dist/runners/wayland.js.map +1 -0
  76. package/dist/runners/window_manager.d.ts +55 -25
  77. package/dist/runners/window_manager.d.ts.map +1 -1
  78. package/dist/runners/window_manager.js +171 -71
  79. package/dist/runners/window_manager.js.map +1 -1
  80. package/dist/tools/discover_interactions.d.ts +22 -0
  81. package/dist/tools/discover_interactions.d.ts.map +1 -1
  82. package/dist/tools/discover_interactions.js +283 -6
  83. package/dist/tools/discover_interactions.js.map +1 -1
  84. package/dist/tools/discover_screens.d.ts +2 -0
  85. package/dist/tools/discover_screens.d.ts.map +1 -1
  86. package/dist/tools/discover_screens.js +139 -1
  87. package/dist/tools/discover_screens.js.map +1 -1
  88. package/dist/tools/gate_check.d.ts.map +1 -1
  89. package/dist/tools/gate_check.js +16 -2
  90. package/dist/tools/gate_check.js.map +1 -1
  91. package/dist/tools/plan_change_journey.d.ts.map +1 -1
  92. package/dist/tools/plan_change_journey.js +15 -2
  93. package/dist/tools/plan_change_journey.js.map +1 -1
  94. package/dist/tools/plan_user_journey.d.ts.map +1 -1
  95. package/dist/tools/plan_user_journey.js +5 -2
  96. package/dist/tools/plan_user_journey.js.map +1 -1
  97. package/dist/tools/run_journey.d.ts +70 -0
  98. package/dist/tools/run_journey.d.ts.map +1 -1
  99. package/dist/tools/run_journey.js +209 -21
  100. package/dist/tools/run_journey.js.map +1 -1
  101. package/dist/tools/verify.d.ts.map +1 -1
  102. package/dist/tools/verify.js +55 -11
  103. package/dist/tools/verify.js.map +1 -1
  104. package/package.json +2 -2
@@ -0,0 +1,140 @@
1
+ import { existsSync, readFileSync, readdirSync, statSync } from "fs";
2
+ import { join, relative } from "path";
3
+ const SKIP_DIRS = new Set([
4
+ "node_modules", ".git", "build", ".dart_tool", ".codeloop", "artifacts",
5
+ "ios", "android", "macos", "windows", "linux", "web", "test", ".idea",
6
+ ]);
7
+ const MAX_FILES = 400;
8
+ const WINDOW_CAP = 700;
9
+ const LOOKBACK = 200;
10
+ /**
11
+ * The widget's OWN argument span: from its opening paren to the balanced
12
+ * closing paren (capped). A fixed-width window would leak the NEXT widget's
13
+ * Text(...) into this widget's label check and silence real findings.
14
+ */
15
+ function argSpan(content, openParenIdx) {
16
+ let depth = 0;
17
+ const end = Math.min(content.length, openParenIdx + WINDOW_CAP);
18
+ for (let i = openParenIdx; i < end; i++) {
19
+ const c = content[i];
20
+ if (c === "(")
21
+ depth++;
22
+ else if (c === ")") {
23
+ depth--;
24
+ if (depth === 0)
25
+ return content.substring(openParenIdx, i + 1);
26
+ }
27
+ }
28
+ return content.substring(openParenIdx, end);
29
+ }
30
+ function collectDartFiles(dir, depth, out) {
31
+ if (out.length >= MAX_FILES || depth > 8)
32
+ return;
33
+ let entries;
34
+ try {
35
+ entries = readdirSync(dir);
36
+ }
37
+ catch {
38
+ return;
39
+ }
40
+ for (const e of entries) {
41
+ if (out.length >= MAX_FILES)
42
+ return;
43
+ if (SKIP_DIRS.has(e) || e.startsWith("."))
44
+ continue;
45
+ const full = join(dir, e);
46
+ let st;
47
+ try {
48
+ st = statSync(full);
49
+ }
50
+ catch {
51
+ continue;
52
+ }
53
+ if (st.isDirectory())
54
+ collectDartFiles(full, depth + 1, out);
55
+ else if (st.isFile() && e.endsWith(".dart") && !e.endsWith("_test.dart"))
56
+ out.push(full);
57
+ }
58
+ }
59
+ function lineOf(content, index) {
60
+ return content.slice(0, index).split("\n").length;
61
+ }
62
+ /** Any label source inside the widget's argument window? */
63
+ function hasLabelInWindow(window) {
64
+ return (/\bText\s*\(/.test(window) ||
65
+ /\btooltip\s*:/.test(window) ||
66
+ /\bsemanticLabel\s*:/.test(window) ||
67
+ /\bsemanticsLabel\s*:/.test(window) ||
68
+ /\blabel\s*:/.test(window) ||
69
+ /\bSemantics\s*\(/.test(window));
70
+ }
71
+ /** Wrapped in Semantics(/Tooltip(/MergeSemantics( just above the widget? */
72
+ function hasLabelWrapper(lookback) {
73
+ return /\b(Semantics|Tooltip|MergeSemantics)\s*\(\s*$|\b(Semantics|Tooltip|MergeSemantics)\s*\([^)]*$/.test(lookback);
74
+ }
75
+ function auditFile(file, cwd, findings) {
76
+ let content;
77
+ try {
78
+ content = readFileSync(file, "utf-8");
79
+ }
80
+ catch {
81
+ return;
82
+ }
83
+ const rel = relative(cwd, file);
84
+ const flag = (idx, widget, reason) => {
85
+ findings.push({ source_file: rel, line: lineOf(content, idx), widget, reason });
86
+ };
87
+ // Balanced span of the widget's own arguments (the regexes end on `\(`).
88
+ const spanFor = (m) => argSpan(content, (m.index ?? 0) + m[0].length - 1);
89
+ const lookbackAt = (idx) => content.substring(Math.max(0, idx - LOOKBACK), idx);
90
+ // Icon-only controls: IconButton / FloatingActionButton (the .extended
91
+ // constructor has a label: slot, which hasLabelInWindow already accepts).
92
+ for (const m of content.matchAll(/\b(IconButton|FloatingActionButton)\s*(?:\.\w+\s*)?\(/g)) {
93
+ const idx = m.index ?? 0;
94
+ if (hasLabelInWindow(spanFor(m)) || hasLabelWrapper(lookbackAt(idx)))
95
+ continue;
96
+ flag(idx, m[1], "icon-only control without tooltip:/semanticLabel:/Semantics wrapper");
97
+ }
98
+ // Button family: child is usually Text(...), but icon-only children slip
99
+ // through (e.g. TextButton(child: Icon(...))).
100
+ for (const m of content.matchAll(/\b(ElevatedButton|TextButton|OutlinedButton|FilledButton|CupertinoButton)\s*(?:\.\w+\s*)?\(/g)) {
101
+ const idx = m.index ?? 0;
102
+ if (hasLabelInWindow(spanFor(m)) || hasLabelWrapper(lookbackAt(idx)))
103
+ continue;
104
+ flag(idx, m[1], "button without child Text/label:/tooltip — not matchable by visible text");
105
+ }
106
+ // Bare tap regions: only flagged when they actually handle taps AND render
107
+ // no text in their own argument span.
108
+ for (const m of content.matchAll(/\b(GestureDetector|InkWell)\s*\(/g)) {
109
+ const idx = m.index ?? 0;
110
+ const span = spanFor(m);
111
+ if (!/\bonTap\s*:/.test(span))
112
+ continue;
113
+ if (hasLabelInWindow(span) || hasLabelWrapper(lookbackAt(idx)))
114
+ continue;
115
+ flag(idx, m[1], "tappable region with onTap: but no Text/Semantics in its subtree window");
116
+ }
117
+ }
118
+ /**
119
+ * Audit a Flutter project's lib/ for unlabeled interactive widgets.
120
+ * Non-Flutter projects (no pubspec.yaml) return applicable:false.
121
+ */
122
+ export function auditFlutterSemantics(cwd) {
123
+ if (!existsSync(join(cwd, "pubspec.yaml"))) {
124
+ return { applicable: false, scanned_files: 0, findings: [], summary: "Not a Flutter project (no pubspec.yaml)." };
125
+ }
126
+ const files = [];
127
+ const libDir = join(cwd, "lib");
128
+ if (existsSync(libDir))
129
+ collectDartFiles(libDir, 0, files);
130
+ else
131
+ collectDartFiles(cwd, 0, files);
132
+ const findings = [];
133
+ for (const f of files)
134
+ auditFile(f, cwd, findings);
135
+ const summary = findings.length === 0
136
+ ? `Semantics audit clean: all interactive widgets in ${files.length} Dart file(s) carry a text/tooltip/Semantics label.`
137
+ : `${findings.length} interactive widget(s) across ${files.length} Dart file(s) have NO visible text, tooltip, or Semantics label — they are invisible to label-based driving (Maestro) and to screen readers.`;
138
+ return { applicable: true, scanned_files: files.length, findings, summary };
139
+ }
140
+ //# sourceMappingURL=semantics_audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics_audit.js","sourceRoot":"","sources":["../../src/runners/semantics_audit.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export declare function recordVideo(outputDir: string, durationSeconds?: number,
33
33
  * - "ios_simulator": xcrun simctl io booted recordVideo
34
34
  * - "browser": ffmpeg or Playwright recordVideo
35
35
  */
36
- export declare function startBackgroundRecording(outputDir: string, appName: string, maxDurationSeconds?: number, targetType?: TargetType): Promise<BackgroundRecordingHandle | {
36
+ export declare function startBackgroundRecording(outputDir: string, appName: string, maxDurationSeconds?: number, targetType?: TargetType, device?: string): Promise<BackgroundRecordingHandle | {
37
37
  error: string;
38
38
  }>;
39
39
  /**
@@ -55,6 +55,8 @@ export declare function getActiveRecordingAppName(): string | null;
55
55
  * Get the target type from any currently active recording.
56
56
  */
57
57
  export declare function getActiveRecordingTargetType(): string | null;
58
+ /** Pinned device (adb serial / sim UDID) of any active recording. */
59
+ export declare function getActiveRecordingDevice(): string | null;
58
60
  export declare function getActiveRecordingIds(): string[];
59
61
  export declare function getActiveRecordingLogPath(recordingId: string): string | null;
60
62
  //# sourceMappingURL=video_recorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video_recorder.d.ts","sourceRoot":"","sources":["../../src/runners/video_recorder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2GtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAaD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,MAAW,EAC5B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCpD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,MAAY,EAChC,UAAU,GAAE,UAAsB,GACjC,OAAO,CAAC,yBAAyB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA+MxD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqFpD;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAKzD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAK5D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E"}
1
+ {"version":3,"file":"video_recorder.d.ts","sourceRoot":"","sources":["../../src/runners/video_recorder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA4GtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAeD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,MAAW,EAC5B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCpD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,MAAY,EAChC,UAAU,GAAE,UAAsB,EAClC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgOxD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsFpD;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAKzD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAK5D;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAKxD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E"}
@@ -5,6 +5,7 @@ import { spawn, execFile } from "child_process";
5
5
  import { runCommand, checkToolAvailable } from "./base.js";
6
6
  import { findWindowId, bringAppToFront, restorePreviousApp, getWindowBounds, checkDependency } from "./window_manager.js";
7
7
  import { startLogCapture, stopLogCapture } from "./app_logger.js";
8
+ import { waylandDirective, x11Display } from "./wayland.js";
8
9
  /**
9
10
  * Parse all macOS avfoundation screen capture device indices.
10
11
  * Returns a map of screen index → ffmpeg device index, e.g. { 0: "4", 1: "5" }.
@@ -145,7 +146,7 @@ export async function recordVideo(outputDir, durationSeconds = 10, appName) {
145
146
  * - "ios_simulator": xcrun simctl io booted recordVideo
146
147
  * - "browser": ffmpeg or Playwright recordVideo
147
148
  */
148
- export async function startBackgroundRecording(outputDir, appName, maxDurationSeconds = 120, targetType = "desktop") {
149
+ export async function startBackgroundRecording(outputDir, appName, maxDurationSeconds = 120, targetType = "desktop", device) {
149
150
  mkdirSync(outputDir, { recursive: true });
150
151
  const os = platform();
151
152
  const recordingId = `rec_${Date.now()}`;
@@ -158,7 +159,9 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
158
159
  if (depErr)
159
160
  return { error: depErr };
160
161
  const devicePath = "/sdcard/codeloop_rec.mp4";
162
+ const sel = device ? ["-s", device] : [];
161
163
  child = spawn("adb", [
164
+ ...sel,
162
165
  "shell", "screenrecord", "--time-limit", String(Math.min(maxDurationSeconds, 180)),
163
166
  devicePath,
164
167
  ], { cwd: process.cwd(), stdio: "pipe", detached: false });
@@ -169,9 +172,10 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
169
172
  previousApp: "",
170
173
  startedAt: Date.now(),
171
174
  targetType,
175
+ device,
172
176
  });
173
177
  child.on("exit", () => { });
174
- const logResult = await startLogCapture(logsDir, appName, targetType);
178
+ const logResult = await startLogCapture(logsDir, appName, targetType, undefined, device);
175
179
  const hasLog = !("error" in logResult);
176
180
  if (hasLog) {
177
181
  const rec = activeRecordings.get(recordingId);
@@ -199,7 +203,7 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
199
203
  if (depErr)
200
204
  return { error: depErr };
201
205
  child = spawn("xcrun", [
202
- "simctl", "io", "booted", "recordVideo", "--codec=h264", outputPath,
206
+ "simctl", "io", device || "booted", "recordVideo", "--codec=h264", outputPath,
203
207
  ], { cwd: process.cwd(), stdio: "pipe", detached: false });
204
208
  activeRecordings.set(recordingId, {
205
209
  process: child,
@@ -208,9 +212,10 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
208
212
  previousApp: "",
209
213
  startedAt: Date.now(),
210
214
  targetType,
215
+ device,
211
216
  });
212
217
  child.on("exit", () => { });
213
- const logResult = await startLogCapture(logsDir, appName, targetType);
218
+ const logResult = await startLogCapture(logsDir, appName, targetType, undefined, device);
214
219
  const hasLog = !("error" in logResult);
215
220
  if (hasLog) {
216
221
  const rec = activeRecordings.get(recordingId);
@@ -246,7 +251,12 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
246
251
  "-i", `${screenMatch.deviceIndex}:none`,
247
252
  ];
248
253
  if (bounds && bounds.width > 0 && bounds.height > 0) {
249
- const scale = 2;
254
+ // avfoundation captures PHYSICAL pixels while CGWindowList bounds
255
+ // are logical pts. Use the display's real backingScaleFactor
256
+ // (emitted by getWindowBoundsMacOS) instead of assuming Retina-2x —
257
+ // external 1x monitors and future 3x panels crop wrong otherwise.
258
+ const backing = bounds._backing_scale;
259
+ const scale = backing && backing > 0 ? backing : 2;
250
260
  const cropW = bounds.width * scale;
251
261
  const cropH = bounds.height * scale;
252
262
  // Crop coordinates must be relative to the captured screen's origin,
@@ -297,15 +307,23 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
297
307
  }
298
308
  }
299
309
  else {
310
+ // Wayland-only sessions can't be captured by x11grab — degrade with the
311
+ // structured remediation directive instead of a cryptic ffmpeg error.
312
+ const wayland = waylandDirective();
313
+ if (wayland) {
314
+ await restorePreviousApp(previousApp);
315
+ return { error: wayland };
316
+ }
300
317
  // x11grab has the same BGRA pixel-format issue as gdigrab — encode to
301
318
  // h264/yuv420p so downstream tools (interaction_replay, players) can
302
- // decode the MP4 portably.
319
+ // decode the MP4 portably. Honour $DISPLAY for Xvfb / nested-X setups.
320
+ const display = x11Display();
303
321
  const bounds = await getWindowBounds(appName);
304
322
  if (bounds && bounds.width > 0 && bounds.height > 0) {
305
323
  child = spawn("ffmpeg", [
306
324
  "-f", "x11grab", "-framerate", "10",
307
325
  "-video_size", `${bounds.width}x${bounds.height}`,
308
- "-i", `:0.0+${bounds.x},${bounds.y}`,
326
+ "-i", `${display}+${bounds.x},${bounds.y}`,
309
327
  "-c:v", "libx264", "-preset", "ultrafast", "-pix_fmt", "yuv420p",
310
328
  "-t", String(maxDurationSeconds), "-y", outputPath,
311
329
  ], { cwd: process.cwd(), stdio: "pipe", detached: false });
@@ -313,7 +331,7 @@ export async function startBackgroundRecording(outputDir, appName, maxDurationSe
313
331
  else {
314
332
  child = spawn("ffmpeg", [
315
333
  "-f", "x11grab", "-framerate", "10", "-video_size", "1920x1080",
316
- "-i", ":0.0",
334
+ "-i", display,
317
335
  "-c:v", "libx264", "-preset", "ultrafast", "-pix_fmt", "yuv420p",
318
336
  "-t", String(maxDurationSeconds), "-y", outputPath,
319
337
  ], { cwd: process.cwd(), stdio: "pipe", detached: false });
@@ -390,8 +408,9 @@ export async function stopBackgroundRecording(recordingId) {
390
408
  if (rec.targetType === "android_emulator") {
391
409
  await new Promise(r => setTimeout(r, 1000));
392
410
  const devicePath = "/sdcard/codeloop_rec.mp4";
393
- await runCommand("adb", ["pull", devicePath, rec.outputPath], process.cwd());
394
- await runCommand("adb", ["shell", "rm", devicePath], process.cwd());
411
+ const sel = rec.device ? ["-s", rec.device] : [];
412
+ await runCommand("adb", [...sel, "pull", devicePath, rec.outputPath], process.cwd());
413
+ await runCommand("adb", [...sel, "shell", "rm", devicePath], process.cwd());
395
414
  }
396
415
  // Stop log capture if active
397
416
  if (rec.logId) {
@@ -457,6 +476,14 @@ export function getActiveRecordingTargetType() {
457
476
  }
458
477
  return null;
459
478
  }
479
+ /** Pinned device (adb serial / sim UDID) of any active recording. */
480
+ export function getActiveRecordingDevice() {
481
+ for (const rec of activeRecordings.values()) {
482
+ if (rec.device)
483
+ return rec.device;
484
+ }
485
+ return null;
486
+ }
460
487
  export function getActiveRecordingIds() {
461
488
  return Array.from(activeRecordings.keys());
462
489
  }
@@ -526,14 +553,19 @@ async function recordLinux(outputDir, durationSeconds, appName) {
526
553
  const depErr = await checkDependency("ffmpeg", "video recording");
527
554
  return { recorded: false, path: "", duration_seconds: durationSeconds, method: "ffmpeg", error: depErr || "ffmpeg not found" };
528
555
  }
556
+ const wayland = waylandDirective();
557
+ if (wayland) {
558
+ return { recorded: false, path: "", duration_seconds: durationSeconds, method: "wayland", error: wayland };
559
+ }
529
560
  const outputPath = join(outputDir, `recording_${Date.now()}.mp4`);
561
+ const display = x11Display();
530
562
  const bounds = appName ? await getWindowBounds(appName) : null;
531
563
  const ffmpegArgs = ["-f", "x11grab", "-framerate", "10"];
532
564
  if (bounds && bounds.width > 0 && bounds.height > 0) {
533
- ffmpegArgs.push("-video_size", `${bounds.width}x${bounds.height}`, "-i", `:0.0+${bounds.x},${bounds.y}`);
565
+ ffmpegArgs.push("-video_size", `${bounds.width}x${bounds.height}`, "-i", `${display}+${bounds.x},${bounds.y}`);
534
566
  }
535
567
  else {
536
- ffmpegArgs.push("-video_size", "1920x1080", "-i", ":0.0");
568
+ ffmpegArgs.push("-video_size", "1920x1080", "-i", display);
537
569
  }
538
570
  ffmpegArgs.push("-c:v", "libx264", "-preset", "ultrafast", "-pix_fmt", "yuv420p", "-t", String(durationSeconds), "-y", outputPath);
539
571
  const result = await runCommand("ffmpeg", ffmpegArgs, process.cwd());
@@ -1 +1 @@
1
- {"version":3,"file":"video_recorder.js","sourceRoot":"","sources":["../../src/runners/video_recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video_recorder.js","sourceRoot":"","sources":["../../src/runners/video_recorder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Wayland session detection (P2.2).
3
+ *
4
+ * CodeLoop's Linux desktop capture/input backends are X11-based today:
5
+ * ffmpeg x11grab (video), ImageMagick `import` / scrot (screenshots) and
6
+ * xdotool (clicks/keys). On a Wayland-ONLY session those tools either
7
+ * fail with cryptic errors ("Cannot open display") or silently capture
8
+ * nothing. When XWayland is available ($DISPLAY is set) the X11 tools
9
+ * keep working against the XWayland bridge, so we only degrade when the
10
+ * session is Wayland *without* an X display.
11
+ *
12
+ * Every capture/input entry point calls `waylandDirective()` first and
13
+ * returns the structured remediation text instead of the raw tool error.
14
+ */
15
+ /** Human-readable remediation directive for Wayland-only sessions. */
16
+ export declare const WAYLAND_REMEDIATION: string;
17
+ /**
18
+ * Returns the remediation directive when the current session is
19
+ * Wayland-only, or null when capture/input can proceed.
20
+ *
21
+ * Detection: linux + (XDG_SESSION_TYPE=wayland OR WAYLAND_DISPLAY set)
22
+ * + no DISPLAY. A set DISPLAY means XWayland (or plain X11) is
23
+ * available, so the X11 toolchain still works.
24
+ */
25
+ export declare function waylandDirective(env?: NodeJS.ProcessEnv, os?: string): string | null;
26
+ /**
27
+ * The X11 display string ffmpeg x11grab / xdotool should target.
28
+ * Honours $DISPLAY (multi-display / Xvfb / nested X setups) and falls
29
+ * back to the historical ":0.0" default when unset.
30
+ */
31
+ export declare function x11Display(env?: NodeJS.ProcessEnv): string;
32
+ //# sourceMappingURL=wayland.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wayland.d.ts","sourceRoot":"","sources":["../../src/runners/wayland.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,QAM4F,CAAC;AAE7H;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,EAAE,GAAE,MAAmB,GACtB,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGvE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Wayland session detection (P2.2).
3
+ *
4
+ * CodeLoop's Linux desktop capture/input backends are X11-based today:
5
+ * ffmpeg x11grab (video), ImageMagick `import` / scrot (screenshots) and
6
+ * xdotool (clicks/keys). On a Wayland-ONLY session those tools either
7
+ * fail with cryptic errors ("Cannot open display") or silently capture
8
+ * nothing. When XWayland is available ($DISPLAY is set) the X11 tools
9
+ * keep working against the XWayland bridge, so we only degrade when the
10
+ * session is Wayland *without* an X display.
11
+ *
12
+ * Every capture/input entry point calls `waylandDirective()` first and
13
+ * returns the structured remediation text instead of the raw tool error.
14
+ */
15
+ import { platform } from "os";
16
+ /** Human-readable remediation directive for Wayland-only sessions. */
17
+ export const WAYLAND_REMEDIATION = "This Linux session is Wayland-only (no X11 $DISPLAY), which CodeLoop's screen capture and input tools (ffmpeg x11grab, import/scrot, xdotool) cannot drive yet. " +
18
+ "Fix options, in order of preference: " +
19
+ "(1) log out and pick the X11/Xorg session variant on the login screen (e.g. \"Ubuntu on Xorg\"); " +
20
+ "(2) enable XWayland so $DISPLAY exists (most distros ship it — check that `echo $DISPLAY` prints something inside your terminal); " +
21
+ "(3) for headless CI, run the app under Xvfb: `xvfb-run -a <command>` and set DISPLAY accordingly. " +
22
+ "Native Wayland backends (grim/wf-recorder for capture, ydotool for input) are on the CodeLoop roadmap but not wired yet.";
23
+ /**
24
+ * Returns the remediation directive when the current session is
25
+ * Wayland-only, or null when capture/input can proceed.
26
+ *
27
+ * Detection: linux + (XDG_SESSION_TYPE=wayland OR WAYLAND_DISPLAY set)
28
+ * + no DISPLAY. A set DISPLAY means XWayland (or plain X11) is
29
+ * available, so the X11 toolchain still works.
30
+ */
31
+ export function waylandDirective(env = process.env, os = platform()) {
32
+ if (os !== "linux")
33
+ return null;
34
+ if (env.DISPLAY && env.DISPLAY.trim() !== "")
35
+ return null;
36
+ const sessionType = (env.XDG_SESSION_TYPE || "").toLowerCase();
37
+ const isWayland = sessionType === "wayland" || Boolean(env.WAYLAND_DISPLAY);
38
+ return isWayland ? WAYLAND_REMEDIATION : null;
39
+ }
40
+ /**
41
+ * The X11 display string ffmpeg x11grab / xdotool should target.
42
+ * Honours $DISPLAY (multi-display / Xvfb / nested X setups) and falls
43
+ * back to the historical ":0.0" default when unset.
44
+ */
45
+ export function x11Display(env = process.env) {
46
+ const d = (env.DISPLAY || "").trim();
47
+ return d !== "" ? d : ":0.0";
48
+ }
49
+ //# sourceMappingURL=wayland.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wayland.js","sourceRoot":"","sources":["../../src/runners/wayland.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kKAAkK;IAClK,uCAAuC;IACvC,mGAAmG;IACnG,oIAAoI;IACpI,oGAAoG;IACpG,0HAA0H,CAAC;AAE7H;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,OAAO,CAAC,GAAG,EACpC,KAAa,QAAQ,EAAE;IAEvB,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/B,CAAC"}