codeloop-mcp-server 0.1.61 → 0.1.63
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/critical_floors.d.ts.map +1 -1
- package/dist/auth/critical_floors.js +8 -0
- package/dist/auth/critical_floors.js.map +1 -1
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/runners/modal_close_strategies.d.ts +23 -0
- package/dist/runners/modal_close_strategies.d.ts.map +1 -1
- package/dist/runners/modal_close_strategies.js +59 -0
- package/dist/runners/modal_close_strategies.js.map +1 -1
- package/dist/runners/modal_detector.d.ts +36 -0
- package/dist/runners/modal_detector.d.ts.map +1 -1
- package/dist/runners/modal_detector.js +160 -78
- package/dist/runners/modal_detector.js.map +1 -1
- package/dist/runners/static_analysis.d.ts +27 -1
- package/dist/runners/static_analysis.d.ts.map +1 -1
- package/dist/runners/static_analysis.js +48 -20
- package/dist/runners/static_analysis.js.map +1 -1
- package/dist/runners/win_accessibility.d.ts.map +1 -1
- package/dist/runners/win_accessibility.js +3 -6
- package/dist/runners/win_accessibility.js.map +1 -1
- package/dist/runners/window_manager.d.ts +24 -0
- package/dist/runners/window_manager.d.ts.map +1 -1
- package/dist/runners/window_manager.js +70 -0
- package/dist/runners/window_manager.js.map +1 -1
- package/dist/tools/diagnose.js +1 -1
- package/dist/tools/diagnose.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +5 -1
- package/dist/tools/verify.js.map +1 -1
- package/package.json +1 -1
|
@@ -49,6 +49,29 @@ export interface MultiStrategyCloseResult {
|
|
|
49
49
|
/** HWND captured at first detection, used by kill-window escalation. */
|
|
50
50
|
hwnd?: string;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* 0.1.63 H12 — deterministic confirm/cancel for desktop dialogs.
|
|
54
|
+
*
|
|
55
|
+
* The Photometry-DB delete-confirm raised a Yes/No MessageBox. The old
|
|
56
|
+
* codeloop_handle_modal only suggested an Enter/Escape keystroke, which is
|
|
57
|
+
* fragile: the default button on a destructive Yes/No box is frequently
|
|
58
|
+
* "No", so Enter would silently abort the delete and Escape would too. This
|
|
59
|
+
* walks the dialog's button subtree via UIA and INVOKES the button whose
|
|
60
|
+
* name matches the chosen decision, so "confirm" reliably clicks
|
|
61
|
+
* Yes/OK/Save/Delete/Continue and "cancel" clicks No/Cancel/Discard.
|
|
62
|
+
*
|
|
63
|
+
* Returns `{ ok, button?, error? }`. `ok:false` lets handle_modal fall back
|
|
64
|
+
* to the keystroke path. Windows-only; other platforms return ok:false.
|
|
65
|
+
*/
|
|
66
|
+
export declare function invokeDialogDecisionButton(opts: {
|
|
67
|
+
decision: "confirm" | "cancel";
|
|
68
|
+
hwnd?: string;
|
|
69
|
+
cwd: string;
|
|
70
|
+
}): Promise<{
|
|
71
|
+
ok: boolean;
|
|
72
|
+
button?: string;
|
|
73
|
+
error?: string;
|
|
74
|
+
}>;
|
|
52
75
|
/**
|
|
53
76
|
* Run the strategy ladder against the detected modal. Re-detects after
|
|
54
77
|
* each step. Caller is expected to have already called detectModal and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal_close_strategies.d.ts","sourceRoot":"","sources":["../../src/runners/modal_close_strategies.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,mEAAmE;IACnE,eAAe,EAAE,oBAAoB,CAAC;IACtC,mFAAmF;IACnF,UAAU,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAC5C,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoGD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyEpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,eAAe,GAAG,mBAAmB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChG,eAAe,EAAE,oBAAoB,CAAC;CACvC;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqEjC"}
|
|
1
|
+
{"version":3,"file":"modal_close_strategies.d.ts","sourceRoot":"","sources":["../../src/runners/modal_close_strategies.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,mEAAmE;IACnE,eAAe,EAAE,oBAAoB,CAAC;IACtC,mFAAmF;IACnF,UAAU,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAC5C,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C5D;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyEpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,eAAe,GAAG,mBAAmB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChG,eAAe,EAAE,oBAAoB,CAAC;CACvC;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqEjC"}
|
|
@@ -86,6 +86,65 @@ async function endDialogWindows(cwd, hwnd) {
|
|
|
86
86
|
const r = await runCommand("powershell", ["-NoProfile", "-Command", script], cwd, undefined, undefined, 5000);
|
|
87
87
|
return r.exit_code === 0 ? { ok: true } : { ok: false, err: r.stderr.slice(0, 200) };
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* 0.1.63 H12 — deterministic confirm/cancel for desktop dialogs.
|
|
91
|
+
*
|
|
92
|
+
* The Photometry-DB delete-confirm raised a Yes/No MessageBox. The old
|
|
93
|
+
* codeloop_handle_modal only suggested an Enter/Escape keystroke, which is
|
|
94
|
+
* fragile: the default button on a destructive Yes/No box is frequently
|
|
95
|
+
* "No", so Enter would silently abort the delete and Escape would too. This
|
|
96
|
+
* walks the dialog's button subtree via UIA and INVOKES the button whose
|
|
97
|
+
* name matches the chosen decision, so "confirm" reliably clicks
|
|
98
|
+
* Yes/OK/Save/Delete/Continue and "cancel" clicks No/Cancel/Discard.
|
|
99
|
+
*
|
|
100
|
+
* Returns `{ ok, button?, error? }`. `ok:false` lets handle_modal fall back
|
|
101
|
+
* to the keystroke path. Windows-only; other platforms return ok:false.
|
|
102
|
+
*/
|
|
103
|
+
export async function invokeDialogDecisionButton(opts) {
|
|
104
|
+
if (process.platform !== "win32") {
|
|
105
|
+
return { ok: false, error: "decision-button invoke is Windows-only" };
|
|
106
|
+
}
|
|
107
|
+
// Affirmative button names, ordered by preference; "cancel" uses the
|
|
108
|
+
// negative set. Matched case-insensitively as a whole-label regex so we
|
|
109
|
+
// don't fire on a "Cancel all downloads" hyperlink etc.
|
|
110
|
+
const affirm = "^(Yes|OK|Confirm|Save|Save Changes|Delete|Remove|Continue|Apply|Allow|Proceed|Don.?t Cancel)$";
|
|
111
|
+
const negative = "^(No|Cancel|Don.?t Save|Discard|Close|Abort|Dismiss)$";
|
|
112
|
+
const pattern = opts.decision === "confirm" ? affirm : negative;
|
|
113
|
+
const handleArg = opts.hwnd && opts.hwnd !== "0" ? opts.hwnd : "$null";
|
|
114
|
+
const script = [
|
|
115
|
+
"Add-Type -AssemblyName UIAutomationClient",
|
|
116
|
+
`$hwnd = ${handleArg}`,
|
|
117
|
+
"if ($hwnd -ne $null -and $hwnd -ne 0) {",
|
|
118
|
+
" $w = [System.Windows.Automation.AutomationElement]::FromHandle([IntPtr]$hwnd)",
|
|
119
|
+
"} else {",
|
|
120
|
+
" $root = [System.Windows.Automation.AutomationElement]::RootElement",
|
|
121
|
+
" $cond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::ControlTypeProperty, [System.Windows.Automation.ControlType]::Window)",
|
|
122
|
+
" $w = $root.FindFirst([System.Windows.Automation.TreeScope]::Children, $cond)",
|
|
123
|
+
"}",
|
|
124
|
+
"if ($w -eq $null) { Write-Error 'no window found'; exit 1 }",
|
|
125
|
+
"$btnCond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::ControlTypeProperty, [System.Windows.Automation.ControlType]::Button)",
|
|
126
|
+
"$buttons = $w.FindAll([System.Windows.Automation.TreeScope]::Subtree, $btnCond)",
|
|
127
|
+
"$invoked = $null",
|
|
128
|
+
"foreach ($b in $buttons) {",
|
|
129
|
+
" $name = ($b.Current.Name -replace '&','')",
|
|
130
|
+
` if ($name -match '${pattern}') {`,
|
|
131
|
+
" try {",
|
|
132
|
+
" $invoke = $b.GetCurrentPattern([System.Windows.Automation.InvokePattern]::Pattern)",
|
|
133
|
+
" $invoke.Invoke()",
|
|
134
|
+
" $invoked = $name",
|
|
135
|
+
" break",
|
|
136
|
+
" } catch { }",
|
|
137
|
+
" }",
|
|
138
|
+
"}",
|
|
139
|
+
"if ($invoked -eq $null) { Write-Error 'no matching decision button found'; exit 1 }",
|
|
140
|
+
"Write-Output $invoked",
|
|
141
|
+
].join("\n");
|
|
142
|
+
const r = await runCommand("powershell", ["-NoProfile", "-Command", script], opts.cwd, undefined, undefined, 8000);
|
|
143
|
+
if (r.exit_code === 0) {
|
|
144
|
+
return { ok: true, button: r.stdout.trim() || undefined };
|
|
145
|
+
}
|
|
146
|
+
return { ok: false, error: r.stderr.slice(0, 200) };
|
|
147
|
+
}
|
|
89
148
|
/**
|
|
90
149
|
* Run the strategy ladder against the detected modal. Re-detects after
|
|
91
150
|
* each step. Caller is expected to have already called detectModal and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal_close_strategies.js","sourceRoot":"","sources":["../../src/runners/modal_close_strategies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal_close_strategies.js","sourceRoot":"","sources":["../../src/runners/modal_close_strategies.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,9 @@ export interface ModalDetectionResult {
|
|
|
60
60
|
/** target_type the detector ran against. */
|
|
61
61
|
target_type: "browser" | "desktop" | "android_emulator" | "ios_simulator" | "unknown";
|
|
62
62
|
}
|
|
63
|
+
/** 0.1.63 H12 — confirm / alert title heuristics shared by the detector. */
|
|
64
|
+
export declare const CONFIRM_NAME_PATTERN: RegExp;
|
|
65
|
+
export declare const ALERT_NAME_PATTERN: RegExp;
|
|
63
66
|
/** 0.1.54 E1 — exported so codeloop_handle_modal can reuse the same heuristic. */
|
|
64
67
|
export declare function classifyModalKind(name: string, className?: string): ModalKind;
|
|
65
68
|
export declare function detectModal(opts: {
|
|
@@ -68,6 +71,39 @@ export declare function detectModal(opts: {
|
|
|
68
71
|
cwd: string;
|
|
69
72
|
config?: CodeLoopConfig;
|
|
70
73
|
}): Promise<ModalDetectionResult>;
|
|
74
|
+
/** 0.1.63 H12 — one top-level window row from the UIA probe. */
|
|
75
|
+
export interface RawModalWindow {
|
|
76
|
+
name?: string;
|
|
77
|
+
class_name?: string;
|
|
78
|
+
hwnd?: number | string;
|
|
79
|
+
is_modal?: boolean;
|
|
80
|
+
/** Win32 ProcessId of the owning process (0.1.63 H12). */
|
|
81
|
+
process_id?: number;
|
|
82
|
+
}
|
|
83
|
+
/** 0.1.63 H12 — full UIA probe payload: every top-level window plus the
|
|
84
|
+
* resolved app process identity (pid(s) + main-window handle(s)). */
|
|
85
|
+
export interface RawModalProbe {
|
|
86
|
+
windows: RawModalWindow[];
|
|
87
|
+
app_pids: number[];
|
|
88
|
+
app_main_hwnds: Array<number | string>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 0.1.63 H12 — pure modal selection (no I/O), unit-testable.
|
|
92
|
+
*
|
|
93
|
+
* The Photometry-DB delete-confirm regression: clicking "Delete" raised a
|
|
94
|
+
* WPF/WinForms MessageBox — a SEPARATE top-level `#32770` window whose
|
|
95
|
+
* caption was NOT the app name and whose UIA `IsModal` flag was false. The
|
|
96
|
+
* pre-0.1.63 detector only matched (a) `IsModal && title-contains-app-name`
|
|
97
|
+
* or (b) a file-dialog title, so the confirm dialog was invisible: no F4
|
|
98
|
+
* directive fired and the agent kept clicking the blocked button beneath it.
|
|
99
|
+
*
|
|
100
|
+
* The robust, title-independent signal is OWNERSHIP: an in-process dialog
|
|
101
|
+
* shares the app's ProcessId. We treat any SECONDARY top-level window of the
|
|
102
|
+
* app's process (i.e. not the main window) that carries a dialog signal
|
|
103
|
+
* (modal flag, dialog class, or modal-ish title) as the modal — regardless
|
|
104
|
+
* of its caption.
|
|
105
|
+
*/
|
|
106
|
+
export declare function selectWindowsModal(probe: RawModalProbe, appName?: string): ModalDetectionResult;
|
|
71
107
|
/**
|
|
72
108
|
* Heuristic for whether a given action is "modal-related" — used by
|
|
73
109
|
* layer 2 (pre-interact block) to decide whether an unrelated action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal_detector.d.ts","sourceRoot":"","sources":["../../src/runners/modal_detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;CACvF;
|
|
1
|
+
{"version":3,"file":"modal_detector.d.ts","sourceRoot":"","sources":["../../src/runners/modal_detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;CACvF;AAqDD,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,QACkF,CAAC;AACpH,eAAO,MAAM,kBAAkB,QACuD,CAAC;AAKvF,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAgB7E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiBhC;AA4BD,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;qEACqE;AACrE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,oBAAoB,CA+F/F;AA+HD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAiB5D"}
|
|
@@ -36,17 +36,44 @@ const FILE_DIALOG_NAME_PATTERNS = [
|
|
|
36
36
|
/\bchoose\s+(a\s+)?(folder|file|directory|location)\b/i,
|
|
37
37
|
/^(open|save as|save|browse|export|import)$/i,
|
|
38
38
|
];
|
|
39
|
+
/**
|
|
40
|
+
* 0.1.63 H12 — file-SPECIFIC window classes. Deliberately EXCLUDES the
|
|
41
|
+
* generic Win32 dialog class `#32770`, because both file pickers AND
|
|
42
|
+
* MessageBox confirms are `#32770` — so `#32770` alone can never tell
|
|
43
|
+
* them apart and we must lean on the title instead.
|
|
44
|
+
*/
|
|
45
|
+
const FILE_DIALOG_STRONG_CLASS_NAMES = [
|
|
46
|
+
"Shell_Dialog",
|
|
47
|
+
"CommonItemDialog",
|
|
48
|
+
"WinUIDesktopWin32WindowClass",
|
|
49
|
+
"Microsoft.UI.Content.DesktopChildSiteBridge",
|
|
50
|
+
];
|
|
51
|
+
/** 0.1.63 H12 — confirm / alert title heuristics shared by the detector. */
|
|
52
|
+
export const CONFIRM_NAME_PATTERN = /\b(confirm|are you sure|do you want|delete\??|remove|discard|unsaved|save changes|overwrite|replace|proceed)\b/i;
|
|
53
|
+
export const ALERT_NAME_PATTERN = /\b(error|warning|alert|attention|failed|exception|invalid|cannot|unable|denied)\b/i;
|
|
54
|
+
/** 0.1.63 H12 — generic Win32 dialog classes that an in-app MessageBox uses. */
|
|
55
|
+
const GENERIC_DIALOG_CLASS_NAMES = new Set(["#32770", "DirectUIHWND"]);
|
|
39
56
|
/** 0.1.54 E1 — exported so codeloop_handle_modal can reuse the same heuristic. */
|
|
40
57
|
export function classifyModalKind(name, className) {
|
|
41
58
|
const cls = (className ?? "").trim();
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
// Title wins over class: the generic #32770 dialog class is shared by
|
|
60
|
+
// file pickers and confirm MessageBoxes, so a file-y / confirm-y /
|
|
61
|
+
// alert-y TITLE is the only reliable discriminator.
|
|
44
62
|
if (FILE_DIALOG_NAME_PATTERNS.some((re) => re.test(name)))
|
|
45
63
|
return "file_dialog";
|
|
46
|
-
if (
|
|
64
|
+
if (CONFIRM_NAME_PATTERN.test(name))
|
|
47
65
|
return "confirm";
|
|
48
|
-
if (
|
|
66
|
+
if (ALERT_NAME_PATTERN.test(name))
|
|
49
67
|
return "alert";
|
|
68
|
+
// File-SPECIFIC classes (not #32770) imply a picker.
|
|
69
|
+
if (FILE_DIALOG_STRONG_CLASS_NAMES.includes(cls))
|
|
70
|
+
return "file_dialog";
|
|
71
|
+
// 0.1.63 H12 — an ambiguous #32770 / DirectUIHWND owned dialog is far
|
|
72
|
+
// more often an in-app MessageBox (Yes/No/OK confirm) than a file
|
|
73
|
+
// picker. Default to "confirm" so it routes to codeloop_handle_modal
|
|
74
|
+
// (an agent decision) instead of the auto-Escape file-dialog ladder.
|
|
75
|
+
if (GENERIC_DIALOG_CLASS_NAMES.has(cls))
|
|
76
|
+
return "confirm";
|
|
50
77
|
return "custom";
|
|
51
78
|
}
|
|
52
79
|
export async function detectModal(opts) {
|
|
@@ -90,14 +117,113 @@ async function detectDesktopModal(opts) {
|
|
|
90
117
|
return detectMacModal(opts);
|
|
91
118
|
return detectLinuxModal(opts);
|
|
92
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* 0.1.63 H12 — pure modal selection (no I/O), unit-testable.
|
|
122
|
+
*
|
|
123
|
+
* The Photometry-DB delete-confirm regression: clicking "Delete" raised a
|
|
124
|
+
* WPF/WinForms MessageBox — a SEPARATE top-level `#32770` window whose
|
|
125
|
+
* caption was NOT the app name and whose UIA `IsModal` flag was false. The
|
|
126
|
+
* pre-0.1.63 detector only matched (a) `IsModal && title-contains-app-name`
|
|
127
|
+
* or (b) a file-dialog title, so the confirm dialog was invisible: no F4
|
|
128
|
+
* directive fired and the agent kept clicking the blocked button beneath it.
|
|
129
|
+
*
|
|
130
|
+
* The robust, title-independent signal is OWNERSHIP: an in-process dialog
|
|
131
|
+
* shares the app's ProcessId. We treat any SECONDARY top-level window of the
|
|
132
|
+
* app's process (i.e. not the main window) that carries a dialog signal
|
|
133
|
+
* (modal flag, dialog class, or modal-ish title) as the modal — regardless
|
|
134
|
+
* of its caption.
|
|
135
|
+
*/
|
|
136
|
+
export function selectWindowsModal(probe, appName) {
|
|
137
|
+
const appLower = (appName ?? "").toLowerCase();
|
|
138
|
+
const appNorm = appLower.replace(/\s+/g, "");
|
|
139
|
+
const appPids = new Set((probe.app_pids ?? []).map((p) => Number(p)));
|
|
140
|
+
const mainHwnds = new Set((probe.app_main_hwnds ?? []).map((h) => String(h)));
|
|
141
|
+
const wins = probe.windows ?? [];
|
|
142
|
+
const nm = (w) => w.name ?? "";
|
|
143
|
+
const cls = (w) => (w.class_name ?? "").trim();
|
|
144
|
+
const matchesAppFilter = (name) => {
|
|
145
|
+
if (!appLower)
|
|
146
|
+
return true;
|
|
147
|
+
const n = name.toLowerCase();
|
|
148
|
+
return n.includes(appLower) || (appNorm.length > 0 && n.replace(/\s+/g, "").includes(appNorm));
|
|
149
|
+
};
|
|
150
|
+
const isOwned = (w) => w.process_id != null && appPids.has(Number(w.process_id));
|
|
151
|
+
const isMainWindow = (w) => w.hwnd != null && mainHwnds.has(String(w.hwnd));
|
|
152
|
+
const hasDialogClass = (w) => GENERIC_DIALOG_CLASS_NAMES.has(cls(w)) || FILE_DIALOG_CLASS_NAMES.includes(cls(w));
|
|
153
|
+
const hasModalNamePattern = (w) => FILE_DIALOG_NAME_PATTERNS.some((re) => re.test(nm(w))) ||
|
|
154
|
+
CONFIRM_NAME_PATTERN.test(nm(w)) ||
|
|
155
|
+
ALERT_NAME_PATTERN.test(nm(w));
|
|
156
|
+
const build = (w, confidence, descPrefix) => {
|
|
157
|
+
const name = nm(w) || "(unnamed)";
|
|
158
|
+
const kind = classifyModalKind(name, cls(w) || undefined);
|
|
159
|
+
return {
|
|
160
|
+
is_modal_present: true,
|
|
161
|
+
modal_description: `${descPrefix}: ${name}`,
|
|
162
|
+
modal_kind: kind,
|
|
163
|
+
class_name: cls(w) || undefined,
|
|
164
|
+
hwnd: w.hwnd != null ? String(w.hwnd) : undefined,
|
|
165
|
+
suggested_action: kind === "file_dialog" ? "dismiss" : "inspect",
|
|
166
|
+
confidence,
|
|
167
|
+
target_type: "desktop",
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
// Pass 1 — UIA explicitly flagged the window modal AND it's owned by /
|
|
171
|
+
// titled for our app (and is not the main window itself).
|
|
172
|
+
const explicit = wins.find((w) => w.is_modal && !isMainWindow(w) && (isOwned(w) || matchesAppFilter(nm(w))));
|
|
173
|
+
if (explicit)
|
|
174
|
+
return build(explicit, 0.9, "Windows modal");
|
|
175
|
+
// Pass 2 — 0.1.63 H12: app-owned SECONDARY top-level window. Title- and
|
|
176
|
+
// IsModal-independent. We require a dialog signal (modal flag, dialog
|
|
177
|
+
// class, or modal-ish title) so a legitimate second document window of a
|
|
178
|
+
// multi-window app is NOT mistaken for a modal.
|
|
179
|
+
const owned = wins.find((w) => isOwned(w) &&
|
|
180
|
+
!isMainWindow(w) &&
|
|
181
|
+
(w.is_modal || hasDialogClass(w) || hasModalNamePattern(w)));
|
|
182
|
+
if (owned) {
|
|
183
|
+
const kind = classifyModalKind(nm(owned) || "(unnamed)", cls(owned) || undefined);
|
|
184
|
+
return build(owned, kind === "file_dialog" ? 0.8 : 0.85, "Windows dialog");
|
|
185
|
+
}
|
|
186
|
+
// Pass 3 — file-dialog heuristic (unowned / app process unresolved).
|
|
187
|
+
// (a) a strong file NAME pattern fires app-filter-free; (b) a file CLASS
|
|
188
|
+
// match still needs the app filter so we don't grab unrelated OS chrome.
|
|
189
|
+
const fileDialog = wins.find((w) => {
|
|
190
|
+
const byName = FILE_DIALOG_NAME_PATTERNS.some((re) => re.test(nm(w)));
|
|
191
|
+
if (byName)
|
|
192
|
+
return true;
|
|
193
|
+
const byClass = FILE_DIALOG_CLASS_NAMES.includes(cls(w));
|
|
194
|
+
return byClass && matchesAppFilter(nm(w));
|
|
195
|
+
});
|
|
196
|
+
if (fileDialog) {
|
|
197
|
+
return {
|
|
198
|
+
is_modal_present: true,
|
|
199
|
+
modal_description: `Windows file dialog: ${nm(fileDialog) || "(unnamed)"}`,
|
|
200
|
+
modal_kind: "file_dialog",
|
|
201
|
+
class_name: cls(fileDialog) || undefined,
|
|
202
|
+
hwnd: fileDialog.hwnd != null ? String(fileDialog.hwnd) : undefined,
|
|
203
|
+
suggested_action: "dismiss",
|
|
204
|
+
confidence: 0.75,
|
|
205
|
+
target_type: "desktop",
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
// Pass 4 — safety net: a generic Win32 dialog (#32770 / DirectUIHWND)
|
|
209
|
+
// titled like a confirm / alert is unambiguously a dialog even when we
|
|
210
|
+
// could not resolve the owning process (e.g. app lookup failed).
|
|
211
|
+
const confirmByName = wins.find((w) => GENERIC_DIALOG_CLASS_NAMES.has(cls(w)) &&
|
|
212
|
+
(CONFIRM_NAME_PATTERN.test(nm(w)) || ALERT_NAME_PATTERN.test(nm(w))));
|
|
213
|
+
if (confirmByName)
|
|
214
|
+
return build(confirmByName, 0.7, "Windows dialog");
|
|
215
|
+
return { is_modal_present: false, target_type: "desktop" };
|
|
216
|
+
}
|
|
93
217
|
async function detectWindowsModal(opts) {
|
|
94
218
|
const app = opts.app_name ?? "";
|
|
95
|
-
const
|
|
96
|
-
// PowerShell UIA probe. 0.1.54 E1 —
|
|
97
|
-
// codeloop_handle_modal can pick the right close strategy and
|
|
98
|
-
// kill-window escalation knows which window to terminate.
|
|
99
|
-
//
|
|
100
|
-
//
|
|
219
|
+
const psLiteral = app.replace(/'/g, "''");
|
|
220
|
+
// PowerShell UIA probe. 0.1.54 E1 — collects ClassName + HWND so
|
|
221
|
+
// codeloop_handle_modal can pick the right close strategy and the
|
|
222
|
+
// kill-window escalation knows which window to terminate.
|
|
223
|
+
// 0.1.63 H12 — also collects ProcessId per window AND resolves the app's
|
|
224
|
+
// process identity (pid(s) + main-window handle(s)) so the pure selector
|
|
225
|
+
// can flag an app-OWNED secondary dialog window regardless of its caption
|
|
226
|
+
// or its (unreliable) IsModal flag.
|
|
101
227
|
const script = [
|
|
102
228
|
"Add-Type -AssemblyName UIAutomationClient",
|
|
103
229
|
"$root = [System.Windows.Automation.AutomationElement]::RootElement",
|
|
@@ -108,16 +234,28 @@ async function detectWindowsModal(opts) {
|
|
|
108
234
|
" $name = $w.Current.Name",
|
|
109
235
|
" $cls = $w.Current.ClassName",
|
|
110
236
|
" $hwnd = $w.Current.NativeWindowHandle",
|
|
237
|
+
" $procId = 0",
|
|
238
|
+
" try { $procId = $w.Current.ProcessId } catch { }",
|
|
111
239
|
" $isModal = $false",
|
|
112
240
|
" try {",
|
|
113
241
|
" $pattern = $w.GetCurrentPattern([System.Windows.Automation.WindowPattern]::Pattern)",
|
|
114
242
|
" $isModal = $pattern.Current.IsModal",
|
|
115
243
|
" } catch { }",
|
|
116
|
-
" $result += @{ name = $name; class_name = $cls; hwnd = $hwnd; is_modal = $isModal }",
|
|
244
|
+
" $result += @{ name = $name; class_name = $cls; hwnd = $hwnd; is_modal = $isModal; process_id = $procId }",
|
|
117
245
|
"}",
|
|
118
|
-
|
|
246
|
+
`$appTarget = '${psLiteral}'`,
|
|
247
|
+
"$appNorm = ($appTarget -replace '\\s','').ToLowerInvariant()",
|
|
248
|
+
"$appPids = @()",
|
|
249
|
+
"$appMain = @()",
|
|
250
|
+
"if ($appNorm.Length -gt 0) {",
|
|
251
|
+
" $apps = Get-Process | Where-Object { $_.MainWindowHandle -ne 0 -and ( (($_.ProcessName -replace '\\s','').ToLowerInvariant() -eq $appNorm) -or ($_.MainWindowTitle -and ((($_.MainWindowTitle -replace '\\s','').ToLowerInvariant()).Contains($appNorm))) ) }",
|
|
252
|
+
" $appPids = @($apps | Select-Object -ExpandProperty Id)",
|
|
253
|
+
" $appMain = @($apps | ForEach-Object { [int64]$_.MainWindowHandle })",
|
|
254
|
+
"}",
|
|
255
|
+
"$out = @{ windows = @($result); app_pids = @($appPids); app_main_hwnds = @($appMain) }",
|
|
256
|
+
"$out | ConvertTo-Json -Compress -Depth 5",
|
|
119
257
|
].join("\n");
|
|
120
|
-
const r = await runCommand("powershell", ["-NoProfile", "-Command", script], opts.cwd, undefined, undefined,
|
|
258
|
+
const r = await runCommand("powershell", ["-NoProfile", "-Command", script], opts.cwd, undefined, undefined, 9000);
|
|
121
259
|
if (r.exit_code !== 0) {
|
|
122
260
|
return {
|
|
123
261
|
is_modal_present: false,
|
|
@@ -125,77 +263,21 @@ async function detectWindowsModal(opts) {
|
|
|
125
263
|
detection_error: r.stderr.slice(0, 200),
|
|
126
264
|
};
|
|
127
265
|
}
|
|
128
|
-
|
|
266
|
+
const probe = { windows: [], app_pids: [], app_main_hwnds: [] };
|
|
129
267
|
try {
|
|
130
268
|
const parsed = r.stdout.trim() ? JSON.parse(r.stdout) : null;
|
|
131
|
-
|
|
269
|
+
if (parsed && typeof parsed === "object") {
|
|
270
|
+
const asArr = (v) => (Array.isArray(v) ? v : v != null ? [v] : []);
|
|
271
|
+
const p = parsed;
|
|
272
|
+
probe.windows = asArr(p.windows);
|
|
273
|
+
probe.app_pids = asArr(p.app_pids).map((x) => Number(x));
|
|
274
|
+
probe.app_main_hwnds = asArr(p.app_main_hwnds);
|
|
275
|
+
}
|
|
132
276
|
}
|
|
133
277
|
catch {
|
|
134
278
|
return { is_modal_present: false, target_type: "desktop" };
|
|
135
279
|
}
|
|
136
|
-
|
|
137
|
-
// Second pass: file-dialog class match (regardless of IsModal flag) when
|
|
138
|
-
// the window's name suggests a file picker. The two-pass split makes sure
|
|
139
|
-
// we never spuriously match an unrelated #32770 dialog the OS itself owns
|
|
140
|
-
// (Windows Spotlight, Snipping Tool, etc.) — the file-dialog match
|
|
141
|
-
// requires either a name pattern OR an app filter that hits the running
|
|
142
|
-
// process.
|
|
143
|
-
const matchesAppFilter = (name) => {
|
|
144
|
-
if (!appLower)
|
|
145
|
-
return true;
|
|
146
|
-
return name.toLowerCase().includes(appLower);
|
|
147
|
-
};
|
|
148
|
-
const explicit = arr.find((w) => w.is_modal && matchesAppFilter(w.name ?? ""));
|
|
149
|
-
if (explicit) {
|
|
150
|
-
const name = explicit.name ?? "(unnamed)";
|
|
151
|
-
const cls = explicit.class_name ?? undefined;
|
|
152
|
-
return {
|
|
153
|
-
is_modal_present: true,
|
|
154
|
-
modal_description: `Windows modal: ${name}`,
|
|
155
|
-
modal_kind: classifyModalKind(name, cls),
|
|
156
|
-
class_name: cls,
|
|
157
|
-
hwnd: explicit.hwnd != null ? String(explicit.hwnd) : undefined,
|
|
158
|
-
suggested_action: "inspect",
|
|
159
|
-
confidence: 0.85,
|
|
160
|
-
target_type: "desktop",
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
// 0.1.57 H1 — file-dialog detection no longer requires the app-name filter.
|
|
164
|
-
// The E2E #12 OpenFolderDialog was titled "Select Folder" — a separate
|
|
165
|
-
// top-level window that does NOT embed "Photometry DB", so the previous
|
|
166
|
-
// class+app gate silently missed it. We now match on two independent
|
|
167
|
-
// signals:
|
|
168
|
-
// (a) a strong file-dialog NAME pattern — matched regardless of class or
|
|
169
|
-
// app filter, because these titles ("Select Folder", "Save As",
|
|
170
|
-
// "Browse For Folder") are unambiguously file pickers, OR
|
|
171
|
-
// (b) a file-dialog CLASS name — still gated by the app filter OR a name
|
|
172
|
-
// pattern so we don't match unrelated #32770 OS chrome.
|
|
173
|
-
const fileDialog = arr.find((w) => {
|
|
174
|
-
const name = w.name ?? "";
|
|
175
|
-
const cls = w.class_name ?? "";
|
|
176
|
-
const byName = FILE_DIALOG_NAME_PATTERNS.some((re) => re.test(name));
|
|
177
|
-
if (byName)
|
|
178
|
-
return true; // (a) strong, app-filter-free signal
|
|
179
|
-
const byClass = FILE_DIALOG_CLASS_NAMES.includes(cls);
|
|
180
|
-
if (byClass && matchesAppFilter(name))
|
|
181
|
-
return true; // (b) class + app
|
|
182
|
-
return false;
|
|
183
|
-
});
|
|
184
|
-
if (fileDialog) {
|
|
185
|
-
const name = fileDialog.name ?? "(unnamed)";
|
|
186
|
-
const cls = fileDialog.class_name ?? undefined;
|
|
187
|
-
return {
|
|
188
|
-
is_modal_present: true,
|
|
189
|
-
modal_description: `Windows file dialog: ${name}`,
|
|
190
|
-
modal_kind: "file_dialog",
|
|
191
|
-
class_name: cls,
|
|
192
|
-
hwnd: fileDialog.hwnd != null ? String(fileDialog.hwnd) : undefined,
|
|
193
|
-
suggested_action: "dismiss",
|
|
194
|
-
confidence: 0.75,
|
|
195
|
-
target_type: "desktop",
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
return { is_modal_present: false, target_type: "desktop" };
|
|
280
|
+
return selectWindowsModal(probe, app);
|
|
199
281
|
}
|
|
200
282
|
async function detectMacModal(opts) {
|
|
201
283
|
const app = opts.app_name ?? "frontmost";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal_detector.js","sourceRoot":"","sources":["../../src/runners/modal_detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal_detector.js","sourceRoot":"","sources":["../../src/runners/modal_detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,5 +68,31 @@ export declare function parseClippyOutput(output: string): {
|
|
|
68
68
|
errors: number;
|
|
69
69
|
warnings: number;
|
|
70
70
|
};
|
|
71
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Combine a parsed count with the exit code. We only promote an UNEXPLAINED
|
|
73
|
+
* non-zero exit (no parsed errors AND no parsed warnings) to a single error —
|
|
74
|
+
* that catches a parser miss / tool crash without silently passing the gate.
|
|
75
|
+
*
|
|
76
|
+
* Crucially we do NOT promote when the tool reported warnings: several linters
|
|
77
|
+
* (`flutter analyze`, `eslint --max-warnings`, `ruff`) exit non-zero on
|
|
78
|
+
* WARNINGS too, and promoting that to an error would block the gate on
|
|
79
|
+
* warnings — violating the errors-only policy and producing false positives.
|
|
80
|
+
*/
|
|
81
|
+
export declare function reconcile(parsed: {
|
|
82
|
+
errors: number;
|
|
83
|
+
warnings: number;
|
|
84
|
+
}, exitCode: number): {
|
|
85
|
+
errors: number;
|
|
86
|
+
warnings: number;
|
|
87
|
+
};
|
|
88
|
+
export interface StaticAnalysisOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Resolved .NET solution/project to format-check. Supplied by verify.ts via
|
|
91
|
+
* pickDotnetTarget so `dotnet format` never crashes with an ambiguity error
|
|
92
|
+
* on workspaces that hold multiple .sln files. When absent and the project
|
|
93
|
+
* IS .NET, the dotnet-format check is skipped (n/a) rather than run bare.
|
|
94
|
+
*/
|
|
95
|
+
dotnetTarget?: string;
|
|
96
|
+
}
|
|
97
|
+
export declare function runStaticAnalysis(cwd: string, logDir: string, opts?: StaticAnalysisOptions): Promise<StaticAnalysisResult>;
|
|
72
98
|
//# sourceMappingURL=static_analysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static_analysis.d.ts","sourceRoot":"","sources":["../../src/runners/static_analysis.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAInF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAQtF;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAMpF;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOpF;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK9F;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAItF;
|
|
1
|
+
{"version":3,"file":"static_analysis.d.ts","sourceRoot":"","sources":["../../src/runners/static_analysis.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAInF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAQtF;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAMpF;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOpF;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK9F;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAItF;AA8DD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK9H;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CA8J/B"}
|