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.
Files changed (197) hide show
  1. {extra_desktop-0.2.5/extra_desktop.egg-info → extra_desktop-0.3.2}/PKG-INFO +92 -40
  2. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/README.md +86 -38
  3. extra_desktop-0.3.2/__init__.py +5 -0
  4. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/cli.py +433 -11
  5. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/__init__.py +37 -0
  6. extra_desktop-0.3.2/core/composer/__init__.py +49 -0
  7. extra_desktop-0.3.2/core/composer/blueprint.py +412 -0
  8. extra_desktop-0.3.2/core/composer/folding.py +177 -0
  9. extra_desktop-0.3.2/core/composer/lineage.py +352 -0
  10. extra_desktop-0.3.2/core/composer/verifier.py +143 -0
  11. extra_desktop-0.3.2/core/distiller.py +603 -0
  12. extra_desktop-0.3.2/core/evolution/__init__.py +40 -0
  13. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/evolution/analyzer.py +68 -8
  14. extra_desktop-0.3.2/core/evolution/api_synthesizer.py +175 -0
  15. extra_desktop-0.3.2/core/evolution/crystallizer.py +307 -0
  16. extra_desktop-0.3.2/core/evolution/curator.py +244 -0
  17. extra_desktop-0.3.2/core/evolution/harness_generator.py +1092 -0
  18. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/input_engine.py +4 -0
  19. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/__init__.py +23 -1
  20. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/db.py +58 -10
  21. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/ingest.py +149 -5
  22. extra_desktop-0.3.2/core/memory/recall.py +381 -0
  23. extra_desktop-0.3.2/core/metrics/__init__.py +42 -0
  24. extra_desktop-0.3.2/core/metrics/auditor.py +269 -0
  25. extra_desktop-0.3.2/core/metrics/config.py +147 -0
  26. extra_desktop-0.3.2/core/metrics/dashboard.py +981 -0
  27. extra_desktop-0.3.2/core/metrics/ledger.py +503 -0
  28. extra_desktop-0.3.2/core/metrics/sanitizer.py +141 -0
  29. extra_desktop-0.3.2/core/metrics/telemetry.py +248 -0
  30. extra_desktop-0.3.2/core/motion/__init__.py +25 -0
  31. extra_desktop-0.3.2/core/motion/curves.py +208 -0
  32. extra_desktop-0.3.2/core/motion/profiler.py +166 -0
  33. extra_desktop-0.3.2/core/motion/stroke.py +122 -0
  34. extra_desktop-0.3.2/core/motion/windmouse.py +113 -0
  35. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/__init__.py +62 -0
  36. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/base.py +48 -5
  37. extra_desktop-0.3.2/core/platform/linux/__init__.py +204 -0
  38. extra_desktop-0.3.2/core/platform/linux/atspi_plane.py +646 -0
  39. extra_desktop-0.3.2/core/platform/linux/capture.py +231 -0
  40. extra_desktop-0.3.2/core/platform/linux/focus.py +634 -0
  41. extra_desktop-0.3.2/core/platform/linux/geometry.py +351 -0
  42. extra_desktop-0.3.2/core/platform/linux/indicators.py +414 -0
  43. extra_desktop-0.3.2/core/platform/linux/input_engine.py +1643 -0
  44. extra_desktop-0.3.2/core/platform/linux/permissions.py +146 -0
  45. extra_desktop-0.3.2/core/platform/linux/shell.py +704 -0
  46. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/__init__.py +4 -0
  47. extra_desktop-0.3.2/core/platform/macos/input_engine.py +1083 -0
  48. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/shell.py +9 -0
  49. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/__init__.py +28 -0
  50. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/capture.py +9 -0
  51. extra_desktop-0.3.2/core/platform/windows/child_session.py +437 -0
  52. extra_desktop-0.3.2/core/platform/windows/focus.py +621 -0
  53. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/geometry.py +16 -2
  54. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/indicators.py +124 -26
  55. extra_desktop-0.3.2/core/platform/windows/input_engine.py +1450 -0
  56. extra_desktop-0.3.2/core/platform/windows/pip_window.py +394 -0
  57. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/shell.py +231 -40
  58. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/windows/uia_plane.py +54 -5
  59. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/scout/__init__.py +6 -0
  60. extra_desktop-0.3.2/core/scout/cdp_sniffer.py +228 -0
  61. extra_desktop-0.3.2/core/scout/detector.py +354 -0
  62. extra_desktop-0.3.2/core/scout/scraper.py +226 -0
  63. extra_desktop-0.3.2/core/scout/session_vault.py +158 -0
  64. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/scout/synthesizer.py +35 -7
  65. extra_desktop-0.3.2/core/soul/__init__.py +63 -0
  66. extra_desktop-0.3.2/core/soul/compressor.py +60 -0
  67. extra_desktop-0.3.2/core/soul/critic.py +121 -0
  68. extra_desktop-0.3.2/core/soul/decider.py +291 -0
  69. extra_desktop-0.3.2/core/soul/eyes.py +285 -0
  70. extra_desktop-0.3.2/core/soul/gateman.py +154 -0
  71. extra_desktop-0.3.2/core/soul/grammar.py +111 -0
  72. extra_desktop-0.3.2/core/soul/runtime.py +114 -0
  73. extra_desktop-0.3.2/core/soul/schemas.py +118 -0
  74. extra_desktop-0.3.2/core/soul/state_critic.py +319 -0
  75. extra_desktop-0.3.2/core/soul/vision_parser.py +532 -0
  76. extra_desktop-0.3.2/core/stall_breaker.py +449 -0
  77. extra_desktop-0.3.2/core/subtask.py +467 -0
  78. extra_desktop-0.3.2/core/uninstall.py +432 -0
  79. {extra_desktop-0.2.5 → extra_desktop-0.3.2/extra_desktop.egg-info}/PKG-INFO +92 -40
  80. extra_desktop-0.3.2/extra_desktop.egg-info/SOURCES.txt +250 -0
  81. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/entry_points.txt +1 -0
  82. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/requires.txt +6 -0
  83. extra_desktop-0.3.2/fastpath/__init__.py +74 -0
  84. extra_desktop-0.3.2/fastpath/bridge.py +369 -0
  85. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/browser.py +117 -2
  86. extra_desktop-0.3.2/fastpath/cli_harness.py +390 -0
  87. extra_desktop-0.3.2/fastpath/cli_hub.py +351 -0
  88. extra_desktop-0.3.2/fastpath/clipboard_html.py +52 -0
  89. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/fs.py +104 -5
  90. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/fastpath/shell.py +10 -0
  91. extra_desktop-0.3.2/fastpath/vectorizer.py +362 -0
  92. extra_desktop-0.3.2/fastpath/visualizer.py +236 -0
  93. extra_desktop-0.3.2/fastpath/web/__init__.py +4 -0
  94. extra_desktop-0.3.2/fastpath/web_workspace.py +245 -0
  95. extra_desktop-0.3.2/mcp/server.py +2521 -0
  96. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/pyproject.toml +13 -2
  97. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_acceleration_suite.py +95 -3
  98. extra_desktop-0.3.2/tests/test_bridge_sandbox.py +100 -0
  99. extra_desktop-0.3.2/tests/test_canvas_stall_breaker.py +104 -0
  100. extra_desktop-0.3.2/tests/test_child_session.py +147 -0
  101. extra_desktop-0.3.2/tests/test_cli_harness.py +396 -0
  102. extra_desktop-0.3.2/tests/test_composer_director_soul.py +396 -0
  103. extra_desktop-0.3.2/tests/test_dynamic_batching.py +220 -0
  104. extra_desktop-0.3.2/tests/test_evolution.py +231 -0
  105. extra_desktop-0.3.2/tests/test_evolution_harness.py +137 -0
  106. extra_desktop-0.3.2/tests/test_hierarchical_benchmarks.py +356 -0
  107. extra_desktop-0.3.2/tests/test_human_mouse.py +187 -0
  108. extra_desktop-0.3.2/tests/test_launch_maximize.py +105 -0
  109. extra_desktop-0.3.2/tests/test_lineage.py +110 -0
  110. extra_desktop-0.3.2/tests/test_linux_atspi.py +163 -0
  111. extra_desktop-0.3.2/tests/test_linux_capture.py +54 -0
  112. extra_desktop-0.3.2/tests/test_linux_focus.py +138 -0
  113. extra_desktop-0.3.2/tests/test_linux_geometry.py +101 -0
  114. extra_desktop-0.3.2/tests/test_linux_indicators.py +211 -0
  115. extra_desktop-0.3.2/tests/test_linux_input.py +186 -0
  116. extra_desktop-0.3.2/tests/test_linux_shell.py +221 -0
  117. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_memory_kuzu.py +75 -0
  118. extra_desktop-0.3.2/tests/test_metrics.py +427 -0
  119. extra_desktop-0.3.2/tests/test_milestone_budgeting.py +167 -0
  120. extra_desktop-0.3.2/tests/test_paint_remediation.py +213 -0
  121. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar4_web_edge.py +3 -3
  122. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar5_package_ecosystem.py +7 -1
  123. extra_desktop-0.3.2/tests/test_pre_release_fixes.py +176 -0
  124. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_scout.py +21 -0
  125. extra_desktop-0.3.2/tests/test_security_hardening.py +128 -0
  126. extra_desktop-0.3.2/tests/test_soul_benchmarks.py +262 -0
  127. extra_desktop-0.3.2/tests/test_soul_evolution.py +195 -0
  128. extra_desktop-0.3.2/tests/test_soul_runtime.py +171 -0
  129. extra_desktop-0.3.2/tests/test_stall_breaker_cognitive.py +134 -0
  130. extra_desktop-0.3.2/tests/test_state_critic.py +146 -0
  131. extra_desktop-0.3.2/tests/test_subtask_runner.py +379 -0
  132. extra_desktop-0.3.2/tests/test_telemetry.py +165 -0
  133. extra_desktop-0.3.2/tests/test_tiered_verification.py +369 -0
  134. extra_desktop-0.3.2/tests/test_tiered_verification_benchmarks.py +187 -0
  135. extra_desktop-0.3.2/tests/test_ui_distiller.py +272 -0
  136. extra_desktop-0.3.2/tests/test_uninstall.py +135 -0
  137. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_universal_tasksuite.py +1 -1
  138. extra_desktop-0.3.2/tests/test_verification_mcp.py +130 -0
  139. extra_desktop-0.3.2/tests/test_vision_parser.py +186 -0
  140. extra_desktop-0.3.2/tests/test_visual_grounding.py +123 -0
  141. extra_desktop-0.3.2/tests/test_web_to_api.py +156 -0
  142. extra_desktop-0.3.2/tests/test_web_workspace.py +134 -0
  143. extra_desktop-0.3.2/tests/test_windows_indicators.py +173 -0
  144. extra_desktop-0.2.5/__init__.py +0 -5
  145. extra_desktop-0.2.5/core/evolution/__init__.py +0 -16
  146. extra_desktop-0.2.5/core/evolution/crystallizer.py +0 -169
  147. extra_desktop-0.2.5/core/evolution/curator.py +0 -73
  148. extra_desktop-0.2.5/core/memory/recall.py +0 -174
  149. extra_desktop-0.2.5/core/platform/macos/input_engine.py +0 -487
  150. extra_desktop-0.2.5/core/platform/windows/focus.py +0 -383
  151. extra_desktop-0.2.5/core/platform/windows/input_engine.py +0 -619
  152. extra_desktop-0.2.5/core/scout/detector.py +0 -217
  153. extra_desktop-0.2.5/core/scout/scraper.py +0 -475
  154. extra_desktop-0.2.5/core/stall_breaker.py +0 -252
  155. extra_desktop-0.2.5/extra_desktop.egg-info/SOURCES.txt +0 -116
  156. extra_desktop-0.2.5/fastpath/__init__.py +0 -28
  157. extra_desktop-0.2.5/mcp/server.py +0 -837
  158. extra_desktop-0.2.5/tests/test_evolution.py +0 -75
  159. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/LICENSE +0 -0
  160. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/NOTICE +0 -0
  161. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/capture.py +0 -0
  162. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/focus.py +0 -0
  163. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/geometry.py +0 -0
  164. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/indicators.py +0 -0
  165. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/memory/embeddings.py +0 -0
  166. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/ax_plane.py +0 -0
  167. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/capture.py +0 -0
  168. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/focus.py +0 -0
  169. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/geometry.py +0 -0
  170. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/indicators.py +0 -0
  171. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/platform/macos/permissions.py +0 -0
  172. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/core/uia_plane.py +0 -0
  173. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/dependency_links.txt +0 -0
  174. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/extra_desktop.egg-info/top_level.txt +0 -0
  175. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/mcp/__init__.py +0 -0
  176. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/setup.cfg +0 -0
  177. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_app_registry_dynamic.py +0 -0
  178. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_core_engine.py +0 -0
  179. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_geometry_exhaustive.py +0 -0
  180. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_input_engine_exhaustive.py +0 -0
  181. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_issue4_bottlenecks.py +0 -0
  182. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_ax.py +0 -0
  183. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_core.py +0 -0
  184. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_focus_shell.py +0 -0
  185. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_indicators.py +0 -0
  186. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_input.py +0 -0
  187. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_perception.py +0 -0
  188. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_macos_safety.py +0 -0
  189. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_mcp_schemas_exhaustive.py +0 -0
  190. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_memory_subsystem_exhaustive.py +0 -0
  191. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_perception_vision_exhaustive.py +0 -0
  192. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar1_funnel.py +0 -0
  193. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar2_installer.py +0 -0
  194. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_pillar3_tcc_playbook.py +0 -0
  195. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_process_shell_exhaustive.py +0 -0
  196. {extra_desktop-0.2.5 → extra_desktop-0.3.2}/tests/test_scout_evolution_exhaustive.py +0 -0
  197. {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.5
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 & PC
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
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/extra-desktop?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/extra-desktop)
46
51
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
47
- [![Platform: macOS 12.3+ & Windows 10/11](https://img.shields.io/badge/Platform-macOS%20%7C%20Windows-0078D6.svg)](https://extra.yantraos.com)
52
+ [![Platform: Linux | macOS | Windows](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-0078D6.svg)](https://extra.yantraos.com)
48
53
  [![Protocol: Model Context Protocol (MCP)](https://img.shields.io/badge/Protocol-MCP%20Native-orange.svg)](https://modelcontextprotocol.io)
49
54
  [![Ecosystem: yantraOS](https://img.shields.io/badge/Ecosystem-yantraOS-8A2BE2.svg)](https://yantraos.com)
50
55
  [![Status: Open Source](https://img.shields.io/badge/Open%20Source-%E2%99%A5-emerald.svg)](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 Windows desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
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 Notepad."*
86
- * ⚙️ **Windows System Tasks:** *"Open Settings, check if any Windows updates are pending, and let me know if a restart is needed."*
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** or **Windows**:
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+ or Windows 10/11 64-bit).
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 these native tools:
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 Windows app, utility, or URL directly (`calc`, `notepad`, `settings`, `chrome`) |
197
- | `extra_inspect_ui` | Scans all visible buttons, inputs, tabs, and menus on your screen |
198
- | `extra_click_element` | Deterministically clicks any element by its ID, name, or bounding box |
199
- | `extra_screenshot` | Captures high-res desktop frames with optional Set-of-Mark visual badges |
200
- | `extra_click` | Moves mouse, left/right clicks, and double clicks with sub-pixel DPI accuracy |
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
- | `extra_browser` | Directly extracts web page DOM content in Edge/Chrome without taking screenshots |
206
- | `extra_focus_window` | Brings any application window immediately to the front |
207
- | `extra_task_start` | Signals autonomous task execution; activates ambient screen edge pulse & cursor halo |
208
- | `extra_task_complete` | Signals task completion; flashes emerald green border, plays audio chime, and dissolves indicators |
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
- ├── core/ # Core Windows Automation Engine
219
- │ ├── capture.py # Sub-3ms screen capture (DXGI & MSS)
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 edge pulse, cursor halo, and harmonic audio chime
222
- │ ├── input_engine.py # Win32 SendInput Unicode & atomic clipboard injection
223
- │ ├── focus.py # AttachThreadInput window focus forcing
224
- │ ├── uia_plane.py # Windows UI Automation v3 COM client
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 # Win32 ShellExecuteEx direct app launcher
228
- │ └── browser.py # Playwright / Edge CDP DOM bridge
229
- ├── mcp/ # Anthropic Model Context Protocol
230
- │ └── server.py # Standard JSON-RPC stdio/SSE server
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
- ├── pyproject.toml # Package metadata and build configuration
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
- └── test_core_engine.py # End-to-end integration test suite
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 & PC
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
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/extra-desktop?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/extra-desktop)
14
15
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
15
- [![Platform: macOS 12.3+ & Windows 10/11](https://img.shields.io/badge/Platform-macOS%20%7C%20Windows-0078D6.svg)](https://extra.yantraos.com)
16
+ [![Platform: Linux | macOS | Windows](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-0078D6.svg)](https://extra.yantraos.com)
16
17
  [![Protocol: Model Context Protocol (MCP)](https://img.shields.io/badge/Protocol-MCP%20Native-orange.svg)](https://modelcontextprotocol.io)
17
18
  [![Ecosystem: yantraOS](https://img.shields.io/badge/Ecosystem-yantraOS-8A2BE2.svg)](https://yantraos.com)
18
19
  [![Status: Open Source](https://img.shields.io/badge/Open%20Source-%E2%99%A5-emerald.svg)](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 Windows desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
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 Notepad."*
54
- * ⚙️ **Windows System Tasks:** *"Open Settings, check if any Windows updates are pending, and let me know if a restart is needed."*
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** or **Windows**:
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+ or Windows 10/11 64-bit).
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 these native tools:
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 Windows app, utility, or URL directly (`calc`, `notepad`, `settings`, `chrome`) |
165
- | `extra_inspect_ui` | Scans all visible buttons, inputs, tabs, and menus on your screen |
166
- | `extra_click_element` | Deterministically clicks any element by its ID, name, or bounding box |
167
- | `extra_screenshot` | Captures high-res desktop frames with optional Set-of-Mark visual badges |
168
- | `extra_click` | Moves mouse, left/right clicks, and double clicks with sub-pixel DPI accuracy |
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
- | `extra_browser` | Directly extracts web page DOM content in Edge/Chrome without taking screenshots |
174
- | `extra_focus_window` | Brings any application window immediately to the front |
175
- | `extra_task_start` | Signals autonomous task execution; activates ambient screen edge pulse & cursor halo |
176
- | `extra_task_complete` | Signals task completion; flashes emerald green border, plays audio chime, and dissolves indicators |
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
- ├── core/ # Core Windows Automation Engine
187
- │ ├── capture.py # Sub-3ms screen capture (DXGI & MSS)
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 edge pulse, cursor halo, and harmonic audio chime
190
- │ ├── input_engine.py # Win32 SendInput Unicode & atomic clipboard injection
191
- │ ├── focus.py # AttachThreadInput window focus forcing
192
- │ ├── uia_plane.py # Windows UI Automation v3 COM client
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 # Win32 ShellExecuteEx direct app launcher
196
- │ └── browser.py # Playwright / Edge CDP DOM bridge
197
- ├── mcp/ # Anthropic Model Context Protocol
198
- │ └── server.py # Standard JSON-RPC stdio/SSE server
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
- ├── pyproject.toml # Package metadata and build configuration
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
- └── test_core_engine.py # End-to-end integration test suite
253
+ └── RELEASE_NOTES.md # Comprehensive version release notes
206
254
  ```
207
255
 
208
256
  ---
@@ -0,0 +1,5 @@
1
+ """
2
+ Project Extra — Flashless Linux, Windows & macOS Computer-Use Engine & MCP Server.
3
+ """
4
+
5
+ __version__ = "0.3.2"