#!/usr/bin/env python3 """ Quick test script for tool calling system. Tests the components before full endpoint integration. """ import asyncio import sys import os # Add cortex to path sys.path.insert(0, '/home/serversdown/project-lyra/cortex') # Set required env vars os.environ['ENABLE_CODE_EXECUTION'] = 'true' os.environ['ENABLE_WEB_SEARCH'] = 'true' os.environ['CODE_SANDBOX_CONTAINER'] = 'lyra-code-sandbox' from autonomy.tools.registry import get_registry from autonomy.tools.executors.code_executor import execute_code from autonomy.tools.executors.web_search import search_web async def test_code_executor(): """Test code execution in sandbox.""" print("\n=== Testing Code Executor ===") result = await execute_code({ "language": "python", "code": "print('Hello from sandbox!')\nprint(2 + 2)", "reason": "Testing sandbox execution" }) print(f"Result: {result}") return result.get("stdout") == "Hello from sandbox!\n4\n" async def test_web_search(): """Test web search.""" print("\n=== Testing Web Search ===") result = await search_web({ "query": "Python programming", "max_results": 3 }) print(f"Found {result.get('count', 0)} results") if result.get('results'): print(f"First result: {result['results'][0]['title']}") return result.get("count", 0) > 0 async def test_registry(): """Test tool registry.""" print("\n=== Testing Tool Registry ===") registry = get_registry() tools = registry.get_tool_definitions() print(f"Registered tools: {registry.get_tool_names()}") print(f"Total tools: {len(tools) if tools else 0}") return len(tools or []) > 0 async def main(): print("๐Ÿงช Tool System Component Tests\n") tests = [ ("Tool Registry", test_registry), ("Code Executor", test_code_executor), ("Web Search", test_web_search), ] results = {} for name, test_func in tests: try: passed = await test_func() results[name] = "โœ… PASS" if passed else "โŒ FAIL" except Exception as e: results[name] = f"โŒ ERROR: {str(e)}" print("\n" + "="*50) print("Test Results:") for name, result in results.items(): print(f" {name}: {result}") print("="*50) if __name__ == "__main__": asyncio.run(main())