/ factory.py
factory.py
1 import os, asyncio, sys 2 from anthropic import Anthropic 3 from rich.console import Console 4 5 console = Console() 6 7 def get_client(): 8 # Attempt to read from .env file first 9 for line in open(".env"): 10 if line.startswith("ANTHROPIC_API_KEY="): 11 return Anthropic(api_key=line.split("=")[1].strip()) 12 # Fallback to environment 13 return Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY", "").strip()) 14 15 async def execute_mission(mission_text): 16 try: 17 client = get_client() 18 mission_brief = mission_text.split('\n')[0] 19 console.print(f"\n[bold cyan]🚀 Mission Brief:[/bold cyan] {mission_brief[:60]}...") 20 21 message = client.messages.create( 22 model="claude-3-7-sonnet-20250219", 23 max_tokens=4096, 24 messages=[{"role": "user", "content": mission_text}] 25 ) 26 27 console.print(f"\n[bold green]✅ Mission Accomplished![/bold green]") 28 print(message.content[0].text) 29 30 except Exception as e: 31 console.print(f"\n[bold red]❌ Connection Error:[/bold red] {e}") 32 33 async def main(): 34 if not sys.stdin.isatty(): 35 await execute_mission(sys.stdin.read()) 36 37 if __name__ == "__main__": 38 asyncio.run(main())