codeloop-mcp-server 0.1.4 → 0.1.6
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.
- package/dist/auth/usage_tracker.d.ts +1 -1
- package/dist/auth/usage_tracker.d.ts.map +1 -1
- package/dist/auth/usage_tracker.js.map +1 -1
- package/dist/index.js +978 -40
- package/dist/index.js.map +1 -1
- package/dist/project-discovery.d.ts +17 -0
- package/dist/project-discovery.d.ts.map +1 -0
- package/dist/project-discovery.js +109 -0
- package/dist/project-discovery.js.map +1 -0
- package/dist/runners/app_logger.d.ts +41 -0
- package/dist/runners/app_logger.d.ts.map +1 -0
- package/dist/runners/app_logger.js +276 -0
- package/dist/runners/app_logger.js.map +1 -0
- package/dist/runners/base.d.ts.map +1 -1
- package/dist/runners/base.js +4 -2
- package/dist/runners/base.js.map +1 -1
- package/dist/runners/browser_interaction.d.ts +27 -0
- package/dist/runners/browser_interaction.d.ts.map +1 -0
- package/dist/runners/browser_interaction.js +294 -0
- package/dist/runners/browser_interaction.js.map +1 -0
- package/dist/runners/flutter.d.ts +1 -0
- package/dist/runners/flutter.d.ts.map +1 -1
- package/dist/runners/flutter.js +29 -0
- package/dist/runners/flutter.js.map +1 -1
- package/dist/runners/maestro_generator.d.ts +11 -0
- package/dist/runners/maestro_generator.d.ts.map +1 -0
- package/dist/runners/maestro_generator.js +79 -0
- package/dist/runners/maestro_generator.js.map +1 -0
- package/dist/runners/platform_detect.d.ts +14 -0
- package/dist/runners/platform_detect.d.ts.map +1 -0
- package/dist/runners/platform_detect.js +102 -0
- package/dist/runners/platform_detect.js.map +1 -0
- package/dist/runners/screenshot.d.ts +3 -7
- package/dist/runners/screenshot.d.ts.map +1 -1
- package/dist/runners/screenshot.js +155 -28
- package/dist/runners/screenshot.js.map +1 -1
- package/dist/runners/video_recorder.d.ts +49 -0
- package/dist/runners/video_recorder.d.ts.map +1 -0
- package/dist/runners/video_recorder.js +489 -0
- package/dist/runners/video_recorder.js.map +1 -0
- package/dist/runners/video_validator.d.ts +16 -0
- package/dist/runners/video_validator.d.ts.map +1 -0
- package/dist/runners/video_validator.js +123 -0
- package/dist/runners/video_validator.js.map +1 -0
- package/dist/runners/win_accessibility.d.ts +12 -0
- package/dist/runners/win_accessibility.d.ts.map +1 -0
- package/dist/runners/win_accessibility.js +101 -0
- package/dist/runners/win_accessibility.js.map +1 -0
- package/dist/runners/window_manager.d.ts +81 -0
- package/dist/runners/window_manager.d.ts.map +1 -0
- package/dist/runners/window_manager.js +1010 -0
- package/dist/runners/window_manager.js.map +1 -0
- package/dist/tools/design_compare.d.ts +1 -1
- package/dist/tools/design_compare.d.ts.map +1 -1
- package/dist/tools/design_compare.js +1 -2
- package/dist/tools/design_compare.js.map +1 -1
- package/dist/tools/discover_screens.d.ts +3 -3
- package/dist/tools/discover_screens.d.ts.map +1 -1
- package/dist/tools/discover_screens.js +140 -157
- package/dist/tools/discover_screens.js.map +1 -1
- package/dist/tools/gate_check.d.ts.map +1 -1
- package/dist/tools/gate_check.js +100 -5
- package/dist/tools/gate_check.js.map +1 -1
- package/dist/tools/init-project.d.ts +15 -0
- package/dist/tools/init-project.d.ts.map +1 -0
- package/dist/tools/init-project.js +273 -0
- package/dist/tools/init-project.js.map +1 -0
- package/dist/tools/interaction_replay.d.ts +8 -1
- package/dist/tools/interaction_replay.d.ts.map +1 -1
- package/dist/tools/interaction_replay.js +78 -2
- package/dist/tools/interaction_replay.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +204 -53
- package/dist/tools/verify.js.map +1 -1
- package/dist/tools/visual_review.d.ts +1 -1
- package/dist/tools/visual_review.d.ts.map +1 -1
- package/dist/tools/visual_review.js +1 -2
- package/dist/tools/visual_review.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video_validator.js","sourceRoot":"","sources":["../../src/runners/video_validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UIElement {
|
|
2
|
+
automationId: string;
|
|
3
|
+
name: string;
|
|
4
|
+
controlType: string;
|
|
5
|
+
className: string;
|
|
6
|
+
children?: UIElement[];
|
|
7
|
+
}
|
|
8
|
+
export declare function inspectUITree(appName: string): Promise<UIElement[] | {
|
|
9
|
+
error: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function automateElement(appName: string, automationId: string, action: "invoke" | "setValue" | "toggle" | "select" | "scroll", text?: string): Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=win_accessibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win_accessibility.d.ts","sourceRoot":"","sources":["../../src/runners/win_accessibility.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD7F;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAC9D,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CA4ClB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { platform } from "os";
|
|
2
|
+
import { runCommand, checkToolAvailable } from "./base.js";
|
|
3
|
+
export async function inspectUITree(appName) {
|
|
4
|
+
if (platform() !== "win32") {
|
|
5
|
+
return { error: "UI Automation is only available on Windows" };
|
|
6
|
+
}
|
|
7
|
+
if (!(await checkToolAvailable("powershell"))) {
|
|
8
|
+
return { error: "PowerShell not found" };
|
|
9
|
+
}
|
|
10
|
+
const script = `
|
|
11
|
+
Add-Type -AssemblyName UIAutomationClient
|
|
12
|
+
Add-Type -AssemblyName UIAutomationTypes
|
|
13
|
+
|
|
14
|
+
function Get-UITree($element, $depth) {
|
|
15
|
+
if ($depth -gt 3) { return }
|
|
16
|
+
$children = @()
|
|
17
|
+
$walker = [System.Windows.Automation.TreeWalker]::ControlViewWalker
|
|
18
|
+
$child = $walker.GetFirstChild($element)
|
|
19
|
+
while ($child -ne $null) {
|
|
20
|
+
$info = @{
|
|
21
|
+
automationId = $child.Current.AutomationId
|
|
22
|
+
name = $child.Current.Name
|
|
23
|
+
controlType = $child.Current.ControlType.ProgrammaticName
|
|
24
|
+
className = $child.Current.ClassName
|
|
25
|
+
}
|
|
26
|
+
$grandchildren = Get-UITree $child ($depth + 1)
|
|
27
|
+
if ($grandchildren) { $info.children = $grandchildren }
|
|
28
|
+
$children += $info
|
|
29
|
+
$child = $walker.GetNextSibling($child)
|
|
30
|
+
}
|
|
31
|
+
return $children
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
$root = [System.Windows.Automation.AutomationElement]::RootElement
|
|
35
|
+
$condition = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::NameProperty, "${appName}")
|
|
36
|
+
$appElement = $root.FindFirst([System.Windows.Automation.TreeScope]::Children, $condition)
|
|
37
|
+
|
|
38
|
+
if ($appElement) {
|
|
39
|
+
$tree = Get-UITree $appElement 0
|
|
40
|
+
$tree | ConvertTo-Json -Depth 10
|
|
41
|
+
} else {
|
|
42
|
+
Write-Output '{"error": "App window not found: ${appName}"}'
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
const result = await runCommand("powershell", ["-NoProfile", "-Command", script], process.cwd());
|
|
46
|
+
if (result.exit_code !== 0) {
|
|
47
|
+
return { error: result.stderr || "UI Automation inspection failed" };
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(result.stdout);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return { error: `Failed to parse UI tree: ${result.stdout.substring(0, 200)}` };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export async function automateElement(appName, automationId, action, text) {
|
|
57
|
+
if (platform() !== "win32")
|
|
58
|
+
return false;
|
|
59
|
+
const patternMap = {
|
|
60
|
+
invoke: "InvokePattern",
|
|
61
|
+
setValue: "ValuePattern",
|
|
62
|
+
toggle: "TogglePattern",
|
|
63
|
+
select: "SelectionItemPattern",
|
|
64
|
+
scroll: "ScrollPattern",
|
|
65
|
+
};
|
|
66
|
+
const patternName = patternMap[action] || "InvokePattern";
|
|
67
|
+
let actionScript;
|
|
68
|
+
if (action === "setValue" && text) {
|
|
69
|
+
actionScript = `$pattern = $target.GetCurrentPattern([System.Windows.Automation.${patternName}]::Pattern); $pattern.SetValue("${text.replace(/"/g, '`"')}")`;
|
|
70
|
+
}
|
|
71
|
+
else if (action === "toggle") {
|
|
72
|
+
actionScript = `$pattern = $target.GetCurrentPattern([System.Windows.Automation.${patternName}]::Pattern); $pattern.Toggle()`;
|
|
73
|
+
}
|
|
74
|
+
else if (action === "select") {
|
|
75
|
+
actionScript = `$pattern = $target.GetCurrentPattern([System.Windows.Automation.${patternName}]::Pattern); $pattern.Select()`;
|
|
76
|
+
}
|
|
77
|
+
else if (action === "scroll") {
|
|
78
|
+
actionScript = `$pattern = $target.GetCurrentPattern([System.Windows.Automation.${patternName}]::Pattern); $pattern.Scroll([System.Windows.Automation.ScrollAmount]::LargeIncrement, [System.Windows.Automation.ScrollAmount]::NoAmount)`;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
actionScript = `$pattern = $target.GetCurrentPattern([System.Windows.Automation.${patternName}]::Pattern); $pattern.Invoke()`;
|
|
82
|
+
}
|
|
83
|
+
const script = `
|
|
84
|
+
Add-Type -AssemblyName UIAutomationClient
|
|
85
|
+
Add-Type -AssemblyName UIAutomationTypes
|
|
86
|
+
|
|
87
|
+
$root = [System.Windows.Automation.AutomationElement]::RootElement
|
|
88
|
+
$appCondition = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::NameProperty, "${appName}")
|
|
89
|
+
$appElement = $root.FindFirst([System.Windows.Automation.TreeScope]::Children, $appCondition)
|
|
90
|
+
if (-not $appElement) { exit 1 }
|
|
91
|
+
|
|
92
|
+
$targetCondition = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::AutomationIdProperty, "${automationId}")
|
|
93
|
+
$target = $appElement.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $targetCondition)
|
|
94
|
+
if (-not $target) { exit 1 }
|
|
95
|
+
|
|
96
|
+
${actionScript}
|
|
97
|
+
`;
|
|
98
|
+
const result = await runCommand("powershell", ["-NoProfile", "-Command", script], process.cwd());
|
|
99
|
+
return result.exit_code === 0;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=win_accessibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win_accessibility.js","sourceRoot":"","sources":["../../src/runners/win_accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAU3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;oIAyBmH,OAAO;;;;;;;mDAOxF,OAAO;;CAEzD,CAAC;IAEA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,iCAAiC,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,4BAA4B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,YAAoB,EACpB,MAA8D,EAC9D,IAAa;IAEb,IAAI,QAAQ,EAAE,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAEzC,MAAM,UAAU,GAA2B;QACzC,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,eAAe;KACxB,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC;IAE1D,IAAI,YAAoB,CAAC;IACzB,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,mEAAmE,WAAW,mCAAmC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;IAC/J,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,YAAY,GAAG,mEAAmE,WAAW,gCAAgC,CAAC;IAChI,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,YAAY,GAAG,mEAAmE,WAAW,gCAAgC,CAAC;IAChI,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,YAAY,GAAG,mEAAmE,WAAW,4IAA4I,CAAC;IAC5O,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,mEAAmE,WAAW,gCAAgC,CAAC;IAChI,CAAC;IAED,MAAM,MAAM,GAAG;;;;;uIAKsH,OAAO;;;;kJAII,YAAY;;;;EAI5J,YAAY;CACb,CAAC;IAEA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjG,OAAO,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform window ID lookup.
|
|
3
|
+
* macOS: CGWindowListCopyWindowInfo via Swift
|
|
4
|
+
* Linux: xdotool search
|
|
5
|
+
* Windows: not needed (uses process handle)
|
|
6
|
+
*/
|
|
7
|
+
export declare function findWindowId(appName: string): Promise<string | null>;
|
|
8
|
+
/**
|
|
9
|
+
* Bring an app to the front, un-minimizing if needed.
|
|
10
|
+
* Returns the name/title of the previously frontmost app for later restoration.
|
|
11
|
+
*/
|
|
12
|
+
export declare function bringAppToFront(appName: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Get the window bounds (position + size) for cropping video capture.
|
|
15
|
+
* Returns { x, y, width, height } in screen points.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getWindowBounds(appName: string): Promise<{
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
} | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Click at screen coordinates using CGEvent (macOS), user32.dll (Windows),
|
|
25
|
+
* or xdotool (Linux). These are low-level HID events that Flutter and all
|
|
26
|
+
* frameworks receive.
|
|
27
|
+
*/
|
|
28
|
+
export declare function clickAtPosition(x: number, y: number): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Send a keystroke using CGEvent (macOS), user32.dll keybd_event (Windows),
|
|
31
|
+
* or xdotool (Linux).
|
|
32
|
+
*
|
|
33
|
+
* keyCode values are platform-specific:
|
|
34
|
+
* - macOS: CGKeyCode (e.g., 36=Return, 53=Escape, 48=Tab)
|
|
35
|
+
* - Windows: Virtual Key code (e.g., 0x0D=Enter, 0x1B=Escape, 0x09=Tab)
|
|
36
|
+
* - Linux: X11 keysym name as string via keyName param, or keyCode ignored
|
|
37
|
+
*/
|
|
38
|
+
export declare function sendKeystroke(keyCode: number, keyName?: string): Promise<boolean>;
|
|
39
|
+
export declare function adbTap(x: number, y: number): Promise<boolean>;
|
|
40
|
+
export declare function adbType(text: string): Promise<boolean>;
|
|
41
|
+
export declare function adbKey(keycode: string): Promise<boolean>;
|
|
42
|
+
export declare function adbSwipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number): Promise<boolean>;
|
|
43
|
+
export declare function simctlLaunch(bundleId: string): Promise<boolean>;
|
|
44
|
+
export declare function simctlTerminate(bundleId: string): Promise<boolean>;
|
|
45
|
+
export declare function getAvailableKeyNames(): string[];
|
|
46
|
+
export declare function sendKeyByName(keyName: string): Promise<boolean>;
|
|
47
|
+
export declare function typeText(text: string): Promise<boolean>;
|
|
48
|
+
export declare function scrollAtPosition(x: number, y: number, direction: "up" | "down" | "left" | "right", amount?: number): Promise<boolean>;
|
|
49
|
+
export declare function doubleClickAtPosition(x: number, y: number): Promise<boolean>;
|
|
50
|
+
export declare function rightClickAtPosition(x: number, y: number): Promise<boolean>;
|
|
51
|
+
export declare function hoverAtPosition(x: number, y: number): Promise<boolean>;
|
|
52
|
+
export declare function sendHotkey(combo: string): Promise<boolean>;
|
|
53
|
+
export declare function dragDrop(x1: number, y1: number, x2: number, y2: number, durationMs?: number): Promise<boolean>;
|
|
54
|
+
export declare function longPressAtPosition(x: number, y: number, durationMs?: number): Promise<boolean>;
|
|
55
|
+
export declare function simctlTap(x: number, y: number): Promise<boolean>;
|
|
56
|
+
export declare function simctlType(text: string): Promise<boolean>;
|
|
57
|
+
export declare function simctlOpenUrl(url: string): Promise<boolean>;
|
|
58
|
+
export declare function simctlBiometric(accept: boolean): Promise<boolean>;
|
|
59
|
+
export declare function adbDeepLink(url: string): Promise<boolean>;
|
|
60
|
+
export declare function adbPermission(packageId: string, permission: string, grant: boolean): Promise<boolean>;
|
|
61
|
+
export declare function adbHomeButton(): Promise<boolean>;
|
|
62
|
+
export declare function adbBackButton(): Promise<boolean>;
|
|
63
|
+
export declare function adbRecentApps(): Promise<boolean>;
|
|
64
|
+
export declare function adbNotificationShade(expand: boolean): Promise<boolean>;
|
|
65
|
+
export declare function adbLongPress(x: number, y: number, durationMs?: number): Promise<boolean>;
|
|
66
|
+
export declare function adbClearData(packageId: string): Promise<boolean>;
|
|
67
|
+
export declare function adbInstallApk(apkPath: string): Promise<boolean>;
|
|
68
|
+
export declare function adbNetworkCondition(mode: string): Promise<boolean>;
|
|
69
|
+
export declare function adbMockLocation(lat: number, lng: number): Promise<boolean>;
|
|
70
|
+
export declare function adbRotate(landscape: boolean): Promise<boolean>;
|
|
71
|
+
export type TargetType = "desktop" | "android_emulator" | "ios_simulator" | "browser";
|
|
72
|
+
/**
|
|
73
|
+
* Check if a required external tool is installed.
|
|
74
|
+
* Returns null if available, or a user-facing error message with install instructions.
|
|
75
|
+
*/
|
|
76
|
+
export declare function checkDependency(tool: string, action: string): Promise<string | null>;
|
|
77
|
+
/**
|
|
78
|
+
* Restore the previously frontmost app/window after capture is complete.
|
|
79
|
+
*/
|
|
80
|
+
export declare function restorePreviousApp(previousApp: string): Promise<void>;
|
|
81
|
+
//# sourceMappingURL=window_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window_manager.d.ts","sourceRoot":"","sources":["../../src/runners/window_manager.ts"],"names":[],"mappings":"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"}
|