/ 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())