Initial commit from agent

This commit is contained in:
2026-03-24 00:11:34 -05:00
commit 0c777488d3
69 changed files with 4253 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
"""
Screen vision — captures screenshots and identifies active/open windows.
Uses mss for fast capture and win32gui for window enumeration.
"""
import mss
import base64
import io
from PIL import Image
try:
import win32gui
WIN32_AVAILABLE = True
except ImportError:
WIN32_AVAILABLE = False
print("[JARVIS] pywin32 not available — window detection disabled")
def get_active_window_title() -> str:
if WIN32_AVAILABLE:
return win32gui.GetWindowText(win32gui.GetForegroundWindow())
return "Unknown"
def list_open_windows() -> list[str]:
if not WIN32_AVAILABLE:
return []
windows = []
def _enum(hwnd, _):
if win32gui.IsWindowVisible(hwnd):
title = win32gui.GetWindowText(hwnd)
if title:
windows.append(title)
win32gui.EnumWindows(_enum, None)
return windows
def capture_screen() -> str:
"""Returns base64-encoded PNG of the primary monitor."""
with mss.mss() as sct:
monitor = sct.monitors[1]
img = sct.grab(monitor)
pil_img = Image.frombytes("RGB", img.size, img.bgra, "raw", "BGRX")
buffer = io.BytesIO()
pil_img.save(buffer, format="PNG")
return base64.b64encode(buffer.getvalue()).decode()
def capture_screen_file(path: str = "screenshot.png") -> str:
"""Saves screenshot to file and returns the path."""
with mss.mss() as sct:
sct.shot(mon=1, output=path)
return path