#!/usr/bin/env python3
"""Direct test of nanobot agent"""
import asyncio
import sys
sys.path.insert(0, '.')

from nanobot.config.loader import load_config
from nanobot.bus.queue import MessageBus
from nanobot.agent.loop import AgentLoop

async def test():
    print("Loading config...", file=sys.stderr)
    config = load_config()
    print(f"Config loaded. Provider: {config.providers}", file=sys.stderr)
    
    print("Creating bus and provider...", file=sys.stderr)
    bus = MessageBus()
    from nanobot.cli.commands import _make_provider
    provider = _make_provider(config)
    print(f"Provider created: {type(provider)}", file=sys.stderr)
    
    print("Creating agent loop...", file=sys.stderr)
    agent_loop = AgentLoop(
        bus=bus,
        provider=provider,
        workspace=config.workspace_path,
        brave_api_key=config.tools.web.search.api_key or None,
        exec_config=config.tools.exec,
        restrict_to_workspace=config.tools.restrict_to_workspace,
    )
    print("Agent loop created", file=sys.stderr)
    
    print("Processing message...", file=sys.stderr)
    response = await agent_loop.process_direct("Hello, what is 2+5?", "cli:test")
    print(f"Response received: {response}", file=sys.stderr)
    print(f"Response content: {response.content if response else 'None'}", file=sys.stderr)
    
    if response:
        print("\n=== RESPONSE ===")
        print(response.content or "(empty)")
    else:
        print("\n=== NO RESPONSE ===")

if __name__ == "__main__":
    asyncio.run(test())

