agent-rdp 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -0
- package/bin/agent-rdp-darwin-arm64 +0 -0
- package/bin/agent-rdp-darwin-x64 +0 -0
- package/bin/agent-rdp-linux-arm64 +0 -0
- package/bin/agent-rdp-linux-x64 +0 -0
- package/bin/agent-rdp-win32-arm64.exe +0 -0
- package/bin/agent-rdp-win32-x64.exe +0 -0
- package/dist/automation.d.ts +162 -0
- package/dist/automation.d.ts.map +1 -0
- package/dist/automation.js +269 -0
- package/dist/automation.js.map +1 -0
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +63 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -2
- package/scripts/lint-ps1.ps1 +28 -0
- package/bin/agent-rdp +0 -30
- package/bin/agent-rdp.cmd +0 -27
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ A CLI tool for AI agents to control Windows Remote Desktop sessions, built on [I
|
|
|
10
10
|
- **Keyboard input** - Type text, press key combinations (Ctrl+C, Alt+Tab, etc.)
|
|
11
11
|
- **Clipboard sync** - Copy/paste text between local machine and remote Windows
|
|
12
12
|
- **Drive mapping** - Map local directories as network drives on the remote machine
|
|
13
|
+
- **UI Automation** - Interact with Windows applications via accessibility API (click, fill, inspect)
|
|
13
14
|
- **JSON output** - Structured output for AI agent consumption
|
|
14
15
|
- **Session management** - Multiple named sessions with automatic daemon lifecycle
|
|
15
16
|
|
|
@@ -135,6 +136,56 @@ agent-rdp drive list
|
|
|
135
136
|
|
|
136
137
|
On the remote Windows machine, mapped drives appear in File Explorer as network locations.
|
|
137
138
|
|
|
139
|
+
### UI Automation
|
|
140
|
+
|
|
141
|
+
Enable Windows UI Automation to interact with applications programmatically:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Connect with automation enabled
|
|
145
|
+
agent-rdp connect --host 192.168.1.100 -u Admin -p secret --enable-win-automation
|
|
146
|
+
|
|
147
|
+
# Take an accessibility tree snapshot (refs are always included)
|
|
148
|
+
agent-rdp automate snapshot
|
|
149
|
+
|
|
150
|
+
# Snapshot filtering options (like agent-browser)
|
|
151
|
+
agent-rdp automate snapshot -i # Interactive elements only
|
|
152
|
+
agent-rdp automate snapshot -c # Compact (remove empty structural elements)
|
|
153
|
+
agent-rdp automate snapshot -d 3 # Limit depth to 3 levels
|
|
154
|
+
agent-rdp automate snapshot -s "~*Notepad*" # Scope to a window/element
|
|
155
|
+
agent-rdp automate snapshot -i -c -d 5 # Combine options
|
|
156
|
+
|
|
157
|
+
# Click elements by selector (refs use @eN format)
|
|
158
|
+
agent-rdp automate click "#SaveButton" # By automation ID
|
|
159
|
+
agent-rdp automate click "@e5" # By ref number from snapshot
|
|
160
|
+
|
|
161
|
+
# Fill text fields
|
|
162
|
+
agent-rdp automate fill ".Edit" "Hello World"
|
|
163
|
+
|
|
164
|
+
# Window operations
|
|
165
|
+
agent-rdp automate window list
|
|
166
|
+
agent-rdp automate window focus "~*Notepad*"
|
|
167
|
+
|
|
168
|
+
# Run PowerShell commands
|
|
169
|
+
agent-rdp automate run "Get-Process" --wait
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Selector Types:**
|
|
173
|
+
- `@e5` or `@5` - Reference number from snapshot (e prefix recommended)
|
|
174
|
+
- `#SaveButton` - Automation ID
|
|
175
|
+
- `.Edit` - Win32 class name
|
|
176
|
+
- `~*pattern*` - Wildcard name match
|
|
177
|
+
- `File` - Element name (exact match)
|
|
178
|
+
|
|
179
|
+
**Snapshot Output Format:**
|
|
180
|
+
```
|
|
181
|
+
- Window "Notepad" [ref=e1, id=Notepad]
|
|
182
|
+
- MenuBar "Application" [ref=e2]
|
|
183
|
+
- MenuItem "File" [ref=e3]
|
|
184
|
+
- Edit "Text Editor" [ref=e5, value="Hello"]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
For detailed documentation on automation, see [docs/AUTOMATION.md](docs/AUTOMATION.md).
|
|
188
|
+
|
|
138
189
|
### Session Management
|
|
139
190
|
|
|
140
191
|
```bash
|
|
Binary file
|
package/bin/agent-rdp-darwin-x64
CHANGED
|
Binary file
|
|
Binary file
|
package/bin/agent-rdp-linux-x64
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation controller for Windows UI Automation.
|
|
3
|
+
*/
|
|
4
|
+
import type { RdpSession } from './index.js';
|
|
5
|
+
import type { AutomationSnapshot, AutomationElementValue, AutomationWindowInfo, AutomationStatus, AutomationRunResult } from './types.js';
|
|
6
|
+
export interface SnapshotOptions {
|
|
7
|
+
/** Filter to interactive elements only (buttons, inputs, focusable). */
|
|
8
|
+
interactive?: boolean;
|
|
9
|
+
/** Compact mode - remove empty structural elements. */
|
|
10
|
+
compact?: boolean;
|
|
11
|
+
/** Maximum tree depth (default: 10). */
|
|
12
|
+
depth?: number;
|
|
13
|
+
/** Scope to a specific element (window, panel, etc.) via selector. */
|
|
14
|
+
selector?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface GetOptions {
|
|
17
|
+
/** Property to retrieve: 'name', 'value', 'states', 'bounds', or 'all'. */
|
|
18
|
+
property?: 'name' | 'value' | 'states' | 'bounds' | 'all';
|
|
19
|
+
}
|
|
20
|
+
export interface ClickOptions {
|
|
21
|
+
/** Mouse button: 'left', 'right', or 'middle'. */
|
|
22
|
+
button?: 'left' | 'right' | 'middle';
|
|
23
|
+
/** Double-click instead of single click. */
|
|
24
|
+
double?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface ScrollOptions {
|
|
27
|
+
/** Scroll direction. */
|
|
28
|
+
direction?: 'up' | 'down' | 'left' | 'right';
|
|
29
|
+
/** Scroll amount. */
|
|
30
|
+
amount?: number;
|
|
31
|
+
/** Child selector to scroll into view. */
|
|
32
|
+
toChild?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface RunOptions {
|
|
35
|
+
/** Command arguments. */
|
|
36
|
+
args?: string[];
|
|
37
|
+
/** Wait for command to complete. */
|
|
38
|
+
wait?: boolean;
|
|
39
|
+
/** Run with hidden window. */
|
|
40
|
+
hidden?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface WaitForOptions {
|
|
43
|
+
/** Timeout in milliseconds. */
|
|
44
|
+
timeout?: number;
|
|
45
|
+
/** State to wait for: 'visible', 'enabled', or 'gone'. */
|
|
46
|
+
state?: 'visible' | 'enabled' | 'gone';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Automation controller for Windows UI Automation.
|
|
50
|
+
*
|
|
51
|
+
* Provides methods for interacting with Windows applications via the
|
|
52
|
+
* Windows UI Automation API through a PowerShell agent.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // Take a snapshot of the accessibility tree
|
|
57
|
+
* const snapshot = await rdp.automation.snapshot();
|
|
58
|
+
* console.log(`Found ${snapshot.ref_count} elements`);
|
|
59
|
+
*
|
|
60
|
+
* // Interactive elements only
|
|
61
|
+
* const interactive = await rdp.automation.snapshot({ interactive: true });
|
|
62
|
+
*
|
|
63
|
+
* // Compact output with depth limit
|
|
64
|
+
* const compact = await rdp.automation.snapshot({ interactive: true, compact: true, depth: 5 });
|
|
65
|
+
*
|
|
66
|
+
* // Click an element by ref number (use @eN format)
|
|
67
|
+
* await rdp.automation.click('@e5');
|
|
68
|
+
*
|
|
69
|
+
* // Fill text in an element
|
|
70
|
+
* await rdp.automation.fill('#SearchBox', 'Hello World');
|
|
71
|
+
*
|
|
72
|
+
* // Wait for an element to appear
|
|
73
|
+
* await rdp.automation.waitFor('#SaveDialog', { state: 'visible' });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare class AutomationController {
|
|
77
|
+
private rdp;
|
|
78
|
+
constructor(rdp: RdpSession);
|
|
79
|
+
/**
|
|
80
|
+
* Take a snapshot of the accessibility tree.
|
|
81
|
+
*
|
|
82
|
+
* Refs are always included (use @eN format to reference elements).
|
|
83
|
+
*/
|
|
84
|
+
snapshot(options?: SnapshotOptions): Promise<AutomationSnapshot>;
|
|
85
|
+
/**
|
|
86
|
+
* Get element properties.
|
|
87
|
+
*/
|
|
88
|
+
get(selector: string, options?: GetOptions): Promise<AutomationElementValue>;
|
|
89
|
+
/**
|
|
90
|
+
* Set focus to an element.
|
|
91
|
+
*/
|
|
92
|
+
focus(selector: string): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Click an element.
|
|
95
|
+
*/
|
|
96
|
+
click(selector: string, options?: ClickOptions): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Double-click an element.
|
|
99
|
+
*/
|
|
100
|
+
doubleClick(selector: string): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Right-click an element.
|
|
103
|
+
*/
|
|
104
|
+
rightClick(selector: string): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Clear and fill text in an element.
|
|
107
|
+
*/
|
|
108
|
+
fill(selector: string, text: string): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Clear text from an element.
|
|
111
|
+
*/
|
|
112
|
+
clear(selector: string): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Select an item in a ComboBox or ListBox.
|
|
115
|
+
*/
|
|
116
|
+
select(selector: string, item: string): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Check or uncheck a CheckBox or RadioButton.
|
|
119
|
+
*/
|
|
120
|
+
check(selector: string, uncheck?: boolean): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Scroll an element.
|
|
123
|
+
*/
|
|
124
|
+
scroll(selector: string, options?: ScrollOptions): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* List all windows.
|
|
127
|
+
*/
|
|
128
|
+
listWindows(): Promise<AutomationWindowInfo[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Focus a window.
|
|
131
|
+
*/
|
|
132
|
+
focusWindow(selector?: string): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Maximize a window.
|
|
135
|
+
*/
|
|
136
|
+
maximizeWindow(selector?: string): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Minimize a window.
|
|
139
|
+
*/
|
|
140
|
+
minimizeWindow(selector?: string): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Restore a window.
|
|
143
|
+
*/
|
|
144
|
+
restoreWindow(selector?: string): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Close a window.
|
|
147
|
+
*/
|
|
148
|
+
closeWindow(selector?: string): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Run a PowerShell command.
|
|
151
|
+
*/
|
|
152
|
+
run(command: string, options?: RunOptions): Promise<AutomationRunResult>;
|
|
153
|
+
/**
|
|
154
|
+
* Wait for an element to reach a state.
|
|
155
|
+
*/
|
|
156
|
+
waitFor(selector: string, options?: WaitForOptions): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Get automation agent status.
|
|
159
|
+
*/
|
|
160
|
+
status(): Promise<AutomationStatus>;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=automation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation controller for Windows UI Automation.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Automation controller for Windows UI Automation.
|
|
6
|
+
*
|
|
7
|
+
* Provides methods for interacting with Windows applications via the
|
|
8
|
+
* Windows UI Automation API through a PowerShell agent.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Take a snapshot of the accessibility tree
|
|
13
|
+
* const snapshot = await rdp.automation.snapshot();
|
|
14
|
+
* console.log(`Found ${snapshot.ref_count} elements`);
|
|
15
|
+
*
|
|
16
|
+
* // Interactive elements only
|
|
17
|
+
* const interactive = await rdp.automation.snapshot({ interactive: true });
|
|
18
|
+
*
|
|
19
|
+
* // Compact output with depth limit
|
|
20
|
+
* const compact = await rdp.automation.snapshot({ interactive: true, compact: true, depth: 5 });
|
|
21
|
+
*
|
|
22
|
+
* // Click an element by ref number (use @eN format)
|
|
23
|
+
* await rdp.automation.click('@e5');
|
|
24
|
+
*
|
|
25
|
+
* // Fill text in an element
|
|
26
|
+
* await rdp.automation.fill('#SearchBox', 'Hello World');
|
|
27
|
+
*
|
|
28
|
+
* // Wait for an element to appear
|
|
29
|
+
* await rdp.automation.waitFor('#SaveDialog', { state: 'visible' });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class AutomationController {
|
|
33
|
+
rdp;
|
|
34
|
+
constructor(rdp) {
|
|
35
|
+
this.rdp = rdp;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Take a snapshot of the accessibility tree.
|
|
39
|
+
*
|
|
40
|
+
* Refs are always included (use @eN format to reference elements).
|
|
41
|
+
*/
|
|
42
|
+
async snapshot(options = {}) {
|
|
43
|
+
const request = {
|
|
44
|
+
type: 'automate',
|
|
45
|
+
action: 'snapshot',
|
|
46
|
+
interactive_only: options.interactive ?? false,
|
|
47
|
+
compact: options.compact ?? false,
|
|
48
|
+
max_depth: options.depth ?? 10,
|
|
49
|
+
selector: options.selector,
|
|
50
|
+
};
|
|
51
|
+
const response = await this.rdp._send(request);
|
|
52
|
+
return response.data;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get element properties.
|
|
56
|
+
*/
|
|
57
|
+
async get(selector, options = {}) {
|
|
58
|
+
const request = {
|
|
59
|
+
type: 'automate',
|
|
60
|
+
action: 'get',
|
|
61
|
+
selector,
|
|
62
|
+
property: options.property,
|
|
63
|
+
};
|
|
64
|
+
const response = await this.rdp._send(request);
|
|
65
|
+
return response.data;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set focus to an element.
|
|
69
|
+
*/
|
|
70
|
+
async focus(selector) {
|
|
71
|
+
await this.rdp._send({
|
|
72
|
+
type: 'automate',
|
|
73
|
+
action: 'focus',
|
|
74
|
+
selector,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Click an element.
|
|
79
|
+
*/
|
|
80
|
+
async click(selector, options = {}) {
|
|
81
|
+
await this.rdp._send({
|
|
82
|
+
type: 'automate',
|
|
83
|
+
action: 'click',
|
|
84
|
+
selector,
|
|
85
|
+
button: options.button ?? 'left',
|
|
86
|
+
double: options.double ?? false,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Double-click an element.
|
|
91
|
+
*/
|
|
92
|
+
async doubleClick(selector) {
|
|
93
|
+
await this.rdp._send({
|
|
94
|
+
type: 'automate',
|
|
95
|
+
action: 'double_click',
|
|
96
|
+
selector,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Right-click an element.
|
|
101
|
+
*/
|
|
102
|
+
async rightClick(selector) {
|
|
103
|
+
await this.rdp._send({
|
|
104
|
+
type: 'automate',
|
|
105
|
+
action: 'right_click',
|
|
106
|
+
selector,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Clear and fill text in an element.
|
|
111
|
+
*/
|
|
112
|
+
async fill(selector, text) {
|
|
113
|
+
await this.rdp._send({
|
|
114
|
+
type: 'automate',
|
|
115
|
+
action: 'fill',
|
|
116
|
+
selector,
|
|
117
|
+
text,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Clear text from an element.
|
|
122
|
+
*/
|
|
123
|
+
async clear(selector) {
|
|
124
|
+
await this.rdp._send({
|
|
125
|
+
type: 'automate',
|
|
126
|
+
action: 'clear',
|
|
127
|
+
selector,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Select an item in a ComboBox or ListBox.
|
|
132
|
+
*/
|
|
133
|
+
async select(selector, item) {
|
|
134
|
+
await this.rdp._send({
|
|
135
|
+
type: 'automate',
|
|
136
|
+
action: 'select',
|
|
137
|
+
selector,
|
|
138
|
+
item,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Check or uncheck a CheckBox or RadioButton.
|
|
143
|
+
*/
|
|
144
|
+
async check(selector, uncheck = false) {
|
|
145
|
+
await this.rdp._send({
|
|
146
|
+
type: 'automate',
|
|
147
|
+
action: 'check',
|
|
148
|
+
selector,
|
|
149
|
+
uncheck,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Scroll an element.
|
|
154
|
+
*/
|
|
155
|
+
async scroll(selector, options = {}) {
|
|
156
|
+
await this.rdp._send({
|
|
157
|
+
type: 'automate',
|
|
158
|
+
action: 'scroll',
|
|
159
|
+
selector,
|
|
160
|
+
direction: options.direction,
|
|
161
|
+
amount: options.amount,
|
|
162
|
+
to_child: options.toChild,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* List all windows.
|
|
167
|
+
*/
|
|
168
|
+
async listWindows() {
|
|
169
|
+
const response = await this.rdp._send({
|
|
170
|
+
type: 'automate',
|
|
171
|
+
action: 'window',
|
|
172
|
+
window_action: 'list',
|
|
173
|
+
});
|
|
174
|
+
const data = response.data;
|
|
175
|
+
return data.windows;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Focus a window.
|
|
179
|
+
*/
|
|
180
|
+
async focusWindow(selector) {
|
|
181
|
+
await this.rdp._send({
|
|
182
|
+
type: 'automate',
|
|
183
|
+
action: 'window',
|
|
184
|
+
window_action: 'focus',
|
|
185
|
+
selector,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Maximize a window.
|
|
190
|
+
*/
|
|
191
|
+
async maximizeWindow(selector) {
|
|
192
|
+
await this.rdp._send({
|
|
193
|
+
type: 'automate',
|
|
194
|
+
action: 'window',
|
|
195
|
+
window_action: 'maximize',
|
|
196
|
+
selector,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Minimize a window.
|
|
201
|
+
*/
|
|
202
|
+
async minimizeWindow(selector) {
|
|
203
|
+
await this.rdp._send({
|
|
204
|
+
type: 'automate',
|
|
205
|
+
action: 'window',
|
|
206
|
+
window_action: 'minimize',
|
|
207
|
+
selector,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Restore a window.
|
|
212
|
+
*/
|
|
213
|
+
async restoreWindow(selector) {
|
|
214
|
+
await this.rdp._send({
|
|
215
|
+
type: 'automate',
|
|
216
|
+
action: 'window',
|
|
217
|
+
window_action: 'restore',
|
|
218
|
+
selector,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Close a window.
|
|
223
|
+
*/
|
|
224
|
+
async closeWindow(selector) {
|
|
225
|
+
await this.rdp._send({
|
|
226
|
+
type: 'automate',
|
|
227
|
+
action: 'window',
|
|
228
|
+
window_action: 'close',
|
|
229
|
+
selector,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Run a PowerShell command.
|
|
234
|
+
*/
|
|
235
|
+
async run(command, options = {}) {
|
|
236
|
+
const response = await this.rdp._send({
|
|
237
|
+
type: 'automate',
|
|
238
|
+
action: 'run',
|
|
239
|
+
command,
|
|
240
|
+
args: options.args ?? [],
|
|
241
|
+
wait: options.wait ?? false,
|
|
242
|
+
hidden: options.hidden ?? true,
|
|
243
|
+
});
|
|
244
|
+
return response.data;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Wait for an element to reach a state.
|
|
248
|
+
*/
|
|
249
|
+
async waitFor(selector, options = {}) {
|
|
250
|
+
await this.rdp._send({
|
|
251
|
+
type: 'automate',
|
|
252
|
+
action: 'wait_for',
|
|
253
|
+
selector,
|
|
254
|
+
timeout_ms: options.timeout ?? 30000,
|
|
255
|
+
state: options.state ?? 'visible',
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Get automation agent status.
|
|
260
|
+
*/
|
|
261
|
+
async status() {
|
|
262
|
+
const response = await this.rdp._send({
|
|
263
|
+
type: 'automate',
|
|
264
|
+
action: 'status',
|
|
265
|
+
});
|
|
266
|
+
return response.data;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
* await rdp.disconnect();
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
+
import { AutomationController } from './automation.js';
|
|
24
25
|
import { ConnectOptions, ConnectResult, ScreenshotOptions, ScreenshotResult, SessionInfo, MappedDrive, MouseClickOptions, MouseDragOptions, ScrollOptions, KeyboardTypeOptions, KeyboardPressOptions, ClipboardSetOptions, Request, Response } from './types.js';
|
|
25
26
|
export * from './types.js';
|
|
27
|
+
export { AutomationController } from './automation.js';
|
|
26
28
|
export interface RdpSessionOptions {
|
|
27
29
|
/** Session name (default: 'default') */
|
|
28
30
|
session?: string;
|
|
@@ -108,6 +110,8 @@ export declare class RdpSession {
|
|
|
108
110
|
readonly clipboard: ClipboardController;
|
|
109
111
|
/** Drive controller. */
|
|
110
112
|
readonly drives: DriveController;
|
|
113
|
+
/** Automation controller for Windows UI Automation. */
|
|
114
|
+
readonly automation: AutomationController;
|
|
111
115
|
private session;
|
|
112
116
|
private timeout;
|
|
113
117
|
private streamPort;
|
|
@@ -116,6 +120,17 @@ export declare class RdpSession {
|
|
|
116
120
|
constructor(options?: RdpSessionOptions);
|
|
117
121
|
/**
|
|
118
122
|
* Connect to an RDP server.
|
|
123
|
+
*
|
|
124
|
+
* @param options Connection options
|
|
125
|
+
* @param options.host Server hostname or IP
|
|
126
|
+
* @param options.port Server port (default: 3389)
|
|
127
|
+
* @param options.username Username for authentication
|
|
128
|
+
* @param options.password Password for authentication
|
|
129
|
+
* @param options.domain Optional domain
|
|
130
|
+
* @param options.width Desktop width (default: 1280)
|
|
131
|
+
* @param options.height Desktop height (default: 800)
|
|
132
|
+
* @param options.drives Drives to map
|
|
133
|
+
* @param options.enableWinAutomation Enable Windows UI Automation
|
|
119
134
|
*/
|
|
120
135
|
connect(options: ConnectOptions): Promise<ConnectResult>;
|
|
121
136
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,9 +22,11 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
import { DaemonManager } from './daemon.js';
|
|
25
|
+
import { AutomationController } from './automation.js';
|
|
25
26
|
import { RdpError, } from './types.js';
|
|
26
27
|
// Re-export types
|
|
27
28
|
export * from './types.js';
|
|
29
|
+
export { AutomationController } from './automation.js';
|
|
28
30
|
/**
|
|
29
31
|
* Mouse controller for RDP sessions.
|
|
30
32
|
*/
|
|
@@ -151,6 +153,8 @@ export class RdpSession {
|
|
|
151
153
|
clipboard;
|
|
152
154
|
/** Drive controller. */
|
|
153
155
|
drives;
|
|
156
|
+
/** Automation controller for Windows UI Automation. */
|
|
157
|
+
automation;
|
|
154
158
|
session;
|
|
155
159
|
timeout;
|
|
156
160
|
streamPort;
|
|
@@ -166,9 +170,21 @@ export class RdpSession {
|
|
|
166
170
|
this.scroll = new ScrollController(this);
|
|
167
171
|
this.clipboard = new ClipboardController(this);
|
|
168
172
|
this.drives = new DriveController(this);
|
|
173
|
+
this.automation = new AutomationController(this);
|
|
169
174
|
}
|
|
170
175
|
/**
|
|
171
176
|
* Connect to an RDP server.
|
|
177
|
+
*
|
|
178
|
+
* @param options Connection options
|
|
179
|
+
* @param options.host Server hostname or IP
|
|
180
|
+
* @param options.port Server port (default: 3389)
|
|
181
|
+
* @param options.username Username for authentication
|
|
182
|
+
* @param options.password Password for authentication
|
|
183
|
+
* @param options.domain Optional domain
|
|
184
|
+
* @param options.width Desktop width (default: 1280)
|
|
185
|
+
* @param options.height Desktop height (default: 800)
|
|
186
|
+
* @param options.drives Drives to map
|
|
187
|
+
* @param options.enableWinAutomation Enable Windows UI Automation
|
|
172
188
|
*/
|
|
173
189
|
async connect(options) {
|
|
174
190
|
// Ensure daemon is running and connect
|
|
@@ -183,6 +199,7 @@ export class RdpSession {
|
|
|
183
199
|
width: options.width ?? 1280,
|
|
184
200
|
height: options.height ?? 800,
|
|
185
201
|
drives: options.drives ?? [],
|
|
202
|
+
enable_win_automation: options.enableWinAutomation,
|
|
186
203
|
};
|
|
187
204
|
const response = await this._send(request);
|
|
188
205
|
const data = response.data;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface ConnectOptions {
|
|
|
10
10
|
width?: number;
|
|
11
11
|
height?: number;
|
|
12
12
|
drives?: DriveMapping[];
|
|
13
|
+
/** Enable Windows UI Automation. */
|
|
14
|
+
enableWinAutomation?: boolean;
|
|
13
15
|
}
|
|
14
16
|
export interface DriveMapping {
|
|
15
17
|
path: string;
|
|
@@ -92,6 +94,7 @@ export interface ConnectRequest {
|
|
|
92
94
|
width: number;
|
|
93
95
|
height: number;
|
|
94
96
|
drives: DriveMapping[];
|
|
97
|
+
enable_win_automation?: boolean;
|
|
95
98
|
}
|
|
96
99
|
export interface ScreenshotRequest {
|
|
97
100
|
type: 'screenshot';
|
|
@@ -171,8 +174,13 @@ export interface SessionInfoRequest {
|
|
|
171
174
|
export interface PingRequest {
|
|
172
175
|
type: 'ping';
|
|
173
176
|
}
|
|
174
|
-
export
|
|
175
|
-
|
|
177
|
+
export interface AutomateRequest {
|
|
178
|
+
type: 'automate';
|
|
179
|
+
action: string;
|
|
180
|
+
[key: string]: unknown;
|
|
181
|
+
}
|
|
182
|
+
export type Request = ConnectRequest | ScreenshotRequest | MouseRequest | KeyboardRequest | ScrollRequest | ClipboardRequest | DriveListRequest | DisconnectRequest | SessionInfoRequest | PingRequest | AutomateRequest;
|
|
183
|
+
export type ErrorCode = 'not_connected' | 'already_connected' | 'connection_failed' | 'authentication_failed' | 'timeout' | 'invalid_request' | 'not_supported' | 'internal_error' | 'session_not_found' | 'ipc_error' | 'daemon_not_running' | 'clipboard_error' | 'drive_error' | 'automation_not_enabled' | 'automation_error' | 'element_not_found' | 'stale_ref' | 'command_failed';
|
|
176
184
|
export interface ErrorInfo {
|
|
177
185
|
code: ErrorCode;
|
|
178
186
|
message: string;
|
|
@@ -220,6 +228,59 @@ export interface Response {
|
|
|
220
228
|
data?: ResponseData;
|
|
221
229
|
error?: ErrorInfo;
|
|
222
230
|
}
|
|
231
|
+
export interface AutomationElementBounds {
|
|
232
|
+
x: number;
|
|
233
|
+
y: number;
|
|
234
|
+
width: number;
|
|
235
|
+
height: number;
|
|
236
|
+
}
|
|
237
|
+
export interface AutomationElement {
|
|
238
|
+
ref?: number;
|
|
239
|
+
role: string;
|
|
240
|
+
name?: string;
|
|
241
|
+
automation_id?: string;
|
|
242
|
+
class_name?: string;
|
|
243
|
+
bounds?: AutomationElementBounds;
|
|
244
|
+
states?: string[];
|
|
245
|
+
value?: string;
|
|
246
|
+
patterns?: string[];
|
|
247
|
+
children?: AutomationElement[];
|
|
248
|
+
}
|
|
249
|
+
export interface AutomationSnapshot {
|
|
250
|
+
type: 'snapshot';
|
|
251
|
+
snapshot_id: string;
|
|
252
|
+
ref_count: number;
|
|
253
|
+
root: AutomationElement;
|
|
254
|
+
}
|
|
255
|
+
export interface AutomationElementValue {
|
|
256
|
+
type: 'element';
|
|
257
|
+
name?: string;
|
|
258
|
+
value?: string;
|
|
259
|
+
states?: string[];
|
|
260
|
+
bounds?: AutomationElementBounds;
|
|
261
|
+
}
|
|
262
|
+
export interface AutomationWindowInfo {
|
|
263
|
+
title: string;
|
|
264
|
+
process_name?: string;
|
|
265
|
+
process_id?: number;
|
|
266
|
+
bounds?: AutomationElementBounds;
|
|
267
|
+
minimized?: boolean;
|
|
268
|
+
maximized?: boolean;
|
|
269
|
+
}
|
|
270
|
+
export interface AutomationStatus {
|
|
271
|
+
type: 'automation_status';
|
|
272
|
+
agent_running: boolean;
|
|
273
|
+
agent_pid?: number;
|
|
274
|
+
capabilities?: string[];
|
|
275
|
+
version?: string;
|
|
276
|
+
}
|
|
277
|
+
export interface AutomationRunResult {
|
|
278
|
+
type: 'run_result';
|
|
279
|
+
exit_code?: number;
|
|
280
|
+
stdout?: string;
|
|
281
|
+
stderr?: string;
|
|
282
|
+
pid?: number;
|
|
283
|
+
}
|
|
223
284
|
export declare class RdpError extends Error {
|
|
224
285
|
code: ErrorCode;
|
|
225
286
|
constructor(code: ErrorCode, message: string);
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyYH,sBAAsB;AAEtB,MAAM,OAAO,QAAS,SAAQ,KAAK;IAExB;IADT,YACS,IAAe,EACtB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAW;QAItB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-rdp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "CLI tool for AI agents to control Windows Remote Desktop sessions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,7 +30,10 @@
|
|
|
30
30
|
"build": "cargo build --release && node scripts/copy-native.cjs",
|
|
31
31
|
"build:all": "node scripts/build-all.cjs",
|
|
32
32
|
"prepublishOnly": "npm run build:ts",
|
|
33
|
-
"example": "tsx examples/typescript/hello-world.ts"
|
|
33
|
+
"example": "tsx examples/typescript/hello-world.ts",
|
|
34
|
+
"lint": "eslint src examples",
|
|
35
|
+
"lint:fix": "eslint src examples --fix",
|
|
36
|
+
"lint:ps1": "pwsh -NoProfile -File scripts/lint-ps1.ps1"
|
|
34
37
|
},
|
|
35
38
|
"keywords": [
|
|
36
39
|
"rdp",
|
|
@@ -46,6 +49,9 @@
|
|
|
46
49
|
"homepage": "https://github.com/thisnick/agent-rdp#readme",
|
|
47
50
|
"devDependencies": {
|
|
48
51
|
"@types/node": "^20.0.0",
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^8.53.1",
|
|
53
|
+
"@typescript-eslint/parser": "^8.53.1",
|
|
54
|
+
"eslint": "^9.39.2",
|
|
49
55
|
"tsx": "^4.7.0",
|
|
50
56
|
"typescript": "^5.3.0"
|
|
51
57
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env pwsh
|
|
2
|
+
# Lint PowerShell scripts using PSScriptAnalyzer
|
|
3
|
+
|
|
4
|
+
$ErrorActionPreference = "Stop"
|
|
5
|
+
|
|
6
|
+
# Install PSScriptAnalyzer if not present
|
|
7
|
+
if (-not (Get-Module -ListAvailable -Name PSScriptAnalyzer)) {
|
|
8
|
+
Write-Host "Installing PSScriptAnalyzer..."
|
|
9
|
+
Install-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
# Run analysis on automation scripts
|
|
13
|
+
$scriptsPath = Join-Path $PSScriptRoot ".." "crates" "agent-rdp-daemon" "src" "automation" "scripts"
|
|
14
|
+
$settingsPath = Join-Path $scriptsPath "PSScriptAnalyzerSettings.psd1"
|
|
15
|
+
|
|
16
|
+
Write-Host "Analyzing PowerShell scripts in: $scriptsPath"
|
|
17
|
+
Write-Host "Using settings: $settingsPath"
|
|
18
|
+
|
|
19
|
+
$results = Invoke-ScriptAnalyzer -Path $scriptsPath -Recurse -Settings $settingsPath
|
|
20
|
+
|
|
21
|
+
if ($results.Count -gt 0) {
|
|
22
|
+
$results | Format-Table -Property Severity, RuleName, ScriptName, Line, Message -AutoSize
|
|
23
|
+
Write-Error "PSScriptAnalyzer found $($results.Count) issues"
|
|
24
|
+
exit 1
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Write-Host "No issues found in PowerShell scripts" -ForegroundColor Green
|
|
28
|
+
exit 0
|
package/bin/agent-rdp
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
# agent-rdp CLI wrapper
|
|
3
|
-
# Detects OS/arch and runs the appropriate native binary
|
|
4
|
-
|
|
5
|
-
SCRIPT="$0"
|
|
6
|
-
while [ -L "$SCRIPT" ]; do
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
|
|
8
|
-
SCRIPT="$(readlink "$SCRIPT")"
|
|
9
|
-
case "$SCRIPT" in /*) ;; *) SCRIPT="$SCRIPT_DIR/$SCRIPT" ;; esac
|
|
10
|
-
done
|
|
11
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
|
|
12
|
-
|
|
13
|
-
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
14
|
-
ARCH=$(uname -m)
|
|
15
|
-
case "$OS" in darwin) OS="darwin" ;; linux) OS="linux" ;; mingw*|msys*|cygwin*) OS="win32" ;; esac
|
|
16
|
-
case "$ARCH" in x86_64|amd64) ARCH="x64" ;; aarch64|arm64) ARCH="arm64" ;; esac
|
|
17
|
-
|
|
18
|
-
BINARY="$SCRIPT_DIR/agent-rdp-${OS}-${ARCH}"
|
|
19
|
-
|
|
20
|
-
if [ -f "$BINARY" ] && [ -x "$BINARY" ]; then
|
|
21
|
-
exec "$BINARY" "$@"
|
|
22
|
-
fi
|
|
23
|
-
|
|
24
|
-
echo "Error: No binary found for ${OS}-${ARCH}" >&2
|
|
25
|
-
echo "Expected: $BINARY" >&2
|
|
26
|
-
echo "" >&2
|
|
27
|
-
echo "To build locally:" >&2
|
|
28
|
-
echo " 1. Install Rust: https://rustup.rs" >&2
|
|
29
|
-
echo " 2. Run: npm run build:native" >&2
|
|
30
|
-
exit 1
|
package/bin/agent-rdp.cmd
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
:: agent-rdp CLI wrapper for Windows
|
|
3
|
-
setlocal
|
|
4
|
-
|
|
5
|
-
set "SCRIPT_DIR=%~dp0"
|
|
6
|
-
|
|
7
|
-
:: Detect architecture
|
|
8
|
-
if "%PROCESSOR_ARCHITECTURE%"=="ARM64" (
|
|
9
|
-
set "ARCH=arm64"
|
|
10
|
-
) else (
|
|
11
|
-
set "ARCH=x64"
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
set "BINARY=%SCRIPT_DIR%agent-rdp-win32-%ARCH%.exe"
|
|
15
|
-
|
|
16
|
-
if exist "%BINARY%" (
|
|
17
|
-
"%BINARY%" %*
|
|
18
|
-
exit /b %ERRORLEVEL%
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
echo Error: No binary found for win32-%ARCH% >&2
|
|
22
|
-
echo Expected: %BINARY% >&2
|
|
23
|
-
echo. >&2
|
|
24
|
-
echo To build locally: >&2
|
|
25
|
-
echo 1. Install Rust: https://rustup.rs >&2
|
|
26
|
-
echo 2. Run: npm run build:native >&2
|
|
27
|
-
exit /b 1
|