cleanup
frdel committed
Jun 12, 2025 at 16:39 UTC
490f469ca7041b02b6e2957c1ee6c9f33808fd09
11 files changed
+163
-240
prompts/hacker/agent.system.main.environment.md
new
+7
@@ -0,0 +1,7 @@
1
+## Environment
2
+live in kali linux docker container use debian kali packages
3
+agent zero framework is python project in /a0 folder
4
+linux fully root accessible via terminal
5
+utilize kali hacking tools for job
6
+wordlists need downloading
7
+consider fact running in docker for network operations
\ No newline at end of file
prompts/reflection/agent.system.main.communication.md
deleted
-28
@@ -1,28 +0,0 @@
1
-
2
-## Communication
3
-
4
-respond valid json with fields
5
-thoughts: decompose ➔ create decision trees ➔ forest of thoughts
6
-reflection: question logical frameworks ➔ refine thoughts ➔ perform metareflection
7
-math requires katex $...$ delims, only use in response tool
8
-tool_name: use tool name
9
-tool_args: key value pairs tool arguments
10
-no other text
11
-
12
-### Response example
13
-
14
-~~~json
15
-{
16
- "thoughts": [
17
- "...",
18
- ],
19
- "reflection": [
20
- "...",
21
- ],
22
- "tool_name": "name_of_tool",
23
- "tool_args": {
24
- "arg1": "val1",
25
- "arg2": "val2"
26
- }
27
-}
28
-~~~
prompts/reflection/agent.system.main.solving.md
deleted
-36
@@ -1,36 +0,0 @@
1
-## Problem solving
2
-
3
-0 think
4
-thoughts: decision trees forming
5
-never assume always verify
6
-model missing variables
7
-reflection: metareflection
8
-reflect and adapt
9
-
10
-
11
-1 check memories solutions instruments prefer instruments
12
-
13
-2 use knowledge_tool for online sources
14
-seek simple solutions compatible with tools
15
-prefer opensource python nodejs terminal tools
16
-
17
-3 refine
18
-validate widen approach
19
-prefer simple compatible solutions
20
-favor open-source Python Node.js Linux terminal tools
21
-
22
-4 solve or delegate
23
-tools solve subtasks
24
-you can use subordinates for specific subtasks
25
-call_subordinate tool
26
-always describe role for new subordinate
27
-they must execute their assigned tasks
28
-
29
-5 task reporting
30
-consolidate explain status
31
-present results verify with tools
32
-don't accept failure retry with fixes be high-agency
33
-save useful info with memorize tool
34
-fullfil initial user task
35
-response_tool reports final result
36
-responses need response_tool
prompts/reflection/agent.system.main.tips.md
deleted
-20
@@ -1,20 +0,0 @@
1
-
2
-## General operation manual
3
-
4
-reason refine execute tasks
5
-avoid repetition ensure progress
6
-never assume success
7
-memory refers to knowledge_tool and memorize_tool not own knowledge
8
-beware cognitive biases
9
-
10
-## Instruments
11
-
12
-instruments are programs to solve tasks
13
-instrument descriptions in prompt executed with code_execution_tool
14
-
15
-## Best practices
16
-
17
-python nodejs linux libraries for solutions
18
-use tools to simplify tasks
19
-sometimes tools are unnecessary
20
-never rely on aging memories like time date etc
python/helpers/tunnel_manager.py
+1
-1
@@ -35,7 +35,7 @@ class TunnelManager:
35
config = FlareConfig(port=port, verbose=True)
36
self.tunnel = FlareTunnel(config)
37
else: # Default to serveo
38
- config = ServeoConfig(port=port)
38
+ config = ServeoConfig(port=port) # type: ignore
39
self.tunnel = ServeoTunnel(config)
40
41
self.tunnel.start()
python/tools/browser._py
new
+61
@@ -0,0 +1,61 @@
1
+# import asyncio
2
+# from dataclasses import dataclass
3
+# import time
4
+# from python.helpers.tool import Tool, Response
5
+# from python.helpers import files, rfc_exchange
6
+# from python.helpers.print_style import PrintStyle
7
+# from python.helpers.browser import Browser as BrowserManager
8
+# import uuid
9
+
10
+
11
+# @dataclass
12
+# class State:
13
+# browser: BrowserManager
14
+
15
+
16
+# class Browser(Tool):
17
+
18
+# async def execute(self, **kwargs):
19
+# raise NotImplementedError
20
+
21
+# def get_log_object(self):
22
+# return self.agent.context.log.log(
23
+# type="browser",
24
+# heading=f"{self.agent.agent_name}: Using tool '{self.name}'",
25
+# content="",
26
+# kvps=self.args,
27
+# )
28
+
29
+# # async def after_execution(self, response, **kwargs):
30
+# # await self.agent.hist_add_tool_result(self.name, response.message)
31
+
32
+# async def save_screenshot(self):
33
+# await self.prepare_state()
34
+# path = files.get_abs_path("tmp/browser", f"{uuid.uuid4()}.png")
35
+# await self.state.browser.screenshot(path, True)
36
+# return "img://" + path
37
+
38
+# async def prepare_state(self, reset=False):
39
+# self.state = self.agent.get_data("_browser_state")
40
+# if not self.state or reset:
41
+# self.state = State(browser=BrowserManager())
42
+# self.agent.set_data("_browser_state", self.state)
43
+
44
+# def update_progress(self, text):
45
+# progress = f"Browser: {text}"
46
+# self.log.update(progress=text)
47
+# self.agent.context.log.set_progress(progress)
48
+
49
+# def cleanup_history(self):
50
+# def cleanup_message(msg):
51
+# if not msg.ai and isinstance(msg.content, dict) and "tool_name" in msg.content and str(msg.content["tool_name"]).startswith("browser_"):
52
+# if not msg.summary:
53
+# msg.summary = "browser content removed to save space"
54
+
55
+# for msg in self.agent.history.current.messages:
56
+# cleanup_message(msg)
57
+
58
+# for prev in self.agent.history.topics:
59
+# if not prev.summary:
60
+# for msg in prev.messages:
61
+# cleanup_message(msg)
python/tools/browser.py
deleted
-61
@@ -1,61 +0,0 @@
1
-import asyncio
2
-from dataclasses import dataclass
3
-import time
4
-from python.helpers.tool import Tool, Response
5
-from python.helpers import files, rfc_exchange
6
-from python.helpers.print_style import PrintStyle
7
-from python.helpers.browser import Browser as BrowserManager
8
-import uuid
9
-
10
-
11
-@dataclass
12
-class State:
13
- browser: BrowserManager
14
-
15
-
16
-class Browser(Tool):
17
-
18
- async def execute(self, **kwargs):
19
- raise NotImplementedError
20
-
21
- def get_log_object(self):
22
- return self.agent.context.log.log(
23
- type="browser",
24
- heading=f"{self.agent.agent_name}: Using tool '{self.name}'",
25
- content="",
26
- kvps=self.args,
27
- )
28
-
29
- # async def after_execution(self, response, **kwargs):
30
- # await self.agent.hist_add_tool_result(self.name, response.message)
31
-
32
- async def save_screenshot(self):
33
- await self.prepare_state()
34
- path = files.get_abs_path("tmp/browser", f"{uuid.uuid4()}.png")
35
- await self.state.browser.screenshot(path, True)
36
- return "img://" + path
37
-
38
- async def prepare_state(self, reset=False):
39
- self.state = self.agent.get_data("_browser_state")
40
- if not self.state or reset:
41
- self.state = State(browser=BrowserManager())
42
- self.agent.set_data("_browser_state", self.state)
43
-
44
- def update_progress(self, text):
45
- progress = f"Browser: {text}"
46
- self.log.update(progress=text)
47
- self.agent.context.log.set_progress(progress)
48
-
49
- def cleanup_history(self):
50
- def cleanup_message(msg):
51
- if not msg.ai and isinstance(msg.content, dict) and "tool_name" in msg.content and str(msg.content["tool_name"]).startswith("browser_"):
52
- if not msg.summary:
53
- msg.summary = "browser content removed to save space"
54
-
55
- for msg in self.agent.history.current.messages:
56
- cleanup_message(msg)
57
-
58
- for prev in self.agent.history.topics:
59
- if not prev.summary:
60
- for msg in prev.messages:
61
- cleanup_message(msg)
python/tools/browser_do._py
new
+64
@@ -0,0 +1,64 @@
1
+# import asyncio
2
+# from python.helpers.tool import Tool, Response
3
+# from python.tools.browser import Browser
4
+# from python.helpers.browser import NoPageError
5
+# import asyncio
6
+
7
+
8
+# class BrowserDo(Browser):
9
+
10
+# async def execute(self, fill=[], press=[], click=[], execute="", **kwargs):
11
+# await self.prepare_state()
12
+# result = ""
13
+# try:
14
+# if fill:
15
+# self.update_progress("Filling fields...")
16
+# for f in fill:
17
+# await self.state.browser.fill(f["selector"], f["text"])
18
+# await self.state.browser.wait(0.5)
19
+# if press:
20
+# self.update_progress("Pressing keys...")
21
+# if fill:
22
+# await self.state.browser.wait(1)
23
+# for p in press:
24
+# await self.state.browser.press(p)
25
+# await self.state.browser.wait(0.5)
26
+# if click:
27
+# self.update_progress("Clicking...")
28
+# if fill:
29
+# await self.state.browser.wait(1)
30
+# for c in click:
31
+# await self.state.browser.click(c)
32
+# await self.state.browser.wait(0.5)
33
+# if execute:
34
+# if fill or press or click:
35
+# await self.state.browser.wait(1)
36
+# self.update_progress("Executing...")
37
+# result = await self.state.browser.execute(execute)
38
+# self.log.update(result=result)
39
+
40
+# self.update_progress("Retrieving...")
41
+# await self.state.browser.wait_for_action()
42
+# dom = await self.state.browser.get_clean_dom()
43
+# if result:
44
+# response = f"Result:\n{result}\n\nDOM:\n{dom}"
45
+# else:
46
+# response = dom
47
+# self.update_progress("Taking screenshot...")
48
+# screenshot = await self.save_screenshot()
49
+# self.log.update(screenshot=screenshot)
50
+# except Exception as e:
51
+# response = str(e)
52
+# self.log.update(error=response)
53
+
54
+# try:
55
+# screenshot = await self.save_screenshot()
56
+# dom = await self.state.browser.get_clean_dom()
57
+# response = f"Error:\n{response}\n\nDOM:\n{dom}"
58
+# self.log.update(screenshot=screenshot)
59
+# except Exception:
60
+# pass
61
+
62
+# self.cleanup_history()
63
+# self.update_progress("Done")
64
+# return Response(message=response, break_loop=False)
python/tools/browser_do.py
deleted
-64
@@ -1,64 +0,0 @@
1
-import asyncio
2
-from python.helpers.tool import Tool, Response
3
-from python.tools.browser import Browser
4
-from python.helpers.browser import NoPageError
5
-import asyncio
6
-
7
-
8
-class BrowserDo(Browser):
9
-
10
- async def execute(self, fill=[], press=[], click=[], execute="", **kwargs):
11
- await self.prepare_state()
12
- result = ""
13
- try:
14
- if fill:
15
- self.update_progress("Filling fields...")
16
- for f in fill:
17
- await self.state.browser.fill(f["selector"], f["text"])
18
- await self.state.browser.wait(0.5)
19
- if press:
20
- self.update_progress("Pressing keys...")
21
- if fill:
22
- await self.state.browser.wait(1)
23
- for p in press:
24
- await self.state.browser.press(p)
25
- await self.state.browser.wait(0.5)
26
- if click:
27
- self.update_progress("Clicking...")
28
- if fill:
29
- await self.state.browser.wait(1)
30
- for c in click:
31
- await self.state.browser.click(c)
32
- await self.state.browser.wait(0.5)
33
- if execute:
34
- if fill or press or click:
35
- await self.state.browser.wait(1)
36
- self.update_progress("Executing...")
37
- result = await self.state.browser.execute(execute)
38
- self.log.update(result=result)
39
-
40
- self.update_progress("Retrieving...")
41
- await self.state.browser.wait_for_action()
42
- dom = await self.state.browser.get_clean_dom()
43
- if result:
44
- response = f"Result:\n{result}\n\nDOM:\n{dom}"
45
- else:
46
- response = dom
47
- self.update_progress("Taking screenshot...")
48
- screenshot = await self.save_screenshot()
49
- self.log.update(screenshot=screenshot)
50
- except Exception as e:
51
- response = str(e)
52
- self.log.update(error=response)
53
-
54
- try:
55
- screenshot = await self.save_screenshot()
56
- dom = await self.state.browser.get_clean_dom()
57
- response = f"Error:\n{response}\n\nDOM:\n{dom}"
58
- self.log.update(screenshot=screenshot)
59
- except Exception:
60
- pass
61
-
62
- self.cleanup_history()
63
- self.update_progress("Done")
64
- return Response(message=response, break_loop=False)
python/tools/browser_open._py
new
+30
@@ -0,0 +1,30 @@
1
+# import asyncio
2
+# from python.helpers.tool import Tool, Response
3
+# from python.tools import browser
4
+# from python.tools.browser import Browser
5
+
6
+
7
+# class BrowserOpen(Browser):
8
+
9
+# async def execute(self, url="", **kwargs):
10
+# self.update_progress("Initializing...")
11
+# await self.prepare_state()
12
+
13
+# try:
14
+# if url:
15
+# self.update_progress("Opening page...")
16
+# await self.state.browser.open(url)
17
+
18
+# self.update_progress("Retrieving...")
19
+# await self.state.browser.wait_for_action()
20
+# response = await self.state.browser.get_clean_dom()
21
+# self.update_progress("Taking screenshot...")
22
+# screenshot = await self.save_screenshot()
23
+# self.log.update(screenshot=screenshot)
24
+# except Exception as e:
25
+# response = str(e)
26
+# self.log.update(error=response)
27
+
28
+# self.cleanup_history()
29
+# self.update_progress("Done")
30
+# return Response(message=response, break_loop=False)
python/tools/browser_open.py
deleted
-30
@@ -1,30 +0,0 @@
1
-import asyncio
2
-from python.helpers.tool import Tool, Response
3
-from python.tools import browser
4
-from python.tools.browser import Browser
5
-
6
-
7
-class BrowserOpen(Browser):
8
-
9
- async def execute(self, url="", **kwargs):
10
- self.update_progress("Initializing...")
11
- await self.prepare_state()
12
-
13
- try:
14
- if url:
15
- self.update_progress("Opening page...")
16
- await self.state.browser.open(url)
17
-
18
- self.update_progress("Retrieving...")
19
- await self.state.browser.wait_for_action()
20
- response = await self.state.browser.get_clean_dom()
21
- self.update_progress("Taking screenshot...")
22
- screenshot = await self.save_screenshot()
23
- self.log.update(screenshot=screenshot)
24
- except Exception as e:
25
- response = str(e)
26
- self.log.update(error=response)
27
-
28
- self.cleanup_history()
29
- self.update_progress("Done")
30
- return Response(message=response, break_loop=False)