pull/25/head
Kye 1 year ago
parent eff45e88e6
commit 9b35b43054

@ -422,54 +422,54 @@ class ToolsFactory:
################## => stdout end ################## => stdout end
# import os import os
# import subprocess import subprocess
# import time import time
# from datetime import datetime from datetime import datetime
# from typing import Dict, List from typing import Dict, List
# from swarms.utils.main import ANSI, Color, Style # test
# class Terminal(BaseToolSet): from swarms.utils.main import ANSI, Color, Style # test
# def __init__(self):
# self.sessions: Dict[str, List[SyscallTracer]] = {}
# @tool( class Terminal(BaseToolSet):
# name="Terminal", def __init__(self):
# description="Executes commands in a terminal." self.sessions: Dict[str, List[SyscallTracer]] = {}
# "If linux errno occurs, we have to solve the problem with the terminal. "
# "Input must be one valid command. "
# "Output will be any output from running that command.",
# scope=ToolScope.SESSION,
# )
# def execute(self, commands: str, get_session: SessionGetter) -> str:
# session, _ = get_session()
# try: @tool(
# process = subprocess.Popen( name="Terminal",
# commands, description="Executes commands in a terminal."
# shell=True, "If linux errno occurs, we have to solve the problem with the terminal. "
# stdout=subprocess.PIPE, "Input must be one valid command. "
# stderr=subprocess.PIPE, "Output will be any output from running that command.",
# ) scope=ToolScope.SESSION,
# logger.info(ANSI("Realtime Terminal Output").to(Color.magenta()) + ": ") )
def execute(self, commands: str, get_session: SessionGetter) -> str:
session, _ = get_session()
# output = "" try:
# tracer = StdoutTracer( process = subprocess.Popen(
# process, commands,
# on_output=lambda p, o: logger.info( shell=True,
# ANSI(p).to(Style.dim()) + " " + o.strip("\n") stdout=subprocess.PIPE,
# ), stderr=subprocess.PIPE,
# ) )
# exitcode, output = tracer.wait_until_stop_or_exit() logger.info(ANSI("Realtime Terminal Output").to(Color.magenta()) + ": ")
# except Exception as e:
# output = str(e) output = ""
tracer = StdoutTracer(
process,
on_output=lambda p, o: logger.info(
ANSI(p).to(Style.dim()) + " " + o.strip("\n")
),
)
exitcode, output = tracer.wait_until_stop_or_exit()
except Exception as e:
output = str(e)
# logger.debug( logger.debug(
# f"\nProcessed Terminal, Input Commands: {commands} " f"\nProcessed Terminal, Input Commands: {commands} "
# f"Output Answer: {output}" f"Output Answer: {output}"
# ) )
# return output return output
# if __name__ == "__main__": # if __name__ == "__main__":

Loading…
Cancel
Save