"""Trigger Bernard workflows from local machine."""
from __future__ import annotations

import asyncio
import os
import sys

from temporalio.client import Client


async def trigger_pr_review():
    address = os.environ.get("TEMPORAL_ADDRESS", "localhost:7233")
    client = await Client.connect(address, namespace="default")
    handle = await client.start_workflow(
        "PRReviewWorkflow",
        id="bernard-pr-review-run-1",
        task_queue="bernard",
    )
    print(f"PRReviewWorkflow started — ID: {handle.id}")
    print("Waiting for result...")
    result = await handle.result()
    print(f"\n--- Result ---\n{result}")


async def trigger_monitor():
    address = os.environ.get("TEMPORAL_ADDRESS", "localhost:7233")
    client = await Client.connect(address, namespace="default")
    handle = await client.start_workflow(
        "TemporalMonitorWorkflow",
        id="bernard-monitor-run-1",
        task_queue="bernard",
    )
    print(f"TemporalMonitorWorkflow started — ID: {handle.id}")
    print("Waiting for result...")
    result = await handle.result()
    print(f"\n--- Result ---\n{result}")


if __name__ == "__main__":
    mode = sys.argv[1] if len(sys.argv) > 1 else "pr"
    if mode == "monitor":
        asyncio.run(trigger_monitor())
    else:
        asyncio.run(trigger_pr_review())
