@aphrody/winclean 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1,3726 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // @generated from the canonical Rust tool catalog — do not edit by hand.
3
+ /* eslint-disable */
4
+ import type { ToolResult } from "./result";
5
+
6
+ export const TOOL_NAMES = [
7
+ "analyze_pe",
8
+ "aob_scan",
9
+ "asar_list",
10
+ "binary_aes_ctr_decrypt",
11
+ "binary_entropy_map",
12
+ "binary_extract_strings",
13
+ "binary_hash_multi",
14
+ "binary_list_cpk",
15
+ "binary_parse_pe_header",
16
+ "binary_section_dump",
17
+ "binary_xor_decrypt",
18
+ "click",
19
+ "computer_capture_screen",
20
+ "computer_click",
21
+ "computer_click_element",
22
+ "computer_drag",
23
+ "computer_key",
24
+ "computer_observe",
25
+ "computer_ocr",
26
+ "computer_record_clip",
27
+ "computer_scroll",
28
+ "computer_speak",
29
+ "computer_type",
30
+ "coord_assign_task",
31
+ "coord_query_stop",
32
+ "coord_read_status",
33
+ "coord_read_task",
34
+ "coord_report_status",
35
+ "copy_path",
36
+ "delete_path",
37
+ "delete_registry_entry",
38
+ "disable_scheduled_task",
39
+ "enable_scheduled_task",
40
+ "gamepad_create_xbox360",
41
+ "gamepad_destroy",
42
+ "gamepad_destroy_all",
43
+ "gamepad_environment",
44
+ "gamepad_press_button",
45
+ "gamepad_send_xbox360_state",
46
+ "get_active_power_plan",
47
+ "get_clipboard_text",
48
+ "get_cpu_info",
49
+ "get_cpu_usage",
50
+ "get_defender_status",
51
+ "get_disk_info",
52
+ "get_file_info",
53
+ "get_gpu_preferences",
54
+ "get_hags_mode",
55
+ "get_memory_info",
56
+ "get_network_adapters",
57
+ "get_os_info",
58
+ "get_registry_value",
59
+ "get_system_profile",
60
+ "golang_scan",
61
+ "keyboard_hold",
62
+ "keyboard_release",
63
+ "keyboard_scan_code",
64
+ "kill_process",
65
+ "launch_app",
66
+ "list_directory",
67
+ "list_listening_ports",
68
+ "list_power_plans",
69
+ "list_processes",
70
+ "list_registry_key",
71
+ "list_scheduled_tasks",
72
+ "list_services",
73
+ "list_tcp_connections",
74
+ "list_windows",
75
+ "mem_allocate",
76
+ "mem_dump_region",
77
+ "mem_enable_debug_privilege",
78
+ "mem_free",
79
+ "mem_get_module_base",
80
+ "mem_list_modules",
81
+ "mem_list_processes",
82
+ "mem_protect",
83
+ "mem_query_region",
84
+ "mem_read_bytes",
85
+ "mem_read_c_string",
86
+ "mem_read_double",
87
+ "mem_read_float",
88
+ "mem_read_int32",
89
+ "mem_read_int64",
90
+ "mem_read_utf16",
91
+ "mem_resume_process",
92
+ "mem_scan_aob",
93
+ "mem_scan_value_int32",
94
+ "mem_suspend_process",
95
+ "mem_write_bytes",
96
+ "mem_write_double",
97
+ "mem_write_float",
98
+ "mem_write_int32",
99
+ "mem_write_int64",
100
+ "mouse_drag_to",
101
+ "mouse_move_smooth",
102
+ "move",
103
+ "move_path",
104
+ "multi_edit",
105
+ "multi_select",
106
+ "perf_dwm_flush",
107
+ "perf_empty_working_sets",
108
+ "perf_memory_status",
109
+ "perf_purge_standby_list",
110
+ "perf_set_eco_mode",
111
+ "power_shell",
112
+ "query_event_log",
113
+ "read_file",
114
+ "resize_window",
115
+ "restart_service",
116
+ "run_scheduled_task",
117
+ "scrape",
118
+ "screenshot",
119
+ "scroll",
120
+ "search_files",
121
+ "search_windows",
122
+ "send_notification",
123
+ "set_active_power_plan",
124
+ "set_clipboard_text",
125
+ "set_gpu_preference",
126
+ "set_hags_mode",
127
+ "set_process_affinity",
128
+ "set_process_priority",
129
+ "set_registry_value",
130
+ "shortcut",
131
+ "snapshot",
132
+ "start_service",
133
+ "steam_get_game",
134
+ "steam_get_game_status",
135
+ "steam_kill_game",
136
+ "steam_launch_and_wait",
137
+ "steam_launch_by_app_id",
138
+ "steam_list_games",
139
+ "steam_list_libraries",
140
+ "steam_open_uri",
141
+ "steam_scan_summary",
142
+ "steam_vault_status",
143
+ "steam_wait_for_launch",
144
+ "stop_service",
145
+ "switch_to_window",
146
+ "trim_process_working_set",
147
+ "type",
148
+ "wait",
149
+ "window_capture",
150
+ "window_close",
151
+ "window_enum_all",
152
+ "window_enum_children",
153
+ "window_find_by_class",
154
+ "window_get_text",
155
+ "window_minimise_all",
156
+ "window_move",
157
+ "window_post_message",
158
+ "window_send_message",
159
+ "window_set_opacity",
160
+ "window_set_text",
161
+ "window_set_topmost",
162
+ "winml_get_version",
163
+ "winml_inspect_onnx",
164
+ "winml_list_providers",
165
+ "winml_run_float32",
166
+ "write_file",
167
+ "wsl_execute",
168
+ "wsl_get_status",
169
+ "wsl_list_distributions",
170
+ "wsl_list_processes",
171
+ "wsl_read_only_probe",
172
+ "wsl_send_signal",
173
+ ] as const;
174
+ export type ToolName = (typeof TOOL_NAMES)[number];
175
+
176
+ /** Arguments for `analyze_pe`. */
177
+ export interface AnalyzePeArgs {
178
+ /**
179
+ * Absolute path to the target PE executable or DLL file.
180
+ */
181
+ path: string;
182
+ }
183
+
184
+ /** Arguments for `aob_scan`. */
185
+ export interface AobScanArgs {
186
+ /**
187
+ * Absolute path to the target binary.
188
+ */
189
+ path: string;
190
+ /**
191
+ * AOB pattern with hex bytes and wildcards, e.g. '48 89 5C 24 ? 48 89 74 24 ?'.
192
+ */
193
+ pattern: string;
194
+ /**
195
+ * Max matches to return (default 50, max 1000).
196
+ * @default 50
197
+ */
198
+ maxMatches?: number;
199
+ }
200
+
201
+ /** Arguments for `asar_list`. */
202
+ export interface AsarListArgs {
203
+ /**
204
+ * Absolute path to the .asar archive.
205
+ */
206
+ path: string;
207
+ }
208
+
209
+ /** Arguments for `binary_aes_ctr_decrypt`. */
210
+ export interface BinaryAesCtrDecryptArgs {
211
+ /**
212
+ * Absolute path to the ciphertext.
213
+ */
214
+ inputPath: string;
215
+ /**
216
+ * Absolute path of the plaintext output.
217
+ */
218
+ outputPath: string;
219
+ /**
220
+ * AES key in hex (32 or 64 hex chars).
221
+ */
222
+ keyHex: string;
223
+ /**
224
+ * Initial counter (IV) in hex (32 hex chars).
225
+ */
226
+ ivHex: string;
227
+ }
228
+
229
+ /** Arguments for `binary_entropy_map`. */
230
+ export interface BinaryEntropyMapArgs {
231
+ /**
232
+ * Absolute path to the file.
233
+ */
234
+ path: string;
235
+ /**
236
+ * Block size in bytes (default 4096, min 256, max 1048576).
237
+ * @default 4096
238
+ */
239
+ blockSize?: number;
240
+ }
241
+
242
+ /** Arguments for `binary_extract_strings`. */
243
+ export interface BinaryExtractStringsArgs {
244
+ /**
245
+ * Absolute path to the file.
246
+ */
247
+ path: string;
248
+ /**
249
+ * Minimum string length (default 4, capped at 256).
250
+ * @default 4
251
+ */
252
+ minLength?: number;
253
+ /**
254
+ * Maximum strings to return (default 1000, capped at 50000).
255
+ * @default 1000
256
+ */
257
+ maxResults?: number;
258
+ }
259
+
260
+ /** Arguments for `binary_hash_multi`. */
261
+ export interface BinaryHashMultiArgs {
262
+ /**
263
+ * Absolute path to the file.
264
+ */
265
+ path: string;
266
+ }
267
+
268
+ /** Arguments for `binary_list_cpk`. */
269
+ export interface BinaryListCpkArgs {
270
+ /**
271
+ * Absolute path to the .cpk archive.
272
+ */
273
+ path: string;
274
+ /**
275
+ * Max entries to return (default 500, capped at 50000).
276
+ * @default 500
277
+ */
278
+ maxEntries?: number;
279
+ }
280
+
281
+ /** Arguments for `binary_parse_pe_header`. */
282
+ export interface BinaryParsePeHeaderArgs {
283
+ /**
284
+ * Absolute path to the PE file (.exe / .dll / .sys / .efi).
285
+ */
286
+ path: string;
287
+ }
288
+
289
+ /** Arguments for `binary_section_dump`. */
290
+ export interface BinarySectionDumpArgs {
291
+ /**
292
+ * Absolute path to the PE file.
293
+ */
294
+ path: string;
295
+ /**
296
+ * Section name (e.g. '.text').
297
+ */
298
+ sectionName: string;
299
+ /**
300
+ * Output binary path. Empty = auto in %TEMP%.
301
+ * @default null
302
+ */
303
+ outputPath?: string | null;
304
+ }
305
+
306
+ /** Arguments for `binary_xor_decrypt`. */
307
+ export interface BinaryXorDecryptArgs {
308
+ /**
309
+ * Absolute path to the encrypted file.
310
+ */
311
+ inputPath: string;
312
+ /**
313
+ * Absolute path of the decrypted output.
314
+ */
315
+ outputPath: string;
316
+ /**
317
+ * Hex key (e.g. 'A5' or 'DEADBEEF').
318
+ */
319
+ keyHex: string;
320
+ }
321
+
322
+ /** Arguments for `click`. */
323
+ export interface ClickArgs {
324
+ /**
325
+ * X coordinate in screen pixels.
326
+ */
327
+ x: number;
328
+ /**
329
+ * Y coordinate in screen pixels.
330
+ */
331
+ y: number;
332
+ /**
333
+ * Mouse button: left | right | middle.
334
+ * @default "left"
335
+ */
336
+ button?: string;
337
+ /**
338
+ * 0 = hover, 1 = single, 2 = double.
339
+ * @default 1
340
+ */
341
+ clicks?: number;
342
+ }
343
+
344
+ /** Arguments for `computer_capture_screen`. */
345
+ export interface ComputerCaptureScreenArgs {
346
+ }
347
+
348
+ /** Arguments for `computer_click`. */
349
+ export interface ComputerClickArgs {
350
+ /**
351
+ * Exact HWND from the latest observation (0 = current foreground window).
352
+ */
353
+ windowHandle: number;
354
+ /**
355
+ * Window-relative X coordinate in pixels.
356
+ */
357
+ x: number;
358
+ /**
359
+ * Window-relative Y coordinate in pixels.
360
+ */
361
+ y: number;
362
+ /**
363
+ * Mouse button: left | right | middle.
364
+ * @default "left"
365
+ */
366
+ button?: string;
367
+ /**
368
+ * Number of clicks: 1 or 2.
369
+ * @default 1
370
+ */
371
+ clicks?: number;
372
+ /**
373
+ * Restore and focus the target window before input.
374
+ * @default true
375
+ */
376
+ activate?: boolean;
377
+ }
378
+
379
+ /** Arguments for `computer_click_element`. */
380
+ export interface ComputerClickElementArgs {
381
+ /**
382
+ * Exact HWND from the latest observation (0 = current foreground window).
383
+ */
384
+ windowHandle: number;
385
+ /**
386
+ * Exact UIA AutomationId, when available.
387
+ * @default null
388
+ */
389
+ automationId?: string | null;
390
+ /**
391
+ * Exact UIA Name, case-insensitive.
392
+ * @default null
393
+ */
394
+ name?: string | null;
395
+ /**
396
+ * Exact UIA className, case-insensitive.
397
+ * @default null
398
+ */
399
+ className?: string | null;
400
+ /**
401
+ * Exact UIA controlType, case-insensitive.
402
+ * @default null
403
+ */
404
+ controlType?: string | null;
405
+ /**
406
+ * Zero-based match to click when more than one element matches.
407
+ * @default -1
408
+ */
409
+ occurrence?: number;
410
+ /**
411
+ * Restore and focus the target window before clicking.
412
+ * @default true
413
+ */
414
+ activate?: boolean;
415
+ }
416
+
417
+ /** Arguments for `computer_drag`. */
418
+ export interface ComputerDragArgs {
419
+ /**
420
+ * Exact HWND from the latest observation (0 = current foreground window).
421
+ */
422
+ windowHandle: number;
423
+ /**
424
+ * Window-relative start X.
425
+ */
426
+ fromX: number;
427
+ /**
428
+ * Window-relative start Y.
429
+ */
430
+ fromY: number;
431
+ /**
432
+ * Window-relative end X.
433
+ */
434
+ toX: number;
435
+ /**
436
+ * Window-relative end Y.
437
+ */
438
+ toY: number;
439
+ /**
440
+ * Mouse button: left | right | middle.
441
+ * @default "left"
442
+ */
443
+ button?: string;
444
+ /**
445
+ * Intermediate movement steps (8..200).
446
+ * @default 20
447
+ */
448
+ steps?: number;
449
+ /**
450
+ * Total drag duration in milliseconds (50..5000).
451
+ * @default 250
452
+ */
453
+ durationMs?: number;
454
+ /**
455
+ * Restore and focus the target window before input.
456
+ * @default true
457
+ */
458
+ activate?: boolean;
459
+ }
460
+
461
+ /** Arguments for `computer_key`. */
462
+ export interface ComputerKeyArgs {
463
+ /**
464
+ * Exact HWND from the latest observation (0 = current foreground window).
465
+ */
466
+ windowHandle: number;
467
+ /**
468
+ * Shortcut string such as ctrl+s, alt+f4, enter or f5.
469
+ */
470
+ shortcut: string;
471
+ /**
472
+ * Restore and focus the target window before input.
473
+ * @default true
474
+ */
475
+ activate?: boolean;
476
+ }
477
+
478
+ /** Arguments for `computer_observe`. */
479
+ export interface ComputerObserveArgs {
480
+ /**
481
+ * Exact HWND to inspect (0 = foreground window).
482
+ * @default 0
483
+ */
484
+ windowHandle?: number;
485
+ /**
486
+ * Maximum UI Automation elements (1..1000, default 160).
487
+ * @default 160
488
+ */
489
+ maxElements?: number;
490
+ /**
491
+ * Include the UI Automation tree in the text block.
492
+ * @default true
493
+ */
494
+ includeUiTree?: boolean;
495
+ /**
496
+ * Optional PNG export path. When set, the captured observation is also written there.
497
+ * @default null
498
+ */
499
+ outputPath?: string | null;
500
+ }
501
+
502
+ /** Arguments for `computer_ocr`. */
503
+ export interface ComputerOcrArgs {
504
+ /**
505
+ * Exact HWND from the latest observation (0 = foreground window).
506
+ * @default 0
507
+ */
508
+ windowHandle?: number;
509
+ /**
510
+ * json or markdown.
511
+ * @default "json"
512
+ */
513
+ format?: string;
514
+ /**
515
+ * Windows OCR language tag, for example fr-FR or en-US. Null uses the user profile languages.
516
+ * @default null
517
+ */
518
+ language?: string | null;
519
+ /**
520
+ * Region X relative to the captured window image (0 for full image).
521
+ * @default 0
522
+ */
523
+ regionX?: number;
524
+ /**
525
+ * Region Y relative to the captured window image (0 for full image).
526
+ * @default 0
527
+ */
528
+ regionY?: number;
529
+ /**
530
+ * Region width; 0 means the remaining image width.
531
+ * @default 0
532
+ */
533
+ regionWidth?: number;
534
+ /**
535
+ * Region height; 0 means the remaining image height.
536
+ * @default 0
537
+ */
538
+ regionHeight?: number;
539
+ /**
540
+ * Play the recognized text through the installed local Windows voice.
541
+ * @default false
542
+ */
543
+ speak?: boolean;
544
+ /**
545
+ * Optional JSON/Markdown export path.
546
+ * @default null
547
+ */
548
+ outputPath?: string | null;
549
+ /**
550
+ * Optional WAV export path when speak=true; otherwise a temporary WAV is created.
551
+ * @default null
552
+ */
553
+ audioPath?: string | null;
554
+ }
555
+
556
+ /** Arguments for `computer_record_clip`. */
557
+ export interface ComputerRecordClipArgs {
558
+ /**
559
+ * Exact HWND from the latest observation; 0 records the primary desktop.
560
+ * @default 0
561
+ */
562
+ windowHandle?: number;
563
+ /**
564
+ * Output AVI path; null creates a timestamped file in the user temp directory.
565
+ * @default null
566
+ */
567
+ outputPath?: string | null;
568
+ /**
569
+ * Clip duration in milliseconds (100..30000).
570
+ * @default 5000
571
+ */
572
+ durationMs?: number;
573
+ /**
574
+ * Frames per second (1..30).
575
+ * @default 10
576
+ */
577
+ fps?: number;
578
+ }
579
+
580
+ /** Arguments for `computer_scroll`. */
581
+ export interface ComputerScrollArgs {
582
+ /**
583
+ * Exact HWND from the latest observation (0 = current foreground window).
584
+ */
585
+ windowHandle: number;
586
+ /**
587
+ * Window-relative X coordinate.
588
+ */
589
+ x: number;
590
+ /**
591
+ * Window-relative Y coordinate.
592
+ */
593
+ y: number;
594
+ /**
595
+ * vertical or horizontal.
596
+ * @default "vertical"
597
+ */
598
+ axis?: string;
599
+ /**
600
+ * up, down, left or right.
601
+ * @default "down"
602
+ */
603
+ direction?: string;
604
+ /**
605
+ * Number of wheel notches (1..40).
606
+ * @default 1
607
+ */
608
+ wheelTimes?: number;
609
+ /**
610
+ * Restore and focus the target window before input.
611
+ * @default true
612
+ */
613
+ activate?: boolean;
614
+ }
615
+
616
+ /** Arguments for `computer_speak`. */
617
+ export interface ComputerSpeakArgs {
618
+ /**
619
+ * Text to speak, maximum 32768 characters.
620
+ */
621
+ text: string;
622
+ /**
623
+ * Optional WAV export path; otherwise a temporary WAV is created.
624
+ * @default null
625
+ */
626
+ audioPath?: string | null;
627
+ }
628
+
629
+ /** Arguments for `computer_type`. */
630
+ export interface ComputerTypeArgs {
631
+ /**
632
+ * Exact HWND from the latest observation (0 = current foreground window).
633
+ */
634
+ windowHandle: number;
635
+ /**
636
+ * Text to type.
637
+ */
638
+ text: string;
639
+ /**
640
+ * Window-relative X coordinate in pixels.
641
+ */
642
+ x: number;
643
+ /**
644
+ * Window-relative Y coordinate in pixels.
645
+ */
646
+ y: number;
647
+ /**
648
+ * Select all and delete existing field contents first.
649
+ * @default false
650
+ */
651
+ clear?: boolean;
652
+ /**
653
+ * Press Enter after typing.
654
+ * @default false
655
+ */
656
+ pressEnter?: boolean;
657
+ /**
658
+ * Restore and focus the target window before input.
659
+ * @default true
660
+ */
661
+ activate?: boolean;
662
+ }
663
+
664
+ /** Arguments for `coord_assign_task`. */
665
+ export interface CoordAssignTaskArgs {
666
+ /**
667
+ * Markdown content for the new CURRENT_TASK.md (overwrites the existing file).
668
+ */
669
+ markdown: string;
670
+ }
671
+
672
+ /** Arguments for `coord_query_stop`. */
673
+ export interface CoordQueryStopArgs {
674
+ }
675
+
676
+ /** Arguments for `coord_read_status`. */
677
+ export interface CoordReadStatusArgs {
678
+ /**
679
+ * Agent name to read. Case-insensitive.
680
+ */
681
+ agent: string;
682
+ }
683
+
684
+ /** Arguments for `coord_read_task`. */
685
+ export interface CoordReadTaskArgs {
686
+ }
687
+
688
+ /** Arguments for `coord_report_status`. */
689
+ export interface CoordReportStatusArgs {
690
+ /**
691
+ * Agent name (e.g. 'claude', 'gemini', 'aphrody-claude'). Case-insensitive on disk.
692
+ */
693
+ agent: string;
694
+ /**
695
+ * Full multi-line status block. Trailing newline is normalised.
696
+ */
697
+ status: string;
698
+ }
699
+
700
+ /** Arguments for `copy_path`. */
701
+ export interface CopyPathArgs {
702
+ /**
703
+ * Source path (absolute or relative to Desktop).
704
+ */
705
+ path: string;
706
+ /**
707
+ * Destination path (absolute or relative to Desktop).
708
+ */
709
+ destination: string;
710
+ /**
711
+ * Overwrite existing destination.
712
+ * @default false
713
+ */
714
+ overwrite?: boolean;
715
+ }
716
+
717
+ /** Arguments for `delete_path`. */
718
+ export interface DeletePathArgs {
719
+ /**
720
+ * Absolute or relative path. Relative paths are resolved against the user's Desktop folder.
721
+ */
722
+ path: string;
723
+ /**
724
+ * Recurse into directory contents.
725
+ * @default false
726
+ */
727
+ recursive?: boolean;
728
+ }
729
+
730
+ /** Arguments for `delete_registry_entry`. */
731
+ export interface DeleteRegistryEntryArgs {
732
+ /**
733
+ * Key path including hive prefix.
734
+ */
735
+ path: string;
736
+ /**
737
+ * Value name; null/empty deletes the entire key.
738
+ * @default null
739
+ */
740
+ name?: string | null;
741
+ }
742
+
743
+ /** Arguments for `disable_scheduled_task`. */
744
+ export interface DisableScheduledTaskArgs {
745
+ /**
746
+ * Absolute task path.
747
+ */
748
+ path: string;
749
+ }
750
+
751
+ /** Arguments for `enable_scheduled_task`. */
752
+ export interface EnableScheduledTaskArgs {
753
+ /**
754
+ * Absolute task path, e.g. '\Microsoft\Windows\Defender\Windows Defender Scheduled Scan'.
755
+ */
756
+ path: string;
757
+ }
758
+
759
+ /** Arguments for `gamepad_create_xbox360`. */
760
+ export interface GamepadCreateXbox360Args {
761
+ /**
762
+ * Slot index (0–7) used to reference this controller in subsequent calls.
763
+ * @default 0
764
+ */
765
+ slotIndex?: number;
766
+ }
767
+
768
+ /** Arguments for `gamepad_destroy`. */
769
+ export interface GamepadDestroyArgs {
770
+ /**
771
+ * Slot index to destroy.
772
+ */
773
+ slot: number;
774
+ }
775
+
776
+ /** Arguments for `gamepad_destroy_all`. */
777
+ export interface GamepadDestroyAllArgs {
778
+ }
779
+
780
+ /** Arguments for `gamepad_environment`. */
781
+ export interface GamepadEnvironmentArgs {
782
+ }
783
+
784
+ /** Arguments for `gamepad_press_button`. */
785
+ export interface GamepadPressButtonArgs {
786
+ /**
787
+ * Slot index from GamepadCreateXbox360.
788
+ */
789
+ slot: number;
790
+ /**
791
+ * Button bitmask to press (e.g. 4096 for A).
792
+ */
793
+ buttonMask: number;
794
+ /**
795
+ * Hold duration in milliseconds [1, 5000].
796
+ * @default 100
797
+ */
798
+ holdMs?: number;
799
+ }
800
+
801
+ /** Arguments for `gamepad_send_xbox360_state`. */
802
+ export interface GamepadSendXbox360StateArgs {
803
+ /**
804
+ * Slot index from GamepadCreateXbox360.
805
+ */
806
+ slot: number;
807
+ /**
808
+ * Button bitmask (see description for values).
809
+ */
810
+ buttons: number;
811
+ /**
812
+ * Left stick X axis [-32768, 32767].
813
+ * @default 0
814
+ */
815
+ lx?: number;
816
+ /**
817
+ * Left stick Y axis [-32768, 32767].
818
+ * @default 0
819
+ */
820
+ ly?: number;
821
+ /**
822
+ * Right stick X axis [-32768, 32767].
823
+ * @default 0
824
+ */
825
+ rx?: number;
826
+ /**
827
+ * Right stick Y axis [-32768, 32767].
828
+ * @default 0
829
+ */
830
+ ry?: number;
831
+ /**
832
+ * Left trigger [0, 255].
833
+ * @default 0
834
+ */
835
+ lt?: number;
836
+ /**
837
+ * Right trigger [0, 255].
838
+ * @default 0
839
+ */
840
+ rt?: number;
841
+ }
842
+
843
+ /** Arguments for `get_active_power_plan`. */
844
+ export interface GetActivePowerPlanArgs {
845
+ }
846
+
847
+ /** Arguments for `get_clipboard_text`. */
848
+ export interface GetClipboardTextArgs {
849
+ }
850
+
851
+ /** Arguments for `get_cpu_info`. */
852
+ export interface GetCpuInfoArgs {
853
+ }
854
+
855
+ /** Arguments for `get_cpu_usage`. */
856
+ export interface GetCpuUsageArgs {
857
+ /**
858
+ * Sample window in milliseconds. Clamped to [50, 2000]. Default 250.
859
+ * @default 250
860
+ */
861
+ intervalMs?: number;
862
+ }
863
+
864
+ /** Arguments for `get_defender_status`. */
865
+ export interface GetDefenderStatusArgs {
866
+ }
867
+
868
+ /** Arguments for `get_disk_info`. */
869
+ export interface GetDiskInfoArgs {
870
+ }
871
+
872
+ /** Arguments for `get_file_info`. */
873
+ export interface GetFileInfoArgs {
874
+ /**
875
+ * Absolute or relative path.
876
+ */
877
+ path: string;
878
+ }
879
+
880
+ /** Arguments for `get_gpu_preferences`. */
881
+ export interface GetGpuPreferencesArgs {
882
+ }
883
+
884
+ /** Arguments for `get_hags_mode`. */
885
+ export interface GetHagsModeArgs {
886
+ }
887
+
888
+ /** Arguments for `get_memory_info`. */
889
+ export interface GetMemoryInfoArgs {
890
+ }
891
+
892
+ /** Arguments for `get_network_adapters`. */
893
+ export interface GetNetworkAdaptersArgs {
894
+ }
895
+
896
+ /** Arguments for `get_os_info`. */
897
+ export interface GetOsInfoArgs {
898
+ }
899
+
900
+ /** Arguments for `get_registry_value`. */
901
+ export interface GetRegistryValueArgs {
902
+ /**
903
+ * Key path including hive prefix, e.g. 'HKCU:\Software\MyApp'.
904
+ */
905
+ path: string;
906
+ /**
907
+ * Value name. Use '(default)' for the default unnamed value.
908
+ */
909
+ name: string;
910
+ }
911
+
912
+ /** Arguments for `get_system_profile`. */
913
+ export interface GetSystemProfileArgs {
914
+ }
915
+
916
+ /** Arguments for `golang_scan`. */
917
+ export interface GolangScanArgs {
918
+ /**
919
+ * Absolute path to the target binary.
920
+ */
921
+ path: string;
922
+ /**
923
+ * Max symbols to extract (default 200).
924
+ * @default 200
925
+ */
926
+ maxSymbols?: number;
927
+ }
928
+
929
+ /** Arguments for `keyboard_hold`. */
930
+ export interface KeyboardHoldArgs {
931
+ /**
932
+ * Virtual-key code (e.g. 0x57 = W, 0x10 = Shift).
933
+ */
934
+ vk: number;
935
+ }
936
+
937
+ /** Arguments for `keyboard_release`. */
938
+ export interface KeyboardReleaseArgs {
939
+ /**
940
+ * Virtual-key code.
941
+ */
942
+ vk: number;
943
+ }
944
+
945
+ /** Arguments for `keyboard_scan_code`. */
946
+ export interface KeyboardScanCodeArgs {
947
+ /**
948
+ * Scan code (decimal or 0x-prefixed hex, e.g. 0x1E for 'A').
949
+ */
950
+ scanCode: number;
951
+ /**
952
+ * 'down' | 'up' | 'tap'.
953
+ * @default "tap"
954
+ */
955
+ action?: string;
956
+ /**
957
+ * Mark as extended (E0-prefixed) key (arrows, NumPad, RWIN, etc).
958
+ * @default false
959
+ */
960
+ extended?: boolean;
961
+ }
962
+
963
+ /** Arguments for `kill_process`. */
964
+ export interface KillProcessArgs {
965
+ /**
966
+ * Process ID. Takes precedence over name when set.
967
+ * @default null
968
+ */
969
+ pid?: number | null;
970
+ /**
971
+ * Process name (no .exe extension required). Used when pid is null.
972
+ * @default null
973
+ */
974
+ name?: string | null;
975
+ /**
976
+ * Force terminate (default true).
977
+ * @default true
978
+ */
979
+ force?: boolean;
980
+ }
981
+
982
+ /** Arguments for `launch_app`. */
983
+ export interface LaunchAppArgs {
984
+ /**
985
+ * Path, executable name or shell URI to launch.
986
+ */
987
+ target: string;
988
+ /**
989
+ * Optional command-line arguments (space-separated, shell-escaped).
990
+ * @default null
991
+ */
992
+ args?: string | null;
993
+ /**
994
+ * Working directory for the new process.
995
+ * @default null
996
+ */
997
+ workingDirectory?: string | null;
998
+ }
999
+
1000
+ /** Arguments for `list_directory`. */
1001
+ export interface ListDirectoryArgs {
1002
+ /**
1003
+ * Absolute or relative path. Relative paths are resolved against the user's Desktop folder.
1004
+ */
1005
+ path: string;
1006
+ /**
1007
+ * Glob pattern filter, e.g. '*.txt'. Empty = all entries.
1008
+ * @default null
1009
+ */
1010
+ pattern?: string | null;
1011
+ /**
1012
+ * Recurse into subdirectories.
1013
+ * @default false
1014
+ */
1015
+ recursive?: boolean;
1016
+ /**
1017
+ * Include hidden / system entries.
1018
+ * @default false
1019
+ */
1020
+ showHidden?: boolean;
1021
+ /**
1022
+ * Glob patterns matching entry names to omit. Matching directories are not traversed.
1023
+ * @default []
1024
+ */
1025
+ exclude?: string[];
1026
+ }
1027
+
1028
+ /** Arguments for `list_listening_ports`. */
1029
+ export interface ListListeningPortsArgs {
1030
+ }
1031
+
1032
+ /** Arguments for `list_power_plans`. */
1033
+ export interface ListPowerPlansArgs {
1034
+ }
1035
+
1036
+ /** Arguments for `list_processes`. */
1037
+ export interface ListProcessesArgs {
1038
+ /**
1039
+ * Substring filter on process name (case-insensitive). Empty = no filter.
1040
+ * @default null
1041
+ */
1042
+ name?: string | null;
1043
+ /**
1044
+ * Sort key: 'memory', 'private', 'cpu', 'threads', 'handles' or 'name'.
1045
+ * @default "memory"
1046
+ */
1047
+ sortBy?: string;
1048
+ /**
1049
+ * Maximum number of results to return.
1050
+ * @default 20
1051
+ */
1052
+ limit?: number;
1053
+ }
1054
+
1055
+ /** Arguments for `list_registry_key`. */
1056
+ export interface ListRegistryKeyArgs {
1057
+ /**
1058
+ * Key path including hive prefix.
1059
+ */
1060
+ path: string;
1061
+ }
1062
+
1063
+ /** Arguments for `list_scheduled_tasks`. */
1064
+ export interface ListScheduledTasksArgs {
1065
+ /**
1066
+ * Task folder, default '\'. Use '\Microsoft\Windows\Defender' for sub-folders.
1067
+ * @default "\\"
1068
+ */
1069
+ folder?: string;
1070
+ }
1071
+
1072
+ /** Arguments for `list_services`. */
1073
+ export interface ListServicesArgs {
1074
+ /**
1075
+ * Substring filter on service name (case-insensitive). Empty = no filter.
1076
+ * @default null
1077
+ */
1078
+ nameFilter?: string | null;
1079
+ /**
1080
+ * Status filter: Running, Stopped, Paused, StartPending, StopPending. Empty = any.
1081
+ * @default null
1082
+ */
1083
+ statusFilter?: string | null;
1084
+ }
1085
+
1086
+ /** Arguments for `list_tcp_connections`. */
1087
+ export interface ListTcpConnectionsArgs {
1088
+ /**
1089
+ * Optional state filter (case-insensitive). Empty = all states.
1090
+ * @default null
1091
+ */
1092
+ stateFilter?: string | null;
1093
+ }
1094
+
1095
+ /** Arguments for `list_windows`. */
1096
+ export interface ListWindowsArgs {
1097
+ }
1098
+
1099
+ /** Arguments for `mem_allocate`. */
1100
+ export interface MemAllocateArgs {
1101
+ /**
1102
+ * Target process ID.
1103
+ */
1104
+ pid: number;
1105
+ /**
1106
+ * Size in bytes to commit.
1107
+ */
1108
+ size: number;
1109
+ /**
1110
+ * Protection flags: rw | rwx | rx.
1111
+ * @default "rw"
1112
+ */
1113
+ protect?: string;
1114
+ }
1115
+
1116
+ /** Arguments for `mem_dump_region`. */
1117
+ export interface MemDumpRegionArgs {
1118
+ /**
1119
+ * Target process ID.
1120
+ */
1121
+ pid: number;
1122
+ /**
1123
+ * Start address (decimal or 0x-prefixed hex).
1124
+ */
1125
+ address: number;
1126
+ /**
1127
+ * Bytes to read. Capped at 4 MiB.
1128
+ */
1129
+ size: number;
1130
+ /**
1131
+ * Output file path. Empty = auto in %TEMP%.
1132
+ * @default null
1133
+ */
1134
+ outputPath?: string | null;
1135
+ /**
1136
+ * Suspend the process for the duration of the read.
1137
+ * @default false
1138
+ */
1139
+ suspend?: boolean;
1140
+ }
1141
+
1142
+ /** Arguments for `mem_enable_debug_privilege`. */
1143
+ export interface MemEnableDebugPrivilegeArgs {
1144
+ }
1145
+
1146
+ /** Arguments for `mem_free`. */
1147
+ export interface MemFreeArgs {
1148
+ /**
1149
+ * Target process ID.
1150
+ */
1151
+ pid: number;
1152
+ /**
1153
+ * Base address returned by MemAllocate (decimal or 0x-prefixed hex).
1154
+ */
1155
+ address: number;
1156
+ }
1157
+
1158
+ /** Arguments for `mem_get_module_base`. */
1159
+ export interface MemGetModuleBaseArgs {
1160
+ /**
1161
+ * Target process ID.
1162
+ */
1163
+ pid: number;
1164
+ /**
1165
+ * Module name to find (e.g. 'kernel32.dll'). Case-insensitive.
1166
+ */
1167
+ moduleName: string;
1168
+ }
1169
+
1170
+ /** Arguments for `mem_list_modules`. */
1171
+ export interface MemListModulesArgs {
1172
+ /**
1173
+ * Target process ID.
1174
+ */
1175
+ pid: number;
1176
+ }
1177
+
1178
+ /** Arguments for `mem_list_processes`. */
1179
+ export interface MemListProcessesArgs {
1180
+ /**
1181
+ * Substring filter on process name (case-insensitive). Empty = all.
1182
+ * @default ""
1183
+ */
1184
+ nameFilter?: string;
1185
+ }
1186
+
1187
+ /** Arguments for `mem_protect`. */
1188
+ export interface MemProtectArgs {
1189
+ /**
1190
+ * Target process ID.
1191
+ */
1192
+ pid: number;
1193
+ /**
1194
+ * Base address.
1195
+ */
1196
+ address: number;
1197
+ /**
1198
+ * Region size in bytes.
1199
+ */
1200
+ size: number;
1201
+ /**
1202
+ * New protection: rw | rwx | rx | ro | noaccess.
1203
+ */
1204
+ protect: string;
1205
+ }
1206
+
1207
+ /** Arguments for `mem_query_region`. */
1208
+ export interface MemQueryRegionArgs {
1209
+ /**
1210
+ * Target process ID.
1211
+ */
1212
+ pid: number;
1213
+ /**
1214
+ * Any address within the region to query (decimal or 0x-prefixed hex).
1215
+ */
1216
+ address: number;
1217
+ }
1218
+
1219
+ /** Arguments for `mem_read_bytes`. */
1220
+ export interface MemReadBytesArgs {
1221
+ /**
1222
+ * Target process ID.
1223
+ */
1224
+ pid: number;
1225
+ /**
1226
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1227
+ */
1228
+ address: number;
1229
+ /**
1230
+ * Number of bytes to read. Capped at 65536.
1231
+ */
1232
+ length: number;
1233
+ }
1234
+
1235
+ /** Arguments for `mem_read_c_string`. */
1236
+ export interface MemReadCStringArgs {
1237
+ /**
1238
+ * Target process ID.
1239
+ */
1240
+ pid: number;
1241
+ /**
1242
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1243
+ */
1244
+ address: number;
1245
+ /**
1246
+ * Maximum bytes to read before stopping. Default 256, capped at 4096.
1247
+ * @default 256
1248
+ */
1249
+ maxLength?: number;
1250
+ }
1251
+
1252
+ /** Arguments for `mem_read_double`. */
1253
+ export interface MemReadDoubleArgs {
1254
+ /**
1255
+ * Target process ID.
1256
+ */
1257
+ pid: number;
1258
+ /**
1259
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1260
+ */
1261
+ address: number;
1262
+ }
1263
+
1264
+ /** Arguments for `mem_read_float`. */
1265
+ export interface MemReadFloatArgs {
1266
+ /**
1267
+ * Target process ID.
1268
+ */
1269
+ pid: number;
1270
+ /**
1271
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1272
+ */
1273
+ address: number;
1274
+ }
1275
+
1276
+ /** Arguments for `mem_read_int32`. */
1277
+ export interface MemReadInt32Args {
1278
+ /**
1279
+ * Target process ID.
1280
+ */
1281
+ pid: number;
1282
+ /**
1283
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1284
+ */
1285
+ address: number;
1286
+ }
1287
+
1288
+ /** Arguments for `mem_read_int64`. */
1289
+ export interface MemReadInt64Args {
1290
+ /**
1291
+ * Target process ID.
1292
+ */
1293
+ pid: number;
1294
+ /**
1295
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1296
+ */
1297
+ address: number;
1298
+ }
1299
+
1300
+ /** Arguments for `mem_read_utf16`. */
1301
+ export interface MemReadUtf16Args {
1302
+ /**
1303
+ * Target process ID.
1304
+ */
1305
+ pid: number;
1306
+ /**
1307
+ * Virtual address to read from (decimal or 0x-prefixed hex).
1308
+ */
1309
+ address: number;
1310
+ /**
1311
+ * Maximum characters to read. Default 256, capped at 2048.
1312
+ * @default 256
1313
+ */
1314
+ maxChars?: number;
1315
+ }
1316
+
1317
+ /** Arguments for `mem_resume_process`. */
1318
+ export interface MemResumeProcessArgs {
1319
+ /**
1320
+ * Target process ID.
1321
+ */
1322
+ pid: number;
1323
+ }
1324
+
1325
+ /** Arguments for `mem_scan_aob`. */
1326
+ export interface MemScanAobArgs {
1327
+ /**
1328
+ * Target process ID.
1329
+ */
1330
+ pid: number;
1331
+ /**
1332
+ * Module name to scan within (e.g. 'engine.dll').
1333
+ */
1334
+ moduleName: string;
1335
+ /**
1336
+ * IDA-style byte pattern with '??' wildcards (e.g. '48 8B 05 ?? ?? ??').
1337
+ */
1338
+ pattern: string;
1339
+ /**
1340
+ * Maximum number of matches to return. Default 10, capped at 100.
1341
+ * @default 10
1342
+ */
1343
+ maxHits?: number;
1344
+ }
1345
+
1346
+ /** Arguments for `mem_scan_value_int32`. */
1347
+ export interface MemScanValueInt32Args {
1348
+ /**
1349
+ * Target process ID.
1350
+ */
1351
+ pid: number;
1352
+ /**
1353
+ * Value to search for.
1354
+ */
1355
+ value: number;
1356
+ /**
1357
+ * Maximum hits to return (default 200, capped at 5000).
1358
+ * @default 200
1359
+ */
1360
+ maxHits?: number;
1361
+ }
1362
+
1363
+ /** Arguments for `mem_suspend_process`. */
1364
+ export interface MemSuspendProcessArgs {
1365
+ /**
1366
+ * Target process ID.
1367
+ */
1368
+ pid: number;
1369
+ }
1370
+
1371
+ /** Arguments for `mem_write_bytes`. */
1372
+ export interface MemWriteBytesArgs {
1373
+ /**
1374
+ * Target process ID.
1375
+ */
1376
+ pid: number;
1377
+ /**
1378
+ * Virtual address to write to (decimal or 0x-prefixed hex).
1379
+ */
1380
+ address: number;
1381
+ /**
1382
+ * Hex string of bytes to write (e.g. 'deadbeef' or 'de ad be ef').
1383
+ */
1384
+ hex: string;
1385
+ }
1386
+
1387
+ /** Arguments for `mem_write_double`. */
1388
+ export interface MemWriteDoubleArgs {
1389
+ /**
1390
+ * Target process ID.
1391
+ */
1392
+ pid: number;
1393
+ /**
1394
+ * Virtual address (decimal or 0x-prefixed hex).
1395
+ */
1396
+ address: number;
1397
+ /**
1398
+ * Value to write.
1399
+ */
1400
+ value: number;
1401
+ }
1402
+
1403
+ /** Arguments for `mem_write_float`. */
1404
+ export interface MemWriteFloatArgs {
1405
+ /**
1406
+ * Target process ID.
1407
+ */
1408
+ pid: number;
1409
+ /**
1410
+ * Virtual address (decimal or 0x-prefixed hex).
1411
+ */
1412
+ address: number;
1413
+ /**
1414
+ * Value to write.
1415
+ */
1416
+ value: number;
1417
+ }
1418
+
1419
+ /** Arguments for `mem_write_int32`. */
1420
+ export interface MemWriteInt32Args {
1421
+ /**
1422
+ * Target process ID.
1423
+ */
1424
+ pid: number;
1425
+ /**
1426
+ * Virtual address (decimal or 0x-prefixed hex).
1427
+ */
1428
+ address: number;
1429
+ /**
1430
+ * Value to write.
1431
+ */
1432
+ value: number;
1433
+ }
1434
+
1435
+ /** Arguments for `mem_write_int64`. */
1436
+ export interface MemWriteInt64Args {
1437
+ /**
1438
+ * Target process ID.
1439
+ */
1440
+ pid: number;
1441
+ /**
1442
+ * Virtual address (decimal or 0x-prefixed hex).
1443
+ */
1444
+ address: number;
1445
+ /**
1446
+ * Value to write.
1447
+ */
1448
+ value: number;
1449
+ }
1450
+
1451
+ /** Arguments for `mouse_drag_to`. */
1452
+ export interface MouseDragToArgs {
1453
+ /**
1454
+ * Start X (screen pixels).
1455
+ */
1456
+ x1: number;
1457
+ /**
1458
+ * Start Y (screen pixels).
1459
+ */
1460
+ y1: number;
1461
+ /**
1462
+ * End X (screen pixels).
1463
+ */
1464
+ x2: number;
1465
+ /**
1466
+ * End Y (screen pixels).
1467
+ */
1468
+ y2: number;
1469
+ /**
1470
+ * Mouse button: left | right | middle.
1471
+ * @default "left"
1472
+ */
1473
+ button?: string;
1474
+ /**
1475
+ * Intermediate move events (8..200).
1476
+ * @default 20
1477
+ */
1478
+ steps?: number;
1479
+ /**
1480
+ * Total drag duration in ms (clamped 50..5000).
1481
+ * @default 250
1482
+ */
1483
+ durationMs?: number;
1484
+ }
1485
+
1486
+ /** Arguments for `mouse_move_smooth`. */
1487
+ export interface MouseMoveSmoothArgs {
1488
+ /**
1489
+ * Target X (screen pixels).
1490
+ */
1491
+ x: number;
1492
+ /**
1493
+ * Target Y (screen pixels).
1494
+ */
1495
+ y: number;
1496
+ /**
1497
+ * Intermediate move events (4..200).
1498
+ * @default 30
1499
+ */
1500
+ steps?: number;
1501
+ /**
1502
+ * Total duration in ms (clamped 30..3000).
1503
+ * @default 200
1504
+ */
1505
+ durationMs?: number;
1506
+ }
1507
+
1508
+ /** Arguments for `move`. */
1509
+ export interface MoveArgs {
1510
+ /**
1511
+ * X coordinate in screen pixels.
1512
+ */
1513
+ x: number;
1514
+ /**
1515
+ * Y coordinate in screen pixels.
1516
+ */
1517
+ y: number;
1518
+ /**
1519
+ * Left-button drag from current position to (x,y) when true; cursor move (hover) otherwise.
1520
+ * @default false
1521
+ */
1522
+ drag?: boolean;
1523
+ }
1524
+
1525
+ /** Arguments for `move_path`. */
1526
+ export interface MovePathArgs {
1527
+ /**
1528
+ * Source path (absolute or relative to Desktop).
1529
+ */
1530
+ path: string;
1531
+ /**
1532
+ * Destination path (absolute or relative to Desktop).
1533
+ */
1534
+ destination: string;
1535
+ /**
1536
+ * Overwrite existing destination.
1537
+ * @default false
1538
+ */
1539
+ overwrite?: boolean;
1540
+ }
1541
+
1542
+ /** Arguments for `multi_edit`. */
1543
+ export interface MultiEditArgs {
1544
+ /**
1545
+ * Comma-separated UIA element names to type into.
1546
+ */
1547
+ labels: string;
1548
+ /**
1549
+ * Text payload (applied identically to each target).
1550
+ */
1551
+ text: string;
1552
+ }
1553
+
1554
+ /** Arguments for `multi_select`. */
1555
+ export interface MultiSelectArgs {
1556
+ /**
1557
+ * Comma-separated UIA element names to click in order.
1558
+ */
1559
+ labels: string;
1560
+ }
1561
+
1562
+ /** Arguments for `perf_dwm_flush`. */
1563
+ export interface PerfDwmFlushArgs {
1564
+ }
1565
+
1566
+ /** Arguments for `perf_empty_working_sets`. */
1567
+ export interface PerfEmptyWorkingSetsArgs {
1568
+ }
1569
+
1570
+ /** Arguments for `perf_memory_status`. */
1571
+ export interface PerfMemoryStatusArgs {
1572
+ }
1573
+
1574
+ /** Arguments for `perf_purge_standby_list`. */
1575
+ export interface PerfPurgeStandbyListArgs {
1576
+ /**
1577
+ * Purge low-priority only (faster, safer) instead of the full standby list.
1578
+ * @default false
1579
+ */
1580
+ lowPriorityOnly?: boolean;
1581
+ }
1582
+
1583
+ /** Arguments for `perf_set_eco_mode`. */
1584
+ export interface PerfSetEcoModeArgs {
1585
+ /**
1586
+ * Target process ID.
1587
+ */
1588
+ pid: number;
1589
+ /**
1590
+ * 'on' (eco), 'off' (max perf), 'default' (clear overrides).
1591
+ * @default "on"
1592
+ */
1593
+ mode?: string;
1594
+ }
1595
+
1596
+ /** Arguments for `power_shell`. */
1597
+ export interface PowerShellArgs {
1598
+ /**
1599
+ * PowerShell command or script to execute.
1600
+ */
1601
+ command: string;
1602
+ /**
1603
+ * Timeout in seconds before the process is killed (default 30, max 600).
1604
+ * @default 30
1605
+ */
1606
+ timeoutSeconds?: number;
1607
+ }
1608
+
1609
+ /** Arguments for `query_event_log`. */
1610
+ export interface QueryEventLogArgs {
1611
+ /**
1612
+ * Event log channel name.
1613
+ */
1614
+ channel: string;
1615
+ /**
1616
+ * Maximum number of events to return (1..1000).
1617
+ * @default 50
1618
+ */
1619
+ maxEvents?: number;
1620
+ /**
1621
+ * Optional XPath filter, e.g. "*[System[Level=2]]".
1622
+ * @default null
1623
+ */
1624
+ xpathFilter?: string | null;
1625
+ }
1626
+
1627
+ /** Arguments for `read_file`. */
1628
+ export interface ReadFileArgs {
1629
+ /**
1630
+ * Absolute or relative path. Relative paths are resolved against the user's Desktop folder.
1631
+ */
1632
+ path: string;
1633
+ /**
1634
+ * Line offset (0-based). Default 0.
1635
+ * @default 0
1636
+ */
1637
+ offset?: number;
1638
+ /**
1639
+ * Maximum number of lines to read. 0 = no limit.
1640
+ * @default 0
1641
+ */
1642
+ limit?: number;
1643
+ }
1644
+
1645
+ /** Arguments for `resize_window`. */
1646
+ export interface ResizeWindowArgs {
1647
+ /**
1648
+ * Substring to match against the window title.
1649
+ */
1650
+ titleSubstring: string;
1651
+ /**
1652
+ * X coordinate (screen pixels).
1653
+ */
1654
+ x: number;
1655
+ /**
1656
+ * Y coordinate (screen pixels).
1657
+ */
1658
+ y: number;
1659
+ /**
1660
+ * New width (0 = keep current).
1661
+ * @default 0
1662
+ */
1663
+ width?: number;
1664
+ /**
1665
+ * New height (0 = keep current).
1666
+ * @default 0
1667
+ */
1668
+ height?: number;
1669
+ }
1670
+
1671
+ /** Arguments for `restart_service`. */
1672
+ export interface RestartServiceArgs {
1673
+ /**
1674
+ * Service short name.
1675
+ */
1676
+ name: string;
1677
+ }
1678
+
1679
+ /** Arguments for `run_scheduled_task`. */
1680
+ export interface RunScheduledTaskArgs {
1681
+ /**
1682
+ * Absolute task path.
1683
+ */
1684
+ path: string;
1685
+ }
1686
+
1687
+ /** Arguments for `scrape`. */
1688
+ export interface ScrapeArgs {
1689
+ /**
1690
+ * Absolute URL (http:// or https://). Other schemes are rejected.
1691
+ */
1692
+ url: string;
1693
+ }
1694
+
1695
+ /** Arguments for `screenshot`. */
1696
+ export interface ScreenshotArgs {
1697
+ /**
1698
+ * Output file path. If null, a timestamped file is written to %TEMP%.
1699
+ * @default null
1700
+ */
1701
+ outputPath?: string | null;
1702
+ }
1703
+
1704
+ /** Arguments for `scroll`. */
1705
+ export interface ScrollArgs {
1706
+ /**
1707
+ * X coordinate in screen pixels (cursor is moved here before scrolling).
1708
+ */
1709
+ x: number;
1710
+ /**
1711
+ * Y coordinate in screen pixels.
1712
+ */
1713
+ y: number;
1714
+ /**
1715
+ * Scroll axis: vertical | horizontal.
1716
+ * @default "vertical"
1717
+ */
1718
+ axis?: string;
1719
+ /**
1720
+ * Scroll direction: up | down | left | right.
1721
+ * @default "down"
1722
+ */
1723
+ direction?: string;
1724
+ /**
1725
+ * Number of wheel notches.
1726
+ * @default 1
1727
+ */
1728
+ wheelTimes?: number;
1729
+ }
1730
+
1731
+ /** Arguments for `search_files`. */
1732
+ export interface SearchFilesArgs {
1733
+ /**
1734
+ * Root path (absolute or relative to Desktop).
1735
+ */
1736
+ path: string;
1737
+ /**
1738
+ * Glob pattern, e.g. '*.log'.
1739
+ */
1740
+ pattern: string;
1741
+ /**
1742
+ * Recurse into subdirectories.
1743
+ * @default true
1744
+ */
1745
+ recursive?: boolean;
1746
+ /**
1747
+ * Basename glob patterns to omit; matching directories are not traversed.
1748
+ */
1749
+ exclude?: string[];
1750
+ }
1751
+
1752
+ /** Arguments for `search_windows`. */
1753
+ export interface SearchWindowsArgs {
1754
+ /**
1755
+ * Les mots clés de la recherche (nom de fichier ou contenu texte).
1756
+ */
1757
+ query: string;
1758
+ }
1759
+
1760
+ /** Arguments for `send_notification`. */
1761
+ export interface SendNotificationArgs {
1762
+ /**
1763
+ * Notification title (heading).
1764
+ */
1765
+ title: string;
1766
+ /**
1767
+ * Notification body message.
1768
+ */
1769
+ message: string;
1770
+ /**
1771
+ * AUMID for branded toasts. Ignored in this Win32 balloon implementation.
1772
+ * @default null
1773
+ */
1774
+ appId?: string | null;
1775
+ }
1776
+
1777
+ /** Arguments for `set_active_power_plan`. */
1778
+ export interface SetActivePowerPlanArgs {
1779
+ /**
1780
+ * GUID of the power plan to activate (with or without braces).
1781
+ */
1782
+ guid: string;
1783
+ }
1784
+
1785
+ /** Arguments for `set_clipboard_text`. */
1786
+ export interface SetClipboardTextArgs {
1787
+ /**
1788
+ * Text to copy to the clipboard.
1789
+ */
1790
+ text: string;
1791
+ }
1792
+
1793
+ /** Arguments for `set_gpu_preference`. */
1794
+ export interface SetGpuPreferenceArgs {
1795
+ /**
1796
+ * Absolute path to the executable.
1797
+ */
1798
+ exePath: string;
1799
+ /**
1800
+ * 'SystemDefault' | 'PowerSaving' | 'HighPerformance'
1801
+ */
1802
+ preference: string;
1803
+ }
1804
+
1805
+ /** Arguments for `set_hags_mode`. */
1806
+ export interface SetHagsModeArgs {
1807
+ /**
1808
+ * HwSchMode value: 0, 1, or 2.
1809
+ */
1810
+ mode: number;
1811
+ }
1812
+
1813
+ /** Arguments for `set_process_affinity`. */
1814
+ export interface SetProcessAffinityArgs {
1815
+ /**
1816
+ * Target process ID.
1817
+ */
1818
+ pid: number;
1819
+ /**
1820
+ * Affinity bitmask. Bit N = run on logical CPU N. 0 resets to system mask.
1821
+ */
1822
+ mask: number;
1823
+ }
1824
+
1825
+ /** Arguments for `set_process_priority`. */
1826
+ export interface SetProcessPriorityArgs {
1827
+ /**
1828
+ * Target process ID.
1829
+ */
1830
+ pid: number;
1831
+ /**
1832
+ * Priority class name (case-insensitive).
1833
+ */
1834
+ priority: string;
1835
+ }
1836
+
1837
+ /** Arguments for `set_registry_value`. */
1838
+ export interface SetRegistryValueArgs {
1839
+ /**
1840
+ * Key path including hive prefix, e.g. 'HKCU:\Software\MyApp'.
1841
+ */
1842
+ path: string;
1843
+ /**
1844
+ * Value name. Use '(default)' for the default unnamed value.
1845
+ */
1846
+ name: string;
1847
+ /**
1848
+ * Value contents as string (parsed per type).
1849
+ */
1850
+ value: string;
1851
+ /**
1852
+ * Type: String, ExpandString, DWord, QWord, MultiString.
1853
+ * @default "String"
1854
+ */
1855
+ type?: string;
1856
+ }
1857
+
1858
+ /** Arguments for `shortcut`. */
1859
+ export interface ShortcutArgs {
1860
+ /**
1861
+ * Shortcut string, e.g. 'ctrl+shift+esc'.
1862
+ */
1863
+ shortcut: string;
1864
+ }
1865
+
1866
+ /** Arguments for `snapshot`. */
1867
+ export interface SnapshotArgs {
1868
+ /**
1869
+ * Optional process name filter (reserved for compatibility; use windowHandle for exact targeting).
1870
+ * @default null
1871
+ */
1872
+ processName?: string | null;
1873
+ /**
1874
+ * Maximum number of UI elements to return (1..1000).
1875
+ * @default 200
1876
+ */
1877
+ maxElements?: number;
1878
+ /**
1879
+ * Exact HWND to inspect (0 = current foreground window).
1880
+ * @default 0
1881
+ */
1882
+ windowHandle?: number;
1883
+ }
1884
+
1885
+ /** Arguments for `start_service`. */
1886
+ export interface StartServiceArgs {
1887
+ /**
1888
+ * Service short name (e.g. 'wuauserv', 'BITS').
1889
+ */
1890
+ name: string;
1891
+ }
1892
+
1893
+ /** Arguments for `steam_get_game`. */
1894
+ export interface SteamGetGameArgs {
1895
+ /**
1896
+ * Steam AppID (integer).
1897
+ */
1898
+ appId: number;
1899
+ /**
1900
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
1901
+ * @default null
1902
+ */
1903
+ dbPath?: string | null;
1904
+ }
1905
+
1906
+ /** Arguments for `steam_get_game_status`. */
1907
+ export interface SteamGetGameStatusArgs {
1908
+ /**
1909
+ * Steam AppID (integer).
1910
+ */
1911
+ appId: number;
1912
+ /**
1913
+ * Override executable name (no .exe required). Defaults to install_dir + .exe.
1914
+ * @default null
1915
+ */
1916
+ executableName?: string | null;
1917
+ /**
1918
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
1919
+ * @default null
1920
+ */
1921
+ dbPath?: string | null;
1922
+ }
1923
+
1924
+ /** Arguments for `steam_kill_game`. */
1925
+ export interface SteamKillGameArgs {
1926
+ /**
1927
+ * Steam AppID (informational only).
1928
+ */
1929
+ appId: number;
1930
+ /**
1931
+ * Executable name to kill (no .exe required).
1932
+ */
1933
+ executableName: string;
1934
+ }
1935
+
1936
+ /** Arguments for `steam_launch_and_wait`. */
1937
+ export interface SteamLaunchAndWaitArgs {
1938
+ /**
1939
+ * Steam AppID (integer).
1940
+ */
1941
+ appId: number;
1942
+ /**
1943
+ * Executable name to watch for (no .exe required).
1944
+ */
1945
+ executableName: string;
1946
+ /**
1947
+ * Maximum wait in milliseconds. Default 60000.
1948
+ * @default 60000
1949
+ */
1950
+ timeoutMs?: number;
1951
+ }
1952
+
1953
+ /** Arguments for `steam_launch_by_app_id`. */
1954
+ export interface SteamLaunchByAppIdArgs {
1955
+ /**
1956
+ * Steam AppID (integer).
1957
+ */
1958
+ appId: number;
1959
+ }
1960
+
1961
+ /** Arguments for `steam_list_games`. */
1962
+ export interface SteamListGamesArgs {
1963
+ /**
1964
+ * Include games whose install directory is absent (files_present=0). Default false.
1965
+ * @default false
1966
+ */
1967
+ includeMissing?: boolean;
1968
+ /**
1969
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
1970
+ * @default null
1971
+ */
1972
+ dbPath?: string | null;
1973
+ }
1974
+
1975
+ /** Arguments for `steam_list_libraries`. */
1976
+ export interface SteamListLibrariesArgs {
1977
+ /**
1978
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
1979
+ * @default null
1980
+ */
1981
+ dbPath?: string | null;
1982
+ }
1983
+
1984
+ /** Arguments for `steam_open_uri`. */
1985
+ export interface SteamOpenUriArgs {
1986
+ /**
1987
+ * A steam:// URI, e.g. steam://store/2799860, steam://nav/console, steam://browsemedia.
1988
+ */
1989
+ steamUri: string;
1990
+ }
1991
+
1992
+ /** Arguments for `steam_scan_summary`. */
1993
+ export interface SteamScanSummaryArgs {
1994
+ /**
1995
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
1996
+ * @default null
1997
+ */
1998
+ dbPath?: string | null;
1999
+ }
2000
+
2001
+ /** Arguments for `steam_vault_status`. */
2002
+ export interface SteamVaultStatusArgs {
2003
+ /**
2004
+ * Absolute path to steam-scan.db. Default resolves via WINCLEAN_STEAM_SCAN_DB or <repo>/var/data/steam-scan.db.
2005
+ * @default null
2006
+ */
2007
+ dbPath?: string | null;
2008
+ }
2009
+
2010
+ /** Arguments for `steam_wait_for_launch`. */
2011
+ export interface SteamWaitForLaunchArgs {
2012
+ /**
2013
+ * Steam AppID (informational only, used in the response).
2014
+ */
2015
+ appId: number;
2016
+ /**
2017
+ * Executable name to watch for (no .exe required).
2018
+ */
2019
+ executableName: string;
2020
+ /**
2021
+ * Maximum wait in milliseconds. Default 60000.
2022
+ * @default 60000
2023
+ */
2024
+ timeoutMs?: number;
2025
+ /**
2026
+ * Poll interval in milliseconds. Default 500.
2027
+ * @default 500
2028
+ */
2029
+ pollMs?: number;
2030
+ }
2031
+
2032
+ /** Arguments for `stop_service`. */
2033
+ export interface StopServiceArgs {
2034
+ /**
2035
+ * Service short name (e.g. 'wuauserv', 'BITS').
2036
+ */
2037
+ name: string;
2038
+ }
2039
+
2040
+ /** Arguments for `switch_to_window`. */
2041
+ export interface SwitchToWindowArgs {
2042
+ /**
2043
+ * Substring to match against the window title.
2044
+ */
2045
+ titleSubstring: string;
2046
+ }
2047
+
2048
+ /** Arguments for `trim_process_working_set`. */
2049
+ export interface TrimProcessWorkingSetArgs {
2050
+ /**
2051
+ * Target process ID.
2052
+ */
2053
+ pid: number;
2054
+ }
2055
+
2056
+ /** Arguments for `type`. */
2057
+ export interface TypeArgs {
2058
+ /**
2059
+ * Text to type.
2060
+ */
2061
+ text: string;
2062
+ /**
2063
+ * X coordinate in screen pixels (the field will be focused via a left-click).
2064
+ */
2065
+ x: number;
2066
+ /**
2067
+ * Y coordinate in screen pixels.
2068
+ */
2069
+ y: number;
2070
+ /**
2071
+ * Clear the existing field contents first (Ctrl+A then Delete).
2072
+ * @default false
2073
+ */
2074
+ clear?: boolean;
2075
+ /**
2076
+ * Press ENTER after typing.
2077
+ * @default false
2078
+ */
2079
+ pressEnter?: boolean;
2080
+ }
2081
+
2082
+ /** Arguments for `wait`. */
2083
+ export interface WaitArgs {
2084
+ /**
2085
+ * Sleep duration in seconds (clamped to [1,120]).
2086
+ */
2087
+ seconds: number;
2088
+ }
2089
+
2090
+ /** Arguments for `window_capture`. */
2091
+ export interface WindowCaptureArgs {
2092
+ /**
2093
+ * Target HWND.
2094
+ */
2095
+ hwnd: number;
2096
+ /**
2097
+ * Output BMP path. Empty = auto in %TEMP%.
2098
+ * @default null
2099
+ */
2100
+ outputPath?: string | null;
2101
+ /**
2102
+ * Render the full window content via DWM (recommended). False = client-area only.
2103
+ * @default true
2104
+ */
2105
+ fullContent?: boolean;
2106
+ }
2107
+
2108
+ /** Arguments for `window_close`. */
2109
+ export interface WindowCloseArgs {
2110
+ /**
2111
+ * Target HWND.
2112
+ */
2113
+ hwnd: number;
2114
+ }
2115
+
2116
+ /** Arguments for `window_enum_all`. */
2117
+ export interface WindowEnumAllArgs {
2118
+ /**
2119
+ * Filter by process ID (0 = any).
2120
+ * @default 0
2121
+ */
2122
+ pid?: number;
2123
+ /**
2124
+ * Substring match on window class name (empty = any).
2125
+ * @default ""
2126
+ */
2127
+ classFilter?: string;
2128
+ /**
2129
+ * Substring match on window title (empty = any).
2130
+ * @default ""
2131
+ */
2132
+ titleFilter?: string;
2133
+ /**
2134
+ * Include invisible windows (default true).
2135
+ * @default true
2136
+ */
2137
+ includeHidden?: boolean;
2138
+ }
2139
+
2140
+ /** Arguments for `window_enum_children`. */
2141
+ export interface WindowEnumChildrenArgs {
2142
+ /**
2143
+ * Parent HWND (signed 64-bit).
2144
+ */
2145
+ parentHwnd: number;
2146
+ }
2147
+
2148
+ /** Arguments for `window_find_by_class`. */
2149
+ export interface WindowFindByClassArgs {
2150
+ /**
2151
+ * Exact window class name (case-sensitive).
2152
+ */
2153
+ className: string;
2154
+ /**
2155
+ * Optional exact window title (empty = any).
2156
+ * @default ""
2157
+ */
2158
+ title?: string;
2159
+ }
2160
+
2161
+ /** Arguments for `window_get_text`. */
2162
+ export interface WindowGetTextArgs {
2163
+ /**
2164
+ * Target HWND.
2165
+ */
2166
+ hwnd: number;
2167
+ }
2168
+
2169
+ /** Arguments for `window_minimise_all`. */
2170
+ export interface WindowMinimiseAllArgs {
2171
+ }
2172
+
2173
+ /** Arguments for `window_move`. */
2174
+ export interface WindowMoveArgs {
2175
+ /**
2176
+ * Target HWND.
2177
+ */
2178
+ hwnd: number;
2179
+ /**
2180
+ * New X (screen pixels).
2181
+ */
2182
+ x: number;
2183
+ /**
2184
+ * New Y (screen pixels).
2185
+ */
2186
+ y: number;
2187
+ /**
2188
+ * New width (0 = keep).
2189
+ * @default 0
2190
+ */
2191
+ width?: number;
2192
+ /**
2193
+ * New height (0 = keep).
2194
+ * @default 0
2195
+ */
2196
+ height?: number;
2197
+ }
2198
+
2199
+ /** Arguments for `window_post_message`. */
2200
+ export interface WindowPostMessageArgs {
2201
+ /**
2202
+ * Target HWND.
2203
+ */
2204
+ hwnd: number;
2205
+ /**
2206
+ * Message id (decimal or 0x-prefixed hex).
2207
+ */
2208
+ msg: number;
2209
+ /**
2210
+ * wParam.
2211
+ * @default 0
2212
+ */
2213
+ wParam?: number;
2214
+ /**
2215
+ * lParam.
2216
+ * @default 0
2217
+ */
2218
+ lParam?: number;
2219
+ }
2220
+
2221
+ /** Arguments for `window_send_message`. */
2222
+ export interface WindowSendMessageArgs {
2223
+ /**
2224
+ * Target HWND.
2225
+ */
2226
+ hwnd: number;
2227
+ /**
2228
+ * Message id (decimal or 0x-prefixed hex).
2229
+ */
2230
+ msg: number;
2231
+ /**
2232
+ * wParam.
2233
+ * @default 0
2234
+ */
2235
+ wParam?: number;
2236
+ /**
2237
+ * lParam.
2238
+ * @default 0
2239
+ */
2240
+ lParam?: number;
2241
+ }
2242
+
2243
+ /** Arguments for `window_set_opacity`. */
2244
+ export interface WindowSetOpacityArgs {
2245
+ /**
2246
+ * Target HWND.
2247
+ */
2248
+ hwnd: number;
2249
+ /**
2250
+ * Alpha 0..255 (255 = opaque).
2251
+ */
2252
+ alpha: number;
2253
+ /**
2254
+ * Make the window click-through (input passes underneath).
2255
+ * @default false
2256
+ */
2257
+ clickThrough?: boolean;
2258
+ }
2259
+
2260
+ /** Arguments for `window_set_text`. */
2261
+ export interface WindowSetTextArgs {
2262
+ /**
2263
+ * Target HWND.
2264
+ */
2265
+ hwnd: number;
2266
+ /**
2267
+ * New text (UTF-16).
2268
+ */
2269
+ text: string;
2270
+ }
2271
+
2272
+ /** Arguments for `window_set_topmost`. */
2273
+ export interface WindowSetTopmostArgs {
2274
+ /**
2275
+ * Target HWND.
2276
+ */
2277
+ hwnd: number;
2278
+ /**
2279
+ * true = pin topmost, false = release.
2280
+ * @default true
2281
+ */
2282
+ topmost?: boolean;
2283
+ }
2284
+
2285
+ /** Arguments for `winml_get_version`. */
2286
+ export interface WinmlGetVersionArgs {
2287
+ }
2288
+
2289
+ /** Arguments for `winml_inspect_onnx`. */
2290
+ export interface WinmlInspectOnnxArgs {
2291
+ /**
2292
+ * Absolute path to a .onnx model file.
2293
+ */
2294
+ modelPath: string;
2295
+ }
2296
+
2297
+ /** Arguments for `winml_list_providers`. */
2298
+ export interface WinmlListProvidersArgs {
2299
+ }
2300
+
2301
+ /** Arguments for `winml_run_float32`. */
2302
+ export interface WinmlRunFloat32Args {
2303
+ /**
2304
+ * Absolute path to a .onnx model file.
2305
+ */
2306
+ modelPath: string;
2307
+ /**
2308
+ * JSON map of input name -> { shape: int[], data: float[] }.
2309
+ */
2310
+ inputsJson: string;
2311
+ /**
2312
+ * 'cpu' | 'dml' | 'cuda'. Default 'cpu'.
2313
+ * @default "cpu"
2314
+ */
2315
+ executionProvider?: string;
2316
+ }
2317
+
2318
+ /** Arguments for `write_file`. */
2319
+ export interface WriteFileArgs {
2320
+ /**
2321
+ * Absolute or relative path. Relative paths are resolved against the user's Desktop folder.
2322
+ */
2323
+ path: string;
2324
+ /**
2325
+ * Text content to write.
2326
+ */
2327
+ content: string;
2328
+ /**
2329
+ * Append to existing content instead of overwriting.
2330
+ * @default false
2331
+ */
2332
+ append?: boolean;
2333
+ }
2334
+
2335
+ /** Arguments for `wsl_execute`. */
2336
+ export interface WslExecuteArgs {
2337
+ /**
2338
+ * Exact distribution name returned by wsl_list_distributions.
2339
+ */
2340
+ distribution: string;
2341
+ /**
2342
+ * Executable followed by its arguments; 1..64 values, no control characters.
2343
+ */
2344
+ command: string[];
2345
+ }
2346
+
2347
+ /** Arguments for `wsl_get_status`. */
2348
+ export interface WslGetStatusArgs {
2349
+ }
2350
+
2351
+ /** Arguments for `wsl_list_distributions`. */
2352
+ export interface WslListDistributionsArgs {
2353
+ }
2354
+
2355
+ /** Arguments for `wsl_list_processes`. */
2356
+ export interface WslListProcessesArgs {
2357
+ /**
2358
+ * Exact distribution name returned by wsl_list_distributions.
2359
+ */
2360
+ distribution: string;
2361
+ }
2362
+
2363
+ /** Arguments for `wsl_read_only_probe`. */
2364
+ export interface WslReadOnlyProbeArgs {
2365
+ /**
2366
+ * Exact distribution name returned by wsl_list_distributions.
2367
+ */
2368
+ distribution: string;
2369
+ /**
2370
+ * One of: system-info, re-toolchain, processes, mounts, network.
2371
+ */
2372
+ probe: string;
2373
+ }
2374
+
2375
+ /** Arguments for `wsl_send_signal`. */
2376
+ export interface WslSendSignalArgs {
2377
+ /**
2378
+ * Exact distribution name returned by wsl_list_distributions.
2379
+ */
2380
+ distribution: string;
2381
+ /**
2382
+ * Exact positive Linux PID returned by wsl_list_processes.
2383
+ */
2384
+ processId: number;
2385
+ /**
2386
+ * HUP, INT, TERM, or KILL.
2387
+ * @default "TERM"
2388
+ */
2389
+ signal?: string;
2390
+ }
2391
+
2392
+ export type ToolArgsMap = {
2393
+ "analyze_pe": AnalyzePeArgs;
2394
+ "aob_scan": AobScanArgs;
2395
+ "asar_list": AsarListArgs;
2396
+ "binary_aes_ctr_decrypt": BinaryAesCtrDecryptArgs;
2397
+ "binary_entropy_map": BinaryEntropyMapArgs;
2398
+ "binary_extract_strings": BinaryExtractStringsArgs;
2399
+ "binary_hash_multi": BinaryHashMultiArgs;
2400
+ "binary_list_cpk": BinaryListCpkArgs;
2401
+ "binary_parse_pe_header": BinaryParsePeHeaderArgs;
2402
+ "binary_section_dump": BinarySectionDumpArgs;
2403
+ "binary_xor_decrypt": BinaryXorDecryptArgs;
2404
+ "click": ClickArgs;
2405
+ "computer_capture_screen": ComputerCaptureScreenArgs;
2406
+ "computer_click": ComputerClickArgs;
2407
+ "computer_click_element": ComputerClickElementArgs;
2408
+ "computer_drag": ComputerDragArgs;
2409
+ "computer_key": ComputerKeyArgs;
2410
+ "computer_observe": ComputerObserveArgs;
2411
+ "computer_ocr": ComputerOcrArgs;
2412
+ "computer_record_clip": ComputerRecordClipArgs;
2413
+ "computer_scroll": ComputerScrollArgs;
2414
+ "computer_speak": ComputerSpeakArgs;
2415
+ "computer_type": ComputerTypeArgs;
2416
+ "coord_assign_task": CoordAssignTaskArgs;
2417
+ "coord_query_stop": CoordQueryStopArgs;
2418
+ "coord_read_status": CoordReadStatusArgs;
2419
+ "coord_read_task": CoordReadTaskArgs;
2420
+ "coord_report_status": CoordReportStatusArgs;
2421
+ "copy_path": CopyPathArgs;
2422
+ "delete_path": DeletePathArgs;
2423
+ "delete_registry_entry": DeleteRegistryEntryArgs;
2424
+ "disable_scheduled_task": DisableScheduledTaskArgs;
2425
+ "enable_scheduled_task": EnableScheduledTaskArgs;
2426
+ "gamepad_create_xbox360": GamepadCreateXbox360Args;
2427
+ "gamepad_destroy": GamepadDestroyArgs;
2428
+ "gamepad_destroy_all": GamepadDestroyAllArgs;
2429
+ "gamepad_environment": GamepadEnvironmentArgs;
2430
+ "gamepad_press_button": GamepadPressButtonArgs;
2431
+ "gamepad_send_xbox360_state": GamepadSendXbox360StateArgs;
2432
+ "get_active_power_plan": GetActivePowerPlanArgs;
2433
+ "get_clipboard_text": GetClipboardTextArgs;
2434
+ "get_cpu_info": GetCpuInfoArgs;
2435
+ "get_cpu_usage": GetCpuUsageArgs;
2436
+ "get_defender_status": GetDefenderStatusArgs;
2437
+ "get_disk_info": GetDiskInfoArgs;
2438
+ "get_file_info": GetFileInfoArgs;
2439
+ "get_gpu_preferences": GetGpuPreferencesArgs;
2440
+ "get_hags_mode": GetHagsModeArgs;
2441
+ "get_memory_info": GetMemoryInfoArgs;
2442
+ "get_network_adapters": GetNetworkAdaptersArgs;
2443
+ "get_os_info": GetOsInfoArgs;
2444
+ "get_registry_value": GetRegistryValueArgs;
2445
+ "get_system_profile": GetSystemProfileArgs;
2446
+ "golang_scan": GolangScanArgs;
2447
+ "keyboard_hold": KeyboardHoldArgs;
2448
+ "keyboard_release": KeyboardReleaseArgs;
2449
+ "keyboard_scan_code": KeyboardScanCodeArgs;
2450
+ "kill_process": KillProcessArgs;
2451
+ "launch_app": LaunchAppArgs;
2452
+ "list_directory": ListDirectoryArgs;
2453
+ "list_listening_ports": ListListeningPortsArgs;
2454
+ "list_power_plans": ListPowerPlansArgs;
2455
+ "list_processes": ListProcessesArgs;
2456
+ "list_registry_key": ListRegistryKeyArgs;
2457
+ "list_scheduled_tasks": ListScheduledTasksArgs;
2458
+ "list_services": ListServicesArgs;
2459
+ "list_tcp_connections": ListTcpConnectionsArgs;
2460
+ "list_windows": ListWindowsArgs;
2461
+ "mem_allocate": MemAllocateArgs;
2462
+ "mem_dump_region": MemDumpRegionArgs;
2463
+ "mem_enable_debug_privilege": MemEnableDebugPrivilegeArgs;
2464
+ "mem_free": MemFreeArgs;
2465
+ "mem_get_module_base": MemGetModuleBaseArgs;
2466
+ "mem_list_modules": MemListModulesArgs;
2467
+ "mem_list_processes": MemListProcessesArgs;
2468
+ "mem_protect": MemProtectArgs;
2469
+ "mem_query_region": MemQueryRegionArgs;
2470
+ "mem_read_bytes": MemReadBytesArgs;
2471
+ "mem_read_c_string": MemReadCStringArgs;
2472
+ "mem_read_double": MemReadDoubleArgs;
2473
+ "mem_read_float": MemReadFloatArgs;
2474
+ "mem_read_int32": MemReadInt32Args;
2475
+ "mem_read_int64": MemReadInt64Args;
2476
+ "mem_read_utf16": MemReadUtf16Args;
2477
+ "mem_resume_process": MemResumeProcessArgs;
2478
+ "mem_scan_aob": MemScanAobArgs;
2479
+ "mem_scan_value_int32": MemScanValueInt32Args;
2480
+ "mem_suspend_process": MemSuspendProcessArgs;
2481
+ "mem_write_bytes": MemWriteBytesArgs;
2482
+ "mem_write_double": MemWriteDoubleArgs;
2483
+ "mem_write_float": MemWriteFloatArgs;
2484
+ "mem_write_int32": MemWriteInt32Args;
2485
+ "mem_write_int64": MemWriteInt64Args;
2486
+ "mouse_drag_to": MouseDragToArgs;
2487
+ "mouse_move_smooth": MouseMoveSmoothArgs;
2488
+ "move": MoveArgs;
2489
+ "move_path": MovePathArgs;
2490
+ "multi_edit": MultiEditArgs;
2491
+ "multi_select": MultiSelectArgs;
2492
+ "perf_dwm_flush": PerfDwmFlushArgs;
2493
+ "perf_empty_working_sets": PerfEmptyWorkingSetsArgs;
2494
+ "perf_memory_status": PerfMemoryStatusArgs;
2495
+ "perf_purge_standby_list": PerfPurgeStandbyListArgs;
2496
+ "perf_set_eco_mode": PerfSetEcoModeArgs;
2497
+ "power_shell": PowerShellArgs;
2498
+ "query_event_log": QueryEventLogArgs;
2499
+ "read_file": ReadFileArgs;
2500
+ "resize_window": ResizeWindowArgs;
2501
+ "restart_service": RestartServiceArgs;
2502
+ "run_scheduled_task": RunScheduledTaskArgs;
2503
+ "scrape": ScrapeArgs;
2504
+ "screenshot": ScreenshotArgs;
2505
+ "scroll": ScrollArgs;
2506
+ "search_files": SearchFilesArgs;
2507
+ "search_windows": SearchWindowsArgs;
2508
+ "send_notification": SendNotificationArgs;
2509
+ "set_active_power_plan": SetActivePowerPlanArgs;
2510
+ "set_clipboard_text": SetClipboardTextArgs;
2511
+ "set_gpu_preference": SetGpuPreferenceArgs;
2512
+ "set_hags_mode": SetHagsModeArgs;
2513
+ "set_process_affinity": SetProcessAffinityArgs;
2514
+ "set_process_priority": SetProcessPriorityArgs;
2515
+ "set_registry_value": SetRegistryValueArgs;
2516
+ "shortcut": ShortcutArgs;
2517
+ "snapshot": SnapshotArgs;
2518
+ "start_service": StartServiceArgs;
2519
+ "steam_get_game": SteamGetGameArgs;
2520
+ "steam_get_game_status": SteamGetGameStatusArgs;
2521
+ "steam_kill_game": SteamKillGameArgs;
2522
+ "steam_launch_and_wait": SteamLaunchAndWaitArgs;
2523
+ "steam_launch_by_app_id": SteamLaunchByAppIdArgs;
2524
+ "steam_list_games": SteamListGamesArgs;
2525
+ "steam_list_libraries": SteamListLibrariesArgs;
2526
+ "steam_open_uri": SteamOpenUriArgs;
2527
+ "steam_scan_summary": SteamScanSummaryArgs;
2528
+ "steam_vault_status": SteamVaultStatusArgs;
2529
+ "steam_wait_for_launch": SteamWaitForLaunchArgs;
2530
+ "stop_service": StopServiceArgs;
2531
+ "switch_to_window": SwitchToWindowArgs;
2532
+ "trim_process_working_set": TrimProcessWorkingSetArgs;
2533
+ "type": TypeArgs;
2534
+ "wait": WaitArgs;
2535
+ "window_capture": WindowCaptureArgs;
2536
+ "window_close": WindowCloseArgs;
2537
+ "window_enum_all": WindowEnumAllArgs;
2538
+ "window_enum_children": WindowEnumChildrenArgs;
2539
+ "window_find_by_class": WindowFindByClassArgs;
2540
+ "window_get_text": WindowGetTextArgs;
2541
+ "window_minimise_all": WindowMinimiseAllArgs;
2542
+ "window_move": WindowMoveArgs;
2543
+ "window_post_message": WindowPostMessageArgs;
2544
+ "window_send_message": WindowSendMessageArgs;
2545
+ "window_set_opacity": WindowSetOpacityArgs;
2546
+ "window_set_text": WindowSetTextArgs;
2547
+ "window_set_topmost": WindowSetTopmostArgs;
2548
+ "winml_get_version": WinmlGetVersionArgs;
2549
+ "winml_inspect_onnx": WinmlInspectOnnxArgs;
2550
+ "winml_list_providers": WinmlListProvidersArgs;
2551
+ "winml_run_float32": WinmlRunFloat32Args;
2552
+ "write_file": WriteFileArgs;
2553
+ "wsl_execute": WslExecuteArgs;
2554
+ "wsl_get_status": WslGetStatusArgs;
2555
+ "wsl_list_distributions": WslListDistributionsArgs;
2556
+ "wsl_list_processes": WslListProcessesArgs;
2557
+ "wsl_read_only_probe": WslReadOnlyProbeArgs;
2558
+ "wsl_send_signal": WslSendSignalArgs;
2559
+ };
2560
+
2561
+ /** One typed async method per WinClean tool. */
2562
+ export abstract class GeneratedTools {
2563
+ abstract call<N extends ToolName>(name: N, args?: ToolArgsMap[N]): Promise<ToolResult>;
2564
+
2565
+ /**
2566
+ * Performs static analysis and symbol recovery on a target Windows PE binary (.exe or .dll). Recovers sections, imports, entry point disassembly, and maps symbols using heuristics (no execution).
2567
+ */
2568
+ analyzePe(args: AnalyzePeArgs): Promise<ToolResult> {
2569
+ return this.call("analyze_pe", args);
2570
+ }
2571
+
2572
+ /**
2573
+ * Scans raw file bytes for an Array of Bytes (AOB) pattern with optional wildcards (? or ??). Pattern format: '48 8B ? ? 48 89' or 'E8 ? ? ? ? 85 C0'. Returns matching offsets in the binary.
2574
+ */
2575
+ aobScan(args: AobScanArgs): Promise<ToolResult> {
2576
+ return this.call("aob_scan", args);
2577
+ }
2578
+
2579
+ /**
2580
+ * Lists files contained inside an Electron ASAR archive (.asar) without extraction or execution. Returns relative paths, offsets, and sizes.
2581
+ */
2582
+ asarList(args: AsarListArgs): Promise<ToolResult> {
2583
+ return this.call("asar_list", args);
2584
+ }
2585
+
2586
+ /**
2587
+ * AES-128/256-CTR decryption of a file using caller-supplied key (hex) and 16-byte IV (hex). Streams large files. Returns sha256 of the plaintext. Key must be 16 or 32 bytes; IV must be 16 bytes.
2588
+ */
2589
+ binaryAesCtrDecrypt(args: BinaryAesCtrDecryptArgs): Promise<ToolResult> {
2590
+ return this.call("binary_aes_ctr_decrypt", args);
2591
+ }
2592
+
2593
+ /**
2594
+ * Computes Shannon entropy (0..8 bits/byte) per fixed-size block. High entropy (>=7.5) typically indicates encryption or compression. Helps locate packed sections in a binary without disassembling.
2595
+ */
2596
+ binaryEntropyMap(args: BinaryEntropyMapArgs): Promise<ToolResult> {
2597
+ return this.call("binary_entropy_map", args);
2598
+ }
2599
+
2600
+ /**
2601
+ * Extracts printable ASCII and UTF-16LE strings of >=minLength characters from a file. Returns up to maxResults entries with offset, encoding (ascii/utf16), and the string. Streams the file in 1 MiB chunks — works on large binaries.
2602
+ */
2603
+ binaryExtractStrings(args: BinaryExtractStringsArgs): Promise<ToolResult> {
2604
+ return this.call("binary_extract_strings", args);
2605
+ }
2606
+
2607
+ /**
2608
+ * Computes MD5 + SHA1 + SHA256 of a file in a single pass. Streams the file (any size). Returns all three hex digests.
2609
+ */
2610
+ binaryHashMulti(args: BinaryHashMultiArgs): Promise<ToolResult> {
2611
+ return this.call("binary_hash_multi", args);
2612
+ }
2613
+
2614
+ /**
2615
+ * Lists files inside a CRIWARE CPK archive (used by Inazuma Eleven Victory Road, many Japanese games). Parses the @UTF table at the start of the file. Returns up to maxEntries rows with internal path, offset, size, compressed size, CRC32.
2616
+ */
2617
+ binaryListCpk(args: BinaryListCpkArgs): Promise<ToolResult> {
2618
+ return this.call("binary_list_cpk", args);
2619
+ }
2620
+
2621
+ /**
2622
+ * Parses the PE/COFF header of a Windows executable or DLL. Returns machine (x64/arm64/x86), characteristics, image base, entry RVA, subsystem (gui/console), is64bit flag, and section table (name + RVA + size + flags).
2623
+ */
2624
+ binaryParsePeHeader(args: BinaryParsePeHeaderArgs): Promise<ToolResult> {
2625
+ return this.call("binary_parse_pe_header", args);
2626
+ }
2627
+
2628
+ /**
2629
+ * Dumps one named section (e.g. '.text', '.rdata', '.rsrc') of a PE file to outputPath. Returns offset, size, sha256.
2630
+ */
2631
+ binarySectionDump(args: BinarySectionDumpArgs): Promise<ToolResult> {
2632
+ return this.call("binary_section_dump", args);
2633
+ }
2634
+
2635
+ /**
2636
+ * Writes 'decrypted' = encryptedFile XOR repeating-key to outputPath. Key in hex (e.g. 'A5 5A 12' or 'A55A12'). Streams large files. If the encryption is a single-byte XOR, pass one byte. Returns sha256 of result.
2637
+ */
2638
+ binaryXorDecrypt(args: BinaryXorDecryptArgs): Promise<ToolResult> {
2639
+ return this.call("binary_xor_decrypt", args);
2640
+ }
2641
+
2642
+ /**
2643
+ * Performs a mouse click at the given screen coordinates. button: 'left' | 'right' | 'middle'. clicks: 0 = hover only, 1 = single click, 2 = double click.
2644
+ */
2645
+ click(args: ClickArgs): Promise<ToolResult> {
2646
+ return this.call("click", args);
2647
+ }
2648
+
2649
+ /**
2650
+ * Captures the primary desktop as a PNG image content block for visual computer use. Returns the screen dimensions and coordinate space in a text block before the image. Use computer_observe for a specific application and its UI Automation tree.
2651
+ */
2652
+ computerCaptureScreen(args?: ComputerCaptureScreenArgs): Promise<ToolResult> {
2653
+ return this.call("computer_capture_screen", args);
2654
+ }
2655
+
2656
+ /**
2657
+ * Clicks a point in the selected application using native mouse input. x/y are relative to the outer window rectangle returned by computer_observe. The window is restored and focused by default. Re-observe after the click because menus and layouts may change.
2658
+ */
2659
+ computerClick(args: ComputerClickArgs): Promise<ToolResult> {
2660
+ return this.call("computer_click", args);
2661
+ }
2662
+
2663
+ /**
2664
+ * Finds one UI Automation element in a selected application and clicks its center. Prefer automationId when present, otherwise use an exact name, className or controlType from the latest computer_observe result. If multiple elements match, set occurrence (zero-based) or the tool returns the candidates without clicking.
2665
+ */
2666
+ computerClickElement(args: ComputerClickElementArgs): Promise<ToolResult> {
2667
+ return this.call("computer_click_element", args);
2668
+ }
2669
+
2670
+ /**
2671
+ * Drags inside a selected application with interpolated native mouse movement. Coordinates are relative to the latest observed window image. Use this for canvas operations in Blender, Photoshop and similar software, then capture a fresh observation to verify the result.
2672
+ */
2673
+ computerDrag(args: ComputerDragArgs): Promise<ToolResult> {
2674
+ return this.call("computer_drag", args);
2675
+ }
2676
+
2677
+ /**
2678
+ * Sends a keyboard key or shortcut to a selected application using SendInput. Examples: ctrl+c, ctrl+shift+s, alt+f4, enter, tab, escape, f5. Windows-key shortcuts are intentionally rejected by this computer-use surface. Re-observe after actions that change UI.
2679
+ */
2680
+ computerKey(args: ComputerKeyArgs): Promise<ToolResult> {
2681
+ return this.call("computer_key", args);
2682
+ }
2683
+
2684
+ /**
2685
+ * Observes a Windows application for computer use. Returns structured window metadata and a native UI Automation tree as text, plus a PNG image content block when capture succeeds. windowHandle=0 selects the foreground window; otherwise use an exact HWND returned by window_enum_all. Coordinates in later computer_* actions are relative to this window image. Use this before every state-dependent click, type or drag.
2686
+ */
2687
+ computerObserve(args?: ComputerObserveArgs): Promise<ToolResult> {
2688
+ return this.call("computer_observe", args);
2689
+ }
2690
+
2691
+ /**
2692
+ * Runs local Windows OCR over the selected application screenshot and returns exact text with line/word bounding boxes. region coordinates are relative to the observed window image. format=json returns structured OCR; format=markdown returns the extracted text as Markdown. Set speak=true to synthesize and play the result with the installed Windows voice.
2693
+ */
2694
+ computerOcr(args?: ComputerOcrArgs): Promise<ToolResult> {
2695
+ return this.call("computer_ocr", args);
2696
+ }
2697
+
2698
+ /**
2699
+ * Records a bounded, exportable clip of a window or the primary desktop as an uncompressed AVI. The clip is written locally without ffmpeg or a cloud service. durationMs is 1..30000 and fps is 1..30.
2700
+ */
2701
+ computerRecordClip(args?: ComputerRecordClipArgs): Promise<ToolResult> {
2702
+ return this.call("computer_record_clip", args);
2703
+ }
2704
+
2705
+ /**
2706
+ * Scrolls a selected application using native wheel input. x/y are relative to the observed window image and identify the pane under the cursor. Re-observe after scrolling because lazy-loaded content and UI layouts can change.
2707
+ */
2708
+ computerScroll(args: ComputerScrollArgs): Promise<ToolResult> {
2709
+ return this.call("computer_scroll", args);
2710
+ }
2711
+
2712
+ /**
2713
+ * Speaks text using the installed local Windows speech synthesizer and plays it immediately. No cloud API or key is used. Returns the generated WAV path for export or later playback.
2714
+ */
2715
+ computerSpeak(args: ComputerSpeakArgs): Promise<ToolResult> {
2716
+ return this.call("computer_speak", args);
2717
+ }
2718
+
2719
+ /**
2720
+ * Types literal Unicode text into a selected application. Focuses the point first; set clear=true to replace the current field. x/y are relative to the observed window image. Maximum payload is 4096 characters per call. Re-observe before submitting or pressing Enter.
2721
+ */
2722
+ computerType(args: ComputerTypeArgs): Promise<ToolResult> {
2723
+ return this.call("computer_type", args);
2724
+ }
2725
+
2726
+ /**
2727
+ * Publish a new .coord/CURRENT_TASK.md. The full body is the markdown content. Returns JSON {ok,bytes,path}.
2728
+ */
2729
+ coordAssignTask(args: CoordAssignTaskArgs): Promise<ToolResult> {
2730
+ return this.call("coord_assign_task", args);
2731
+ }
2732
+
2733
+ /**
2734
+ * Check the A2A kill switch — presence of .coord/STOP. Returns JSON {ok,stop:true|false}.
2735
+ */
2736
+ coordQueryStop(args?: CoordQueryStopArgs): Promise<ToolResult> {
2737
+ return this.call("coord_query_stop", args);
2738
+ }
2739
+
2740
+ /**
2741
+ * Read the latest status block for an agent from .coord/STATUS_<AGENT>.txt. Returns JSON {ok,agent,status} (status='' when the file is absent).
2742
+ */
2743
+ coordReadStatus(args: CoordReadStatusArgs): Promise<ToolResult> {
2744
+ return this.call("coord_read_status", args);
2745
+ }
2746
+
2747
+ /**
2748
+ * Read the current .coord/CURRENT_TASK.md. Returns JSON {ok,content} (content='' when absent).
2749
+ */
2750
+ coordReadTask(args?: CoordReadTaskArgs): Promise<ToolResult> {
2751
+ return this.call("coord_read_task", args);
2752
+ }
2753
+
2754
+ /**
2755
+ * Write the status block for an agent. The block goes to .coord/STATUS_<AGENT>.txt where <AGENT> is the upper-case form of `agent`. Returns JSON {ok,agent,bytes}.
2756
+ */
2757
+ coordReportStatus(args: CoordReportStatusArgs): Promise<ToolResult> {
2758
+ return this.call("coord_report_status", args);
2759
+ }
2760
+
2761
+ /**
2762
+ * Copies a file or directory to a destination.
2763
+ */
2764
+ copyPath(args: CopyPathArgs): Promise<ToolResult> {
2765
+ return this.call("copy_path", args);
2766
+ }
2767
+
2768
+ /**
2769
+ * Deletes a file or directory. Set recursive=true for non-empty directories.
2770
+ */
2771
+ deletePath(args: DeletePathArgs): Promise<ToolResult> {
2772
+ return this.call("delete_path", args);
2773
+ }
2774
+
2775
+ /**
2776
+ * Deletes a registry value (when name is set) or the entire key (when name is null/empty).
2777
+ */
2778
+ deleteRegistryEntry(args: DeleteRegistryEntryArgs): Promise<ToolResult> {
2779
+ return this.call("delete_registry_entry", args);
2780
+ }
2781
+
2782
+ /**
2783
+ * Disables a scheduled task via schtasks /Change /Disable.
2784
+ */
2785
+ disableScheduledTask(args: DisableScheduledTaskArgs): Promise<ToolResult> {
2786
+ return this.call("disable_scheduled_task", args);
2787
+ }
2788
+
2789
+ /**
2790
+ * Enables a scheduled task via schtasks /Change /Enable.
2791
+ */
2792
+ enableScheduledTask(args: EnableScheduledTaskArgs): Promise<ToolResult> {
2793
+ return this.call("enable_scheduled_task", args);
2794
+ }
2795
+
2796
+ /**
2797
+ * Allocates a virtual Xbox 360 controller via ViGEmBus and connects it to the system. The virtual controller is indexed by slotIndex (0–7). Returns {"success":true,"slot":N,"vendorId":"045e","productId":"028e"} on success. Requires ViGEmBus: https://github.com/nefarius/ViGEmBus/releases
2798
+ */
2799
+ gamepadCreateXbox360(args?: GamepadCreateXbox360Args): Promise<ToolResult> {
2800
+ return this.call("gamepad_create_xbox360", args);
2801
+ }
2802
+
2803
+ /**
2804
+ * Removes and frees the virtual Xbox 360 controller at the given slot. Safe to call if the slot was never created (no-op).
2805
+ */
2806
+ gamepadDestroy(args: GamepadDestroyArgs): Promise<ToolResult> {
2807
+ return this.call("gamepad_destroy", args);
2808
+ }
2809
+
2810
+ /**
2811
+ * Removes and frees ALL active virtual Xbox 360 controllers created in this process. Use as cleanup before shutdown or when resetting gamepad state.
2812
+ */
2813
+ gamepadDestroyAll(args?: GamepadDestroyAllArgs): Promise<ToolResult> {
2814
+ return this.call("gamepad_destroy_all", args);
2815
+ }
2816
+
2817
+ /**
2818
+ * Diagnoses the ViGEmBus virtual gamepad environment. Reports whether ViGEmBus registry key exists, whether the service is running, and whether ViGEmClient.dll can be located on disk. Install ViGEmBus from https://github.com/nefarius/ViGEmBus/releases if absent.
2819
+ */
2820
+ gamepadEnvironment(args?: GamepadEnvironmentArgs): Promise<ToolResult> {
2821
+ return this.call("gamepad_environment", args);
2822
+ }
2823
+
2824
+ /**
2825
+ * Presses one or more buttons on a virtual Xbox 360 controller then releases them. buttonMask uses the same bitmask as GamepadSendXbox360State. holdMs: how long to hold the buttons down (clamped to [1, 5000] ms).
2826
+ */
2827
+ gamepadPressButton(args: GamepadPressButtonArgs): Promise<ToolResult> {
2828
+ return this.call("gamepad_press_button", args);
2829
+ }
2830
+
2831
+ /**
2832
+ * Sends a full Xbox 360 controller state update. buttons bitmask: DPAD_UP=1, DPAD_DOWN=2, DPAD_LEFT=4, DPAD_RIGHT=8, START=16, BACK=32, L3=64, R3=128, LB=256, RB=512, GUIDE=1024, A=4096, B=8192, X=16384, Y=32768. Axes lx/ly/rx/ry: [-32768, 32767]. Triggers lt/rt: [0, 255].
2833
+ */
2834
+ gamepadSendXbox360State(args: GamepadSendXbox360StateArgs): Promise<ToolResult> {
2835
+ return this.call("gamepad_send_xbox360_state", args);
2836
+ }
2837
+
2838
+ /**
2839
+ * Returns the GUID and friendly name of the active Windows power plan.
2840
+ */
2841
+ getActivePowerPlan(args?: GetActivePowerPlanArgs): Promise<ToolResult> {
2842
+ return this.call("get_active_power_plan", args);
2843
+ }
2844
+
2845
+ /**
2846
+ * Reads UTF-16 text content from the Windows clipboard.
2847
+ */
2848
+ getClipboardText(args?: GetClipboardTextArgs): Promise<ToolResult> {
2849
+ return this.call("get_clipboard_text", args);
2850
+ }
2851
+
2852
+ /**
2853
+ * Returns CPU topology as JSON: logical processors, physical cores, NUMA nodes, cache sizes (L1/L2/L3 aggregate), architecture.
2854
+ */
2855
+ getCpuInfo(args?: GetCpuInfoArgs): Promise<ToolResult> {
2856
+ return this.call("get_cpu_info", args);
2857
+ }
2858
+
2859
+ /**
2860
+ * Samples global CPU usage over a short interval (default 250 ms, clamp 50-2000) via GetSystemTimes. Returns usage/idle percent and raw idle/kernel/user deltas in seconds. Kernel time as reported by Windows INCLUDES idle time; this tool subtracts it before computing the percentage.
2861
+ */
2862
+ getCpuUsage(args?: GetCpuUsageArgs): Promise<ToolResult> {
2863
+ return this.call("get_cpu_usage", args);
2864
+ }
2865
+
2866
+ /**
2867
+ * Returns Windows Defender state as JSON: AntivirusEnabled, RealTimeProtectionEnabled, BehaviorMonitorEnabled, TamperProtected, AntivirusSignatureVersion, LastQuickScanStartUtc, LastFullScanStartUtc, ThreatCount.
2868
+ */
2869
+ getDefenderStatus(args?: GetDefenderStatusArgs): Promise<ToolResult> {
2870
+ return this.call("get_defender_status", args);
2871
+ }
2872
+
2873
+ /**
2874
+ * Returns logical-drive info (root, type, total/free/available bytes) as JSON via GetLogicalDriveStrings + GetDiskFreeSpaceEx.
2875
+ */
2876
+ getDiskInfo(args?: GetDiskInfoArgs): Promise<ToolResult> {
2877
+ return this.call("get_disk_info", args);
2878
+ }
2879
+
2880
+ /**
2881
+ * Returns metadata for a file or directory as JSON: size, dates, type, hidden flag.
2882
+ */
2883
+ getFileInfo(args: GetFileInfoArgs): Promise<ToolResult> {
2884
+ return this.call("get_file_info", args);
2885
+ }
2886
+
2887
+ /**
2888
+ * Reads all per-app GPU preferences from HKCU\SOFTWARE\Microsoft\DirectX\UserGpuPreferences. Returns each registered exe path with its raw preference string ('GpuPreference=N;').
2889
+ */
2890
+ getGpuPreferences(args?: GetGpuPreferencesArgs): Promise<ToolResult> {
2891
+ return this.call("get_gpu_preferences", args);
2892
+ }
2893
+
2894
+ /**
2895
+ * Reads HKLM\System\CurrentControlSet\Control\GraphicsDrivers\HwSchMode. 0 = WDDM CPU scheduling, 1 = OS-managed default, 2 = Hardware-Accelerated GPU Scheduling. Requires WDDM 2.7+ (Win10 20H1+ / Win11). Reboot to take effect.
2896
+ */
2897
+ getHagsMode(args?: GetHagsModeArgs): Promise<ToolResult> {
2898
+ return this.call("get_hags_mode", args);
2899
+ }
2900
+
2901
+ /**
2902
+ * Returns physical / virtual / page-file memory state as JSON via GlobalMemoryStatusEx.
2903
+ */
2904
+ getMemoryInfo(args?: GetMemoryInfoArgs): Promise<ToolResult> {
2905
+ return this.call("get_memory_info", args);
2906
+ }
2907
+
2908
+ /**
2909
+ * Lists network adapters (Name, Description, Status, MAC, link speed, IPv4 addresses) as JSON.
2910
+ */
2911
+ getNetworkAdapters(args?: GetNetworkAdaptersArgs): Promise<ToolResult> {
2912
+ return this.call("get_network_adapters", args);
2913
+ }
2914
+
2915
+ /**
2916
+ * Returns OS version info (ProductName, EditionId, DisplayVersion, BuildNumber, UBR, InstallationType, OSArchitecture, MachineName, UserName) as JSON.
2917
+ */
2918
+ getOsInfo(args?: GetOsInfoArgs): Promise<ToolResult> {
2919
+ return this.call("get_os_info", args);
2920
+ }
2921
+
2922
+ /**
2923
+ * Reads a registry value. Path uses PowerShell-style hive prefixes (HKCU:\, HKLM:\, HKCR:\, HKU:\, HKCC:\).
2924
+ */
2925
+ getRegistryValue(args: GetRegistryValueArgs): Promise<ToolResult> {
2926
+ return this.call("get_registry_value", args);
2927
+ }
2928
+
2929
+ /**
2930
+ * Récupère le profil système complet pour vérifier l'état d'optimisation du poste.
2931
+ */
2932
+ getSystemProfile(args?: GetSystemProfileArgs): Promise<ToolResult> {
2933
+ return this.call("get_system_profile", args);
2934
+ }
2935
+
2936
+ /**
2937
+ * Inspects a target binary for Golang runtime signatures (pclntab) and extracts Go package/symbol indicators. Passive inspection without execution.
2938
+ */
2939
+ golangScan(args: GolangScanArgs): Promise<ToolResult> {
2940
+ return this.call("golang_scan", args);
2941
+ }
2942
+
2943
+ /**
2944
+ * Holds an arbitrary virtual key down (no release). Pair with KeyboardRelease to let go. Useful for charging mechanics, sustained movement keys, modifiers held across multiple ops.
2945
+ */
2946
+ keyboardHold(args: KeyboardHoldArgs): Promise<ToolResult> {
2947
+ return this.call("keyboard_hold", args);
2948
+ }
2949
+
2950
+ /**
2951
+ * Releases a virtual key previously held by KeyboardHold.
2952
+ */
2953
+ keyboardRelease(args: KeyboardReleaseArgs): Promise<ToolResult> {
2954
+ return this.call("keyboard_release", args);
2955
+ }
2956
+
2957
+ /**
2958
+ * Sends a single key by raw hardware SCAN CODE instead of virtual key. Some games (and anti-cheats) ignore Send-Input from virtual keys but accept scan codes because they match real keyboards. action: 'down' | 'up' | 'tap' (down+up).
2959
+ */
2960
+ keyboardScanCode(args: KeyboardScanCodeArgs): Promise<ToolResult> {
2961
+ return this.call("keyboard_scan_code", args);
2962
+ }
2963
+
2964
+ /**
2965
+ * Kills a process by PID (preferred) or name. Returns the count of terminated processes. Force=true requests an immediate kill (default true). PPL-protected processes return a labelled error.
2966
+ */
2967
+ killProcess(args?: KillProcessArgs): Promise<ToolResult> {
2968
+ return this.call("kill_process", args);
2969
+ }
2970
+
2971
+ /**
2972
+ * Launches a Windows application. Accepts an absolute path to an .exe (e.g. 'C:\\Windows\\System32\\notepad.exe'), an executable name resolvable via PATH (e.g. 'notepad.exe'), or a shell URI (mailto:, explorer:, ms-settings:).
2973
+ */
2974
+ launchApp(args: LaunchAppArgs): Promise<ToolResult> {
2975
+ return this.call("launch_app", args);
2976
+ }
2977
+
2978
+ /**
2979
+ * Lists directory contents as streamed JSON. Set recursive=true to descend, showHidden=true to include hidden entries, pattern to filter by glob. Hard cap: 10000 entries returned; result is marked truncated when exceeded.
2980
+ */
2981
+ listDirectory(args: ListDirectoryArgs): Promise<ToolResult> {
2982
+ return this.call("list_directory", args);
2983
+ }
2984
+
2985
+ /**
2986
+ * Lists TCP/IPv4 listening ports (LISTEN state only) as JSON.
2987
+ */
2988
+ listListeningPorts(args?: ListListeningPortsArgs): Promise<ToolResult> {
2989
+ return this.call("list_listening_ports", args);
2990
+ }
2991
+
2992
+ /**
2993
+ * Lists installed Windows power plans with their GUID, friendly name, and whether they are currently active. Returns JSON with the active GUID at the top.
2994
+ */
2995
+ listPowerPlans(args?: ListPowerPlansArgs): Promise<ToolResult> {
2996
+ return this.call("list_power_plans", args);
2997
+ }
2998
+
2999
+ /**
3000
+ * Lists running processes as JSON. Filter by name (substring, case-insensitive). Sort by 'memory' (default), 'private', 'cpu', 'threads', 'handles' or 'name'. Limit caps the result count (default 20, max 1000). Backed by NtQuerySystemInformation for a single-syscall enumeration with full per-process metrics.
3001
+ */
3002
+ listProcesses(args?: ListProcessesArgs): Promise<ToolResult> {
3003
+ return this.call("list_processes", args);
3004
+ }
3005
+
3006
+ /**
3007
+ * Lists sub-keys and values under a registry key as JSON.
3008
+ */
3009
+ listRegistryKey(args: ListRegistryKeyArgs): Promise<ToolResult> {
3010
+ return this.call("list_registry_key", args);
3011
+ }
3012
+
3013
+ /**
3014
+ * Lists scheduled tasks under the given folder (default = root '\') via schtasks /Query. Returns JSON: Path, Name, State, LastRunTimeUtc, LastTaskResult, Enabled.
3015
+ */
3016
+ listScheduledTasks(args?: ListScheduledTasksArgs): Promise<ToolResult> {
3017
+ return this.call("list_scheduled_tasks", args);
3018
+ }
3019
+
3020
+ /**
3021
+ * Lists Windows services as JSON. Filter by name substring (case-insensitive) and/or by status: Running, Stopped, Paused, StartPending, StopPending.
3022
+ */
3023
+ listServices(args?: ListServicesArgs): Promise<ToolResult> {
3024
+ return this.call("list_services", args);
3025
+ }
3026
+
3027
+ /**
3028
+ * Lists active TCP/IPv4 connections (Local/Remote address+port, state, owning PID) as JSON. Optional state filter (Listen, Established, CloseWait, TimeWait, Closed, SynSent, etc.).
3029
+ */
3030
+ listTcpConnections(args?: ListTcpConnectionsArgs): Promise<ToolResult> {
3031
+ return this.call("list_tcp_connections", args);
3032
+ }
3033
+
3034
+ /**
3035
+ * Lists all visible top-level windows as JSON.
3036
+ */
3037
+ listWindows(args?: ListWindowsArgs): Promise<ToolResult> {
3038
+ return this.call("list_windows", args);
3039
+ }
3040
+
3041
+ /**
3042
+ * Allocates virtual memory in a remote process via VirtualAllocEx. Returns the base address of the new region. protect: 'rw' (PAGE_READWRITE), 'rwx' (PAGE_EXECUTE_READWRITE), 'rx' (PAGE_EXECUTE_READ).
3043
+ */
3044
+ memAllocate(args: MemAllocateArgs): Promise<ToolResult> {
3045
+ return this.call("mem_allocate", args);
3046
+ }
3047
+
3048
+ /**
3049
+ * Reads up to MAX_DUMP_BYTES (4 MiB) from a memory region and writes them to a host-side file (default: %TEMP%\winclean_mcp_dump_<pid>_<addr>.bin). Returns the path and sha256 of the dump. Suspends the target during the read if suspend=true (avoids torn pages).
3050
+ */
3051
+ memDumpRegion(args: MemDumpRegionArgs): Promise<ToolResult> {
3052
+ return this.call("mem_dump_region", args);
3053
+ }
3054
+
3055
+ /**
3056
+ * Enables SeDebugPrivilege on the current MCP process so subsequent OpenProcess calls can attach to protected processes (most non-PPL user-mode targets). Idempotent — safe to call repeatedly.
3057
+ */
3058
+ memEnableDebugPrivilege(args?: MemEnableDebugPrivilegeArgs): Promise<ToolResult> {
3059
+ return this.call("mem_enable_debug_privilege", args);
3060
+ }
3061
+
3062
+ /**
3063
+ * Releases a region previously allocated with MemAllocate (MEM_RELEASE).
3064
+ */
3065
+ memFree(args: MemFreeArgs): Promise<ToolResult> {
3066
+ return this.call("mem_free", args);
3067
+ }
3068
+
3069
+ /**
3070
+ * Returns the base address and size of a named module in a process. Name comparison is case-insensitive. Returns the first match.
3071
+ */
3072
+ memGetModuleBase(args: MemGetModuleBaseArgs): Promise<ToolResult> {
3073
+ return this.call("mem_get_module_base", args);
3074
+ }
3075
+
3076
+ /**
3077
+ * Lists all loaded modules (DLLs + EXE) of a process. Returns name, baseAddress, and sizeOfImage for each module.
3078
+ */
3079
+ memListModules(args: MemListModulesArgs): Promise<ToolResult> {
3080
+ return this.call("mem_list_modules", args);
3081
+ }
3082
+
3083
+ /**
3084
+ * Lists running processes filtered by name substring (case-insensitive). Returns pid, name, and sessionId for each match. Leave nameFilter empty to list all processes (capped at 512).
3085
+ */
3086
+ memListProcesses(args?: MemListProcessesArgs): Promise<ToolResult> {
3087
+ return this.call("mem_list_processes", args);
3088
+ }
3089
+
3090
+ /**
3091
+ * Changes page protection on a memory region via VirtualProtectEx. Returns the previous protection flags. protect: rw | rwx | rx | ro | noaccess.
3092
+ */
3093
+ memProtect(args: MemProtectArgs): Promise<ToolResult> {
3094
+ return this.call("mem_protect", args);
3095
+ }
3096
+
3097
+ /**
3098
+ * Queries the virtual memory region containing the given address via VirtualQueryEx. Returns BaseAddress, RegionSize, State (Free/Reserve/Commit), Protect flags, and Type (Private/Image/Mapped).
3099
+ */
3100
+ memQueryRegion(args: MemQueryRegionArgs): Promise<ToolResult> {
3101
+ return this.call("mem_query_region", args);
3102
+ }
3103
+
3104
+ /**
3105
+ * Reads raw bytes from a process's virtual address space via ReadProcessMemory. Length is capped at 65536 bytes. Returns hex-encoded bytes in the 'hex' field.
3106
+ */
3107
+ memReadBytes(args: MemReadBytesArgs): Promise<ToolResult> {
3108
+ return this.call("mem_read_bytes", args);
3109
+ }
3110
+
3111
+ /**
3112
+ * Reads a null-terminated ASCII C-string from a process's virtual memory. Stops at the first NUL byte or maxLength bytes, whichever comes first.
3113
+ */
3114
+ memReadCString(args: MemReadCStringArgs): Promise<ToolResult> {
3115
+ return this.call("mem_read_c_string", args);
3116
+ }
3117
+
3118
+ /**
3119
+ * Reads a 64-bit IEEE 754 double (little-endian) from a process's virtual memory.
3120
+ */
3121
+ memReadDouble(args: MemReadDoubleArgs): Promise<ToolResult> {
3122
+ return this.call("mem_read_double", args);
3123
+ }
3124
+
3125
+ /**
3126
+ * Reads a 32-bit IEEE 754 float (little-endian) from a process's virtual memory.
3127
+ */
3128
+ memReadFloat(args: MemReadFloatArgs): Promise<ToolResult> {
3129
+ return this.call("mem_read_float", args);
3130
+ }
3131
+
3132
+ /**
3133
+ * Reads a signed 32-bit integer (little-endian) from a process's virtual memory.
3134
+ */
3135
+ memReadInt32(args: MemReadInt32Args): Promise<ToolResult> {
3136
+ return this.call("mem_read_int32", args);
3137
+ }
3138
+
3139
+ /**
3140
+ * Reads a signed 64-bit integer (little-endian) from a process's virtual memory.
3141
+ */
3142
+ memReadInt64(args: MemReadInt64Args): Promise<ToolResult> {
3143
+ return this.call("mem_read_int64", args);
3144
+ }
3145
+
3146
+ /**
3147
+ * Reads a null-terminated UTF-16LE wide string from a process's virtual memory. Stops at the first NUL char or maxChars characters, whichever comes first.
3148
+ */
3149
+ memReadUtf16(args: MemReadUtf16Args): Promise<ToolResult> {
3150
+ return this.call("mem_read_utf16", args);
3151
+ }
3152
+
3153
+ /**
3154
+ * Resumes every thread of the target process via NtResumeProcess.
3155
+ */
3156
+ memResumeProcess(args: MemResumeProcessArgs): Promise<ToolResult> {
3157
+ return this.call("mem_resume_process", args);
3158
+ }
3159
+
3160
+ /**
3161
+ * Scans a module's memory range for an IDA-style byte pattern (Array-of-Bytes scan). Pattern format: hex bytes separated by spaces, '??' as wildcard. Example: '48 8B 05 ?? ?? ?? ?? 48 89 01'. Reads the module in 256 KiB chunks. Returns up to maxHits matching addresses.
3162
+ */
3163
+ memScanAob(args: MemScanAobArgs): Promise<ToolResult> {
3164
+ return this.call("mem_scan_aob", args);
3165
+ }
3166
+
3167
+ /**
3168
+ * Cheat-Engine-style first scan: searches every committed RW page of the process for a 4-byte little-endian int32 value. Returns up to maxHits absolute addresses. Use MemReadInt32 to verify, then narrow via repeated scans.
3169
+ */
3170
+ memScanValueInt32(args: MemScanValueInt32Args): Promise<ToolResult> {
3171
+ return this.call("mem_scan_value_int32", args);
3172
+ }
3173
+
3174
+ /**
3175
+ * Suspends every thread of the target process via NtSuspendProcess.
3176
+ */
3177
+ memSuspendProcess(args: MemSuspendProcessArgs): Promise<ToolResult> {
3178
+ return this.call("mem_suspend_process", args);
3179
+ }
3180
+
3181
+ /**
3182
+ * Writes raw bytes to a process's virtual memory via WriteProcessMemory. hex format: continuous hex digits (e.g. '48895c2408') or space-separated ('48 89 5c 24 08'). Length capped at 65536. Requires PROCESS_VM_WRITE — call MemEnableDebugPrivilege first for protected targets.
3183
+ */
3184
+ memWriteBytes(args: MemWriteBytesArgs): Promise<ToolResult> {
3185
+ return this.call("mem_write_bytes", args);
3186
+ }
3187
+
3188
+ /**
3189
+ * Writes a 64-bit IEEE 754 double to a process's memory.
3190
+ */
3191
+ memWriteDouble(args: MemWriteDoubleArgs): Promise<ToolResult> {
3192
+ return this.call("mem_write_double", args);
3193
+ }
3194
+
3195
+ /**
3196
+ * Writes a 32-bit IEEE 754 float to a process's memory.
3197
+ */
3198
+ memWriteFloat(args: MemWriteFloatArgs): Promise<ToolResult> {
3199
+ return this.call("mem_write_float", args);
3200
+ }
3201
+
3202
+ /**
3203
+ * Writes a signed 32-bit little-endian integer to a process's memory.
3204
+ */
3205
+ memWriteInt32(args: MemWriteInt32Args): Promise<ToolResult> {
3206
+ return this.call("mem_write_int32", args);
3207
+ }
3208
+
3209
+ /**
3210
+ * Writes a signed 64-bit little-endian integer to a process's memory.
3211
+ */
3212
+ memWriteInt64(args: MemWriteInt64Args): Promise<ToolResult> {
3213
+ return this.call("mem_write_int64", args);
3214
+ }
3215
+
3216
+ /**
3217
+ * Performs a mouse drag from (x1,y1) to (x2,y2) with intermediate cursor moves so the OS drag-recognition logic actually fires (some apps reject teleported clicks). button: 'left' | 'right' | 'middle'. steps: number of intermediate move events (default 20).
3218
+ */
3219
+ mouseDragTo(args: MouseDragToArgs): Promise<ToolResult> {
3220
+ return this.call("mouse_drag_to", args);
3221
+ }
3222
+
3223
+ /**
3224
+ * Moves the mouse cursor smoothly along an interpolated path. Useful when the target window inspects MOUSEMOVE deltas (anti-automation heuristics) instead of a teleport via SetCursorPos. No button is pressed.
3225
+ */
3226
+ mouseMoveSmooth(args: MouseMoveSmoothArgs): Promise<ToolResult> {
3227
+ return this.call("mouse_move_smooth", args);
3228
+ }
3229
+
3230
+ /**
3231
+ * Moves the mouse cursor to the given screen coordinates. Set drag=true to perform a left-button drag from the current position to the target.
3232
+ */
3233
+ move(args: MoveArgs): Promise<ToolResult> {
3234
+ return this.call("move", args);
3235
+ }
3236
+
3237
+ /**
3238
+ * Moves or renames a file or directory.
3239
+ */
3240
+ movePath(args: MovePathArgs): Promise<ToolResult> {
3241
+ return this.call("move_path", args);
3242
+ }
3243
+
3244
+ /**
3245
+ * Types the same text into multiple UIA elements identified by exact Name property. Takes a comma-separated label list and a single text payload. Resolves labels against a fresh Snapshot() of the foreground window.
3246
+ */
3247
+ multiEdit(args: MultiEditArgs): Promise<ToolResult> {
3248
+ return this.call("multi_edit", args);
3249
+ }
3250
+
3251
+ /**
3252
+ * Clicks multiple UI elements identified by exact UIA Name property. Takes a comma-separated label list. Returns a JSON summary of clicked / notFound. Resolves labels against a fresh Snapshot() of the foreground window.
3253
+ */
3254
+ multiSelect(args: MultiSelectArgs): Promise<ToolResult> {
3255
+ return this.call("multi_select", args);
3256
+ }
3257
+
3258
+ /**
3259
+ * Forces the Desktop Window Manager to flush pending GPU work (DwmFlush). Useful right before / after a frame-rate critical operation to align with VBLANK.
3260
+ */
3261
+ perfDwmFlush(args?: PerfDwmFlushArgs): Promise<ToolResult> {
3262
+ return this.call("perf_dwm_flush", args);
3263
+ }
3264
+
3265
+ /**
3266
+ * Trims the working set of EVERY accessible process via NtSetSystemInformation (MemoryEmptyWorkingSets). Each process keeps its memory but pages are pushed to standby, freeing physical RAM immediately. No process is killed.
3267
+ */
3268
+ perfEmptyWorkingSets(args?: PerfEmptyWorkingSetsArgs): Promise<ToolResult> {
3269
+ return this.call("perf_empty_working_sets", args);
3270
+ }
3271
+
3272
+ /**
3273
+ * Returns current physical and virtual memory pressure (MEMORYSTATUSEX). Use before/after PerfPurgeStandbyList or PerfEmptyWorkingSets to measure impact.
3274
+ */
3275
+ perfMemoryStatus(args?: PerfMemoryStatusArgs): Promise<ToolResult> {
3276
+ return this.call("perf_memory_status", args);
3277
+ }
3278
+
3279
+ /**
3280
+ * Purges the Windows memory standby list (cached pages that are no longer in any working set but kept around for re-use). Frees RAM instantly without touching working sets. Equivalent to RAMMap → Empty Standby List. Requires elevation.
3281
+ */
3282
+ perfPurgeStandbyList(args?: PerfPurgeStandbyListArgs): Promise<ToolResult> {
3283
+ return this.call("perf_purge_standby_list", args);
3284
+ }
3285
+
3286
+ /**
3287
+ * Toggles Win11 EcoQoS (PowerThrottling) on a process. EcoMode = on → process is throttled to E-cores and capped frequency (saves power). EcoMode = off → release throttling (max performance). Reset all overrides with mode='default'.
3288
+ */
3289
+ perfSetEcoMode(args: PerfSetEcoModeArgs): Promise<ToolResult> {
3290
+ return this.call("perf_set_eco_mode", args);
3291
+ }
3292
+
3293
+ /**
3294
+ * Executes a PowerShell command and returns stdout, stderr, exit code, and duration as JSON. Uses pwsh (PowerShell 7) when available, falling back to powershell.exe. Captures both streams without launching a window.
3295
+ */
3296
+ powerShell(args: PowerShellArgs): Promise<ToolResult> {
3297
+ return this.call("power_shell", args);
3298
+ }
3299
+
3300
+ /**
3301
+ * Queries a Windows Event Log channel via wevtapi and returns up to maxEvents entries (newest first) as JSON. Optional XPath filter (e.g. "*[System[Level=2]]" for Error-level only). Channel examples: Application, System, Security, Microsoft-Windows-WindowsUpdateClient/Operational.
3302
+ */
3303
+ queryEventLog(args: QueryEventLogArgs): Promise<ToolResult> {
3304
+ return this.call("query_event_log", args);
3305
+ }
3306
+
3307
+ /**
3308
+ * Reads a UTF-8 text file. Supports optional line offset and limit for reading large files in chunks. Returns the content prefixed with the resolved absolute path.
3309
+ */
3310
+ readFile(args: ReadFileArgs): Promise<ToolResult> {
3311
+ return this.call("read_file", args);
3312
+ }
3313
+
3314
+ /**
3315
+ * Resizes / moves a window matched by title substring. Set width/height to 0 to keep current size.
3316
+ */
3317
+ resizeWindow(args: ResizeWindowArgs): Promise<ToolResult> {
3318
+ return this.call("resize_window", args);
3319
+ }
3320
+
3321
+ /**
3322
+ * Restarts a Windows service. Stops then starts, waiting up to 10s per phase.
3323
+ */
3324
+ restartService(args: RestartServiceArgs): Promise<ToolResult> {
3325
+ return this.call("restart_service", args);
3326
+ }
3327
+
3328
+ /**
3329
+ * Runs a scheduled task immediately via schtasks /Run.
3330
+ */
3331
+ runScheduledTask(args: RunScheduledTaskArgs): Promise<ToolResult> {
3332
+ return this.call("run_scheduled_task", args);
3333
+ }
3334
+
3335
+ /**
3336
+ * Fetches a URL via HTTP GET and returns extracted plain text (script/style stripped, tags removed). Caps: 4 MiB download, 200k extracted chars, 30s timeout. For richer extraction prefer the docs MCP server (microsoft_docs_fetch / winclean_universal_web_fetch).
3337
+ */
3338
+ scrape(args: ScrapeArgs): Promise<ToolResult> {
3339
+ return this.call("scrape", args);
3340
+ }
3341
+
3342
+ /**
3343
+ * Captures the primary monitor to a BMP file on disk. Returns the absolute file path. Width/height default to the full virtual screen.
3344
+ */
3345
+ screenshot(args?: ScreenshotArgs): Promise<ToolResult> {
3346
+ return this.call("screenshot", args);
3347
+ }
3348
+
3349
+ /**
3350
+ * Scrolls at the given screen coordinates. axis: 'vertical' | 'horizontal'. direction: up/down for vertical, left/right for horizontal. wheelTimes is the number of wheel notches (each notch ≈ 3 lines).
3351
+ */
3352
+ scroll(args: ScrollArgs): Promise<ToolResult> {
3353
+ return this.call("scroll", args);
3354
+ }
3355
+
3356
+ /**
3357
+ * Searches a directory tree for files matching a glob pattern. Hard cap: 10000 results; result is marked truncated when exceeded.
3358
+ */
3359
+ searchFiles(args: SearchFilesArgs): Promise<ToolResult> {
3360
+ return this.call("search_files", args);
3361
+ }
3362
+
3363
+ /**
3364
+ * Effectue une recherche ultra-rapide sur le disque via l'indexeur natif Windows Search.
3365
+ */
3366
+ searchWindows(args: SearchWindowsArgs): Promise<ToolResult> {
3367
+ return this.call("search_windows", args);
3368
+ }
3369
+
3370
+ /**
3371
+ * Displays a Windows tray balloon notification with title and message. Note: balloon tips replace classic Win32 toasts; modern WinRT toast (requires WindowsAppSDK projection) is not yet wired up.
3372
+ */
3373
+ sendNotification(args: SendNotificationArgs): Promise<ToolResult> {
3374
+ return this.call("send_notification", args);
3375
+ }
3376
+
3377
+ /**
3378
+ * Activates a Windows power plan by GUID. Common GUIDs: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced), 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance), a1841308-3541-4fab-bc81-f71556f20b4a (Power saver), e9a42b02-d5df-448d-aa00-03f14749eb61 (Ultimate Performance).
3379
+ */
3380
+ setActivePowerPlan(args: SetActivePowerPlanArgs): Promise<ToolResult> {
3381
+ return this.call("set_active_power_plan", args);
3382
+ }
3383
+
3384
+ /**
3385
+ * Writes UTF-16 text to the Windows clipboard.
3386
+ */
3387
+ setClipboardText(args: SetClipboardTextArgs): Promise<ToolResult> {
3388
+ return this.call("set_clipboard_text", args);
3389
+ }
3390
+
3391
+ /**
3392
+ * Writes per-app GPU preference in HKCU\SOFTWARE\Microsoft\DirectX\UserGpuPreferences. preference: 'SystemDefault' (0), 'PowerSaving' (1, iGPU), 'HighPerformance' (2, dGPU). exePath should be the absolute path to the .exe. Takes effect on next process launch. Format written: REG_SZ 'GpuPreference=N;'.
3393
+ */
3394
+ setGpuPreference(args: SetGpuPreferenceArgs): Promise<ToolResult> {
3395
+ return this.call("set_gpu_preference", args);
3396
+ }
3397
+
3398
+ /**
3399
+ * Writes HwSchMode in HKLM\System\CurrentControlSet\Control\GraphicsDrivers. Valid: 0 (WDDM CPU), 1 (OS default), 2 (HW-accelerated GPU scheduling). Requires admin + reboot. Microsoft + NVIDIA recommend 2 on WDDM 2.7+ hardware (validates DLSS 3 Frame Generation).
3400
+ */
3401
+ setHagsMode(args: SetHagsModeArgs): Promise<ToolResult> {
3402
+ return this.call("set_hags_mode", args);
3403
+ }
3404
+
3405
+ /**
3406
+ * Sets the CPU affinity mask of a process. The mask is a bitmask where bit N means 'process may run on logical processor N'. Pass 0 to reset to the system default. Returns previous and new mask in hex as JSON.
3407
+ */
3408
+ setProcessAffinity(args: SetProcessAffinityArgs): Promise<ToolResult> {
3409
+ return this.call("set_process_affinity", args);
3410
+ }
3411
+
3412
+ /**
3413
+ * Sets the Windows priority class of a process. Valid values: 'Idle', 'BelowNormal', 'Normal', 'AboveNormal', 'High', 'Realtime'. Returns previous and new class as JSON. Realtime requires Administrator and can starve system services.
3414
+ */
3415
+ setProcessPriority(args: SetProcessPriorityArgs): Promise<ToolResult> {
3416
+ return this.call("set_process_priority", args);
3417
+ }
3418
+
3419
+ /**
3420
+ * Writes a registry value. Creates the key if missing. Supported types: String, ExpandString, DWord, QWord, MultiString (newline-separated).
3421
+ */
3422
+ setRegistryValue(args: SetRegistryValueArgs): Promise<ToolResult> {
3423
+ return this.call("set_registry_value", args);
3424
+ }
3425
+
3426
+ /**
3427
+ * Sends a keyboard shortcut. The combo is a '+'-separated list of keys, e.g. 'ctrl+c', 'ctrl+shift+esc', 'win+r', 'alt+f4'. Modifier keys: ctrl, shift, alt, win. Literal keys: a-z, 0-9, f1-f24, esc, enter, tab, space, backspace, delete, home, end, up, down, left, right.
3428
+ */
3429
+ shortcut(args: ShortcutArgs): Promise<ToolResult> {
3430
+ return this.call("shortcut", args);
3431
+ }
3432
+
3433
+ /**
3434
+ * Captures a UIA control-view tree snapshot of the foreground window via native UI Automation. Pass windowHandle to inspect a specific application without changing focus. Returns up to maxElements (default 200) descendants with name, controlType, automationId, className, bounds, focus and enabled state. Used by computer_* and MultiSelect/MultiEdit.
3435
+ */
3436
+ snapshot(args?: SnapshotArgs): Promise<ToolResult> {
3437
+ return this.call("snapshot", args);
3438
+ }
3439
+
3440
+ /**
3441
+ * Starts a stopped Windows service. Waits up to 10s for the Running state.
3442
+ */
3443
+ startService(args: StartServiceArgs): Promise<ToolResult> {
3444
+ return this.call("start_service", args);
3445
+ }
3446
+
3447
+ /**
3448
+ * Returns full details of a single Steam game by appId. Returns {"success":false,...} if the appId is not found.
3449
+ */
3450
+ steamGetGame(args: SteamGetGameArgs): Promise<ToolResult> {
3451
+ return this.call("steam_get_game", args);
3452
+ }
3453
+
3454
+ /**
3455
+ * Checks whether a Steam game process is currently running. Resolves install_dir and absolute_install_path from steam-scan.db. Executable name defaults to install_dir + ".exe". Returns {"appId":N,"running":bool,"pid":N|null,"executable":"...","installDir":"..."}.
3456
+ */
3457
+ steamGetGameStatus(args: SteamGetGameStatusArgs): Promise<ToolResult> {
3458
+ return this.call("steam_get_game_status", args);
3459
+ }
3460
+
3461
+ /**
3462
+ * Kills a running Steam game by executable name. Returns {"success":true,"pid":N,"killed":1} or {"success":false,"error":"not running"}.
3463
+ */
3464
+ steamKillGame(args: SteamKillGameArgs): Promise<ToolResult> {
3465
+ return this.call("steam_kill_game", args);
3466
+ }
3467
+
3468
+ /**
3469
+ * Launches a Steam game via steam://rungameid/{appId} then waits for the process to appear. Combines SteamLaunchByAppId + SteamWaitForLaunch in a single MCP call. Returns {"success":true,"pid":N,"elapsedMs":N} or {"success":false,...}.
3470
+ */
3471
+ steamLaunchAndWait(args: SteamLaunchAndWaitArgs): Promise<ToolResult> {
3472
+ return this.call("steam_launch_and_wait", args);
3473
+ }
3474
+
3475
+ /**
3476
+ * Launches a Steam game via steam://rungameid/{appId}. Returns immediately — use SteamWaitForLaunch to block until the process is alive. Returns {"success":false,...} if Steam is not installed.
3477
+ */
3478
+ steamLaunchByAppId(args: SteamLaunchByAppIdArgs): Promise<ToolResult> {
3479
+ return this.call("steam_launch_by_app_id", args);
3480
+ }
3481
+
3482
+ /**
3483
+ * Returns a JSON array of Steam games from steam-scan.db. By default only games whose files are present on disk (files_present > 0) are returned. Set includeMissing=true to include all rows regardless of files_present.
3484
+ */
3485
+ steamListGames(args?: SteamListGamesArgs): Promise<ToolResult> {
3486
+ return this.call("steam_list_games", args);
3487
+ }
3488
+
3489
+ /**
3490
+ * Returns all Steam library paths with their game_count and total_size_bytes as recorded in steam-scan.db.
3491
+ */
3492
+ steamListLibraries(args?: SteamListLibrariesArgs): Promise<ToolResult> {
3493
+ return this.call("steam_list_libraries", args);
3494
+ }
3495
+
3496
+ /**
3497
+ * Opens any steam:// URI via ShellExecute. Allowed schemes: steam:// only. Returns {"success":true,"uri":"..."} or {"success":false,"error":"invalid scheme"}.
3498
+ */
3499
+ steamOpenUri(args: SteamOpenUriArgs): Promise<ToolResult> {
3500
+ return this.call("steam_open_uri", args);
3501
+ }
3502
+
3503
+ /**
3504
+ * Returns aggregate counts from steam-scan.db: nb_installs, nb_libraries, nb_games, nb_games_present, total_size_bytes.
3505
+ */
3506
+ steamScanSummary(args?: SteamScanSummaryArgs): Promise<ToolResult> {
3507
+ return this.call("steam_scan_summary", args);
3508
+ }
3509
+
3510
+ /**
3511
+ * Returns vault target metadata from secrets_vault_ref (target name, kind, description, user_hint). Secret material (passwords, tokens) is never included. Also attempts to invoke 'winclean-steam-auth list --json' (if present) for live vault status.
3512
+ */
3513
+ steamVaultStatus(args?: SteamVaultStatusArgs): Promise<ToolResult> {
3514
+ return this.call("steam_vault_status", args);
3515
+ }
3516
+
3517
+ /**
3518
+ * Polls until the named process appears or the timeout elapses. Returns {"success":true,"pid":N,"elapsedMs":N} or {"success":false,"error":"timeout",...}.
3519
+ */
3520
+ steamWaitForLaunch(args: SteamWaitForLaunchArgs): Promise<ToolResult> {
3521
+ return this.call("steam_wait_for_launch", args);
3522
+ }
3523
+
3524
+ /**
3525
+ * Stops a running Windows service. Waits up to 10s for the Stopped state.
3526
+ */
3527
+ stopService(args: StopServiceArgs): Promise<ToolResult> {
3528
+ return this.call("stop_service", args);
3529
+ }
3530
+
3531
+ /**
3532
+ * Brings a window to the foreground by partial title match (case-insensitive). Restores it if minimized.
3533
+ */
3534
+ switchToWindow(args: SwitchToWindowArgs): Promise<ToolResult> {
3535
+ return this.call("switch_to_window", args);
3536
+ }
3537
+
3538
+ /**
3539
+ * DIAGNOSTIC / DEBUG ONLY. Trims a process's working set via SetProcessWorkingSetSize(-1,-1). The OS does NOT free the pages — it moves them to the standby list. The next time the process touches that memory, it incurs a HARD PAGE FAULT (disk read). Mark Russinovich (Sysinternals creator, Azure CTO) documents this is anti-performance for normal use: see 'The Memory-Optimization Hoax'. The Microsoft API doc itself states the function is 'useful primarily for testing and tuning'. Use only on demonstrably-idle GUI apps where you accept the next-touch latency. Do NOT call in a loop.
3540
+ */
3541
+ trimProcessWorkingSet(args: TrimProcessWorkingSetArgs): Promise<ToolResult> {
3542
+ return this.call("trim_process_working_set", args);
3543
+ }
3544
+
3545
+ /**
3546
+ * Types text at the given screen coordinates. Set clear=true to send Ctrl+A + Delete before typing. Set pressEnter=true to submit with RETURN after typing. Max 4096 chars per call.
3547
+ */
3548
+ type(args: TypeArgs): Promise<ToolResult> {
3549
+ return this.call("type", args);
3550
+ }
3551
+
3552
+ /**
3553
+ * Pauses execution for the given duration in seconds (1..120).
3554
+ */
3555
+ wait(args: WaitArgs): Promise<ToolResult> {
3556
+ return this.call("wait", args);
3557
+ }
3558
+
3559
+ /**
3560
+ * Captures the pixels of a window to a 24-bit BMP file via PrintWindow + GetDIBits. Works even when the window is MINIMISED, OFF-SCREEN or COVERED by another window (DWM redirection surface). Returns the saved BMP path and dimensions.
3561
+ */
3562
+ windowCapture(args: WindowCaptureArgs): Promise<ToolResult> {
3563
+ return this.call("window_capture", args);
3564
+ }
3565
+
3566
+ /**
3567
+ * Sends WM_CLOSE to the window (graceful close request).
3568
+ */
3569
+ windowClose(args: WindowCloseArgs): Promise<ToolResult> {
3570
+ return this.call("window_close", args);
3571
+ }
3572
+
3573
+ /**
3574
+ * Enumerates every top-level window (visible AND hidden). Filters by pid (0 = any), class substring, title substring (all case-insensitive). Returns hwnd, pid, classname, title, rect, visible, minimised, maximised flags.
3575
+ */
3576
+ windowEnumAll(args?: WindowEnumAllArgs): Promise<ToolResult> {
3577
+ return this.call("window_enum_all", args);
3578
+ }
3579
+
3580
+ /**
3581
+ * Enumerates direct + indirect child windows of a given HWND parent. Useful to drill into controls inside an app frame (edit fields, buttons, listviews).
3582
+ */
3583
+ windowEnumChildren(args: WindowEnumChildrenArgs): Promise<ToolResult> {
3584
+ return this.call("window_enum_children", args);
3585
+ }
3586
+
3587
+ /**
3588
+ * Finds the first top-level HWND with the exact class name (case-sensitive) and optionally a matching window title. Returns hwnd=0 if not found.
3589
+ */
3590
+ windowFindByClass(args: WindowFindByClassArgs): Promise<ToolResult> {
3591
+ return this.call("window_find_by_class", args);
3592
+ }
3593
+
3594
+ /**
3595
+ * Reads the text of a window or control via WM_GETTEXTLENGTH + WM_GETTEXT. Works on hidden controls; pair with WindowEnumChildren to locate the HWND.
3596
+ */
3597
+ windowGetText(args: WindowGetTextArgs): Promise<ToolResult> {
3598
+ return this.call("window_get_text", args);
3599
+ }
3600
+
3601
+ /**
3602
+ * Sends WM_KEYDOWN/UP for Win+D to the shell — minimises every visible window at once.
3603
+ */
3604
+ windowMinimiseAll(args?: WindowMinimiseAllArgs): Promise<ToolResult> {
3605
+ return this.call("window_minimise_all", args);
3606
+ }
3607
+
3608
+ /**
3609
+ * Moves and/or resizes a window by HWND. Set width/height to 0 to keep current size, set x/y to a value outside the visible desktop to park the window off-screen.
3610
+ */
3611
+ windowMove(args: WindowMoveArgs): Promise<ToolResult> {
3612
+ return this.call("window_move", args);
3613
+ }
3614
+
3615
+ /**
3616
+ * Posts a Win32 message to a window's queue via PostMessageW (asynchronous, non-blocking). Returns immediately even if the target ignores or hangs on the message.
3617
+ */
3618
+ windowPostMessage(args: WindowPostMessageArgs): Promise<ToolResult> {
3619
+ return this.call("window_post_message", args);
3620
+ }
3621
+
3622
+ /**
3623
+ * Sends a Win32 message to a window via SendMessageW (synchronous). Useful to drive controls without stealing focus — e.g. WM_LBUTTONDOWN/UP on a button HWND, WM_SETTEXT to set an edit field, WM_CLOSE to request close. wParam/lParam can be decimal or 0x-prefixed hex.
3624
+ */
3625
+ windowSendMessage(args: WindowSendMessageArgs): Promise<ToolResult> {
3626
+ return this.call("window_send_message", args);
3627
+ }
3628
+
3629
+ /**
3630
+ * Sets per-window opacity (0..255). Promotes the window to WS_EX_LAYERED if needed. Use 255 = fully opaque, 0 = fully transparent (but still receives input unless clickThrough).
3631
+ */
3632
+ windowSetOpacity(args: WindowSetOpacityArgs): Promise<ToolResult> {
3633
+ return this.call("window_set_opacity", args);
3634
+ }
3635
+
3636
+ /**
3637
+ * Sets the text of a window or control via WM_SETTEXT. Targets edit fields, captions, listbox items. For complex Unicode UIs prefer UIA.
3638
+ */
3639
+ windowSetText(args: WindowSetTextArgs): Promise<ToolResult> {
3640
+ return this.call("window_set_text", args);
3641
+ }
3642
+
3643
+ /**
3644
+ * Sets the TOPMOST flag on a window (Z-order pinned above all non-topmost windows).
3645
+ */
3646
+ windowSetTopmost(args: WindowSetTopmostArgs): Promise<ToolResult> {
3647
+ return this.call("window_set_topmost", args);
3648
+ }
3649
+
3650
+ /**
3651
+ * Returns the ONNX Runtime version string powering Windows ML on this machine.
3652
+ */
3653
+ winmlGetVersion(args?: WinmlGetVersionArgs): Promise<ToolResult> {
3654
+ return this.call("winml_get_version", args);
3655
+ }
3656
+
3657
+ /**
3658
+ * Loads an ONNX model and returns its input/output metadata (name, element type, shape). Use this before WinmlRunFloat32 to discover tensor shapes.
3659
+ */
3660
+ winmlInspectOnnx(args: WinmlInspectOnnxArgs): Promise<ToolResult> {
3661
+ return this.call("winml_inspect_onnx", args);
3662
+ }
3663
+
3664
+ /**
3665
+ * Lists ONNX Runtime execution providers available in the current process (e.g. CPUExecutionProvider, DmlExecutionProvider, CUDAExecutionProvider). Reflects whatever EPs Windows ML / the loaded native dll registered.
3666
+ */
3667
+ winmlListProviders(args?: WinmlListProvidersArgs): Promise<ToolResult> {
3668
+ return this.call("winml_list_providers", args);
3669
+ }
3670
+
3671
+ /**
3672
+ * Runs inference on an ONNX model with float32 tensor inputs. inputsJson: '{"input_name":{"shape":[1,3,224,224],"data":[0.1,0.2,...]}}'. executionProvider: 'cpu' (default) | 'dml' (DirectML, any GPU) | 'cuda' (NVIDIA). Returns the first output tensor as float32 JSON.
3673
+ */
3674
+ winmlRunFloat32(args: WinmlRunFloat32Args): Promise<ToolResult> {
3675
+ return this.call("winml_run_float32", args);
3676
+ }
3677
+
3678
+ /**
3679
+ * Writes UTF-8 text to a file. Creates parent directories as needed. Set append=true to append instead of overwrite.
3680
+ */
3681
+ writeFile(args: WriteFileArgs): Promise<ToolResult> {
3682
+ return this.call("write_file", args);
3683
+ }
3684
+
3685
+ /**
3686
+ * Runs a command in an existing WSL distribution using an argv array, with a 30-second bound and captured stdout/stderr. command must contain the executable followed by arguments; it is never concatenated into a shell command. For deliberate shell scripting, pass /bin/sh, -lc, and the script as separate command entries.
3687
+ */
3688
+ wslExecute(args: WslExecuteArgs): Promise<ToolResult> {
3689
+ return this.call("wsl_execute", args);
3690
+ }
3691
+
3692
+ /**
3693
+ * Returns the local WSL installation status. This is read-only and reports the Windows WSL configuration, default distribution, and kernel information when available.
3694
+ */
3695
+ wslGetStatus(args?: WslGetStatusArgs): Promise<ToolResult> {
3696
+ return this.call("wsl_get_status", args);
3697
+ }
3698
+
3699
+ /**
3700
+ * Lists installed WSL distributions with their state and WSL version. This is read-only; it never starts, terminates, imports, exports, or unregisters a distribution.
3701
+ */
3702
+ wslListDistributions(args?: WslListDistributionsArgs): Promise<ToolResult> {
3703
+ return this.call("wsl_list_distributions", args);
3704
+ }
3705
+
3706
+ /**
3707
+ * Lists Linux processes in an existing WSL distribution. This is read-only and returns PID, parent PID, command, and arguments.
3708
+ */
3709
+ wslListProcesses(args: WslListProcessesArgs): Promise<ToolResult> {
3710
+ return this.call("wsl_list_processes", args);
3711
+ }
3712
+
3713
+ /**
3714
+ * Runs one fixed, read-only diagnostic inside an existing WSL distribution. probe must be one of: system-info, re-toolchain, processes, mounts, or network. No arbitrary shell command is accepted.
3715
+ */
3716
+ wslReadOnlyProbe(args: WslReadOnlyProbeArgs): Promise<ToolResult> {
3717
+ return this.call("wsl_read_only_probe", args);
3718
+ }
3719
+
3720
+ /**
3721
+ * Sends HUP, INT, TERM, or KILL to one exact Linux PID in an existing WSL distribution. Call wsl_list_processes first to identify the target PID.
3722
+ */
3723
+ wslSendSignal(args: WslSendSignalArgs): Promise<ToolResult> {
3724
+ return this.call("wsl_send_signal", args);
3725
+ }
3726
+ }