chore: archive mac mini automation baseline
This commit is contained in:
@@ -19,6 +19,7 @@ from reyna_cli.email_local import ThunderbirdEmailClient, email_tool_specs
|
||||
from reyna_cli.immich import ImmichClient
|
||||
from reyna_cli.mcp import MCPClient
|
||||
from reyna_cli.mongo_direct import MongoDirectClient
|
||||
from reyna_cli.remarkable import LISTENER_LABEL, listen_forever, listener_service_action, listener_service_status, sync_once
|
||||
from reyna_cli.tts import TTSError, synthesize_wav
|
||||
from reyna_cli.utils import infer_capabilities, resolve_tool_name
|
||||
from reyna_cli.zoom_direct import ZoomClient
|
||||
@@ -39,6 +40,7 @@ zoom_app = typer.Typer(help="Zoom direct REST API commands.")
|
||||
email_app = typer.Typer(help="Read-only local Thunderbird email commands.")
|
||||
deco_app = typer.Typer(help="TP-Link Deco direct router commands.")
|
||||
macmini_app = typer.Typer(help="Mac mini MCP tools (Calendar, Contacts, Notes, Reminders, Deco).")
|
||||
remarkable_app = typer.Typer(help="Paper Pro discovery, local cache, and macOS listener service.")
|
||||
macmini_calendar_app = typer.Typer(help="Mac mini Calendar tools.")
|
||||
macmini_contacts_app = typer.Typer(help="Mac mini Contacts tools.")
|
||||
macmini_notes_app = typer.Typer(help="Mac mini Notes tools.")
|
||||
@@ -69,6 +71,7 @@ macmini_app.add_typer(macmini_notes_app, name="notes")
|
||||
macmini_app.add_typer(macmini_reminders_app, name="reminders")
|
||||
macmini_app.add_typer(macmini_deco_app, name="deco")
|
||||
app.add_typer(macmini_app, name="macmini")
|
||||
app.add_typer(remarkable_app, name="remarkable")
|
||||
|
||||
|
||||
def scrub_sensitive(value: Any) -> Any:
|
||||
@@ -692,6 +695,49 @@ def computer_service_logs(lines: int = typer.Option(80, "--lines")):
|
||||
subprocess.run(["journalctl", "--user", "-u", SERVICE_NAME, "-n", str(lines), "--no-pager"], check=False)
|
||||
|
||||
|
||||
@remarkable_app.command("listen")
|
||||
def remarkable_listen():
|
||||
"""Run the UDP receiver in the foreground (used by the LaunchAgent)."""
|
||||
listen_forever()
|
||||
|
||||
|
||||
@remarkable_app.command("sync")
|
||||
def remarkable_sync(json_output: bool = typer.Option(False, "--json")):
|
||||
"""Snapshot tracked notes and cache only fresh Paper Pro page versions."""
|
||||
result = sync_once()
|
||||
emit({"ok": bool(result.get("online")), "result": result}, json_output)
|
||||
|
||||
|
||||
@remarkable_app.command("service-install")
|
||||
def remarkable_service_install(json_output: bool = typer.Option(False, "--json")):
|
||||
"""Install and start the macOS UDP-listener LaunchAgent."""
|
||||
result = listener_service_action("install")
|
||||
emit(result, json_output)
|
||||
if not result.get("ok"):
|
||||
raise typer.Exit(1)
|
||||
|
||||
|
||||
@remarkable_app.command("service-status")
|
||||
def remarkable_service_status(json_output: bool = typer.Option(False, "--json")):
|
||||
emit({"ok": True, "service": LISTENER_LABEL, "status": listener_service_status()}, json_output)
|
||||
|
||||
|
||||
@remarkable_app.command("service-start")
|
||||
def remarkable_service_start(json_output: bool = typer.Option(False, "--json")):
|
||||
result = listener_service_action("start")
|
||||
emit(result, json_output)
|
||||
if not result.get("ok"):
|
||||
raise typer.Exit(1)
|
||||
|
||||
|
||||
@remarkable_app.command("service-stop")
|
||||
def remarkable_service_stop(json_output: bool = typer.Option(False, "--json")):
|
||||
result = listener_service_action("stop")
|
||||
emit(result, json_output)
|
||||
if not result.get("ok"):
|
||||
raise typer.Exit(1)
|
||||
|
||||
|
||||
@iphone_app.command("tools")
|
||||
def iphone_tools(json_output: bool = typer.Option(False, "--json"), live_only: bool = False, cache_only: bool = False, refresh: bool = False):
|
||||
wrapper_tools("iphone_mcp", json_output, live_only, cache_only, refresh)
|
||||
|
||||
Reference in New Issue
Block a user