Initial commit: Screen Leads app

Screen-capture lead tool: capture agent, Claude vision extractor with
pluggable site recipes (LinkedIn), canonical funnel model, SQLite storage,
FastAPI backend, dashboard, and setup/run scripts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 07:43:33 +05:30
commit c1eef4c6aa
32 changed files with 1688 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
"""Cross-platform full-screen capture via `mss` (Windows, macOS, Linux/X11)."""
from __future__ import annotations
import time
from pathlib import Path
from typing import Optional
from config import SCREENSHOT_DIR
class CaptureError(RuntimeError):
pass
def capture(prefix: str = "shot") -> str:
"""Grab the primary monitor to a PNG and return its path."""
try:
import mss
import mss.tools
except Exception as e: # pragma: no cover
raise CaptureError(f"mss not available: {e}")
ts = int(time.time() * 1000)
path = SCREENSHOT_DIR / f"{prefix}_{ts}.png"
try:
with mss.mss() as sct:
monitor = sct.monitors[1] # [0] is the virtual "all monitors" rect
img = sct.grab(monitor)
mss.tools.to_png(img.rgb, img.size, output=str(path))
except Exception as e:
raise CaptureError(
f"Screen capture failed ({e}). On macOS grant Screen Recording; "
f"on Linux use an X11 session (Wayland needs the screenshot portal)."
)
return str(path)