""" Temporäres Test-Script für den CodingAgent – kann danach gelöscht werden. Ausführen: python run_agent.py Steuerung: Enter → Aktion ausführen (approve) Text + Enter → Feedback geben (reject + replan) stop → Abbrechen """ import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent)) from backend.agent.coding_agent import CodingAgent, WORKSPACE def run(): print("\n" + "=" * 60) print(" CodingAgent – Interaktiver Test") print("=" * 60) print(f" Workspace: {WORKSPACE}") print(" [Enter] = Aktion ausführen | Text = Feedback | 'stop' = Abbruch") print("=" * 60 + "\n") task = input("Aufgabe eingeben: ").strip() if not task: print("Keine Aufgabe eingegeben. Beende.") return agent = CodingAgent() agent.start_task(task) print(f"\nAgent gestartet für: '{task}'\n") step = 0 while not agent.is_done: step += 1 print(f"\n{'─' * 60}") print(f" Schritt {step} – Agent überlegt...") action = agent.propose_next_action() print(f"\n Thought : {action.get('thought', '')}") print(f" Tool : {action.get('tool', '')}") print(f" Arguments: {action.get('arguments', {})}") print() user_input = input(" [Enter]=ausführen | Text=Feedback | stop=Abbruch: ").strip() if user_input.lower() in ("stop", "abort"): print("\nAbgebrochen.") break if user_input: agent.reject(user_input) print(f" → Feedback injiziert. Agent plant neu.\n") continue result = agent.approve() print(f"\n Resultat ({result['tool']}):") print(f" {result['result'][:300]}{'...' if len(result['result']) > 300 else ''}") if result["is_done"]: print("\n" + "=" * 60) print(" FERTIG!") print(f" {result['result']}") print("=" * 60) if __name__ == "__main__": try: run() except KeyboardInterrupt: print("\n\nUnterbrochen.")