#!/usr/bin/env python3
"""
Genesis Auto-DEVLOG
====================
Automatically appends entries to DEVLOG.md.

Usage:
    python auto_devlog.py log "Implemented feature X"
    python auto_devlog.py log "Fixed bug Y" --category bugfix
    python auto_devlog.py session-start
    python auto_devlog.py session-end
"""

import sys
from datetime import datetime
from pathlib import Path


DEVLOG_PATH = Path("/mnt/e/genesis-system/DEVLOG.md")


def get_timestamp() -> str:
    """Get formatted timestamp."""
    return datetime.now().strftime("%Y-%m-%d %H:%M")


def append_entry(message: str, category: str = "progress"):
    """Append an entry to DEVLOG."""
    timestamp = get_timestamp()

    # Format entry based on category
    if category == "session_start":
        entry = f"\n## Session: {timestamp}\n\n"
    elif category == "session_end":
        entry = f"\n---\n*Session ended: {timestamp}*\n"
    elif category == "milestone":
        entry = f"- **[{timestamp}] MILESTONE**: {message}\n"
    elif category == "bugfix":
        entry = f"- [{timestamp}] BUG FIX: {message}\n"
    elif category == "feature":
        entry = f"- [{timestamp}] FEATURE: {message}\n"
    else:
        entry = f"- [{timestamp}] {message}\n"

    # Append to file
    with open(DEVLOG_PATH, 'a') as f:
        f.write(entry)

    print(f"Logged: {entry.strip()}")


def session_start():
    """Log session start."""
    append_entry("", "session_start")
    append_entry("Session started - autonomous development active")


def session_end(summary: str = None):
    """Log session end."""
    if summary:
        append_entry(f"Session summary: {summary}")
    append_entry("", "session_end")


# CLI
if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("""
Auto-DEVLOG
===========

Commands:
  log "<message>"                 Log a progress entry
  log "<message>" --category X    Log with category (feature, bugfix, milestone)
  session-start                   Start new session
  session-end ["summary"]         End session with optional summary

Examples:
  python auto_devlog.py log "Implemented orchestrator"
  python auto_devlog.py log "Fixed memory leak" --category bugfix
  python auto_devlog.py session-start
        """)
        sys.exit(0)

    command = sys.argv[1]

    if command == "log" and len(sys.argv) > 2:
        message = sys.argv[2]
        category = "progress"
        if "--category" in sys.argv:
            idx = sys.argv.index("--category")
            if idx + 1 < len(sys.argv):
                category = sys.argv[idx + 1]
        append_entry(message, category)

    elif command == "session-start":
        session_start()

    elif command == "session-end":
        summary = sys.argv[2] if len(sys.argv) > 2 else None
        session_end(summary)

    else:
        print(f"Unknown command: {command}")
