nanobot/test_nanobot_file.py
Tanya e6b5ead3fd Merge origin/main into feature branch
- Merged latest 166 commits from origin/main
- Resolved conflicts in .gitignore, commands.py, schema.py, providers/__init__.py, and registry.py
- Kept both local providers (Ollama, AirLLM) and new providers from main
- Preserved transformers 4.39.3 compatibility fixes
- Combined error handling improvements with new features
2026-02-18 13:03:19 -05:00

67 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""Direct test of nanobot agent - write to file"""
import asyncio
import sys
sys.path.insert(0, '.')
log_file = open('/tmp/nanobot_debug.log', 'w')
def log(msg):
log_file.write(f"{msg}\n")
log_file.flush()
print(msg, file=sys.stderr)
sys.stderr.flush()
try:
log("Starting test...")
log("Loading config...")
from nanobot.config.loader import load_config
config = load_config()
log(f"Config loaded. Provider type: {type(config.providers)}")
log("Creating bus and provider...")
from nanobot.bus.queue import MessageBus
bus = MessageBus()
from nanobot.cli.commands import _make_provider
provider = _make_provider(config)
log(f"Provider created: {type(provider)}")
log("Creating agent loop...")
from nanobot.agent.loop import AgentLoop
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,
)
log("Agent loop created")
log("Processing message...")
async def run():
response = await agent_loop.process_direct("Hello, what is 2+5?", "cli:test")
log(f"Response received: {response}")
log(f"Response type: {type(response)}")
if response:
log(f"Response content: {response.content}")
return response.content or "(empty)"
else:
log("No response")
return "(no response)"
result = asyncio.run(run())
log(f"Final result: {result}")
print(f"\n=== RESULT ===")
print(result)
except Exception as e:
import traceback
error_msg = f"ERROR: {e}\n{traceback.format_exc()}"
log(error_msg)
print(error_msg, file=sys.stderr)
finally:
log_file.close()