feat(computer): implemented modular desktop backend and script workflows

- Replaced monolithic desktop native bindings and action batching with a modular cross-platform backend structure supporting Wayland, X11, macOS, and Win32.
- Updated the computer tool schema and supervisor to execute persistent JavaScript script runs with timeout clamping and asynchronous tool calling.
- Integrated accessibility (AX) tree snapshotting, node querying, and bounds-based hit testing across platform desktop layers.
- Added native clipboard bindings and updated coding-agent prompts, renderers, and tests to validate script-based computer workflows.
This commit is contained in:
can1357
2026-08-02 19:46:25 +02:00
parent 92b50faacc
commit ef852af986
74 changed files with 175089 additions and 8194 deletions
Generated
+194
View File
@@ -218,6 +218,23 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
[[package]]
name = "ashpd"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2f3f79755c74fd155000314eb349864caa787c6592eace6c6882dad873d9c39"
dependencies = [
"enumflags2",
"futures-channel",
"futures-util",
"rand 0.9.5",
"serde",
"serde_repr",
"tokio",
"url",
"zbus",
]
[[package]]
name = "asn1-rs"
version = "0.6.2"
@@ -415,6 +432,57 @@ version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "atspi"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bf601cccedfffec598ec2db1f9d6745885458bccc0e8916d7023f017c94b3d0"
dependencies = [
"atspi-common",
"atspi-connection",
"atspi-proxies",
"zbus",
]
[[package]]
name = "atspi-common"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8a79bed3f5b408ce3152f36e07327a845e6ed5d7e2821a89264037dbcc11daf"
dependencies = [
"enumflags2",
"serde",
"static_assertions",
"zbus",
"zbus-lockstep",
"zbus-lockstep-macros",
"zbus_names",
"zvariant",
]
[[package]]
name = "atspi-connection"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fab8e4f574f5a7d3af280b38eff25fb6f47a537dac9ae39ce152f52b19fb10b"
dependencies = [
"atspi-common",
"atspi-proxies",
"futures-lite",
"zbus",
]
[[package]]
name = "atspi-proxies"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53403acd3ab2fdb5914f6558da22e540fc07656fce5510f8c02be0e6ef68413e"
dependencies = [
"atspi-common",
"serde",
"zbus",
]
[[package]]
name = "audiopus_sys"
version = "0.2.2"
@@ -4077,6 +4145,21 @@ dependencies = [
"objc2-quartz-core",
]
[[package]]
name = "objc2-application-services"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69282c2b5bc58fba07cb9de2113619532eb551e98efe3d8d695509ef45fbd53b"
dependencies = [
"bitflags 2.13.1",
"libc",
"objc2",
"objc2-core-foundation",
"objc2-core-graphics",
"objc2-core-services",
"objc2-foundation",
]
[[package]]
name = "objc2-av-foundation"
version = "0.3.2"
@@ -4208,6 +4291,18 @@ dependencies = [
"objc2-core-video",
]
[[package]]
name = "objc2-core-services"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "583300ad934cba24ff5292aee751ecc070f7ca6b39a574cc21b7b5e588e06a0b"
dependencies = [
"dispatch2",
"objc2",
"objc2-core-foundation",
"objc2-security",
]
[[package]]
name = "objc2-core-text"
version = "0.3.2"
@@ -4310,6 +4405,17 @@ dependencies = [
"objc2-foundation",
]
[[package]]
name = "objc2-security"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a"
dependencies = [
"bitflags 2.13.1",
"objc2",
"objc2-core-foundation",
]
[[package]]
name = "objc2-system-configuration"
version = "0.3.2"
@@ -4875,7 +4981,9 @@ version = "17.2.4"
dependencies = [
"anyhow",
"arboard",
"ashpd",
"ast-grep-core",
"atspi",
"base64 0.22.1",
"clap",
"clipboard-win",
@@ -4883,6 +4991,7 @@ dependencies = [
"enigo",
"flume",
"fontdue",
"foreign-types",
"globset",
"grep-matcher",
"grep-pcre2",
@@ -4898,6 +5007,8 @@ dependencies = [
"napi-build",
"napi-derive",
"objc2-app-kit",
"objc2-application-services",
"objc2-core-foundation",
"objc2-core-graphics",
"objc2-foundation",
"parking_lot",
@@ -4908,10 +5019,12 @@ dependencies = [
"pi-uutils-ctx",
"pi-voice",
"pi-walker",
"pipewire",
"png",
"portable-pty",
"rayon",
"regex",
"reis",
"serde",
"serde_json",
"smallvec",
@@ -4921,6 +5034,7 @@ dependencies = [
"tokio",
"tokio-util",
"toml",
"uiautomation",
"unicode-segmentation",
"unicode-width 0.2.2",
"windows-sys 0.61.2",
@@ -5618,6 +5732,17 @@ version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]]
name = "reis"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00939c5c526a1b4054ef8d9d96b3f92227f08ca355965e986741b556eda6d289"
dependencies = [
"futures",
"rustix 0.38.44",
"tokio",
]
[[package]]
name = "relative-path"
version = "1.9.3"
@@ -6207,6 +6332,12 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "str_stack"
version = "0.1.1"
@@ -6579,6 +6710,7 @@ dependencies = [
"signal-hook-registry",
"socket2 0.6.5",
"tokio-macros",
"tracing",
"windows-sys 0.61.2",
]
@@ -7360,6 +7492,29 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "uiautomation"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c68495a701b9f2f21f29353ac446f0d27dd0d7ce97aa9ccf9061bca0446cd744"
dependencies = [
"chrono",
"uiautomation_derive",
"windows 0.62.2",
"windows-core 0.62.2",
]
[[package]]
name = "uiautomation_derive"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffcc4d404aa1c03a848f95cf5feadc3e63946d7f095bf388770b85550093d388"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "unic-langid"
version = "0.9.6"
@@ -7440,6 +7595,7 @@ dependencies = [
"idna",
"percent-encoding",
"serde",
"serde_derive",
]
[[package]]
@@ -9404,6 +9560,7 @@ dependencies = [
"rustix 1.1.4",
"serde",
"serde_repr",
"tokio",
"tracing",
"uds_windows",
"uuid",
@@ -9414,6 +9571,30 @@ dependencies = [
"zvariant",
]
[[package]]
name = "zbus-lockstep"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6998de05217a084b7578728a9443d04ea4cd80f2a0839b8d78770b76ccd45863"
dependencies = [
"zbus_xml",
"zvariant",
]
[[package]]
name = "zbus-lockstep-macros"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
"zbus-lockstep",
"zbus_xml",
"zvariant",
]
[[package]]
name = "zbus_macros"
version = "5.18.0"
@@ -9440,6 +9621,18 @@ dependencies = [
"zvariant",
]
[[package]]
name = "zbus_xml"
version = "5.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1586c021a01ca0a9216dcd874e546382e156a5cbab5fab6cb5f10087e22682a"
dependencies = [
"serde",
"winnow 1.0.4",
"zbus_names",
"zvariant",
]
[[package]]
name = "zerocopy"
version = "0.8.55"
@@ -9566,6 +9759,7 @@ dependencies = [
"endi",
"enumflags2",
"serde",
"url",
"winnow 1.0.4",
"zvariant_derive",
"zvariant_utils",