Files
personal-agent-os/memory-systems/agent-os/Meta/scripts/hey-check
T
2026-09-16 00:00:30 -07:00

71 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""Read hey-tracker.jsonl and display recent emails.
Usage:
hey-check # show last 2 days
hey-check 7 # show last 7 days
hey-check --all # show everything
hey-check --search FOI # search subjects and senders
"""
import json, sys
from datetime import datetime, timedelta, timezone
from pathlib import Path
# Derive vault root from script location: Meta/scripts/ -> vault root
SCRIPT_DIR = Path(__file__).parent
VAULT_DIR = SCRIPT_DIR.parent.parent
TRACKER = VAULT_DIR / "Meta" / "hey-tracker.jsonl"
def read_tracker():
if TRACKER.exists() and TRACKER.stat().st_size > 0:
return TRACKER.read_text().strip().split("\n")
return []
def main():
args = sys.argv[1:]
search = None
days = 2
show_all = False
if "--search" in args:
idx = args.index("--search")
search = args[idx + 1].lower() if idx + 1 < len(args) else ""
show_all = True
elif "--all" in args:
show_all = True
elif args and args[0].isdigit():
days = int(args[0])
cutoff = (datetime.now(timezone.utc) - timedelta(days=days)).strftime("%Y-%m-%d")
lines = read_tracker()
if not lines:
print("No tracker data available")
return
entries = []
for line in lines:
try:
entries.append(json.loads(line))
except Exception:
continue
for e in entries:
date = e.get("active_at", "")[:10]
if not show_all and date < cutoff:
continue
sender = e.get("sender_name", "")
subj = e.get("subject", "")
mailbox = e.get("mailbox", "")
tid = e.get("topic_id", "")
if search and search not in subj.lower() and search not in sender.lower() and search not in e.get("sender_email", "").lower():
continue
print(f"{date} | {mailbox:8} | {sender[:30]:30} | {subj[:65]} | {tid}")
if __name__ == "__main__":
main()