#!/usr/bin/env python3
"""
Generated test file for Conversation ID Agent Test
Framework: pydantic-ai
Execution mode: async
Streaming: no"""

import os
import sentry_sdk
import asyncio

from pydantic_ai import Agent, ImageUrl, RunContext
from pydantic_ai.models.fallback import FallbackModel


sentry_sdk.init(
    dsn=os.environ.get("SENTRY_DSN"),
    traces_sample_rate=1.0,
    send_default_pii=True,
    stream_gen_ai_spans=True,
)



# Create Pydantic AI agent with system prompt
agent = Agent(
    FallbackModel("openai:gpt-4o-mini-bad-model-name", "openai:gpt-5-nano"),
    system_prompt="",
    name="helpful_assistant"
)


async def main():
    # Turn 1: Run agent
    sentry_sdk.ai.set_conversation_id("conv-a")
    

    try:
        result = await agent.run("What is the capital of France?")

        # Print response
        print(f"Turn 1 Response: {result.output}")
    except Exception as e:
        print(f"Turn 1 Error: {type(e).__name__}: {e}")
    print()  # Blank line between turns
    # Turn 2: Run agent
    sentry_sdk.ai.set_conversation_id("conv-b")
    

    try:
        result = await agent.run("What is 2 + 2?")

        # Print response
        print(f"Turn 2 Response: {result.output}")
    except Exception as e:
        print(f"Turn 2 Error: {type(e).__name__}: {e}")
    print()  # Blank line between turns
    # Turn 3: Run agent
    sentry_sdk.ai.set_conversation_id("conv-a")
    

    try:
        result = await agent.run("What about Germany?")

        # Print response
        print(f"Turn 3 Response: {result.output}")
    except Exception as e:
        print(f"Turn 3 Error: {type(e).__name__}: {e}")
    print()  # Blank line between turns
    # Turn 4: Run agent
    sentry_sdk.ai.set_conversation_id("conv-b")
    

    try:
        result = await agent.run("What about 3 + 3?")

        # Print response
        print(f"Turn 4 Response: {result.output}")
    except Exception as e:
        print(f"Turn 4 Error: {type(e).__name__}: {e}")

if __name__ == "__main__":
    with sentry_sdk.start_transaction(op="test", name="Conversation ID Agent Test"):
        asyncio.run(main())
    sentry_sdk.flush(timeout=5)
