extra-desktop 0.2.5__tar.gz → 0.3.2__tar.gz
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.
- {extra_desktop-0.2.5/extra_desktop.egg-info → extra_desktop-0.3.2}/PKG-INFO +92 -40
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/README.md +86 -38
- extra_desktop-0.3.2/__init__.py +5 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/cli.py +433 -11
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/__init__.py +37 -0
- extra_desktop-0.3.2/core/composer/__init__.py +49 -0
- extra_desktop-0.3.2/core/composer/blueprint.py +412 -0
- extra_desktop-0.3.2/core/composer/folding.py +177 -0
- extra_desktop-0.3.2/core/composer/lineage.py +352 -0
- extra_desktop-0.3.2/core/composer/verifier.py +143 -0
- extra_desktop-0.3.2/core/distiller.py +603 -0
- extra_desktop-0.3.2/core/evolution/__init__.py +40 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/evolution/analyzer.py +68 -8
- extra_desktop-0.3.2/core/evolution/api_synthesizer.py +175 -0
- extra_desktop-0.3.2/core/evolution/crystallizer.py +307 -0
- extra_desktop-0.3.2/core/evolution/curator.py +244 -0
- extra_desktop-0.3.2/core/evolution/harness_generator.py +1092 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/input_engine.py +4 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/__init__.py +23 -1
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/db.py +58 -10
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/ingest.py +149 -5
- extra_desktop-0.3.2/core/memory/recall.py +381 -0
- extra_desktop-0.3.2/core/metrics/__init__.py +42 -0
- extra_desktop-0.3.2/core/metrics/auditor.py +269 -0
- extra_desktop-0.3.2/core/metrics/config.py +147 -0
- extra_desktop-0.3.2/core/metrics/dashboard.py +981 -0
- extra_desktop-0.3.2/core/metrics/ledger.py +503 -0
- extra_desktop-0.3.2/core/metrics/sanitizer.py +141 -0
- extra_desktop-0.3.2/core/metrics/telemetry.py +248 -0
- extra_desktop-0.3.2/core/motion/__init__.py +25 -0
- extra_desktop-0.3.2/core/motion/curves.py +208 -0
- extra_desktop-0.3.2/core/motion/profiler.py +166 -0
- extra_desktop-0.3.2/core/motion/stroke.py +122 -0
- extra_desktop-0.3.2/core/motion/windmouse.py +113 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/__init__.py +62 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/base.py +48 -5
- extra_desktop-0.3.2/core/platform/linux/__init__.py +204 -0
- extra_desktop-0.3.2/core/platform/linux/atspi_plane.py +646 -0
- extra_desktop-0.3.2/core/platform/linux/capture.py +231 -0
- extra_desktop-0.3.2/core/platform/linux/focus.py +634 -0
- extra_desktop-0.3.2/core/platform/linux/geometry.py +351 -0
- extra_desktop-0.3.2/core/platform/linux/indicators.py +414 -0
- extra_desktop-0.3.2/core/platform/linux/input_engine.py +1643 -0
- extra_desktop-0.3.2/core/platform/linux/permissions.py +146 -0
- extra_desktop-0.3.2/core/platform/linux/shell.py +704 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/__init__.py +4 -0
- extra_desktop-0.3.2/core/platform/macos/input_engine.py +1083 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/shell.py +9 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/__init__.py +28 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/capture.py +9 -0
- extra_desktop-0.3.2/core/platform/windows/child_session.py +437 -0
- extra_desktop-0.3.2/core/platform/windows/focus.py +621 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/geometry.py +16 -2
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/indicators.py +124 -26
- extra_desktop-0.3.2/core/platform/windows/input_engine.py +1450 -0
- extra_desktop-0.3.2/core/platform/windows/pip_window.py +394 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/shell.py +231 -40
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/uia_plane.py +54 -5
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/scout/__init__.py +6 -0
- extra_desktop-0.3.2/core/scout/cdp_sniffer.py +228 -0
- extra_desktop-0.3.2/core/scout/detector.py +354 -0
- extra_desktop-0.3.2/core/scout/scraper.py +226 -0
- extra_desktop-0.3.2/core/scout/session_vault.py +158 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/scout/synthesizer.py +35 -7
- extra_desktop-0.3.2/core/soul/__init__.py +63 -0
- extra_desktop-0.3.2/core/soul/compressor.py +60 -0
- extra_desktop-0.3.2/core/soul/critic.py +121 -0
- extra_desktop-0.3.2/core/soul/decider.py +291 -0
- extra_desktop-0.3.2/core/soul/eyes.py +285 -0
- extra_desktop-0.3.2/core/soul/gateman.py +154 -0
- extra_desktop-0.3.2/core/soul/grammar.py +111 -0
- extra_desktop-0.3.2/core/soul/runtime.py +114 -0
- extra_desktop-0.3.2/core/soul/schemas.py +118 -0
- extra_desktop-0.3.2/core/soul/state_critic.py +319 -0
- extra_desktop-0.3.2/core/soul/vision_parser.py +532 -0
- extra_desktop-0.3.2/core/stall_breaker.py +449 -0
- extra_desktop-0.3.2/core/subtask.py +467 -0
- extra_desktop-0.3.2/core/uninstall.py +432 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2/extra_desktop.egg-info}/PKG-INFO +92 -40
- extra_desktop-0.3.2/extra_desktop.egg-info/SOURCES.txt +250 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/entry_points.txt +1 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/requires.txt +6 -0
- extra_desktop-0.3.2/fastpath/__init__.py +74 -0
- extra_desktop-0.3.2/fastpath/bridge.py +369 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/browser.py +117 -2
- extra_desktop-0.3.2/fastpath/cli_harness.py +390 -0
- extra_desktop-0.3.2/fastpath/cli_hub.py +351 -0
- extra_desktop-0.3.2/fastpath/clipboard_html.py +52 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/fs.py +104 -5
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/shell.py +10 -0
- extra_desktop-0.3.2/fastpath/vectorizer.py +362 -0
- extra_desktop-0.3.2/fastpath/visualizer.py +236 -0
- extra_desktop-0.3.2/fastpath/web/__init__.py +4 -0
- extra_desktop-0.3.2/fastpath/web_workspace.py +245 -0
- extra_desktop-0.3.2/mcp/server.py +2521 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/pyproject.toml +13 -2
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_acceleration_suite.py +95 -3
- extra_desktop-0.3.2/tests/test_bridge_sandbox.py +100 -0
- extra_desktop-0.3.2/tests/test_canvas_stall_breaker.py +104 -0
- extra_desktop-0.3.2/tests/test_child_session.py +147 -0
- extra_desktop-0.3.2/tests/test_cli_harness.py +396 -0
- extra_desktop-0.3.2/tests/test_composer_director_soul.py +396 -0
- extra_desktop-0.3.2/tests/test_dynamic_batching.py +220 -0
- extra_desktop-0.3.2/tests/test_evolution.py +231 -0
- extra_desktop-0.3.2/tests/test_evolution_harness.py +137 -0
- extra_desktop-0.3.2/tests/test_hierarchical_benchmarks.py +356 -0
- extra_desktop-0.3.2/tests/test_human_mouse.py +187 -0
- extra_desktop-0.3.2/tests/test_launch_maximize.py +105 -0
- extra_desktop-0.3.2/tests/test_lineage.py +110 -0
- extra_desktop-0.3.2/tests/test_linux_atspi.py +163 -0
- extra_desktop-0.3.2/tests/test_linux_capture.py +54 -0
- extra_desktop-0.3.2/tests/test_linux_focus.py +138 -0
- extra_desktop-0.3.2/tests/test_linux_geometry.py +101 -0
- extra_desktop-0.3.2/tests/test_linux_indicators.py +211 -0
- extra_desktop-0.3.2/tests/test_linux_input.py +186 -0
- extra_desktop-0.3.2/tests/test_linux_shell.py +221 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_memory_kuzu.py +75 -0
- extra_desktop-0.3.2/tests/test_metrics.py +427 -0
- extra_desktop-0.3.2/tests/test_milestone_budgeting.py +167 -0
- extra_desktop-0.3.2/tests/test_paint_remediation.py +213 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar4_web_edge.py +3 -3
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar5_package_ecosystem.py +7 -1
- extra_desktop-0.3.2/tests/test_pre_release_fixes.py +176 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_scout.py +21 -0
- extra_desktop-0.3.2/tests/test_security_hardening.py +128 -0
- extra_desktop-0.3.2/tests/test_soul_benchmarks.py +262 -0
- extra_desktop-0.3.2/tests/test_soul_evolution.py +195 -0
- extra_desktop-0.3.2/tests/test_soul_runtime.py +171 -0
- extra_desktop-0.3.2/tests/test_stall_breaker_cognitive.py +134 -0
- extra_desktop-0.3.2/tests/test_state_critic.py +146 -0
- extra_desktop-0.3.2/tests/test_subtask_runner.py +379 -0
- extra_desktop-0.3.2/tests/test_telemetry.py +165 -0
- extra_desktop-0.3.2/tests/test_tiered_verification.py +369 -0
- extra_desktop-0.3.2/tests/test_tiered_verification_benchmarks.py +187 -0
- extra_desktop-0.3.2/tests/test_ui_distiller.py +272 -0
- extra_desktop-0.3.2/tests/test_uninstall.py +135 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_universal_tasksuite.py +1 -1
- extra_desktop-0.3.2/tests/test_verification_mcp.py +130 -0
- extra_desktop-0.3.2/tests/test_vision_parser.py +186 -0
- extra_desktop-0.3.2/tests/test_visual_grounding.py +123 -0
- extra_desktop-0.3.2/tests/test_web_to_api.py +156 -0
- extra_desktop-0.3.2/tests/test_web_workspace.py +134 -0
- extra_desktop-0.3.2/tests/test_windows_indicators.py +173 -0
- extra_desktop-0.2.5/__init__.py +0 -5
- extra_desktop-0.2.5/core/evolution/__init__.py +0 -16
- extra_desktop-0.2.5/core/evolution/crystallizer.py +0 -169
- extra_desktop-0.2.5/core/evolution/curator.py +0 -73
- extra_desktop-0.2.5/core/memory/recall.py +0 -174
- extra_desktop-0.2.5/core/platform/macos/input_engine.py +0 -487
- extra_desktop-0.2.5/core/platform/windows/focus.py +0 -383
- extra_desktop-0.2.5/core/platform/windows/input_engine.py +0 -619
- extra_desktop-0.2.5/core/scout/detector.py +0 -217
- extra_desktop-0.2.5/core/scout/scraper.py +0 -475
- extra_desktop-0.2.5/core/stall_breaker.py +0 -252
- extra_desktop-0.2.5/extra_desktop.egg-info/SOURCES.txt +0 -116
- extra_desktop-0.2.5/fastpath/__init__.py +0 -28
- extra_desktop-0.2.5/mcp/server.py +0 -837
- extra_desktop-0.2.5/tests/test_evolution.py +0 -75
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/LICENSE +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/NOTICE +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/capture.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/focus.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/geometry.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/indicators.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/embeddings.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/ax_plane.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/capture.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/focus.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/geometry.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/indicators.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/permissions.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/uia_plane.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/dependency_links.txt +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/top_level.txt +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/mcp/__init__.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/setup.cfg +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_app_registry_dynamic.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_core_engine.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_geometry_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_input_engine_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_issue4_bottlenecks.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_ax.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_core.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_focus_shell.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_indicators.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_input.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_perception.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_safety.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_mcp_schemas_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_memory_subsystem_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_perception_vision_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar1_funnel.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar2_installer.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar3_tcc_playbook.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_process_shell_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_scout_evolution_exhaustive.py +0 -0
- {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_stall_breaker_exhaustive.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: extra-desktop
|
|
3
|
-
Version: 0.2
|
|
4
|
-
Summary: Flashless Windows & macOS Computer-Use Engine & Model Context Protocol (MCP) Server
|
|
3
|
+
Version: 0.3.2
|
|
4
|
+
Summary: Flashless Linux, Windows & macOS Computer-Use Engine & Model Context Protocol (MCP) Server
|
|
5
5
|
Author-email: AIYantra Engineering Team <engineering@yantraos.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://extra.yantraos.com
|
|
@@ -20,6 +20,7 @@ Requires-Dist: numpy>=1.26.0
|
|
|
20
20
|
Requires-Dist: psutil>=6.0.0
|
|
21
21
|
Requires-Dist: kuzu>=0.11.0
|
|
22
22
|
Requires-Dist: fastembed>=0.8.0
|
|
23
|
+
Requires-Dist: onnxruntime>=1.19.0
|
|
23
24
|
Requires-Dist: pywin32>=306; sys_platform == "win32"
|
|
24
25
|
Requires-Dist: comtypes>=1.4.0; sys_platform == "win32"
|
|
25
26
|
Requires-Dist: mss>=9.0.1; sys_platform == "win32"
|
|
@@ -28,6 +29,9 @@ Requires-Dist: pyobjc-framework-Cocoa>=10.0; sys_platform == "darwin"
|
|
|
28
29
|
Requires-Dist: pyobjc-framework-Quartz>=10.0; sys_platform == "darwin"
|
|
29
30
|
Requires-Dist: pyobjc-framework-ApplicationServices>=10.0; sys_platform == "darwin"
|
|
30
31
|
Requires-Dist: pyobjc-framework-ScreenCaptureKit>=10.0; sys_platform == "darwin"
|
|
32
|
+
Requires-Dist: evdev>=1.7.0; sys_platform == "linux"
|
|
33
|
+
Requires-Dist: mss>=9.0.1; sys_platform == "linux"
|
|
34
|
+
Requires-Dist: jeepney>=0.8.0; sys_platform == "linux"
|
|
31
35
|
Dynamic: license-file
|
|
32
36
|
|
|
33
37
|
<div align="center">
|
|
@@ -38,18 +42,19 @@ Dynamic: license-file
|
|
|
38
42
|
|
|
39
43
|
# Extra
|
|
40
44
|
|
|
41
|
-
### The Open-Source Astra 6 for your Mac &
|
|
42
|
-
**Your AI can see, click, type, navigate, and get real work done on macOS & Windows.**
|
|
45
|
+
### The Open-Source Astra 6 for your Linux PC, Mac & Windows
|
|
46
|
+
**Your AI can see, click, type, navigate, and get real work done on Linux, macOS & Windows.**
|
|
43
47
|
|
|
44
48
|
<!-- mcp-name: io.github.AIYantra/extra -->
|
|
45
49
|
|
|
50
|
+
[](https://pepy.tech/projects/extra-desktop)
|
|
46
51
|
[](LICENSE)
|
|
47
|
-
[](https://extra.yantraos.com)
|
|
48
53
|
[](https://modelcontextprotocol.io)
|
|
49
54
|
[](https://yantraos.com)
|
|
50
55
|
[](https://github.com/AIYantra/extra)
|
|
51
56
|
|
|
52
|
-
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
57
|
+
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [Linux Guide](README_LINUX.md) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
53
58
|
|
|
54
59
|
<br/>
|
|
55
60
|
<br/>
|
|
@@ -66,9 +71,9 @@ Dynamic: license-file
|
|
|
66
71
|
|
|
67
72
|
Today's AI assistants can write brilliant essays and code, but they are trapped inside a chat window. When you need them to click a button, open an app, organize your files, or input data into a spreadsheet, they can only give you text instructions.
|
|
68
73
|
|
|
69
|
-
**Extra gives your AI hands and eyes on Windows.**
|
|
74
|
+
**Extra gives your AI hands and eyes on Linux, macOS & Windows.**
|
|
70
75
|
|
|
71
|
-
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your
|
|
76
|
+
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
|
|
72
77
|
|
|
73
78
|
* **No clunky browser extensions.**
|
|
74
79
|
* **No expensive cloud servers watching your screen.**
|
|
@@ -80,22 +85,27 @@ It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent
|
|
|
80
85
|
|
|
81
86
|
Once Extra is running, you can talk to your AI like a real human assistant sitting at your desk:
|
|
82
87
|
|
|
83
|
-
* 📊 **Spreadsheets & Data:** *"Open Excel, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
88
|
+
* 📊 **Spreadsheets & Data:** *"Open Excel or LibreOffice Calc, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
84
89
|
* 🗂️ **Desktop & File Cleanup:** *"Clean up my messy desktop by moving screenshots into Pictures, PDFs into Documents, and deleting empty folders."*
|
|
85
|
-
* 🌐 **Web Research & Data Entry:** *"Open Chrome, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into
|
|
86
|
-
* ⚙️ **
|
|
87
|
-
* 🎵 **App Control:** *"Launch Spotify, search for low-fi focus beats, and start playing."*
|
|
90
|
+
* 🌐 **Web Research & Data Entry:** *"Open Chrome or Firefox, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into a text note."*
|
|
91
|
+
* ⚙️ **System Administration:** *"Open Settings or terminal, check system updates, and verify service health."*
|
|
92
|
+
* 🎵 **App Control:** *"Launch Spotify or VLC, search for low-fi focus beats, and start playing."*
|
|
88
93
|
|
|
89
94
|
---
|
|
90
95
|
|
|
91
96
|
## ⚡ Quickstart (1 Minute)
|
|
92
97
|
|
|
93
|
-
You can set up Extra in seconds on **macOS
|
|
98
|
+
You can set up Extra in seconds on **Linux**, **macOS**, or **Windows**:
|
|
94
99
|
|
|
95
100
|
### Option A: Ask Your AI To Set It Up (Primary Funnel — Easiest)
|
|
96
101
|
|
|
97
102
|
Copy and paste the single directive for your OS into **Claude Desktop**, **Google Antigravity**, **Cursor**, **Windsurf**, or any MCP agent:
|
|
98
103
|
|
|
104
|
+
* **🐧 For Linux (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
105
|
+
```text
|
|
106
|
+
Setup Extra on my Linux machine: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_LINUX.md so we are ready to use Extra.
|
|
107
|
+
```
|
|
108
|
+
|
|
99
109
|
* **🍏 For macOS (Apple Silicon M1-M4 & Intel):**
|
|
100
110
|
```text
|
|
101
111
|
Setup Extra on my Mac: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_MACOS.md so we are ready to use Extra.
|
|
@@ -113,6 +123,11 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
113
123
|
|
|
114
124
|
### Option B: Run the One-Liner Yourself
|
|
115
125
|
|
|
126
|
+
* **🐧 Linux Terminal (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
127
|
+
```bash
|
|
128
|
+
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
129
|
+
```
|
|
130
|
+
|
|
116
131
|
* **🍏 macOS Terminal:**
|
|
117
132
|
```bash
|
|
118
133
|
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
@@ -124,7 +139,7 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
124
139
|
```
|
|
125
140
|
|
|
126
141
|
The automated installer will:
|
|
127
|
-
* Verify OS architecture (macOS 12.3
|
|
142
|
+
* Verify OS architecture (Linux Wayland/X11, macOS 12.3+, or Windows 10/11 64-bit).
|
|
128
143
|
* Provision isolated Python 3.10+ runtime (`~/.extra/venv`).
|
|
129
144
|
* Auto-configure **Claude Desktop**, **Cursor**, **Windsurf**, and **Antigravity** (`agy`).
|
|
130
145
|
* Run the health diagnostic doctor and present the 1-step starter prompt.
|
|
@@ -134,7 +149,7 @@ The automated installer will:
|
|
|
134
149
|
### Option C: Developer Git Clone
|
|
135
150
|
|
|
136
151
|
```bash
|
|
137
|
-
# macOS:
|
|
152
|
+
# Linux / macOS:
|
|
138
153
|
git clone https://github.com/AIYantra/extra.git ~/.extra/app
|
|
139
154
|
cd ~/.extra/app && ./install.sh
|
|
140
155
|
|
|
@@ -149,6 +164,19 @@ cd "$HOME\.extra\app" ; .\install.ps1
|
|
|
149
164
|
|
|
150
165
|
Extra works out of the box with any agent supporting the **Model Context Protocol (MCP)**. If you use Cursor, Windsurf, or custom agents, add this snippet to your MCP config:
|
|
151
166
|
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"mcpServers": {
|
|
170
|
+
"extra": {
|
|
171
|
+
"command": "npx",
|
|
172
|
+
"args": ["-y", "@yantraos/extra-desktop"]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Or using native Python:
|
|
179
|
+
|
|
152
180
|
```json
|
|
153
181
|
{
|
|
154
182
|
"mcpServers": {
|
|
@@ -187,26 +215,33 @@ Extra is engineered from the ground up for speed, reliability, and token efficie
|
|
|
187
215
|
|
|
188
216
|
---
|
|
189
217
|
|
|
190
|
-
## 🛠️ Included Tools (MCP Suite)
|
|
218
|
+
## 🛠️ Included Tools (MCP Suite — 20 Native Tools)
|
|
191
219
|
|
|
192
|
-
When connected to Extra, your AI assistant receives
|
|
220
|
+
When connected to Extra, your AI assistant receives full sovereign desktop control across 20 native tools:
|
|
193
221
|
|
|
194
222
|
| Tool Name | What It Does |
|
|
195
223
|
| :--- | :--- |
|
|
196
|
-
| `extra_launch` | Opens any
|
|
197
|
-
| `
|
|
198
|
-
| `
|
|
199
|
-
| `
|
|
200
|
-
| `
|
|
201
|
-
| `extra_type` | Injects text instantly with zero lag, full emoji support, and atomic paste |
|
|
224
|
+
| `extra_launch` | Opens any app, utility, or URL directly (`calc`, `notepad`, `settings`, `edge`, `chrome`) |
|
|
225
|
+
| `extra_focus_window` | Brings any window to the front via native thread input attachment |
|
|
226
|
+
| `extra_click` | Clicks with sub-pixel DPI accuracy, human-like Bezier curves, and semantic visual grounding (`target="..."`) |
|
|
227
|
+
| `extra_stroke` | Draws fluid, continuous brush splines across waypoints with pressure and Catmull-Rom smoothing |
|
|
228
|
+
| `extra_type` | Injects text instantly with zero lag, full emoji support, and Win32 Unicode packets |
|
|
202
229
|
| `extra_hotkey` | Sends keyboard shortcuts (`Ctrl+C`, `Win+E`, `Alt+Tab`, `Enter`) |
|
|
230
|
+
| `extra_batch_actions` | Executes atomic lists of hardware & SOUL reflex actions (`eval`, `assert`, `wait_for_state`) in sub-milliseconds |
|
|
231
|
+
| `extra_snap_layout` | Programmatically docks and arranges windows in side-by-side or split layouts in < 15ms |
|
|
232
|
+
| `extra_fs_batch` | High-speed batch filesystem operations compliant with Windows Defender Controlled Folder Access |
|
|
233
|
+
| `extra_inspect_ui` | Scans accessible UI trees and interactive element nodes in real time |
|
|
234
|
+
| `extra_click_element` | Clicks UI elements deterministically by accessible ID or semantic target |
|
|
203
235
|
| `extra_scroll` | Smoothly scrolls wheels up, down, left, or right |
|
|
204
236
|
| `extra_drag` | Drags and drops files, windows, or sliders between coordinates |
|
|
205
|
-
| `
|
|
206
|
-
| `
|
|
207
|
-
| `extra_task_start` |
|
|
208
|
-
| `extra_task_complete` | Signals task completion
|
|
237
|
+
| `extra_screenshot` | Captures high-res desktop frames in < 25ms with optional Set-of-Mark visual badges |
|
|
238
|
+
| `extra_browser` | Directly extracts DOM content in Edge/Chrome or triggers synthesized API fast-paths |
|
|
239
|
+
| `extra_task_start` | Activates ambient screen edge pulse and cursor tracking halo |
|
|
240
|
+
| `extra_task_complete` | Signals task completion: flashes emerald border, plays acoustic chime, and analyzes trajectory |
|
|
209
241
|
| `extra_indicate_status` | Direct programmatic control over active, complete, and idle desktop indicators |
|
|
242
|
+
| `extra_recall_memory` | Recalls past task workflows, artifacts, and known quirks via KùzuDB + FastEmbed in < 2ms |
|
|
243
|
+
| `extra_scout_app` | Discovers UI frameworks (Electron/Win32/Viewport), universal hotkeys, and generates SKILL playbooks |
|
|
244
|
+
| `extra_evolve_skill` | Crystallizes newly verified zero-stall fast paths into permanent skill playbooks |
|
|
210
245
|
|
|
211
246
|
---
|
|
212
247
|
|
|
@@ -215,26 +250,43 @@ When connected to Extra, your AI assistant receives these native tools:
|
|
|
215
250
|
```text
|
|
216
251
|
extra/
|
|
217
252
|
├── assets/ # Brand logos and banners
|
|
218
|
-
├──
|
|
219
|
-
|
|
253
|
+
├── bin/ # Node.js CLI executable (npx @yantraos/extra-desktop)
|
|
254
|
+
├── core/ # Sovereign Core Automation Engine
|
|
255
|
+
│ ├── platform/ # Platform Abstraction Layer (PAL facade for Win32 & macOS)
|
|
256
|
+
│ │ ├── windows/ # Win32 SendInput, DXGI capture, UIA, and focus
|
|
257
|
+
│ │ └── macos/ # ScreenCaptureKit, CoreGraphics, and AXUIElement
|
|
258
|
+
│ ├── soul/ # System One Ultra-fast Layer (Decider, Eyes, Grammar, Schemas)
|
|
259
|
+
│ ├── memory/ # KùzuDB episodic knowledge graph & FastEmbed embeddings
|
|
260
|
+
│ ├── evolution/ # Autonomous skill crystallizer & API synthesizer
|
|
261
|
+
│ ├── scout/ # Application discovery, CDP sniffer, and session vault
|
|
262
|
+
│ ├── motion/ # Human-like Bezier cursor flight and spline dynamics
|
|
263
|
+
│ ├── capture.py # Unified high-speed desktop screen capture
|
|
220
264
|
│ ├── geometry.py # PerMonitorV2 DPI scaling & display normalization
|
|
221
|
-
│ ├── indicators.py # Ambient screen
|
|
222
|
-
│ ├── input_engine.py #
|
|
223
|
-
│ ├── focus.py #
|
|
224
|
-
│ ├── uia_plane.py #
|
|
265
|
+
│ ├── indicators.py # Ambient screen pulse, cursor halo, and harmonic chime
|
|
266
|
+
│ ├── input_engine.py # PAL input facade (clicks, strokes, typing, batching)
|
|
267
|
+
│ ├── focus.py # Window activation, snapping, and layout management
|
|
268
|
+
│ ├── uia_plane.py # Accessibility tree inspection and Set-of-Mark labeling
|
|
225
269
|
│ └── stall_breaker.py # Closed-loop perceptual diffing & safety killswitch
|
|
226
270
|
├── fastpath/ # High-speed deterministic execution
|
|
227
|
-
│ ├── shell.py #
|
|
228
|
-
│
|
|
229
|
-
├──
|
|
230
|
-
│ └──
|
|
271
|
+
│ ├── shell.py # Native app launcher with crash-recovery auto-suppression
|
|
272
|
+
│ ├── browser.py # Playwright & Chromium DevTools Protocol (CDP) bridge
|
|
273
|
+
│ ├── fs.py # CFA-compliant batch filesystem engine
|
|
274
|
+
│ └── web/ # Synthesized Web-to-API fast-paths
|
|
275
|
+
├── mcp/ # Model Context Protocol
|
|
276
|
+
│ └── server.py # Standard JSON-RPC stdio/SSE server (20 native tools)
|
|
277
|
+
├── tests/ # Exhaustive 1,883-test official verification suite
|
|
231
278
|
├── cli.py # CLI runner (extra doctor, test, indicators, run, inspect, snap)
|
|
232
|
-
├── install.ps1 # 1-line PowerShell installer
|
|
233
|
-
├──
|
|
279
|
+
├── install.ps1 # 1-line PowerShell installer (Windows)
|
|
280
|
+
├── install.sh # 1-line bash installer (macOS)
|
|
281
|
+
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.1)
|
|
282
|
+
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.1)
|
|
283
|
+
├── server.json # Official MCP registry manifest
|
|
284
|
+
├── glama.json # Glama MCP ecosystem manifest
|
|
285
|
+
├── smithery.yaml # Smithery 1-click deployment manifest
|
|
234
286
|
├── requirements.txt # Enterprise-audited dependency manifest
|
|
235
287
|
├── STARTER_PROMPT.md # Master AI system prompt & setup directive
|
|
236
288
|
├── ARCHITECTURE.md # Full System Architecture Specification
|
|
237
|
-
└──
|
|
289
|
+
└── RELEASE_NOTES.md # Comprehensive version release notes
|
|
238
290
|
```
|
|
239
291
|
|
|
240
292
|
---
|
|
@@ -6,18 +6,19 @@
|
|
|
6
6
|
|
|
7
7
|
# Extra
|
|
8
8
|
|
|
9
|
-
### The Open-Source Astra 6 for your Mac &
|
|
10
|
-
**Your AI can see, click, type, navigate, and get real work done on macOS & Windows.**
|
|
9
|
+
### The Open-Source Astra 6 for your Linux PC, Mac & Windows
|
|
10
|
+
**Your AI can see, click, type, navigate, and get real work done on Linux, macOS & Windows.**
|
|
11
11
|
|
|
12
12
|
<!-- mcp-name: io.github.AIYantra/extra -->
|
|
13
13
|
|
|
14
|
+
[](https://pepy.tech/projects/extra-desktop)
|
|
14
15
|
[](LICENSE)
|
|
15
|
-
[](https://extra.yantraos.com)
|
|
16
17
|
[](https://modelcontextprotocol.io)
|
|
17
18
|
[](https://yantraos.com)
|
|
18
19
|
[](https://github.com/AIYantra/extra)
|
|
19
20
|
|
|
20
|
-
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
21
|
+
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [Linux Guide](README_LINUX.md) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
21
22
|
|
|
22
23
|
<br/>
|
|
23
24
|
<br/>
|
|
@@ -34,9 +35,9 @@
|
|
|
34
35
|
|
|
35
36
|
Today's AI assistants can write brilliant essays and code, but they are trapped inside a chat window. When you need them to click a button, open an app, organize your files, or input data into a spreadsheet, they can only give you text instructions.
|
|
36
37
|
|
|
37
|
-
**Extra gives your AI hands and eyes on Windows.**
|
|
38
|
+
**Extra gives your AI hands and eyes on Linux, macOS & Windows.**
|
|
38
39
|
|
|
39
|
-
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your
|
|
40
|
+
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
|
|
40
41
|
|
|
41
42
|
* **No clunky browser extensions.**
|
|
42
43
|
* **No expensive cloud servers watching your screen.**
|
|
@@ -48,22 +49,27 @@ It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent
|
|
|
48
49
|
|
|
49
50
|
Once Extra is running, you can talk to your AI like a real human assistant sitting at your desk:
|
|
50
51
|
|
|
51
|
-
* 📊 **Spreadsheets & Data:** *"Open Excel, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
52
|
+
* 📊 **Spreadsheets & Data:** *"Open Excel or LibreOffice Calc, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
52
53
|
* 🗂️ **Desktop & File Cleanup:** *"Clean up my messy desktop by moving screenshots into Pictures, PDFs into Documents, and deleting empty folders."*
|
|
53
|
-
* 🌐 **Web Research & Data Entry:** *"Open Chrome, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into
|
|
54
|
-
* ⚙️ **
|
|
55
|
-
* 🎵 **App Control:** *"Launch Spotify, search for low-fi focus beats, and start playing."*
|
|
54
|
+
* 🌐 **Web Research & Data Entry:** *"Open Chrome or Firefox, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into a text note."*
|
|
55
|
+
* ⚙️ **System Administration:** *"Open Settings or terminal, check system updates, and verify service health."*
|
|
56
|
+
* 🎵 **App Control:** *"Launch Spotify or VLC, search for low-fi focus beats, and start playing."*
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
59
60
|
## ⚡ Quickstart (1 Minute)
|
|
60
61
|
|
|
61
|
-
You can set up Extra in seconds on **macOS
|
|
62
|
+
You can set up Extra in seconds on **Linux**, **macOS**, or **Windows**:
|
|
62
63
|
|
|
63
64
|
### Option A: Ask Your AI To Set It Up (Primary Funnel — Easiest)
|
|
64
65
|
|
|
65
66
|
Copy and paste the single directive for your OS into **Claude Desktop**, **Google Antigravity**, **Cursor**, **Windsurf**, or any MCP agent:
|
|
66
67
|
|
|
68
|
+
* **🐧 For Linux (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
69
|
+
```text
|
|
70
|
+
Setup Extra on my Linux machine: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_LINUX.md so we are ready to use Extra.
|
|
71
|
+
```
|
|
72
|
+
|
|
67
73
|
* **🍏 For macOS (Apple Silicon M1-M4 & Intel):**
|
|
68
74
|
```text
|
|
69
75
|
Setup Extra on my Mac: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_MACOS.md so we are ready to use Extra.
|
|
@@ -81,6 +87,11 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
81
87
|
|
|
82
88
|
### Option B: Run the One-Liner Yourself
|
|
83
89
|
|
|
90
|
+
* **🐧 Linux Terminal (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
91
|
+
```bash
|
|
92
|
+
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
93
|
+
```
|
|
94
|
+
|
|
84
95
|
* **🍏 macOS Terminal:**
|
|
85
96
|
```bash
|
|
86
97
|
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
@@ -92,7 +103,7 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
92
103
|
```
|
|
93
104
|
|
|
94
105
|
The automated installer will:
|
|
95
|
-
* Verify OS architecture (macOS 12.3
|
|
106
|
+
* Verify OS architecture (Linux Wayland/X11, macOS 12.3+, or Windows 10/11 64-bit).
|
|
96
107
|
* Provision isolated Python 3.10+ runtime (`~/.extra/venv`).
|
|
97
108
|
* Auto-configure **Claude Desktop**, **Cursor**, **Windsurf**, and **Antigravity** (`agy`).
|
|
98
109
|
* Run the health diagnostic doctor and present the 1-step starter prompt.
|
|
@@ -102,7 +113,7 @@ The automated installer will:
|
|
|
102
113
|
### Option C: Developer Git Clone
|
|
103
114
|
|
|
104
115
|
```bash
|
|
105
|
-
# macOS:
|
|
116
|
+
# Linux / macOS:
|
|
106
117
|
git clone https://github.com/AIYantra/extra.git ~/.extra/app
|
|
107
118
|
cd ~/.extra/app && ./install.sh
|
|
108
119
|
|
|
@@ -117,6 +128,19 @@ cd "$HOME\.extra\app" ; .\install.ps1
|
|
|
117
128
|
|
|
118
129
|
Extra works out of the box with any agent supporting the **Model Context Protocol (MCP)**. If you use Cursor, Windsurf, or custom agents, add this snippet to your MCP config:
|
|
119
130
|
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"mcpServers": {
|
|
134
|
+
"extra": {
|
|
135
|
+
"command": "npx",
|
|
136
|
+
"args": ["-y", "@yantraos/extra-desktop"]
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Or using native Python:
|
|
143
|
+
|
|
120
144
|
```json
|
|
121
145
|
{
|
|
122
146
|
"mcpServers": {
|
|
@@ -155,26 +179,33 @@ Extra is engineered from the ground up for speed, reliability, and token efficie
|
|
|
155
179
|
|
|
156
180
|
---
|
|
157
181
|
|
|
158
|
-
## 🛠️ Included Tools (MCP Suite)
|
|
182
|
+
## 🛠️ Included Tools (MCP Suite — 20 Native Tools)
|
|
159
183
|
|
|
160
|
-
When connected to Extra, your AI assistant receives
|
|
184
|
+
When connected to Extra, your AI assistant receives full sovereign desktop control across 20 native tools:
|
|
161
185
|
|
|
162
186
|
| Tool Name | What It Does |
|
|
163
187
|
| :--- | :--- |
|
|
164
|
-
| `extra_launch` | Opens any
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `extra_type` | Injects text instantly with zero lag, full emoji support, and atomic paste |
|
|
188
|
+
| `extra_launch` | Opens any app, utility, or URL directly (`calc`, `notepad`, `settings`, `edge`, `chrome`) |
|
|
189
|
+
| `extra_focus_window` | Brings any window to the front via native thread input attachment |
|
|
190
|
+
| `extra_click` | Clicks with sub-pixel DPI accuracy, human-like Bezier curves, and semantic visual grounding (`target="..."`) |
|
|
191
|
+
| `extra_stroke` | Draws fluid, continuous brush splines across waypoints with pressure and Catmull-Rom smoothing |
|
|
192
|
+
| `extra_type` | Injects text instantly with zero lag, full emoji support, and Win32 Unicode packets |
|
|
170
193
|
| `extra_hotkey` | Sends keyboard shortcuts (`Ctrl+C`, `Win+E`, `Alt+Tab`, `Enter`) |
|
|
194
|
+
| `extra_batch_actions` | Executes atomic lists of hardware & SOUL reflex actions (`eval`, `assert`, `wait_for_state`) in sub-milliseconds |
|
|
195
|
+
| `extra_snap_layout` | Programmatically docks and arranges windows in side-by-side or split layouts in < 15ms |
|
|
196
|
+
| `extra_fs_batch` | High-speed batch filesystem operations compliant with Windows Defender Controlled Folder Access |
|
|
197
|
+
| `extra_inspect_ui` | Scans accessible UI trees and interactive element nodes in real time |
|
|
198
|
+
| `extra_click_element` | Clicks UI elements deterministically by accessible ID or semantic target |
|
|
171
199
|
| `extra_scroll` | Smoothly scrolls wheels up, down, left, or right |
|
|
172
200
|
| `extra_drag` | Drags and drops files, windows, or sliders between coordinates |
|
|
173
|
-
| `
|
|
174
|
-
| `
|
|
175
|
-
| `extra_task_start` |
|
|
176
|
-
| `extra_task_complete` | Signals task completion
|
|
201
|
+
| `extra_screenshot` | Captures high-res desktop frames in < 25ms with optional Set-of-Mark visual badges |
|
|
202
|
+
| `extra_browser` | Directly extracts DOM content in Edge/Chrome or triggers synthesized API fast-paths |
|
|
203
|
+
| `extra_task_start` | Activates ambient screen edge pulse and cursor tracking halo |
|
|
204
|
+
| `extra_task_complete` | Signals task completion: flashes emerald border, plays acoustic chime, and analyzes trajectory |
|
|
177
205
|
| `extra_indicate_status` | Direct programmatic control over active, complete, and idle desktop indicators |
|
|
206
|
+
| `extra_recall_memory` | Recalls past task workflows, artifacts, and known quirks via KùzuDB + FastEmbed in < 2ms |
|
|
207
|
+
| `extra_scout_app` | Discovers UI frameworks (Electron/Win32/Viewport), universal hotkeys, and generates SKILL playbooks |
|
|
208
|
+
| `extra_evolve_skill` | Crystallizes newly verified zero-stall fast paths into permanent skill playbooks |
|
|
178
209
|
|
|
179
210
|
---
|
|
180
211
|
|
|
@@ -183,26 +214,43 @@ When connected to Extra, your AI assistant receives these native tools:
|
|
|
183
214
|
```text
|
|
184
215
|
extra/
|
|
185
216
|
├── assets/ # Brand logos and banners
|
|
186
|
-
├──
|
|
187
|
-
|
|
217
|
+
├── bin/ # Node.js CLI executable (npx @yantraos/extra-desktop)
|
|
218
|
+
├── core/ # Sovereign Core Automation Engine
|
|
219
|
+
│ ├── platform/ # Platform Abstraction Layer (PAL facade for Win32 & macOS)
|
|
220
|
+
│ │ ├── windows/ # Win32 SendInput, DXGI capture, UIA, and focus
|
|
221
|
+
│ │ └── macos/ # ScreenCaptureKit, CoreGraphics, and AXUIElement
|
|
222
|
+
│ ├── soul/ # System One Ultra-fast Layer (Decider, Eyes, Grammar, Schemas)
|
|
223
|
+
│ ├── memory/ # KùzuDB episodic knowledge graph & FastEmbed embeddings
|
|
224
|
+
│ ├── evolution/ # Autonomous skill crystallizer & API synthesizer
|
|
225
|
+
│ ├── scout/ # Application discovery, CDP sniffer, and session vault
|
|
226
|
+
│ ├── motion/ # Human-like Bezier cursor flight and spline dynamics
|
|
227
|
+
│ ├── capture.py # Unified high-speed desktop screen capture
|
|
188
228
|
│ ├── geometry.py # PerMonitorV2 DPI scaling & display normalization
|
|
189
|
-
│ ├── indicators.py # Ambient screen
|
|
190
|
-
│ ├── input_engine.py #
|
|
191
|
-
│ ├── focus.py #
|
|
192
|
-
│ ├── uia_plane.py #
|
|
229
|
+
│ ├── indicators.py # Ambient screen pulse, cursor halo, and harmonic chime
|
|
230
|
+
│ ├── input_engine.py # PAL input facade (clicks, strokes, typing, batching)
|
|
231
|
+
│ ├── focus.py # Window activation, snapping, and layout management
|
|
232
|
+
│ ├── uia_plane.py # Accessibility tree inspection and Set-of-Mark labeling
|
|
193
233
|
│ └── stall_breaker.py # Closed-loop perceptual diffing & safety killswitch
|
|
194
234
|
├── fastpath/ # High-speed deterministic execution
|
|
195
|
-
│ ├── shell.py #
|
|
196
|
-
│
|
|
197
|
-
├──
|
|
198
|
-
│ └──
|
|
235
|
+
│ ├── shell.py # Native app launcher with crash-recovery auto-suppression
|
|
236
|
+
│ ├── browser.py # Playwright & Chromium DevTools Protocol (CDP) bridge
|
|
237
|
+
│ ├── fs.py # CFA-compliant batch filesystem engine
|
|
238
|
+
│ └── web/ # Synthesized Web-to-API fast-paths
|
|
239
|
+
├── mcp/ # Model Context Protocol
|
|
240
|
+
│ └── server.py # Standard JSON-RPC stdio/SSE server (20 native tools)
|
|
241
|
+
├── tests/ # Exhaustive 1,883-test official verification suite
|
|
199
242
|
├── cli.py # CLI runner (extra doctor, test, indicators, run, inspect, snap)
|
|
200
|
-
├── install.ps1 # 1-line PowerShell installer
|
|
201
|
-
├──
|
|
243
|
+
├── install.ps1 # 1-line PowerShell installer (Windows)
|
|
244
|
+
├── install.sh # 1-line bash installer (macOS)
|
|
245
|
+
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.1)
|
|
246
|
+
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.1)
|
|
247
|
+
├── server.json # Official MCP registry manifest
|
|
248
|
+
├── glama.json # Glama MCP ecosystem manifest
|
|
249
|
+
├── smithery.yaml # Smithery 1-click deployment manifest
|
|
202
250
|
├── requirements.txt # Enterprise-audited dependency manifest
|
|
203
251
|
├── STARTER_PROMPT.md # Master AI system prompt & setup directive
|
|
204
252
|
├── ARCHITECTURE.md # Full System Architecture Specification
|
|
205
|
-
└──
|
|
253
|
+
└── RELEASE_NOTES.md # Comprehensive version release notes
|
|
206
254
|
```
|
|
207
255
|
|
|
208
256
|
---
|