@aryacode/dsh-plugin-arya-computer-use 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 KonnectSuite
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,18 @@
1
+ # Third-party notices
2
+
3
+ This plugin drives the desktop through two Apache-2.0 engines by Vercel Labs,
4
+ consumed as pinned npm dependencies (not vendored):
5
+
6
+ - **agent-desktop** — https://github.com/vercel-labs/agent-desktop (Apache-2.0),
7
+ npm `agent-desktop@1.2.0`. Native accessibility-tree computer use
8
+ (Windows UIA / macOS AX / Linux AT-SPI). Mirror used for reference and
9
+ upstream sync: https://github.com/KonnectSuite/dsh-arya-agent-desktop.
10
+ - **agent-browser** — https://github.com/vercel-labs/agent-browser (Apache-2.0),
11
+ npm `agent-browser@0.41.2`. Web lane (CDP browser automation).
12
+
13
+ The takeover helper design is adapted from **dsh-computer-use-win**
14
+ (https://github.com/Yu-tao-Li/dsh-computer-use-win, MIT, derived from
15
+ cgissing/windows-computer-use).
16
+
17
+ All engine binaries remain under their original Apache-2.0 terms; this
18
+ plugin's MIT license covers only KonnectSuite's original code in this repo.
package/README.md CHANGED
@@ -1,3 +1,109 @@
1
- # Temporary Holding Version
1
+ # Arya Computer Use
2
+
3
+ Computer use for [DeepSeek Harness / AryaCode](https://github.com/KonnectSuite): drive Windows desktop apps through **native accessibility refs** (UIA) instead of pixel coordinates, with a **takeover overlay** that frames the window being driven, shows what the agent is doing, keeps a synthetic ghost cursor where it acts (your own pointer is never followed), and stops on a global Esc. The agent calls itself **Arya** in that overlay by default, and the name is a setting.
4
+
5
+ Replaces [dsh-computer-use-win](https://github.com/Yu-tao-Li/dsh-computer-use-win) (wincu) completely — see [docs/PLAN.md](docs/PLAN.md) §7 for the retirement path.
6
+
7
+ ## Why
8
+
9
+ | wincu complaint | Arya Computer Use |
10
+ | --- | --- |
11
+ | Slow (PowerShell + UIA backend) | Native Rust engine: snapshot ~117 ms, ref action ~197 ms on a Windows devbox |
12
+ | Pixel alignment off | Ref-based semantic UIA — coordinates are never the targeting mechanism; identical twins are refused, not mis-clicked |
13
+ | Chinese UI/docs | English throughout |
14
+ | (kept) DSH integration + setup UI | Settings page, chat step rows, takeover overlay, Esc kill, tool presets |
15
+
16
+ ## Engines (not vendored — pinned npm dependencies)
17
+
18
+ - [`agent-desktop`](https://github.com/vercel-labs/agent-desktop) `1.2.0` (Apache-2.0) — accessibility-tree computer use CLI, native Windows binaries on npm. Reference mirror: [KonnectSuite/dsh-arya-agent-desktop](https://github.com/KonnectSuite/dsh-arya-agent-desktop).
19
+ - [`agent-browser`](https://github.com/vercel-labs/agent-browser) `0.41.2` (Apache-2.0) — web lane via CDP (`agent-browser mcp`).
20
+
21
+ ## Requirements
22
+
23
+ - **DSH host must run elevated (Run as administrator).** The engine's interaction lease lives at `C:\ProgramData\agent-desktop\<user-SID>\interaction.lock` with a protected DACL `{SYSTEM, Administrators, token user}`; a non-elevated medium-IL token fails validation (`lease_directory_untrusted`). The adapter surfaces this as an explicit "run AryaCode as administrator" hint.
24
+ - Accessibility permission (`desktop_status` reports `accessibility: granted`).
25
+ - Engine state root is the engine default `~/.agent-desktop` — do **not** point `AGENT_DESKTOP_HOME` at `%LOCALAPPDATA%` (inherited AppContainer ACEs fail the engine's private-DACL check).
26
+
27
+ ## Status
28
+
29
+ **Phases 0–2 complete (Phase 0 accepted 2026-11-06; takeover UI verified live 2026-11-07).**
30
+
31
+ | Phase | Deliverable | Status |
32
+ | --- | --- | --- |
33
+ | 0 | Evaluation spike: raw `agent-desktop mcp` row, drive Notepad/Explorer/Chrome — speed ✓, readable trees ✓, refs-not-pixels ✓ | ✅ accepted, spike removed |
34
+ | 1 | Adapter MCP server: Lite 16 tools, per-conversation session lifecycle, headed toggle + foreground promotion, screenshot→file path, WinRT OCR, skill | ✅ built, installed, driven in-host |
35
+ | 2 | Takeover UI: window rim + banner + Esc kill, configurable ghost cursor, settings page, chat step rows, driver lock, English UI | ✅ built + verified live |
36
+ | 3 | Web lane (`arya_browser` row), sign-in profiles, attach-to-your-Chrome, **wincu retirement** | planned |
37
+ | 4 | Lazy preset, notifications/clipboard/trace, npm publish | planned |
38
+
39
+ Lite 16 tool surface: `snapshot, find, get, is, click, set_value, type, press, scroll, list_windows, launch, wait, screenshot, ocr, batch, tools` (superset of wincu Lite 12; `set_value` fills a field through the accessibility value pattern without touching the pointer; `type` follows the input lane (background by default, real keyboard only when that conversation opts in); `tools` manages headed/overlay/session state).
40
+
41
+ Full plan: [docs/PLAN.md](docs/PLAN.md).
42
+
43
+ ## Layout
44
+
45
+ ```
46
+ package.json Cordis bundle manifest (dsh.bundle.patch) + pinned engine deps
47
+ cordis.patch.yml rows: arya-computer-use (Host), mcp-arya-desktop, mcp-arya-browser
48
+ index.js Host plugin entry (settings, driver lock, takeover mgmt, status route)
49
+ client.js Settings page + chat step rows (client plugin)
50
+ mcp/adapter-server.mjs adapter MCP server (Lite 16 tool surface)
51
+ scripts/windows-takeover.cs window rim + banner + progress + ghost cursor + global Esc
52
+ scripts/ocr.ps1 WinRT OCR helper (Phase 1)
53
+ skills/arya-desktop/ observe-act loop guide (Phase 1)
54
+ locale/ icon.svg Plugin Manager display metadata
55
+ docs/PLAN.md complete v1 plan
56
+ ```
57
+
58
+ ## Install
59
+
60
+ ### From the plugin market (recommended)
61
+
62
+ 1. In AryaCode: **Plugins → Arya Plugin Market → add a source** and paste
63
+ `https://cdn.jsdelivr.net/gh/KonnectSuite/dsh-arya-computer-use@main/index.json`
64
+ 2. Install **Arya Computer Use** from the list, then restart AryaCode.
65
+
66
+ The published package is `@aryacode/dsh-plugin-arya-computer-use` (npm, public). Everything it needs ships in the tarball: the desktop adapter, the browser launcher, the takeover overlay sources and the skill. The two MCP lanes are mounted **in-process** by `index.js` (`ctx.plugin(<bridge>, …)`), so there are no absolute paths in the bundle patch and no `npx` child process — a 1.0.0 install works the same on any machine.
67
+
68
+ ### From a checkout (development)
69
+
70
+ `plugin_manager` → `install_bundle` pointing at this directory. The bundle patch is a single row (`arya-computer-use`); the MCP lanes still mount in-process, so a checkout install and a registry install behave identically.
71
+
72
+ ## Settings (Settings → Plugins → Computer Use)
73
+
74
+ | Setting | Default | Meaning |
75
+ | --- | --- | --- |
76
+ | Frame the app window | on | Rim only the driven window plus a banner; monitor edges are just the fallback before a target is known |
77
+ | Show a ghost cursor | on | Draw a synthetic cursor where the agent acts; your pointer is never followed |
78
+ | Agent name | `Arya` | Drives the ghost-cursor tag and the progress-panel header (`Arya · Step 3 · acting`), 1–16 characters |
79
+ | Banner text | `Arya is controlling your computer` | One line, 1–120 characters |
80
+ | Real mouse and keyboard | off | Opted-in headed input for one conversation; the background lane never moves the pointer |
81
+ | One conversation drives at a time | on | Refuses desktop tools in other conversations while a drive is live |
82
+ | Stop shortcut | Esc | Global kill switch; synthetic keystrokes are ignored, so it needs a real keypress |
83
+ | Tool preset | `lite` | `lite` lists all 16 desktop tools; `lazy` starts with tools/snapshot/click and reveals the rest on demand |
84
+ | Tool surface (web) | `core` | agent-browser tool profile: core 29, network 9, state 27, debug 40, tabs 13, react 8, mobile 15, webmcp 4, all 156 |
85
+ | Chrome profile / Session | – / `arya` | Reuse a Chrome login state and name the browser session |
86
+ | Connect to my browser | – | `--cdp` port or URL to attach to a Chrome you already have open |
87
+ | Saved sign-in state | – | Absolute path to a cookies+localStorage JSON to reuse |
88
+ | Show the browser window | off | `--headed` for the web lane |
89
+
90
+ ## Web lane
91
+
92
+ The second MCP row (`arya_browser`, server `agent-browser`) runs through `mcp/browser-launcher.mjs`, a transparent stdio pipe that reads the control file and spawns the real server with the settings applied:
93
+
94
+ ```
95
+ node mcp/browser-launcher.mjs # → agent-browser mcp --tools core [--profile X] [--session Y] [--state Z] [--cdp ...] [--headed]
96
+ ```
97
+
98
+ So sign-in reuse and attaching to your own Chrome are settings, not hand-edited rows. Web-lane changes land on the next MCP restart; the settings page says so.
99
+
100
+ ## Tool presets
101
+
102
+ - `lite` (default) — all 16 desktop tools listed up front.
103
+ - `lazy` — starts with `tools`, `snapshot`, `click`; everything else appears after `tools {operation:"load", names:[...]}`. The adapter advertises `tools.listChanged` and emits `notifications/tools/list_changed`, which DSH's MCP client re-syncs (`listChanged.onChanged → refreshTools`), so the new tools become callable immediately.
104
+
105
+ ## License
106
+
107
+ MIT (KonnectSuite original code). Engines stay Apache-2.0 — see [NOTICE.md](NOTICE.md).
108
+
2
109
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.