Skip to content

Commit

Permalink
use helper.log also for pentesttree
Browse files Browse the repository at this point in the history
  • Loading branch information
andreashappe committed Oct 24, 2024
1 parent 73acc06 commit f2d3aa6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 19 deletions.
5 changes: 4 additions & 1 deletion src/helper/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,7 @@ def print_message(self, message):
elif isinstance(message, ToolMessage):
self.console.print(Panel(message.content, title="Answer from Tool"))
else:
self.console.log(Pretty(message))
self.console.log(Pretty(message))

def print_box(self, title, text):
self.console.print(Panel(text, title=title))
32 changes: 14 additions & 18 deletions src/pentest_task_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,18 @@
import operator

from dotenv import load_dotenv
from rich.console import Console
from rich.panel import Panel

from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI

from helper.common import get_or_fail
from helper.ui import print_event
from tools.ssh import get_ssh_connection_from_env, SshTestCredentialsTool, SshExecuteTool
from graphs.initial_version import create_chat_tool_agent_graph

from typing import Annotated, List, Tuple, Union
from typing_extensions import TypedDict
from pydantic import BaseModel, Field

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI

from graphs.initial_version import create_chat_tool_agent_graph
from helper.common import get_or_fail
from helper.log import RichLogger
from tools.ssh import get_ssh_connection_from_env, SshTestCredentialsTool, SshExecuteTool

# setup configuration from environment variables
load_dotenv()
Expand All @@ -27,7 +22,7 @@
conn.connect()

# prepare console for debug output
console = Console()
logger = RichLogger()

# the shared graph data structure
class PlanExecute(TypedDict):
Expand Down Expand Up @@ -140,9 +135,10 @@ def execute_step(state: PlanExecute):
stream_mode='values'
)


agent_response = None
for event in events:
print_event(console, event)
logger.capture_event(event)
agent_response = event

return {
Expand All @@ -165,15 +161,15 @@ def plan_step(state: PlanExecute):

def replan_step(state: PlanExecute):

console.print(Panel(state["plan"], title="Plan"))
logger.print_box('Plan', state["plan"])

replanner = replanner_prompt | llm.with_structured_output(Act)
output = replanner.invoke(state)
if isinstance(output.action, Response):
return {"response": output.action.response}
else:
console.print(Panel(output.action.next_step, title="Next Step"))
console.print(Panel(output.action.steps, title="New Plan"))
logger.print_box('Next Step', output.action.next_step)
logger.print_box('New Plan', output.action.steps)
return {"plan": output.action.steps, "next_step": output.action.next_step}

workflow = StateGraph(PlanExecute)
Expand Down Expand Up @@ -215,4 +211,4 @@ def replan_step(state: PlanExecute):

# output all occurring events
for event in events:
print_event(console, event)
logger.capture_event(event)

0 comments on commit f2d3aa6

Please sign in to comment.