@denisixnpm/agent-rdp 0.7.5 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.6](https://github.com/denisix/agent-rdp/compare/agent-rdp-v0.7.5...agent-rdp-v0.7.6) (2026-08-31)
4
+
5
+
6
+ ### Features
7
+
8
+ * add SDK parity for locate click/wait, automation.focused, and keyboard paste/down/up ([369ac2a](https://github.com/denisix/agent-rdp/commit/369ac2a83ef184335b459a35a33da69a56175a9c))
9
+
3
10
  ## [0.7.5](https://github.com/denisix/agent-rdp/compare/agent-rdp-v0.7.4...agent-rdp-v0.7.5) (2026-08-15)
4
11
 
5
12
 
package/README.md CHANGED
@@ -170,10 +170,51 @@ agent-rdp screenshot --output desktop.png
170
170
 
171
171
  # JSON metadata (path/width/height — image is always written to disk)
172
172
  agent-rdp --json screenshot --output desktop.png
173
+
174
+ # Capture just part of the screen (X,Y,WIDTH,HEIGHT in screen pixels).
175
+ # The result reports the offset, so a coordinate read off the crop can be
176
+ # turned back into a clickable one.
177
+ agent-rdp screenshot --region 100,380,600,30 --output row.png
173
178
  ```
174
179
 
175
180
  > Note: the CLI no longer has `screenshot --base64`. For agent pipelines, write a file and encode it yourself, or use the Node.js API's `rdp.screenshot({ path })`, which writes to disk and returns `{ path, width, height }` without materializing base64 — prefer this over the default `rdp.screenshot()` (which returns `{ base64, width, height }`) when the caller doesn't need the raw bytes, since echoing a base64 image into an LLM context is expensive.
176
181
 
182
+ ### Getting Coordinates Right
183
+
184
+ **Never estimate a coordinate by looking at a screenshot.** Screenshot pixels,
185
+ OCR boxes and click coordinates are all the same space, so a coordinate that
186
+ comes out of the tool is exact — but one guessed from an image is not. Images
187
+ get downscaled on their way into a vision model, and a click that is 30px off
188
+ lands on the wrong row, the wrong cell, or a search box.
189
+
190
+ Ask for the target by name and let the tool find it:
191
+
192
+ ```bash
193
+ # Click text, without a coordinate ever passing through your hands
194
+ agent-rdp locate "Добавить" --click
195
+
196
+ # Several matches? Choosing is explicit - it will not guess for you
197
+ agent-rdp locate "Добавить" --click --index 1
198
+
199
+ # Click a button by accessibility selector (preferred when UIA can see it)
200
+ agent-rdp automate click "#SaveButton"
201
+ ```
202
+
203
+ To verify a value in place, read the region rather than cropping an image
204
+ yourself — coordinates still come back in full-screen space:
205
+
206
+ ```bash
207
+ # Check one table row
208
+ agent-rdp locate --all --region 100,380,600,30
209
+ agent-rdp screenshot --region 100,380,600,30 -o row.png
210
+
211
+ # Confirm which field the keyboard is actually in before typing
212
+ agent-rdp automate focused
213
+ ```
214
+
215
+ `agent-rdp mouse click X Y` remains available for coordinates you got from
216
+ `locate`, `automate get`, or a deliberate calculation.
217
+
177
218
  ### Mouse Operations
178
219
 
179
220
  ```bash
@@ -199,6 +240,12 @@ agent-rdp mouse drag 100 100 500 500
199
240
  # Type text (supports Unicode)
200
241
  agent-rdp keyboard type "Hello, World!"
201
242
 
243
+ # Paste instead of type for long or non-Latin text: clipboard + Ctrl+V as one
244
+ # command. More reliable than `type` - it cannot lose individual keystrokes,
245
+ # and there's no gap between setting the clipboard and pasting for focus to
246
+ # move in.
247
+ agent-rdp keyboard paste "Привет, мир! A very long string types can drop pieces of."
248
+
202
249
  # Press key combinations
203
250
  agent-rdp keyboard press "ctrl+c"
204
251
  agent-rdp keyboard press "alt+tab"
@@ -208,15 +255,24 @@ agent-rdp keyboard press "ctrl+shift+esc"
208
255
  agent-rdp keyboard press enter
209
256
  agent-rdp keyboard press escape
210
257
  agent-rdp keyboard press f5
258
+
259
+ # Hold a key across other commands (shift-click, hold-and-drag, ...)
260
+ agent-rdp keyboard down shift
261
+ agent-rdp mouse click 200 300
262
+ agent-rdp keyboard up shift
211
263
  ```
212
264
 
213
265
  ### Scroll
214
266
 
267
+ Position defaults to the **screen center**, not whatever pane you're working
268
+ in — pass `--at` to target a specific window or control.
269
+
215
270
  ```bash
216
271
  agent-rdp scroll up --amount 3
217
272
  agent-rdp scroll down --amount 5
218
273
  agent-rdp scroll left
219
274
  agent-rdp scroll right
275
+ agent-rdp scroll down --amount 5 --at 600 400
220
276
  ```
221
277
 
222
278
  ### Locate (OCR)
@@ -235,6 +291,20 @@ agent-rdp locate --all
235
291
 
236
292
  # JSON output
237
293
  agent-rdp locate "OK" --json
294
+
295
+ # Click the match directly (see "Getting Coordinates Right" above)
296
+ agent-rdp locate "Cancel" --click
297
+ agent-rdp locate "Cancel" --double-click
298
+ agent-rdp locate "Cancel" --right-click
299
+
300
+ # Search only part of the screen. Results stay in full-screen coordinates,
301
+ # so --region composes with --click. A tight region also reads small text
302
+ # more reliably than a full-screen pass.
303
+ agent-rdp locate --all --region 100,380,600,30
304
+
305
+ # Block until text appears (e.g. a dialog finishing its animation), instead
306
+ # of polling `locate` in a loop from the outside. Composes with --click.
307
+ agent-rdp locate "OK" --wait 10000 --click
238
308
  ```
239
309
 
240
310
  Returns text lines with coordinates for clicking:
@@ -242,9 +312,13 @@ Returns text lines with coordinates for clicking:
242
312
  Found 1 line(s) containing 'Cancel':
243
313
  'Cancel Button' at (650, 420) size 80x14 - center: (690, 427)
244
314
 
245
- To click the first match: agent-rdp mouse click 690 427
315
+ To click it: agent-rdp locate 'Cancel' --click
246
316
  ```
247
317
 
318
+ Clicking is deliberately strict: no match, or several matches without
319
+ `--index`, is an error rather than a guess. Prefer narrowing with `--region`
320
+ over picking an index.
321
+
248
322
  ### Clipboard
249
323
 
250
324
  ```bash
@@ -294,6 +368,12 @@ agent-rdp automate snapshot -d 3 # Limit depth to 3 levels
294
368
  agent-rdp automate snapshot -s "~*Notepad*" # Scope to a window/element
295
369
  agent-rdp automate snapshot -i -c -d 5 # Combine options
296
370
 
371
+ # Which control has keyboard focus right now?
372
+ # Use this after Tab/Enter to confirm where your keystrokes will go, instead
373
+ # of typing into a cell you assume is focused.
374
+ agent-rdp automate focused
375
+ # edit 'Количество' = "5,000" at (110, 391) 80x18 [focusable]
376
+
297
377
  # Pattern-based element operations (refs use @eN format)
298
378
  agent-rdp automate click "#SaveButton" # Click button
299
379
  agent-rdp automate click "@e5" # Click by ref number from snapshot
@@ -456,8 +536,11 @@ await rdp.mouse.drag({ from: { x: 100, y: 100 }, to: { x: 500, y: 500 } });
456
536
 
457
537
  // Keyboard
458
538
  await rdp.keyboard.type({ text: 'Hello World' });
539
+ await rdp.keyboard.paste('Привет, мир!'); // Reliable for long/non-Latin text
459
540
  await rdp.keyboard.press({ keys: 'ctrl+c' });
460
541
  await rdp.keyboard.press({ keys: 'enter' }); // Single keys use press()
542
+ await rdp.keyboard.down('shift'); // Hold across other commands
543
+ await rdp.keyboard.up('shift');
461
544
 
462
545
  // Scroll
463
546
  await rdp.scroll.up(); // Default amount: 3
@@ -477,8 +560,15 @@ if (matches.length > 0) {
477
560
  // Get all text on screen
478
561
  const allText = await rdp.locate({ all: true });
479
562
 
563
+ // Click a match directly - the coordinate never leaves the process
564
+ await rdp.locate({ text: 'Cancel', click: 'left' });
565
+
566
+ // Block until text appears, instead of polling in a loop
567
+ await rdp.locate({ text: 'OK', waitMs: 10000, click: 'left' });
568
+
480
569
  // Automation (requires --enable-win-automation at connect)
481
570
  const snapshot = await rdp.automation.snapshot({ interactive: true });
571
+ const focused = await rdp.automation.focused(); // What has keyboard focus right now
482
572
  await rdp.automation.click('@e5'); // Click button by ref
483
573
  await rdp.automation.click('@e5', { doubleClick: true }); // Double-click
484
574
  await rdp.automation.select('@e10'); // Select item
@@ -2,7 +2,7 @@
2
2
  * Automation controller for Windows UI Automation.
3
3
  */
4
4
  import type { RdpSession } from './index.js';
5
- import type { AutomationSnapshot, AutomationElementValue, AutomationWindowInfo, AutomationStatus, AutomationRunResult, AutomationRunPollResult, AutomationClickResult } from './types.js';
5
+ import type { AutomationSnapshot, AutomationElement, AutomationElementValue, AutomationWindowInfo, AutomationStatus, AutomationRunResult, AutomationRunPollResult, AutomationClickResult } from './types.js';
6
6
  export interface SnapshotOptions {
7
7
  /** Filter to interactive elements only (buttons, inputs, focusable). */
8
8
  interactive?: boolean;
@@ -12,6 +12,13 @@ export interface SnapshotOptions {
12
12
  depth?: number;
13
13
  /** Scope to a specific element (window, panel, etc.) via selector. */
14
14
  selector?: string;
15
+ /**
16
+ * Start from the currently focused element instead of the desktop root.
17
+ * Prefer `automation.focused()` for "what has focus right now" - it also
18
+ * picks safe defaults for `interactive`/`compact`, which can otherwise
19
+ * prune the focused element itself away.
20
+ */
21
+ focused?: boolean;
15
22
  }
16
23
  export interface GetOptions {
17
24
  /** Property to retrieve: 'name', 'value', 'states', 'bounds', or 'all'. */
@@ -103,6 +110,19 @@ export declare class AutomationController {
103
110
  * Refs are always included (use @eN format to reference elements).
104
111
  */
105
112
  snapshot(options?: SnapshotOptions): Promise<AutomationSnapshot>;
113
+ /**
114
+ * Get the element that currently has keyboard focus.
115
+ *
116
+ * Use this after `keyboard.press('tab')` or similar to confirm which field
117
+ * the keystrokes will actually land in before typing into it - an app's Tab
118
+ * order is its own business and cannot be predicted from the outside.
119
+ *
120
+ * Deliberately not compact and not interactive-only: both filters can prune
121
+ * the focused element itself, and the element most likely to be pruned - an
122
+ * unnamed container with no value - is exactly the half-edited form field
123
+ * this method exists to identify.
124
+ */
125
+ focused(): Promise<AutomationElement>;
106
126
  /**
107
127
  * Get element properties.
108
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,37 @@ export class AutomationController {
56
56
  compact: options.compact ?? false,
57
57
  max_depth: options.depth ?? 10,
58
58
  selector: options.selector,
59
- focused: false,
59
+ focused: options.focused ?? false,
60
60
  };
61
61
  const response = await this.rdp._send(request);
62
62
  return response.data;
63
63
  }
64
+ /**
65
+ * Get the element that currently has keyboard focus.
66
+ *
67
+ * Use this after `keyboard.press('tab')` or similar to confirm which field
68
+ * the keystrokes will actually land in before typing into it - an app's Tab
69
+ * order is its own business and cannot be predicted from the outside.
70
+ *
71
+ * Deliberately not compact and not interactive-only: both filters can prune
72
+ * the focused element itself, and the element most likely to be pruned - an
73
+ * unnamed container with no value - is exactly the half-edited form field
74
+ * this method exists to identify.
75
+ */
76
+ async focused() {
77
+ const request = {
78
+ type: 'automate',
79
+ op: 'snapshot',
80
+ interactive_only: false,
81
+ compact: false,
82
+ max_depth: 1,
83
+ selector: undefined,
84
+ focused: true,
85
+ };
86
+ const response = await this.rdp._send(request);
87
+ const snapshot = response.data;
88
+ return snapshot.root;
89
+ }
64
90
  /**
65
91
  * Get element properties.
66
92
  */
@@ -1 +1 @@
1
- {"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,8 @@ export type KeyboardRequest = {
19
19
  } | {
20
20
  "action": "key_up";
21
21
  key: string;
22
+ } | {
23
+ "action": "paste";
24
+ text: string;
22
25
  };
23
26
  //# sourceMappingURL=KeyboardRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardRequest.d.ts","sourceRoot":"","sources":["../../src/generated/KeyboardRequest.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"KeyboardRequest.d.ts","sourceRoot":"","sources":["../../src/generated/KeyboardRequest.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Region } from "./Region.js";
1
2
  /**
2
3
  * OCR-based text location request.
3
4
  * Uses screenshot + OCR to find text on screen and return coordinates.
@@ -19,5 +20,21 @@ export type LocateRequest = {
19
20
  * Return all text on screen (ignores text/pattern/ignore_case).
20
21
  */
21
22
  all: boolean;
23
+ /**
24
+ * Restrict OCR to this part of the desktop (default: the whole desktop).
25
+ *
26
+ * Match coordinates are still reported in full-desktop space.
27
+ */
28
+ region?: Region;
29
+ /**
30
+ * Keep re-running OCR until the text appears or this many milliseconds
31
+ * pass (default: single pass).
32
+ *
33
+ * Lets a caller block server-side on "the dialog is now visible" instead
34
+ * of polling screenshot/locate in a loop from the outside. On timeout the
35
+ * response is a `timeout` error rather than an empty success, so a
36
+ * wait-then-click sequence cannot fall through to clicking nothing.
37
+ */
38
+ wait_ms?: number;
22
39
  };
23
40
  //# sourceMappingURL=LocateRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocateRequest.d.ts","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"LocateRequest.d.ts","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAAE,CAAC"}
@@ -1,3 +1,2 @@
1
- // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
1
  export {};
3
2
  //# sourceMappingURL=LocateRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocateRequest.js","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
1
+ {"version":3,"file":"LocateRequest.js","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A rectangular sub-area of the desktop, in framebuffer pixels.
3
+ *
4
+ * Used to restrict a screenshot or an OCR pass to part of the screen. The
5
+ * origin is always the top-left of the full desktop, and any coordinate the
6
+ * daemon reports back for a region request is translated back into that same
7
+ * full-desktop space - callers never have to add the offset themselves.
8
+ */
9
+ export type Region = {
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ };
15
+ //# sourceMappingURL=Region.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Region.d.ts","sourceRoot":"","sources":["../../src/generated/Region.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
2
+ export {};
3
+ //# sourceMappingURL=Region.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Region.js","sourceRoot":"","sources":["../../src/generated/Region.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
@@ -55,6 +55,17 @@ export type ResponseData = {
55
55
  * Base64-encoded image data.
56
56
  */
57
57
  base64: string;
58
+ /**
59
+ * X offset of the image within the full desktop (region captures only).
60
+ *
61
+ * Add this to an x coordinate read off the image to get a coordinate
62
+ * that can be clicked.
63
+ */
64
+ offset_x?: number;
65
+ /**
66
+ * Y offset of the image within the full desktop (region captures only).
67
+ */
68
+ offset_y?: number;
58
69
  } | {
59
70
  "type": "clipboard";
60
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseData.d.ts","sourceRoot":"","sources":["../../src/generated/ResponseData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IACpE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IACvD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAC1C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IACpF;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IACzD;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,qBAAqB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAC1K;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"ResponseData.d.ts","sourceRoot":"","sources":["../../src/generated/ResponseData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IACpE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IACvD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAC7C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IACpF;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IACzD;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,qBAAqB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAC1K;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ImageFormat } from "./ImageFormat.js";
2
+ import type { Region } from "./Region.js";
2
3
  /**
3
4
  * Screenshot request parameters.
4
5
  */
@@ -7,5 +8,9 @@ export type ScreenshotRequest = {
7
8
  * Image format.
8
9
  */
9
10
  format: ImageFormat;
11
+ /**
12
+ * Capture only this part of the desktop (default: the whole desktop).
13
+ */
14
+ region?: Region;
10
15
  };
11
16
  //# sourceMappingURL=ScreenshotRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenshotRequest.d.ts","sourceRoot":"","sources":["../../src/generated/ScreenshotRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAChC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"ScreenshotRequest.d.ts","sourceRoot":"","sources":["../../src/generated/ScreenshotRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAChC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE,CAAC"}
@@ -25,6 +25,7 @@ export type { MappedDrive } from './MappedDrive.js';
25
25
  export type { MouseButton } from './MouseButton.js';
26
26
  export type { MouseRequest } from './MouseRequest.js';
27
27
  export type { OcrMatch } from './OcrMatch.js';
28
+ export type { Region } from './Region.js';
28
29
  export type { Request } from './Request.js';
29
30
  export type { Response } from './Response.js';
30
31
  export type { ResponseData } from './ResponseData.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -22,7 +22,7 @@
22
22
  * ```
23
23
  */
24
24
  import { AutomationController } from './automation.js';
25
- import { ConnectOptions, ConnectResult, ScreenshotOptions, ScreenshotResult, ScreenshotFileResult, SessionInfo, MappedDrive, MouseClickOptions, MouseDragOptions, ScrollOptions, KeyboardTypeOptions, KeyboardPressOptions, ClipboardSetOptions, LocateOptions, OcrMatch, Request, Response } from './types.js';
25
+ import { ConnectOptions, ConnectResult, ScreenshotOptions, ScreenshotResult, ScreenshotFileResult, SessionInfo, MappedDrive, MouseClickOptions, MouseDragOptions, ScrollOptions, KeyboardTypeOptions, KeyboardPressOptions, ClipboardSetOptions, LocateOptions, LocateClickResult, OcrMatch, Request, Response } from './types.js';
26
26
  export * from './types.js';
27
27
  export { AutomationController } from './automation.js';
28
28
  export interface RdpSessionOptions {
@@ -70,6 +70,18 @@ export declare class KeyboardController {
70
70
  type(options: KeyboardTypeOptions): Promise<void>;
71
71
  /** Press a key combination (e.g., 'ctrl+c', 'alt+tab') or single key (e.g., 'enter'). */
72
72
  press(options: KeyboardPressOptions): Promise<void>;
73
+ /** Press and hold a key without releasing it (for shift-click, hold-and-drag, ...). */
74
+ down(key: string): Promise<void>;
75
+ /** Release a key previously held with `down`. */
76
+ up(key: string): Promise<void>;
77
+ /**
78
+ * Set the clipboard to `text` and paste it with Ctrl+V, as one command.
79
+ *
80
+ * More reliable than `type` for long or non-Latin text: it cannot lose
81
+ * individual keystrokes, and setting the clipboard then pasting in one
82
+ * daemon-side command means focus cannot move in between.
83
+ */
84
+ paste(text: string): Promise<void>;
73
85
  }
74
86
  /**
75
87
  * Scroll controller for RDP sessions.
@@ -159,6 +171,15 @@ export declare class RdpSession {
159
171
  path: string;
160
172
  }): Promise<ScreenshotFileResult>;
161
173
  screenshot(options?: ScreenshotOptions): Promise<ScreenshotResult>;
174
+ /**
175
+ * Wait for the given number of milliseconds.
176
+ *
177
+ * A plain client-side sleep - no daemon round-trip. Prefer
178
+ * `locate({ text, waitMs, ... })` when you are actually waiting on
179
+ * something appearing on screen: it blocks server-side and returns as soon
180
+ * as the text shows up, instead of guessing a fixed delay.
181
+ */
182
+ wait(ms: number): Promise<void>;
162
183
  /**
163
184
  * Get session information.
164
185
  */
@@ -171,8 +192,13 @@ export declare class RdpSession {
171
192
  * @param options.all If true, returns all text on screen
172
193
  * @param options.pattern Use glob-style pattern matching (* and ?)
173
194
  * @param options.caseSensitive Case-sensitive matching (default: false)
195
+ * @param options.region Search only part of the screen (results stay in
196
+ * full-screen coordinates)
174
197
  * @returns Array of matching text lines with coordinates
175
198
  *
199
+ * Coordinates come back in screen pixels, ready to click. Never estimate a
200
+ * coordinate by looking at a screenshot — use these, or `automation.click()`.
201
+ *
176
202
  * @example
177
203
  * ```typescript
178
204
  * // Find lines containing text
@@ -184,10 +210,23 @@ export declare class RdpSession {
184
210
  * // Pattern matching
185
211
  * const saveButtons = await rdp.locate({ text: 'Save*', pattern: true });
186
212
  *
213
+ * // Read one table row - a tight region reads more reliably, and the
214
+ * // coordinates are still full-screen ones
215
+ * const row = await rdp.locate({ all: true, region: { x: 100, y: 380, width: 600, height: 30 } });
216
+ *
187
217
  * // Get all text on screen
188
218
  * const allLines = await rdp.locate({ all: true });
219
+ *
220
+ * // Click a match without the coordinate passing through your code
221
+ * await rdp.locate({ text: 'Добавить', click: 'left' });
222
+ *
223
+ * // Block until a dialog's text appears, instead of polling in a loop
224
+ * const ok = await rdp.locate({ text: 'OK', waitMs: 10000, click: 'left' });
189
225
  * ```
190
226
  */
227
+ locate(options: LocateOptions & {
228
+ click: 'left' | 'double' | 'right';
229
+ }): Promise<LocateClickResult>;
191
230
  locate(options: LocateOptions): Promise<OcrMatch[]>;
192
231
  /**
193
232
  * Disconnect from the RDP server.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -85,6 +85,24 @@ export class KeyboardController {
85
85
  async press(options) {
86
86
  await this.rdp._send({ type: 'keyboard', action: 'press', keys: options.keys });
87
87
  }
88
+ /** Press and hold a key without releasing it (for shift-click, hold-and-drag, ...). */
89
+ async down(key) {
90
+ await this.rdp._send({ type: 'keyboard', action: 'key_down', key });
91
+ }
92
+ /** Release a key previously held with `down`. */
93
+ async up(key) {
94
+ await this.rdp._send({ type: 'keyboard', action: 'key_up', key });
95
+ }
96
+ /**
97
+ * Set the clipboard to `text` and paste it with Ctrl+V, as one command.
98
+ *
99
+ * More reliable than `type` for long or non-Latin text: it cannot lose
100
+ * individual keystrokes, and setting the clipboard then pasting in one
101
+ * daemon-side command means focus cannot move in between.
102
+ */
103
+ async paste(text) {
104
+ await this.rdp._send({ type: 'keyboard', action: 'paste', text });
105
+ }
88
106
  }
89
107
  /**
90
108
  * Scroll controller for RDP sessions.
@@ -231,8 +249,13 @@ export class RdpSession {
231
249
  const response = await this._send({
232
250
  type: 'screenshot',
233
251
  format: options.format ?? 'png',
252
+ ...(options.region ? { region: options.region } : {}),
234
253
  });
235
254
  const data = response.data;
255
+ // A full-desktop capture has no offset; report 0 rather than undefined so
256
+ // callers can add it unconditionally.
257
+ const offsetX = data.offset_x ?? 0;
258
+ const offsetY = data.offset_y ?? 0;
236
259
  if (options.path) {
237
260
  fs.writeFileSync(options.path, Buffer.from(data.base64, 'base64'));
238
261
  return {
@@ -240,6 +263,8 @@ export class RdpSession {
240
263
  width: data.width,
241
264
  height: data.height,
242
265
  format: data.format,
266
+ offsetX,
267
+ offsetY,
243
268
  };
244
269
  }
245
270
  return {
@@ -247,8 +272,21 @@ export class RdpSession {
247
272
  width: data.width,
248
273
  height: data.height,
249
274
  format: data.format,
275
+ offsetX,
276
+ offsetY,
250
277
  };
251
278
  }
279
+ /**
280
+ * Wait for the given number of milliseconds.
281
+ *
282
+ * A plain client-side sleep - no daemon round-trip. Prefer
283
+ * `locate({ text, waitMs, ... })` when you are actually waiting on
284
+ * something appearing on screen: it blocks server-side and returns as soon
285
+ * as the text shows up, instead of guessing a fixed delay.
286
+ */
287
+ async wait(ms) {
288
+ await new Promise((resolve) => setTimeout(resolve, ms));
289
+ }
252
290
  /**
253
291
  * Get session information.
254
292
  */
@@ -265,31 +303,6 @@ export class RdpSession {
265
303
  uptime_secs: data.uptime_secs,
266
304
  };
267
305
  }
268
- /**
269
- * Locate text on screen using OCR.
270
- *
271
- * @param options Locate options
272
- * @param options.text Text to search for (required unless all is true)
273
- * @param options.all If true, returns all text on screen
274
- * @param options.pattern Use glob-style pattern matching (* and ?)
275
- * @param options.caseSensitive Case-sensitive matching (default: false)
276
- * @returns Array of matching text lines with coordinates
277
- *
278
- * @example
279
- * ```typescript
280
- * // Find lines containing text
281
- * const matches = await rdp.locate({ text: 'Non HDR' });
282
- * if (matches.length > 0) {
283
- * await rdp.mouse.click({ x: matches[0].center_x, y: matches[0].center_y });
284
- * }
285
- *
286
- * // Pattern matching
287
- * const saveButtons = await rdp.locate({ text: 'Save*', pattern: true });
288
- *
289
- * // Get all text on screen
290
- * const allLines = await rdp.locate({ all: true });
291
- * ```
292
- */
293
306
  async locate(options) {
294
307
  const response = await this._send({
295
308
  type: 'locate',
@@ -297,9 +310,37 @@ export class RdpSession {
297
310
  pattern: options.pattern ?? false,
298
311
  ignore_case: !(options.caseSensitive ?? false),
299
312
  all: options.all ?? false,
313
+ ...(options.region ? { region: options.region } : {}),
314
+ ...(options.waitMs !== undefined ? { wait_ms: options.waitMs } : {}),
300
315
  });
301
316
  const data = response.data;
302
- return data.matches ?? [];
317
+ const matches = data.matches ?? [];
318
+ if (!options.click) {
319
+ return matches;
320
+ }
321
+ // Clicking is deliberately strict: no match, or several matches without
322
+ // `index`, is an error rather than a guess - the wrong one of several
323
+ // identically-named controls is worse than not clicking at all.
324
+ if (matches.length === 0) {
325
+ throw new RdpError('invalid_request', `No text matching '${options.text ?? ''}' found`);
326
+ }
327
+ let target;
328
+ if (options.index !== undefined) {
329
+ const m = matches[options.index];
330
+ if (!m) {
331
+ throw new RdpError('invalid_request', `index ${options.index} is out of range: only ${matches.length} match(es) found`);
332
+ }
333
+ target = m;
334
+ }
335
+ else if (matches.length === 1) {
336
+ target = matches[0];
337
+ }
338
+ else {
339
+ throw new RdpError('invalid_request', `${matches.length} matches found - pass index to choose one, or narrow the search with region`);
340
+ }
341
+ const action = options.click === 'double' ? 'double_click' : options.click === 'right' ? 'right_click' : 'click';
342
+ await this._send({ type: 'mouse', action, x: target.center_x, y: target.center_y });
343
+ return { clicked: true, text: target.text, x: target.center_x, y: target.center_y };
303
344
  }
304
345
  /**
305
346
  * Disconnect from the RDP server.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -25,9 +25,23 @@ export interface ConnectResult {
25
25
  width: number;
26
26
  height: number;
27
27
  }
28
+ /**
29
+ * A rectangular part of the screen, in screen pixels.
30
+ *
31
+ * Coordinates a region request reports back are always translated into
32
+ * full-screen space, so they can be passed straight to `mouse.click()`.
33
+ */
34
+ export interface ScreenRegion {
35
+ x: number;
36
+ y: number;
37
+ width: number;
38
+ height: number;
39
+ }
28
40
  /** Options for taking a screenshot. */
29
41
  export interface ScreenshotOptions {
30
42
  format?: 'png' | 'jpeg';
43
+ /** Capture only this part of the screen instead of the whole desktop. */
44
+ region?: ScreenRegion;
31
45
  /**
32
46
  * Write the image to this file path instead of returning it as base64.
33
47
  * Use this when the caller doesn't need the raw image bytes in memory
@@ -43,6 +57,10 @@ export interface ScreenshotFileResult {
43
57
  width: number;
44
58
  height: number;
45
59
  format: string;
60
+ /** X offset of the image within the full desktop (0 unless `region` was used). */
61
+ offsetX: number;
62
+ /** Y offset of the image within the full desktop (0 unless `region` was used). */
63
+ offsetY: number;
46
64
  }
47
65
  /** Result of a screenshot operation returned as base64. */
48
66
  export interface ScreenshotResult {
@@ -50,6 +68,10 @@ export interface ScreenshotResult {
50
68
  width: number;
51
69
  height: number;
52
70
  format: string;
71
+ /** X offset of the image within the full desktop (0 unless `region` was used). */
72
+ offsetX: number;
73
+ /** Y offset of the image within the full desktop (0 unless `region` was used). */
74
+ offsetY: number;
53
75
  }
54
76
  /** A point representing x,y coordinates. */
55
77
  export interface Point {
@@ -106,6 +128,39 @@ export interface LocateOptions {
106
128
  pattern?: boolean;
107
129
  /** Case-sensitive matching (default: false). */
108
130
  caseSensitive?: boolean;
131
+ /**
132
+ * Search only this part of the screen. A tight region also reads more
133
+ * reliably than a full-screen pass. Match coordinates stay in full-screen
134
+ * space.
135
+ */
136
+ region?: ScreenRegion;
137
+ /**
138
+ * Keep retrying until the text appears, up to this many milliseconds.
139
+ * Blocks server-side instead of polling `locate` in a loop from the
140
+ * outside. Ignored when `all` is true - there is no target text to wait
141
+ * for.
142
+ */
143
+ waitMs?: number;
144
+ /**
145
+ * Click the match instead of just returning its position. Never estimate
146
+ * a coordinate by reading a screenshot - use this, or `automation.click()`.
147
+ */
148
+ click?: 'left' | 'double' | 'right';
149
+ /**
150
+ * Which match to click when several are found (0-based). Required
151
+ * whenever `click` is set and more than one match comes back - clicking
152
+ * the wrong one of several identically-named controls is worse than not
153
+ * clicking at all, so an ambiguous match throws rather than guessing.
154
+ */
155
+ index?: number;
156
+ }
157
+ /** Result of `locate()` when `click` is set. */
158
+ export interface LocateClickResult {
159
+ clicked: true;
160
+ /** Text of the match that was clicked. */
161
+ text: string;
162
+ x: number;
163
+ y: number;
109
164
  }
110
165
  /** Bounds for automation elements (alias for ElementBounds). */
111
166
  export type { ElementBounds as AutomationElementBounds } from './generated/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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;;;;;GAKG;AA0MH,sBAAsB;AAEtB,sCAAsC;AACtC,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmQH,sBAAsB;AAEtB,sCAAsC;AACtC,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": "@denisixnpm/agent-rdp",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "description": "CLI tool for AI agents to control Windows Remote Desktop sessions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,11 +48,11 @@
48
48
  },
49
49
  "homepage": "https://github.com/denisix/agent-rdp#readme",
50
50
  "optionalDependencies": {
51
- "@denisixnpm/agent-rdp-darwin-arm64": "^0.7.5",
52
- "@denisixnpm/agent-rdp-darwin-x64": "^0.7.5",
53
- "@denisixnpm/agent-rdp-linux-x64": "^0.7.5",
54
- "@denisixnpm/agent-rdp-linux-arm64": "^0.7.5",
55
- "@denisixnpm/agent-rdp-win32-x64": "^0.7.5",
56
- "@denisixnpm/agent-rdp-win32-arm64": "^0.7.5"
51
+ "@denisixnpm/agent-rdp-darwin-arm64": "^0.7.6",
52
+ "@denisixnpm/agent-rdp-darwin-x64": "^0.7.6",
53
+ "@denisixnpm/agent-rdp-linux-x64": "^0.7.6",
54
+ "@denisixnpm/agent-rdp-linux-arm64": "^0.7.6",
55
+ "@denisixnpm/agent-rdp-win32-x64": "^0.7.6",
56
+ "@denisixnpm/agent-rdp-win32-arm64": "^0.7.6"
57
57
  }
58
58
  }