#!/usr/bin/env python3
"""
Update Arbiter Assistant system prompt from arbiter_system.txt file.
"""

import os
from openai import OpenAI
from pathlib import Path


def update_arbiter_prompt():
    """Update the Arbiter assistant with new system prompt."""

    # Get API key and assistant ID from environment
    api_key = os.getenv("OPENAI_ARBITER_API_KEY")
    assistant_id = os.getenv("OPENAI_ARBITER_ASSISTANT_ID")

    if not api_key:
        raise ValueError("OPENAI_ARBITER_API_KEY not found in environment")
    if not assistant_id:
        raise ValueError("OPENAI_ARBITER_ASSISTANT_ID not found in environment")

    # Initialize OpenAI client
    client = OpenAI(api_key=api_key)

    # Load the prompt from arbiter_system.txt
    prompts_file = Path(__file__).parent.parent / "ai_orchestrator" / "prompts" / "arbiter_system.txt"

    if not prompts_file.exists():
        raise FileNotFoundError(f"Prompt file not found: {prompts_file}")

    with open(prompts_file, 'r', encoding='utf-8') as f:
        system_prompt = f.read()

    print(f"Updating Arbiter assistant {assistant_id}...")
    print(f"Prompt file: {prompts_file}")
    print(f"Prompt length: {len(system_prompt)} characters")

    # Update the assistant
    assistant = client.beta.assistants.update(
        assistant_id=assistant_id,
        instructions=system_prompt
    )

    print(f"✅ Successfully updated Arbiter assistant {assistant.id}")
    print(f"   Name: {assistant.name}")
    print(f"   Model: {assistant.model}")
    print(f"   Instructions length: {len(assistant.instructions)} characters")


if __name__ == "__main__":
    # Load .env file
    from dotenv import load_dotenv

    env_path = Path(__file__).parent.parent / ".env"
    if env_path.exists():
        load_dotenv(env_path)
        print(f"Loaded environment from {env_path}")

    update_arbiter_prompt()
