@denisixnpm/agent-rdp 0.7.5 → 0.7.7
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 +14 -0
- package/README.md +130 -1
- package/dist/automation.d.ts +21 -1
- package/dist/automation.d.ts.map +1 -1
- package/dist/automation.js +27 -1
- package/dist/automation.js.map +1 -1
- package/dist/generated/ClickAtRequest.d.ts +32 -0
- package/dist/generated/ClickAtRequest.d.ts.map +1 -0
- package/dist/generated/ClickAtRequest.js +3 -0
- package/dist/generated/ClickAtRequest.js.map +1 -0
- package/dist/generated/ClickAtResult.d.ts +26 -0
- package/dist/generated/ClickAtResult.d.ts.map +1 -0
- package/dist/generated/ClickAtResult.js +2 -0
- package/dist/generated/ClickAtResult.js.map +1 -0
- package/dist/generated/KeyboardRequest.d.ts +3 -0
- package/dist/generated/KeyboardRequest.d.ts.map +1 -1
- package/dist/generated/LocateRequest.d.ts +30 -0
- package/dist/generated/LocateRequest.d.ts.map +1 -1
- package/dist/generated/LocateRequest.js +0 -1
- package/dist/generated/LocateRequest.js.map +1 -1
- package/dist/generated/Region.d.ts +15 -0
- package/dist/generated/Region.d.ts.map +1 -0
- package/dist/generated/Region.js +3 -0
- package/dist/generated/Region.js.map +1 -0
- package/dist/generated/Request.d.ts +3 -0
- package/dist/generated/Request.d.ts.map +1 -1
- package/dist/generated/ResponseData.d.ts +23 -1
- package/dist/generated/ResponseData.d.ts.map +1 -1
- package/dist/generated/ScreenshotRequest.d.ts +5 -0
- package/dist/generated/ScreenshotRequest.d.ts.map +1 -1
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/index.d.ts +61 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +106 -24
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +79 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.7](https://github.com/denisix/agent-rdp/compare/agent-rdp-v0.7.6...agent-rdp-v0.7.7) (2026-08-31)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add locate --exact and a click-at safety-net command ([f8962a0](https://github.com/denisix/agent-rdp/commit/f8962a04624cf7edbb4754584ded4e4174ab9d28))
|
|
9
|
+
|
|
10
|
+
## [0.7.6](https://github.com/denisix/agent-rdp/compare/agent-rdp-v0.7.5...agent-rdp-v0.7.6) (2026-08-31)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add SDK parity for locate click/wait, automation.focused, and keyboard paste/down/up ([369ac2a](https://github.com/denisix/agent-rdp/commit/369ac2a83ef184335b459a35a33da69a56175a9c))
|
|
16
|
+
|
|
3
17
|
## [0.7.5](https://github.com/denisix/agent-rdp/compare/agent-rdp-v0.7.4...agent-rdp-v0.7.5) (2026-08-15)
|
|
4
18
|
|
|
5
19
|
|
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)
|
|
@@ -230,11 +286,31 @@ agent-rdp locate "Cancel"
|
|
|
230
286
|
# Pattern matching (glob-style)
|
|
231
287
|
agent-rdp locate "Save*" --pattern
|
|
232
288
|
|
|
289
|
+
# Exact whole-line matching. Default mode is substring containment, so
|
|
290
|
+
# "Провести" also matches a button reading "Провести и закрыть" - two matches,
|
|
291
|
+
# and --click refuses to guess between them. --exact matches only the line
|
|
292
|
+
# that reads exactly "Провести".
|
|
293
|
+
agent-rdp locate "Провести" --exact --click
|
|
294
|
+
|
|
233
295
|
# Get all text on screen
|
|
234
296
|
agent-rdp locate --all
|
|
235
297
|
|
|
236
298
|
# JSON output
|
|
237
299
|
agent-rdp locate "OK" --json
|
|
300
|
+
|
|
301
|
+
# Click the match directly (see "Getting Coordinates Right" above)
|
|
302
|
+
agent-rdp locate "Cancel" --click
|
|
303
|
+
agent-rdp locate "Cancel" --double-click
|
|
304
|
+
agent-rdp locate "Cancel" --right-click
|
|
305
|
+
|
|
306
|
+
# Search only part of the screen. Results stay in full-screen coordinates,
|
|
307
|
+
# so --region composes with --click. A tight region also reads small text
|
|
308
|
+
# more reliably than a full-screen pass.
|
|
309
|
+
agent-rdp locate --all --region 100,380,600,30
|
|
310
|
+
|
|
311
|
+
# Block until text appears (e.g. a dialog finishing its animation), instead
|
|
312
|
+
# of polling `locate` in a loop from the outside. Composes with --click.
|
|
313
|
+
agent-rdp locate "OK" --wait 10000 --click
|
|
238
314
|
```
|
|
239
315
|
|
|
240
316
|
Returns text lines with coordinates for clicking:
|
|
@@ -242,9 +318,38 @@ Returns text lines with coordinates for clicking:
|
|
|
242
318
|
Found 1 line(s) containing 'Cancel':
|
|
243
319
|
'Cancel Button' at (650, 420) size 80x14 - center: (690, 427)
|
|
244
320
|
|
|
245
|
-
To click
|
|
321
|
+
To click it: agent-rdp locate 'Cancel' --click
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Clicking is deliberately strict: no match, or several matches without
|
|
325
|
+
`--index`, is an error rather than a guess. Prefer narrowing with `--region`
|
|
326
|
+
over picking an index. When two buttons share a prefix ("Провести" /
|
|
327
|
+
"Провести и закрыть"), use `--exact` so the ambiguity never arises.
|
|
328
|
+
|
|
329
|
+
### Click-at (safe clicking of externally-computed coordinates)
|
|
330
|
+
|
|
331
|
+
When the click point comes from outside agent-rdp — a vision model reading a
|
|
332
|
+
screenshot, a manual crop — `locate --click` can't help, and a raw
|
|
333
|
+
`mouse click X Y` has no safety net. `click-at` clicks the point only if it
|
|
334
|
+
isn't ambiguously close to more than one detected text region:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
# Click, refusing if another label is within 10px of the target
|
|
338
|
+
agent-rdp click-at 665 209
|
|
339
|
+
|
|
340
|
+
# Tune the detection window and gap
|
|
341
|
+
agent-rdp click-at 665 209 --window 400x160 --min-gap 20
|
|
342
|
+
|
|
343
|
+
# Variants
|
|
344
|
+
agent-rdp click-at 665 209 --double-click
|
|
345
|
+
agent-rdp click-at 665 209 --right-click
|
|
246
346
|
```
|
|
247
347
|
|
|
348
|
+
The check uses OCR *detection* only (bounding boxes, script-agnostic), not
|
|
349
|
+
recognition — so it works even for text OCR can't read, e.g. custom-rendered
|
|
350
|
+
Cyrillic UIs where both UI Automation and `locate` text search fail. On
|
|
351
|
+
refusal it lists the nearby regions and exits non-zero; nothing is clicked.
|
|
352
|
+
|
|
248
353
|
### Clipboard
|
|
249
354
|
|
|
250
355
|
```bash
|
|
@@ -294,6 +399,12 @@ agent-rdp automate snapshot -d 3 # Limit depth to 3 levels
|
|
|
294
399
|
agent-rdp automate snapshot -s "~*Notepad*" # Scope to a window/element
|
|
295
400
|
agent-rdp automate snapshot -i -c -d 5 # Combine options
|
|
296
401
|
|
|
402
|
+
# Which control has keyboard focus right now?
|
|
403
|
+
# Use this after Tab/Enter to confirm where your keystrokes will go, instead
|
|
404
|
+
# of typing into a cell you assume is focused.
|
|
405
|
+
agent-rdp automate focused
|
|
406
|
+
# edit 'Количество' = "5,000" at (110, 391) 80x18 [focusable]
|
|
407
|
+
|
|
297
408
|
# Pattern-based element operations (refs use @eN format)
|
|
298
409
|
agent-rdp automate click "#SaveButton" # Click button
|
|
299
410
|
agent-rdp automate click "@e5" # Click by ref number from snapshot
|
|
@@ -456,8 +567,11 @@ await rdp.mouse.drag({ from: { x: 100, y: 100 }, to: { x: 500, y: 500 } });
|
|
|
456
567
|
|
|
457
568
|
// Keyboard
|
|
458
569
|
await rdp.keyboard.type({ text: 'Hello World' });
|
|
570
|
+
await rdp.keyboard.paste('Привет, мир!'); // Reliable for long/non-Latin text
|
|
459
571
|
await rdp.keyboard.press({ keys: 'ctrl+c' });
|
|
460
572
|
await rdp.keyboard.press({ keys: 'enter' }); // Single keys use press()
|
|
573
|
+
await rdp.keyboard.down('shift'); // Hold across other commands
|
|
574
|
+
await rdp.keyboard.up('shift');
|
|
461
575
|
|
|
462
576
|
// Scroll
|
|
463
577
|
await rdp.scroll.up(); // Default amount: 3
|
|
@@ -477,8 +591,23 @@ if (matches.length > 0) {
|
|
|
477
591
|
// Get all text on screen
|
|
478
592
|
const allText = await rdp.locate({ all: true });
|
|
479
593
|
|
|
594
|
+
// Click a match directly - the coordinate never leaves the process
|
|
595
|
+
await rdp.locate({ text: 'Cancel', click: 'left' });
|
|
596
|
+
|
|
597
|
+
// Exact whole-line match - won't also hit "Провести и закрыть"
|
|
598
|
+
await rdp.locate({ text: 'Провести', exact: true, click: 'left' });
|
|
599
|
+
|
|
600
|
+
// Block until text appears, instead of polling in a loop
|
|
601
|
+
await rdp.locate({ text: 'OK', waitMs: 10000, click: 'left' });
|
|
602
|
+
|
|
603
|
+
// Safe click of an externally-computed point (e.g. a vision-model bbox):
|
|
604
|
+
// refuses if it's ambiguously close to more than one detected label
|
|
605
|
+
const result = await rdp.clickAt(665, 209);
|
|
606
|
+
if (!result.clicked) console.log('Ambiguous:', result.nearby);
|
|
607
|
+
|
|
480
608
|
// Automation (requires --enable-win-automation at connect)
|
|
481
609
|
const snapshot = await rdp.automation.snapshot({ interactive: true });
|
|
610
|
+
const focused = await rdp.automation.focused(); // What has keyboard focus right now
|
|
482
611
|
await rdp.automation.click('@e5'); // Click button by ref
|
|
483
612
|
await rdp.automation.click('@e5', { doubleClick: true }); // Double-click
|
|
484
613
|
await rdp.automation.select('@e10'); // Select item
|
package/dist/automation.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/automation.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/automation.js
CHANGED
|
@@ -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
|
*/
|
package/dist/automation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Click a caller-supplied point, refusing if it's ambiguously close to more
|
|
3
|
+
* than one OCR-detected text region.
|
|
4
|
+
*
|
|
5
|
+
* For callers that already know where to click (e.g. a screenshot read by a
|
|
6
|
+
* vision model) and want the same "don't guess when it's ambiguous" safety
|
|
7
|
+
* `locate --click` gives text search - without needing OCR to correctly
|
|
8
|
+
* *read* the label, only to detect that one exists nearby. Detection and
|
|
9
|
+
* recognition are separate OCR stages, so this works even for text OCR
|
|
10
|
+
* recognition can't read (e.g. some Cyrillic renderers).
|
|
11
|
+
*/
|
|
12
|
+
export type ClickAtRequest = {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
/**
|
|
16
|
+
* Width of the OCR detection window centered on the point (default: 400).
|
|
17
|
+
*/
|
|
18
|
+
window_width: number;
|
|
19
|
+
/**
|
|
20
|
+
* Height of the OCR detection window centered on the point (default: 160).
|
|
21
|
+
*/
|
|
22
|
+
window_height: number;
|
|
23
|
+
/**
|
|
24
|
+
* Minimum pixel gap between the point's containing region and any other
|
|
25
|
+
* detected region's boundary, below which the click is refused as
|
|
26
|
+
* ambiguous (default: 10).
|
|
27
|
+
*/
|
|
28
|
+
min_gap: number;
|
|
29
|
+
double_click: boolean;
|
|
30
|
+
right_click: boolean;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=ClickAtRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClickAtRequest.d.ts","sourceRoot":"","sources":["../../src/generated/ClickAtRequest.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IACpD;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClickAtRequest.js","sourceRoot":"","sources":["../../src/generated/ClickAtRequest.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { OcrMatch } from "./OcrMatch.js";
|
|
2
|
+
/**
|
|
3
|
+
* Result of a `ClickAt` request.
|
|
4
|
+
*/
|
|
5
|
+
export type ClickAtResult = {
|
|
6
|
+
/**
|
|
7
|
+
* Whether the click was actually sent.
|
|
8
|
+
*/
|
|
9
|
+
clicked: boolean;
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
/**
|
|
13
|
+
* Text OCR recognized in the region containing the point, if any.
|
|
14
|
+
* Best-effort - may be inaccurate or absent for scripts OCR recognition
|
|
15
|
+
* struggles with; the safety check itself only relies on detection
|
|
16
|
+
* (bounding boxes), not on this being correct.
|
|
17
|
+
*/
|
|
18
|
+
matched_text?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Other detected regions within the configured gap of the point.
|
|
21
|
+
* Populated (with `clicked: false`) when the click was refused as
|
|
22
|
+
* ambiguous.
|
|
23
|
+
*/
|
|
24
|
+
nearby: Array<OcrMatch>;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=ClickAtResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClickAtResult.d.ts","sourceRoot":"","sources":["../../src/generated/ClickAtResult.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IACvC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClickAtResult.js","sourceRoot":"","sources":["../../src/generated/ClickAtResult.ts"],"names":[],"mappings":""}
|
|
@@ -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.
|
|
@@ -11,6 +12,19 @@ export type LocateRequest = {
|
|
|
11
12
|
* Use pattern matching (glob-style: * and ?).
|
|
12
13
|
*/
|
|
13
14
|
pattern: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Require the whole OCR line to equal `text` (respecting
|
|
17
|
+
* `ignore_case`), instead of substring containment. Takes precedence
|
|
18
|
+
* over `pattern` when both are set.
|
|
19
|
+
*
|
|
20
|
+
* Default substring mode matches "Провести" against a line reading
|
|
21
|
+
* "Провести и закрыть" - usually harmless (`--click` already refuses to
|
|
22
|
+
* guess when a query is ambiguous), but `exact` gives a named way to
|
|
23
|
+
* avoid the ambiguity in the first place rather than relying on
|
|
24
|
+
* `--pattern` with no wildcards, which happens to require a full match
|
|
25
|
+
* as an undocumented side effect of glob anchoring.
|
|
26
|
+
*/
|
|
27
|
+
exact: boolean;
|
|
14
28
|
/**
|
|
15
29
|
* Case-insensitive matching (default: true).
|
|
16
30
|
*/
|
|
@@ -19,5 +33,21 @@ export type LocateRequest = {
|
|
|
19
33
|
* Return all text on screen (ignores text/pattern/ignore_case).
|
|
20
34
|
*/
|
|
21
35
|
all: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Restrict OCR to this part of the desktop (default: the whole desktop).
|
|
38
|
+
*
|
|
39
|
+
* Match coordinates are still reported in full-desktop space.
|
|
40
|
+
*/
|
|
41
|
+
region?: Region;
|
|
42
|
+
/**
|
|
43
|
+
* Keep re-running OCR until the text appears or this many milliseconds
|
|
44
|
+
* pass (default: single pass).
|
|
45
|
+
*
|
|
46
|
+
* Lets a caller block server-side on "the dialog is now visible" instead
|
|
47
|
+
* of polling screenshot/locate in a loop from the outside. On timeout the
|
|
48
|
+
* response is a `timeout` error rather than an empty success, so a
|
|
49
|
+
* wait-then-click sequence cannot fall through to clicking nothing.
|
|
50
|
+
*/
|
|
51
|
+
wait_ms?: number;
|
|
22
52
|
};
|
|
23
53
|
//# sourceMappingURL=LocateRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocateRequest.d.ts","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":"
|
|
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;;;;;;;;;;;OAWG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocateRequest.js","sourceRoot":"","sources":["../../src/generated/LocateRequest.ts"],"names":[],"mappings":"
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Region.js","sourceRoot":"","sources":["../../src/generated/Region.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AutomateRequest } from "./AutomateRequest.js";
|
|
2
|
+
import type { ClickAtRequest } from "./ClickAtRequest.js";
|
|
2
3
|
import type { ClipboardRequest } from "./ClipboardRequest.js";
|
|
3
4
|
import type { ConnectRequest } from "./ConnectRequest.js";
|
|
4
5
|
import type { DriveRequest } from "./DriveRequest.js";
|
|
@@ -31,6 +32,8 @@ export type Request = {
|
|
|
31
32
|
} & AutomateRequest | {
|
|
32
33
|
"type": "locate";
|
|
33
34
|
} & LocateRequest | {
|
|
35
|
+
"type": "click_at";
|
|
36
|
+
} & ClickAtRequest | {
|
|
34
37
|
"type": "session_info";
|
|
35
38
|
} | {
|
|
36
39
|
"type": "ping";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/generated/Request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,iBAAiB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/generated/Request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,iBAAiB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,aAAa,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AccessibilitySnapshot } from "./AccessibilitySnapshot.js";
|
|
2
2
|
import type { AutomationStatus } from "./AutomationStatus.js";
|
|
3
|
+
import type { ClickAtResult } from "./ClickAtResult.js";
|
|
3
4
|
import type { ClickResult } from "./ClickResult.js";
|
|
4
5
|
import type { ElementValue } from "./ElementValue.js";
|
|
5
6
|
import type { LocateResult } from "./LocateResult.js";
|
|
@@ -37,6 +38,14 @@ export type ResponseData = {
|
|
|
37
38
|
* successful connect and then an unexplained "agent not ready".
|
|
38
39
|
*/
|
|
39
40
|
automation_ready?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Why the automation agent failed to come up, when `automation_ready`
|
|
43
|
+
* is `Some(false)`. Distinguishes "the automation directory
|
|
44
|
+
* couldn't be created" from "the agent launched but the handshake
|
|
45
|
+
* timed out" - both used to collapse into the same generic
|
|
46
|
+
* "automation not enabled" message on the next `automate` call.
|
|
47
|
+
*/
|
|
48
|
+
automation_error?: string;
|
|
40
49
|
} | {
|
|
41
50
|
"type": "screenshot";
|
|
42
51
|
/**
|
|
@@ -55,6 +64,17 @@ export type ResponseData = {
|
|
|
55
64
|
* Base64-encoded image data.
|
|
56
65
|
*/
|
|
57
66
|
base64: string;
|
|
67
|
+
/**
|
|
68
|
+
* X offset of the image within the full desktop (region captures only).
|
|
69
|
+
*
|
|
70
|
+
* Add this to an x coordinate read off the image to get a coordinate
|
|
71
|
+
* that can be clicked.
|
|
72
|
+
*/
|
|
73
|
+
offset_x?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Y offset of the image within the full desktop (region captures only).
|
|
76
|
+
*/
|
|
77
|
+
offset_y?: number;
|
|
58
78
|
} | {
|
|
59
79
|
"type": "clipboard";
|
|
60
80
|
/**
|
|
@@ -97,5 +117,7 @@ export type ResponseData = {
|
|
|
97
117
|
"type": "click_result";
|
|
98
118
|
} & ClickResult | {
|
|
99
119
|
"type": "locate_result";
|
|
100
|
-
} & LocateResult
|
|
120
|
+
} & LocateResult | {
|
|
121
|
+
"type": "click_at_result";
|
|
122
|
+
} & ClickAtResult;
|
|
101
123
|
//# sourceMappingURL=ResponseData.d.ts.map
|
|
@@ -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;
|
|
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,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,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;IAC3B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IACtD;;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,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAAG,aAAa,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;
|
|
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"}
|
|
@@ -4,6 +4,8 @@ export type { AutomateRequest } from './AutomateRequest.js';
|
|
|
4
4
|
export type { AutomationHandshake } from './AutomationHandshake.js';
|
|
5
5
|
export type { AutomationScrollDirection } from './AutomationScrollDirection.js';
|
|
6
6
|
export type { AutomationStatus } from './AutomationStatus.js';
|
|
7
|
+
export type { ClickAtRequest } from './ClickAtRequest.js';
|
|
8
|
+
export type { ClickAtResult } from './ClickAtResult.js';
|
|
7
9
|
export type { ClickResult } from './ClickResult.js';
|
|
8
10
|
export type { ClipboardRequest } from './ClipboardRequest.js';
|
|
9
11
|
export type { ConnectRequest } from './ConnectRequest.js';
|
|
@@ -25,6 +27,7 @@ export type { MappedDrive } from './MappedDrive.js';
|
|
|
25
27
|
export type { MouseButton } from './MouseButton.js';
|
|
26
28
|
export type { MouseRequest } from './MouseRequest.js';
|
|
27
29
|
export type { OcrMatch } from './OcrMatch.js';
|
|
30
|
+
export type { Region } from './Region.js';
|
|
28
31
|
export type { Request } from './Request.js';
|
|
29
32
|
export type { Response } from './Response.js';
|
|
30
33
|
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,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,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, ClickAtOptions, ClickAtResult, 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,11 +210,45 @@ 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[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Click a known point, refusing if it's ambiguously close to more than one
|
|
233
|
+
* detected text region.
|
|
234
|
+
*
|
|
235
|
+
* The safety net for coordinates computed outside agent-rdp - a vision
|
|
236
|
+
* model reading a screenshot, a manual crop - where `locate({ click })`
|
|
237
|
+
* can't be used. Uses OCR *detection* (bounding boxes) only, so it works
|
|
238
|
+
* even for text OCR recognition can't read.
|
|
239
|
+
*
|
|
240
|
+
* Returns the result including any nearby regions; `clicked: false` with a
|
|
241
|
+
* populated `nearby` array means the click was refused as ambiguous.
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```typescript
|
|
245
|
+
* const result = await rdp.clickAt(665, 209);
|
|
246
|
+
* if (!result.clicked) {
|
|
247
|
+
* console.log('Ambiguous:', result.nearby);
|
|
248
|
+
* }
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
clickAt(x: number, y: number, options?: ClickAtOptions): Promise<ClickAtResult>;
|
|
192
252
|
/**
|
|
193
253
|
* Disconnect from the RDP server.
|
|
194
254
|
*/
|
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;AAKH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,OAAO,EACP,QAAQ,EAET,MAAM,YAAY,CAAC;AAGpB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU;IAEnC,+BAA+B;IACzB,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,8BAA8B;IACxB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,+BAA+B;IACzB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,gCAAgC;IAC1B,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,yCAAyC;IACnC,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAUrD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU;IAEnC,oCAAoC;IAC9B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,yFAAyF;IACnF,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
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,41 +303,85 @@ export class RdpSession {
|
|
|
265
303
|
uptime_secs: data.uptime_secs,
|
|
266
304
|
};
|
|
267
305
|
}
|
|
306
|
+
async locate(options) {
|
|
307
|
+
const response = await this._send({
|
|
308
|
+
type: 'locate',
|
|
309
|
+
text: options.text ?? '',
|
|
310
|
+
pattern: options.pattern ?? false,
|
|
311
|
+
exact: options.exact ?? false,
|
|
312
|
+
ignore_case: !(options.caseSensitive ?? false),
|
|
313
|
+
all: options.all ?? false,
|
|
314
|
+
...(options.region ? { region: options.region } : {}),
|
|
315
|
+
...(options.waitMs !== undefined ? { wait_ms: options.waitMs } : {}),
|
|
316
|
+
});
|
|
317
|
+
const data = response.data;
|
|
318
|
+
const matches = data.matches ?? [];
|
|
319
|
+
if (!options.click) {
|
|
320
|
+
return matches;
|
|
321
|
+
}
|
|
322
|
+
// Clicking is deliberately strict: no match, or several matches without
|
|
323
|
+
// `index`, is an error rather than a guess - the wrong one of several
|
|
324
|
+
// identically-named controls is worse than not clicking at all.
|
|
325
|
+
if (matches.length === 0) {
|
|
326
|
+
throw new RdpError('invalid_request', `No text matching '${options.text ?? ''}' found`);
|
|
327
|
+
}
|
|
328
|
+
let target;
|
|
329
|
+
if (options.index !== undefined) {
|
|
330
|
+
const m = matches[options.index];
|
|
331
|
+
if (!m) {
|
|
332
|
+
throw new RdpError('invalid_request', `index ${options.index} is out of range: only ${matches.length} match(es) found`);
|
|
333
|
+
}
|
|
334
|
+
target = m;
|
|
335
|
+
}
|
|
336
|
+
else if (matches.length === 1) {
|
|
337
|
+
target = matches[0];
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
throw new RdpError('invalid_request', `${matches.length} matches found - pass index to choose one, or narrow the search with region`);
|
|
341
|
+
}
|
|
342
|
+
const action = options.click === 'double' ? 'double_click' : options.click === 'right' ? 'right_click' : 'click';
|
|
343
|
+
await this._send({ type: 'mouse', action, x: target.center_x, y: target.center_y });
|
|
344
|
+
return { clicked: true, text: target.text, x: target.center_x, y: target.center_y };
|
|
345
|
+
}
|
|
268
346
|
/**
|
|
269
|
-
*
|
|
347
|
+
* Click a known point, refusing if it's ambiguously close to more than one
|
|
348
|
+
* detected text region.
|
|
270
349
|
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
350
|
+
* The safety net for coordinates computed outside agent-rdp - a vision
|
|
351
|
+
* model reading a screenshot, a manual crop - where `locate({ click })`
|
|
352
|
+
* can't be used. Uses OCR *detection* (bounding boxes) only, so it works
|
|
353
|
+
* even for text OCR recognition can't read.
|
|
354
|
+
*
|
|
355
|
+
* Returns the result including any nearby regions; `clicked: false` with a
|
|
356
|
+
* populated `nearby` array means the click was refused as ambiguous.
|
|
277
357
|
*
|
|
278
358
|
* @example
|
|
279
359
|
* ```typescript
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* await rdp.mouse.click({ x: matches[0].center_x, y: matches[0].center_y });
|
|
360
|
+
* const result = await rdp.clickAt(665, 209);
|
|
361
|
+
* if (!result.clicked) {
|
|
362
|
+
* console.log('Ambiguous:', result.nearby);
|
|
284
363
|
* }
|
|
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
364
|
* ```
|
|
292
365
|
*/
|
|
293
|
-
async
|
|
366
|
+
async clickAt(x, y, options = {}) {
|
|
294
367
|
const response = await this._send({
|
|
295
|
-
type: '
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
368
|
+
type: 'click_at',
|
|
369
|
+
x,
|
|
370
|
+
y,
|
|
371
|
+
window_width: options.windowWidth ?? 400,
|
|
372
|
+
window_height: options.windowHeight ?? 160,
|
|
373
|
+
min_gap: options.minGap ?? 10,
|
|
374
|
+
double_click: options.doubleClick ?? false,
|
|
375
|
+
right_click: options.rightClick ?? false,
|
|
300
376
|
});
|
|
301
377
|
const data = response.data;
|
|
302
|
-
return
|
|
378
|
+
return {
|
|
379
|
+
clicked: data.clicked,
|
|
380
|
+
x: data.x,
|
|
381
|
+
y: data.y,
|
|
382
|
+
matched_text: data.matched_text,
|
|
383
|
+
nearby: data.nearby ?? [],
|
|
384
|
+
};
|
|
303
385
|
}
|
|
304
386
|
/**
|
|
305
387
|
* 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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* IPC types are auto-generated from Rust (see generated/).
|
|
5
5
|
* SDK convenience types are defined here.
|
|
6
6
|
*/
|
|
7
|
-
export type { Request, ConnectRequest, ScreenshotRequest, MouseRequest, KeyboardRequest, ScrollRequest, ClipboardRequest, DriveRequest, LocateRequest, AutomateRequest, Response, ResponseData, ErrorCode, ErrorInfo, SessionInfo, SessionSummary, MappedDrive, LocateResult, OcrMatch, DriveMapping, ImageFormat, MouseButton, ScrollDirection, ConnectionState, AccessibilityElement, AccessibilitySnapshot, AutomationStatus, AutomationScrollDirection, AutomationHandshake, ClickResult, RunResult, ElementBounds, ElementValue, WindowInfo, WindowAction, WaitState, FileIpcRequest, FileIpcResponse, FileIpcError, } from './generated/index.js';
|
|
7
|
+
export type { Request, ConnectRequest, ScreenshotRequest, MouseRequest, KeyboardRequest, ScrollRequest, ClipboardRequest, DriveRequest, LocateRequest, ClickAtRequest, AutomateRequest, Response, ResponseData, ErrorCode, ErrorInfo, SessionInfo, SessionSummary, MappedDrive, LocateResult, ClickAtResult, OcrMatch, DriveMapping, ImageFormat, MouseButton, ScrollDirection, ConnectionState, AccessibilityElement, AccessibilitySnapshot, AutomationStatus, AutomationScrollDirection, AutomationHandshake, ClickResult, RunResult, ElementBounds, ElementValue, WindowInfo, WindowAction, WaitState, FileIpcRequest, FileIpcResponse, FileIpcError, } from './generated/index.js';
|
|
8
8
|
import type { DriveMapping, ErrorCode } from './generated/index.js';
|
|
9
9
|
/** Options for connecting to an RDP session. */
|
|
10
10
|
export interface ConnectOptions {
|
|
@@ -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 {
|
|
@@ -104,8 +126,64 @@ export interface LocateOptions {
|
|
|
104
126
|
all?: boolean;
|
|
105
127
|
/** Use glob-style pattern matching (* and ?). */
|
|
106
128
|
pattern?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Require the whole OCR line to equal the search text, not just contain
|
|
131
|
+
* it. Default substring mode matches "Провести" against a line reading
|
|
132
|
+
* "Провести и закрыть"; `exact` avoids that ambiguity. Takes precedence
|
|
133
|
+
* over `pattern`.
|
|
134
|
+
*/
|
|
135
|
+
exact?: boolean;
|
|
107
136
|
/** Case-sensitive matching (default: false). */
|
|
108
137
|
caseSensitive?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Search only this part of the screen. A tight region also reads more
|
|
140
|
+
* reliably than a full-screen pass. Match coordinates stay in full-screen
|
|
141
|
+
* space.
|
|
142
|
+
*/
|
|
143
|
+
region?: ScreenRegion;
|
|
144
|
+
/**
|
|
145
|
+
* Keep retrying until the text appears, up to this many milliseconds.
|
|
146
|
+
* Blocks server-side instead of polling `locate` in a loop from the
|
|
147
|
+
* outside. Ignored when `all` is true - there is no target text to wait
|
|
148
|
+
* for.
|
|
149
|
+
*/
|
|
150
|
+
waitMs?: number;
|
|
151
|
+
/**
|
|
152
|
+
* Click the match instead of just returning its position. Never estimate
|
|
153
|
+
* a coordinate by reading a screenshot - use this, or `automation.click()`.
|
|
154
|
+
*/
|
|
155
|
+
click?: 'left' | 'double' | 'right';
|
|
156
|
+
/**
|
|
157
|
+
* Which match to click when several are found (0-based). Required
|
|
158
|
+
* whenever `click` is set and more than one match comes back - clicking
|
|
159
|
+
* the wrong one of several identically-named controls is worse than not
|
|
160
|
+
* clicking at all, so an ambiguous match throws rather than guessing.
|
|
161
|
+
*/
|
|
162
|
+
index?: number;
|
|
163
|
+
}
|
|
164
|
+
/** Result of `locate()` when `click` is set. */
|
|
165
|
+
export interface LocateClickResult {
|
|
166
|
+
clicked: true;
|
|
167
|
+
/** Text of the match that was clicked. */
|
|
168
|
+
text: string;
|
|
169
|
+
x: number;
|
|
170
|
+
y: number;
|
|
171
|
+
}
|
|
172
|
+
/** Options for `clickAt()`. */
|
|
173
|
+
export interface ClickAtOptions {
|
|
174
|
+
/** OCR detection window width around the point (default: 400). */
|
|
175
|
+
windowWidth?: number;
|
|
176
|
+
/** OCR detection window height around the point (default: 160). */
|
|
177
|
+
windowHeight?: number;
|
|
178
|
+
/**
|
|
179
|
+
* Refuse the click if another detected text region is within this many
|
|
180
|
+
* pixels of the target (default: 10).
|
|
181
|
+
*/
|
|
182
|
+
minGap?: number;
|
|
183
|
+
/** Double-click instead of single click. */
|
|
184
|
+
doubleClick?: boolean;
|
|
185
|
+
/** Right-click instead of left click. */
|
|
186
|
+
rightClick?: boolean;
|
|
109
187
|
}
|
|
110
188
|
/** Bounds for automation elements (alias for ElementBounds). */
|
|
111
189
|
export type { ElementBounds as AutomationElementBounds } from './generated/index.js';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,YAAY,EAEV,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EAGf,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EAGR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EAGf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EAGT,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEpE,gDAAgD;AAChD,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;IACxB,oCAAoC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,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;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6RH,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.
|
|
3
|
+
"version": "0.7.7",
|
|
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.
|
|
52
|
-
"@denisixnpm/agent-rdp-darwin-x64": "^0.7.
|
|
53
|
-
"@denisixnpm/agent-rdp-linux-x64": "^0.7.
|
|
54
|
-
"@denisixnpm/agent-rdp-linux-arm64": "^0.7.
|
|
55
|
-
"@denisixnpm/agent-rdp-win32-x64": "^0.7.
|
|
56
|
-
"@denisixnpm/agent-rdp-win32-arm64": "^0.7.
|
|
51
|
+
"@denisixnpm/agent-rdp-darwin-arm64": "^0.7.7",
|
|
52
|
+
"@denisixnpm/agent-rdp-darwin-x64": "^0.7.7",
|
|
53
|
+
"@denisixnpm/agent-rdp-linux-x64": "^0.7.7",
|
|
54
|
+
"@denisixnpm/agent-rdp-linux-arm64": "^0.7.7",
|
|
55
|
+
"@denisixnpm/agent-rdp-win32-x64": "^0.7.7",
|
|
56
|
+
"@denisixnpm/agent-rdp-win32-arm64": "^0.7.7"
|
|
57
57
|
}
|
|
58
58
|
}
|