feat: add Windows-MCP UI automation + full offline deps

- New start-windows-mcp.bat — starts Windows-MCP SSE server on :8000
- Windows-MCP auto-starts when Hermes CLI launches (options 1/2)
- Pre-downloaded wheels: hermes-agent (47), windows-mcp (95)
- Offline Python 3.13 embedded + get-pip.py bootstrapper
- Hermes config wired with mcp_servers.windows-mcp
- Updated Makefile with targets: wheels-hermes, wheels-windows-mcp,
  python-portable, get-pip, deps
- Recreated: run-hermes.ps1, start-hermes-dashboard.bat
- Pure ASCII .bat files with CRLF line endings
This commit is contained in:
2026-07-11 18:11:06 -04:00
parent 6623d4d1fd
commit 2b7a8290a5
152 changed files with 28298 additions and 3 deletions
+1
View File
@@ -3,6 +3,7 @@ build/output/hermes-rescue.iso
build/output/casper-rw
build/output/hermes-data.ext4
build/output/fix-line-endings.ps1
build/output/python/ # Portable Python (download at build time)
build/iso-staging/
build/xubuntu-24.04*.iso
build/SHA256SUMS
+41
View File
@@ -78,6 +78,47 @@ check:
fi; \
done
## wheels-windows-mcp — Download Windows-MCP wheels for offline install
wheels-windows-mcp:
@printf "$(BOLD)Downloading Windows-MCP wheels...$(NC)\n"
@mkdir -p $(OUTPUT_DIR)/bin/wheels-windows-mcp
@pip3 download --platform win_amd64 --python-version 3.13 --only-binary=:all: \
--dest $(OUTPUT_DIR)/bin/wheels-windows-mcp --quiet windows-mcp 2>&1
@printf "$(GREEN)$(NC) Downloaded $$(ls $(OUTPUT_DIR)/bin/wheels-windows-mcp/ | wc -l) wheels\n"
@du -sh $(OUTPUT_DIR)/bin/wheels-windows-mcp/
## wheels-hermes — Download Hermes Agent wheels for offline Windows install
wheels-hermes:
@printf "$(BOLD)Downloading Hermes Agent wheels...$(NC)\n"
@mkdir -p $(OUTPUT_DIR)/bin/wheels
@pip3 download --platform win_amd64 --python-version 3.11 --only-binary=:all: \
--dest $(OUTPUT_DIR)/bin/wheels --quiet hermes-agent zeroconf ifaddr 2>&1
@printf "$(GREEN)$(NC) Downloaded $$(ls $(OUTPUT_DIR)/bin/wheels/ | wc -l) wheels\n"
@du -sh $(OUTPUT_DIR)/bin/wheels/
## get-pip — Download get-pip.py bootstrapper
get-pip:
@printf "$(BOLD)Downloading get-pip.py...$(NC)\n"
@curl -sL https://bootstrap.pypa.io/get-pip.py -o $(OUTPUT_DIR)/bin/get-pip.py
@printf "$(GREEN)$(NC) Downloaded get-pip.py ($$(wc -c < $(OUTPUT_DIR)/bin/get-pip.py) bytes)\n"
## python-portable — Download portable Python 3.13 for Windows
python-portable:
@printf "$(BOLD)Downloading portable Python 3.13 for Windows...$(NC)\n"
@mkdir -p /tmp/python-portable
@cd /tmp/python-portable && curl -sL "https://www.python.org/ftp/python/3.13.4/python-3.13.4-embed-amd64.zip" -o python-embed.zip
@mkdir -p $(OUTPUT_DIR)/python
@cd /tmp/python-portable && unzip -q -o python-embed.zip -d $(OUTPUT_DIR)/python/
@rm -rf /tmp/python-portable
@# Remove the _pth file so pip can be installed
@rm -f $(OUTPUT_DIR)/python/python*._pth
@printf "$(GREEN)$(NC) Portable Python 3.13 extracted to $(OUTPUT_DIR)/python/\n"
@du -sh $(OUTPUT_DIR)/python/
## deps — Download all dependencies for offline USB build
deps: get-pip wheels-hermes wheels-windows-mcp
@printf "$(GREEN)$(NC) All dependencies downloaded.\n"
clean:
@printf "$(BOLD)Cleaning build artifacts...$(NC)\n"
@rm -rf $(BUILD_DIR)/usb-staging/
+1
View File
@@ -13,6 +13,7 @@ An **autonomous AI-driven Windows PC diagnostic & repair toolkit** that lives on
| ⬆️ **Driver Updates** | Hardware inventory → vendor API lookup → guided download/install |
| 📦 **Backup/Restore** | Disk imaging, file-level backup, guided restore with AI oversight |
| 💬 **Natural Language** | Describes what it found and what it's doing — no manual tool hunting |
| 🖱️ **Windows UI Automation** | Hermes can click, type, take screenshots, and navigate Windows UI via Windows-MCP (option 6) |
## Why this is different from existing tools
File diff suppressed because it is too large Load Diff
+9
View File
@@ -0,0 +1,9 @@
# Diagnostic Tools — Placeholder Directory
#
# Populate this directory with portable Windows diagnostic executables:
#
# - smartmontools/ — smartctl.exe (disk health)
# - stress-ng/ — stress.exe (CPU/GPU stress)
# - hwinfo/ — hardware info tools
#
# Run: make tools-download

Some files were not shown because too many files have changed in this diff Show More