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.
Files changed (79) hide show
  1. package/dist/auth/usage_tracker.d.ts +1 -1
  2. package/dist/auth/usage_tracker.d.ts.map +1 -1
  3. package/dist/auth/usage_tracker.js.map +1 -1
  4. package/dist/index.js +978 -40
  5. package/dist/index.js.map +1 -1
  6. package/dist/project-discovery.d.ts +17 -0
  7. package/dist/project-discovery.d.ts.map +1 -0
  8. package/dist/project-discovery.js +109 -0
  9. package/dist/project-discovery.js.map +1 -0
  10. package/dist/runners/app_logger.d.ts +41 -0
  11. package/dist/runners/app_logger.d.ts.map +1 -0
  12. package/dist/runners/app_logger.js +276 -0
  13. package/dist/runners/app_logger.js.map +1 -0
  14. package/dist/runners/base.d.ts.map +1 -1
  15. package/dist/runners/base.js +4 -2
  16. package/dist/runners/base.js.map +1 -1
  17. package/dist/runners/browser_interaction.d.ts +27 -0
  18. package/dist/runners/browser_interaction.d.ts.map +1 -0
  19. package/dist/runners/browser_interaction.js +294 -0
  20. package/dist/runners/browser_interaction.js.map +1 -0
  21. package/dist/runners/flutter.d.ts +1 -0
  22. package/dist/runners/flutter.d.ts.map +1 -1
  23. package/dist/runners/flutter.js +29 -0
  24. package/dist/runners/flutter.js.map +1 -1
  25. package/dist/runners/maestro_generator.d.ts +11 -0
  26. package/dist/runners/maestro_generator.d.ts.map +1 -0
  27. package/dist/runners/maestro_generator.js +79 -0
  28. package/dist/runners/maestro_generator.js.map +1 -0
  29. package/dist/runners/platform_detect.d.ts +14 -0
  30. package/dist/runners/platform_detect.d.ts.map +1 -0
  31. package/dist/runners/platform_detect.js +102 -0
  32. package/dist/runners/platform_detect.js.map +1 -0
  33. package/dist/runners/screenshot.d.ts +3 -7
  34. package/dist/runners/screenshot.d.ts.map +1 -1
  35. package/dist/runners/screenshot.js +155 -28
  36. package/dist/runners/screenshot.js.map +1 -1
  37. package/dist/runners/video_recorder.d.ts +49 -0
  38. package/dist/runners/video_recorder.d.ts.map +1 -0
  39. package/dist/runners/video_recorder.js +489 -0
  40. package/dist/runners/video_recorder.js.map +1 -0
  41. package/dist/runners/video_validator.d.ts +16 -0
  42. package/dist/runners/video_validator.d.ts.map +1 -0
  43. package/dist/runners/video_validator.js +123 -0
  44. package/dist/runners/video_validator.js.map +1 -0
  45. package/dist/runners/win_accessibility.d.ts +12 -0
  46. package/dist/runners/win_accessibility.d.ts.map +1 -0
  47. package/dist/runners/win_accessibility.js +101 -0
  48. package/dist/runners/win_accessibility.js.map +1 -0
  49. package/dist/runners/window_manager.d.ts +81 -0
  50. package/dist/runners/window_manager.d.ts.map +1 -0
  51. package/dist/runners/window_manager.js +1010 -0
  52. package/dist/runners/window_manager.js.map +1 -0
  53. package/dist/tools/design_compare.d.ts +1 -1
  54. package/dist/tools/design_compare.d.ts.map +1 -1
  55. package/dist/tools/design_compare.js +1 -2
  56. package/dist/tools/design_compare.js.map +1 -1
  57. package/dist/tools/discover_screens.d.ts +3 -3
  58. package/dist/tools/discover_screens.d.ts.map +1 -1
  59. package/dist/tools/discover_screens.js +140 -157
  60. package/dist/tools/discover_screens.js.map +1 -1
  61. package/dist/tools/gate_check.d.ts.map +1 -1
  62. package/dist/tools/gate_check.js +100 -5
  63. package/dist/tools/gate_check.js.map +1 -1
  64. package/dist/tools/init-project.d.ts +15 -0
  65. package/dist/tools/init-project.d.ts.map +1 -0
  66. package/dist/tools/init-project.js +273 -0
  67. package/dist/tools/init-project.js.map +1 -0
  68. package/dist/tools/interaction_replay.d.ts +8 -1
  69. package/dist/tools/interaction_replay.d.ts.map +1 -1
  70. package/dist/tools/interaction_replay.js +78 -2
  71. package/dist/tools/interaction_replay.js.map +1 -1
  72. package/dist/tools/verify.d.ts.map +1 -1
  73. package/dist/tools/verify.js +204 -53
  74. package/dist/tools/verify.js.map +1 -1
  75. package/dist/tools/visual_review.d.ts +1 -1
  76. package/dist/tools/visual_review.d.ts.map +1 -1
  77. package/dist/tools/visual_review.js +1 -2
  78. package/dist/tools/visual_review.js.map +1 -1
  79. 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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"}