codeloop-mcp-server 0.1.48 → 0.1.50

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 (58) hide show
  1. package/dist/auth/critical_floors.d.ts +8 -4
  2. package/dist/auth/critical_floors.d.ts.map +1 -1
  3. package/dist/auth/critical_floors.js +17 -17
  4. package/dist/auth/critical_floors.js.map +1 -1
  5. package/dist/auth/init_hint_cache.d.ts +35 -0
  6. package/dist/auth/init_hint_cache.d.ts.map +1 -0
  7. package/dist/auth/init_hint_cache.js +143 -0
  8. package/dist/auth/init_hint_cache.js.map +1 -0
  9. package/dist/evidence/screenshot_diff.d.ts +23 -0
  10. package/dist/evidence/screenshot_diff.d.ts.map +1 -1
  11. package/dist/evidence/screenshot_diff.js +46 -13
  12. package/dist/evidence/screenshot_diff.js.map +1 -1
  13. package/dist/index.js +291 -53
  14. package/dist/index.js.map +1 -1
  15. package/dist/runners/csproj_output_path.d.ts +22 -0
  16. package/dist/runners/csproj_output_path.d.ts.map +1 -0
  17. package/dist/runners/csproj_output_path.js +108 -0
  18. package/dist/runners/csproj_output_path.js.map +1 -0
  19. package/dist/runners/png_dims.d.ts +20 -0
  20. package/dist/runners/png_dims.d.ts.map +1 -0
  21. package/dist/runners/png_dims.js +58 -0
  22. package/dist/runners/png_dims.js.map +1 -0
  23. package/dist/runners/resolve_project_dir.d.ts +67 -0
  24. package/dist/runners/resolve_project_dir.d.ts.map +1 -0
  25. package/dist/runners/resolve_project_dir.js +82 -0
  26. package/dist/runners/resolve_project_dir.js.map +1 -0
  27. package/dist/runners/screenshot.d.ts.map +1 -1
  28. package/dist/runners/screenshot.js +17 -2
  29. package/dist/runners/screenshot.js.map +1 -1
  30. package/dist/runners/uia_resolver.d.ts +70 -0
  31. package/dist/runners/uia_resolver.d.ts.map +1 -0
  32. package/dist/runners/uia_resolver.js +210 -0
  33. package/dist/runners/uia_resolver.js.map +1 -0
  34. package/dist/runners/window_manager.d.ts +45 -4
  35. package/dist/runners/window_manager.d.ts.map +1 -1
  36. package/dist/runners/window_manager.js +254 -26
  37. package/dist/runners/window_manager.js.map +1 -1
  38. package/dist/tools/design_compare.d.ts.map +1 -1
  39. package/dist/tools/design_compare.js +85 -33
  40. package/dist/tools/design_compare.js.map +1 -1
  41. package/dist/tools/desktop_app_mode.d.ts +48 -0
  42. package/dist/tools/desktop_app_mode.d.ts.map +1 -0
  43. package/dist/tools/desktop_app_mode.js +86 -0
  44. package/dist/tools/desktop_app_mode.js.map +1 -0
  45. package/dist/tools/diagnose.d.ts.map +1 -1
  46. package/dist/tools/diagnose.js +32 -1
  47. package/dist/tools/diagnose.js.map +1 -1
  48. package/dist/tools/discover_screens.d.ts.map +1 -1
  49. package/dist/tools/discover_screens.js +94 -2
  50. package/dist/tools/discover_screens.js.map +1 -1
  51. package/dist/tools/self_test.d.ts +40 -0
  52. package/dist/tools/self_test.d.ts.map +1 -0
  53. package/dist/tools/self_test.js +205 -0
  54. package/dist/tools/self_test.js.map +1 -0
  55. package/dist/tools/verify.d.ts.map +1 -1
  56. package/dist/tools/verify.js +4 -5
  57. package/dist/tools/verify.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,210 @@
1
+ import { platform } from "os";
2
+ import { runCommand, checkToolAvailable } from "./base.js";
3
+ /**
4
+ * Walks the UIA tree under the named app window and returns the
5
+ * centre of the FIRST element matching (in priority order):
6
+ * 1. AutomationId exact (the most stable identifier)
7
+ * 2. Name property exact
8
+ * 3. Name property substring (helps when the agent passes a
9
+ * readable label like "Luminaire Photometric Data" that is
10
+ * actually the visible text of a wider control whose Name
11
+ * includes additional context)
12
+ * 4. ControlType.ProgrammaticName
13
+ *
14
+ * Returns `{ found: false, reason }` on any failure path so the
15
+ * caller can log a structured error and fall through to other
16
+ * strategies (e.g. raw coord click).
17
+ */
18
+ export async function resolveSelectorToXY(opts) {
19
+ if (platform() !== "win32") {
20
+ return { found: false, reason: "win-only" };
21
+ }
22
+ if (!(await checkToolAvailable("powershell"))) {
23
+ return { found: false, reason: "powershell-not-found" };
24
+ }
25
+ const { appName, automationId, text, role } = opts;
26
+ if (!appName)
27
+ return { found: false, reason: "no-appName" };
28
+ if (!automationId && !text && !role) {
29
+ return { found: false, reason: "no-selector" };
30
+ }
31
+ // Single-quote-escape every string we interpolate. PowerShell
32
+ // single-quoted literals only need '' to escape '.
33
+ const psEscape = (s) => s.replace(/'/g, "''");
34
+ const psApp = psEscape(appName);
35
+ const psAuto = automationId ? psEscape(automationId) : "";
36
+ const psText = text ? psEscape(text) : "";
37
+ const psRole = role ? psEscape(role) : "";
38
+ const script = `
39
+ $ErrorActionPreference = 'Stop'
40
+ Add-Type -AssemblyName UIAutomationClient
41
+ Add-Type -AssemblyName UIAutomationTypes
42
+
43
+ $root = [System.Windows.Automation.AutomationElement]::RootElement
44
+ $appCondition = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::NameProperty, '${psApp}')
45
+ $app = $root.FindFirst([System.Windows.Automation.TreeScope]::Children, $appCondition)
46
+ if (-not $app) {
47
+ Write-Output (ConvertTo-Json @{ found = $false; reason = 'app-not-found' } -Compress)
48
+ exit 1
49
+ }
50
+
51
+ $target = $null
52
+ $foundBy = ''
53
+
54
+ # 1. AutomationId exact
55
+ if ('${psAuto}' -ne '') {
56
+ $cond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::AutomationIdProperty, '${psAuto}')
57
+ $target = $app.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $cond)
58
+ if ($target) { $foundBy = 'AutomationId' }
59
+ }
60
+
61
+ # 2. Name property exact
62
+ if (-not $target -and '${psText}' -ne '') {
63
+ $cond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::NameProperty, '${psText}')
64
+ $target = $app.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $cond)
65
+ if ($target) { $foundBy = 'Name-exact' }
66
+ }
67
+
68
+ # 3. Name property substring — walk the tree and pick the first
69
+ # descendant whose Name *contains* the requested text.
70
+ if (-not $target -and '${psText}' -ne '') {
71
+ $walker = [System.Windows.Automation.TreeWalker]::ControlViewWalker
72
+ $stack = New-Object System.Collections.Generic.Stack[System.Windows.Automation.AutomationElement]
73
+ $stack.Push($app)
74
+ $needle = '${psText}'
75
+ while ($stack.Count -gt 0 -and -not $target) {
76
+ $cur = $stack.Pop()
77
+ try {
78
+ $name = $cur.Current.Name
79
+ if ($name -and $name.IndexOf($needle, [StringComparison]::OrdinalIgnoreCase) -ge 0) {
80
+ $target = $cur
81
+ $foundBy = 'Name-contains'
82
+ break
83
+ }
84
+ } catch {}
85
+ try {
86
+ $child = $walker.GetFirstChild($cur)
87
+ while ($child -ne $null) {
88
+ $stack.Push($child)
89
+ $child = $walker.GetNextSibling($child)
90
+ }
91
+ } catch {}
92
+ }
93
+ }
94
+
95
+ # 4. ControlType.ProgrammaticName
96
+ if (-not $target -and '${psRole}' -ne '') {
97
+ $walker = [System.Windows.Automation.TreeWalker]::ControlViewWalker
98
+ $stack = New-Object System.Collections.Generic.Stack[System.Windows.Automation.AutomationElement]
99
+ $stack.Push($app)
100
+ $roleNeedle = '${psRole}'
101
+ while ($stack.Count -gt 0 -and -not $target) {
102
+ $cur = $stack.Pop()
103
+ try {
104
+ $ct = $cur.Current.ControlType.ProgrammaticName
105
+ if ($ct -and ($ct -eq $roleNeedle -or $ct.EndsWith('.' + $roleNeedle))) {
106
+ $target = $cur
107
+ $foundBy = 'ControlType'
108
+ break
109
+ }
110
+ } catch {}
111
+ try {
112
+ $child = $walker.GetFirstChild($cur)
113
+ while ($child -ne $null) {
114
+ $stack.Push($child)
115
+ $child = $walker.GetNextSibling($child)
116
+ }
117
+ } catch {}
118
+ }
119
+ }
120
+
121
+ if (-not $target) {
122
+ Write-Output (ConvertTo-Json @{ found = $false; reason = 'no-match' } -Compress)
123
+ exit 1
124
+ }
125
+
126
+ # Resolve to a screen-absolute (x, y). UIA's GetClickablePoint() is
127
+ # the most robust path; it accounts for the element's hit-test region
128
+ # (e.g. clicking a button's centre rather than its outer bounds).
129
+ # When unavailable (some controls throw NoClickablePointException),
130
+ # fall back to the BoundingRectangle centre.
131
+ $cx = $null
132
+ $cy = $null
133
+ $rect = $null
134
+ try {
135
+ $rect = $target.Current.BoundingRectangle
136
+ } catch {}
137
+ try {
138
+ $cp = $target.GetClickablePoint()
139
+ $cx = [int]$cp.X
140
+ $cy = [int]$cp.Y
141
+ } catch {
142
+ if ($rect -ne $null -and $rect.Width -gt 0 -and $rect.Height -gt 0) {
143
+ $cx = [int]($rect.X + $rect.Width / 2)
144
+ $cy = [int]($rect.Y + $rect.Height / 2)
145
+ }
146
+ }
147
+
148
+ if ($cx -eq $null -or $cy -eq $null) {
149
+ Write-Output (ConvertTo-Json @{ found = $false; reason = 'no-clickable-point-no-bounds'; foundBy = $foundBy } -Compress)
150
+ exit 1
151
+ }
152
+
153
+ $payload = @{
154
+ found = $true
155
+ x = $cx
156
+ y = $cy
157
+ foundBy = $foundBy
158
+ }
159
+ if ($rect -ne $null) {
160
+ $payload.bounds = @{
161
+ x = [int]$rect.X
162
+ y = [int]$rect.Y
163
+ width = [int]$rect.Width
164
+ height = [int]$rect.Height
165
+ }
166
+ }
167
+ Write-Output (ConvertTo-Json $payload -Compress -Depth 6)
168
+ exit 0
169
+ `;
170
+ const result = await runCommand("powershell", ["-NoProfile", "-Command", script], process.cwd());
171
+ const lastJsonLine = result.stdout
172
+ .split(/\r?\n/)
173
+ .map((l) => l.trim())
174
+ .filter((l) => l.startsWith("{"))
175
+ .pop();
176
+ if (!lastJsonLine) {
177
+ return { found: false, reason: result.stderr || "no-output" };
178
+ }
179
+ try {
180
+ const parsed = JSON.parse(lastJsonLine);
181
+ if (!parsed.found) {
182
+ return { found: false, reason: parsed.reason || "no-match" };
183
+ }
184
+ return {
185
+ found: true,
186
+ x: parsed.x,
187
+ y: parsed.y,
188
+ foundBy: parsed.foundBy,
189
+ bounds: parsed.bounds,
190
+ };
191
+ }
192
+ catch {
193
+ return { found: false, reason: "parse-error" };
194
+ }
195
+ }
196
+ /**
197
+ * Test-only helper exporting the script body so unit tests can pin
198
+ * the priority ordering (AutomationId > Name-exact > Name-contains >
199
+ * ControlType) without needing a live Windows host.
200
+ */
201
+ export function buildResolveScriptForTest(opts) {
202
+ const psEscape = (s) => s.replace(/'/g, "''");
203
+ return [
204
+ `app='${psEscape(opts.appName)}'`,
205
+ `automationId='${opts.automationId ? psEscape(opts.automationId) : ""}'`,
206
+ `text='${opts.text ? psEscape(opts.text) : ""}'`,
207
+ `role='${opts.role ? psEscape(opts.role) : ""}'`,
208
+ ].join(";");
209
+ }
210
+ //# sourceMappingURL=uia_resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uia_resolver.js","sourceRoot":"","sources":["../../src/runners/uia_resolver.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,34 @@
5
5
  * Windows: not needed (uses process handle)
6
6
  */
7
7
  export declare function findWindowId(appName: string): Promise<string | null>;
8
+ /**
9
+ * 0.1.50 H8 — structured "window not found" diagnostic.
10
+ *
11
+ * Photometry-DB E2E logs surfaced "App window not found" with NO
12
+ * context — the agent had no idea whether `evidence.target_app` was
13
+ * set, what process names were running, or what the actual window
14
+ * titles looked like. Without that, the agent retried the same
15
+ * lookup or fell back to silent IDE capture (the very regression
16
+ * desktopAppMode existed to prevent).
17
+ *
18
+ * The detailed variant returns:
19
+ * - `candidates`: the process names + main-window titles we saw
20
+ * - `target_app`: the literal value the caller passed (mirrors
21
+ * `evidence.target_app` from .codeloop/config.json)
22
+ * - `next_step`: a one-line directive the agent can act on
23
+ */
24
+ export interface WindowNotFoundError {
25
+ found: false;
26
+ candidates: string[];
27
+ target_app: string | null;
28
+ next_step: string;
29
+ }
30
+ export interface WindowFound {
31
+ found: true;
32
+ id: string;
33
+ }
34
+ export type WindowLookupResult = WindowFound | WindowNotFoundError;
35
+ export declare function findWindowIdDetailed(appName: string): Promise<WindowLookupResult>;
8
36
  /**
9
37
  * PowerShell snippet that picks ONE Get-Process row matching $appName with a
10
38
  * priority ladder. The previous single `-match '<appName>'` substring/regex
@@ -32,15 +60,28 @@ export declare function buildWindowsProcessLookup(appName: string): string;
32
60
  */
33
61
  export declare function bringAppToFront(appName: string): Promise<string>;
34
62
  /**
35
- * Get the window bounds (position + size) for cropping video capture.
36
- * Returns { x, y, width, height } in screen points.
63
+ * Window bounds in screen pixels, plus optional DPI scale factors so
64
+ * codeloop_interact can translate logical-pixel coords from a captured
65
+ * screenshot to physical-pixel coords for the OS click APIs.
66
+ *
67
+ * dpi_x / dpi_y are physical-pixel-per-logical ratios (1.0 = 96 DPI
68
+ * baseline; 2.0 = 200% / Retina). Omitted when we couldn't read the
69
+ * value cleanly — translateXY treats absence as 1.0 and clicks
70
+ * unscaled, which preserves legacy behaviour.
37
71
  */
38
- export declare function getWindowBounds(appName: string): Promise<{
72
+ export type WindowBounds = {
39
73
  x: number;
40
74
  y: number;
41
75
  width: number;
42
76
  height: number;
43
- } | null>;
77
+ dpi_x?: number;
78
+ dpi_y?: number;
79
+ };
80
+ /**
81
+ * Get the window bounds (position + size) for cropping video capture.
82
+ * Returns { x, y, width, height, dpi_x?, dpi_y? } in screen points.
83
+ */
84
+ export declare function getWindowBounds(appName: string): Promise<WindowBounds | null>;
44
85
  /**
45
86
  * Click at screen coordinates using CGEvent (macOS), user32.dll (Windows),
46
87
  * or xdotool (Linux). These are low-level HID events that Flutter and all
@@ -1 +1 @@
1
- {"version":3,"file":"window_manager.d.ts","sourceRoot":"","sources":["../../src/runners/window_manager.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM1E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAajE;AAiED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKtE;AAkGD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAM9H;AAkGD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA+C5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6CvF;AAID,wBAAsB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI5D;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GACvE,OAAO,CAAC,OAAO,CAAC,CAQlB;AAID,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrE;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkKjF;AAyDD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE;AAID,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB7D;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAyD9I;AAED,wBAAsB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqDlF;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4CjF;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiC5E;AAUD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiEhE;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAyDzH;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CA6C3G;AAID,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM/D;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvE;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQpH;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE;AAID,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/D;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3G;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAI5E;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpG;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhF;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpE;AAID,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;AAoCtF;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc1F;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgC1E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa1E;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM9E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B3E"}
1
+ {"version":3,"file":"window_manager.d.ts","sourceRoot":"","sources":["../../src/runners/window_manager.ts"],"names":[],"mappings":"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"}