comitting
This commit is contained in:
17
config.toml
17
config.toml
@@ -1,6 +1,6 @@
|
|||||||
[ai]
|
[ai]
|
||||||
provider = "gemini"
|
provider = "gemini"
|
||||||
model = "gemini-2.5-flash"
|
model = "gemini-2.5-flash-lite"
|
||||||
temperature = 0.0
|
temperature = 0.0
|
||||||
max_tokens = 8192
|
max_tokens = 8192
|
||||||
history_trunc_limit = 8000
|
history_trunc_limit = 8000
|
||||||
@@ -21,15 +21,10 @@ paths = [
|
|||||||
active = "C:\\projects\\manual_slop\\tests\\temp_project.toml"
|
active = "C:\\projects\\manual_slop\\tests\\temp_project.toml"
|
||||||
|
|
||||||
[gui.show_windows]
|
[gui.show_windows]
|
||||||
Projects = true
|
"Context Hub" = true
|
||||||
Files = true
|
"Files & Media" = true
|
||||||
Screenshots = true
|
"AI Settings" = true
|
||||||
"Discussion History" = true
|
"Discussion Hub" = true
|
||||||
Provider = true
|
"Operations Hub" = true
|
||||||
Message = true
|
|
||||||
Response = true
|
|
||||||
"Tool Calls" = true
|
|
||||||
"Comms History" = true
|
|
||||||
"System Prompts" = true
|
|
||||||
Theme = true
|
Theme = true
|
||||||
Diagnostics = true
|
Diagnostics = true
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ roles = [
|
|||||||
"Vendor API",
|
"Vendor API",
|
||||||
"System",
|
"System",
|
||||||
]
|
]
|
||||||
active = "test for gemini conductor"
|
active = "test gemini mock interaction"
|
||||||
auto_add = true
|
auto_add = true
|
||||||
|
|
||||||
[discussion.discussions.main]
|
[discussion.discussions.main]
|
||||||
@@ -65,7 +65,7 @@ history = [
|
|||||||
|
|
||||||
[discussion.discussions."test for gemini conductor"]
|
[discussion.discussions."test for gemini conductor"]
|
||||||
git_commit = "ccdba69214aea169a4e707da7b425ae0c6139fca"
|
git_commit = "ccdba69214aea169a4e707da7b425ae0c6139fca"
|
||||||
last_updated = "2026-02-23T22:07:51"
|
last_updated = "2026-02-23T22:55:53"
|
||||||
history = [
|
history = [
|
||||||
"@1771902467.409145\nUser:\nStress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0",
|
"@1771902467.409145\nUser:\nStress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0",
|
||||||
"@1771902467.409145\nUser:\nStress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1",
|
"@1771902467.409145\nUser:\nStress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1",
|
||||||
@@ -121,7 +121,7 @@ history = [
|
|||||||
|
|
||||||
[discussion.discussions."test gemini mock interaction"]
|
[discussion.discussions."test gemini mock interaction"]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-23T21:07:57"
|
last_updated = "2026-02-23T22:59:50"
|
||||||
history = []
|
history = []
|
||||||
|
|
||||||
[agent.tools]
|
[agent.tools]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ ViewportPos=43,95
|
|||||||
ViewportId=0x78C57832
|
ViewportId=0x78C57832
|
||||||
Size=897,649
|
Size=897,649
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000D,0
|
DockId=0x00000002,0
|
||||||
|
|
||||||
[Window][Files]
|
[Window][Files]
|
||||||
ViewportPos=3125,170
|
ViewportPos=3125,170
|
||||||
@@ -33,7 +33,7 @@ DockId=0x0000000A,0
|
|||||||
Pos=0,17
|
Pos=0,17
|
||||||
Size=1680,730
|
Size=1680,730
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000C,0
|
DockId=0x00000011,0
|
||||||
|
|
||||||
[Window][Provider]
|
[Window][Provider]
|
||||||
ViewportPos=43,95
|
ViewportPos=43,95
|
||||||
@@ -41,7 +41,7 @@ ViewportId=0x78C57832
|
|||||||
Pos=0,651
|
Pos=0,651
|
||||||
Size=897,468
|
Size=897,468
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000E,0
|
DockId=0x00000002,0
|
||||||
|
|
||||||
[Window][Message]
|
[Window][Message]
|
||||||
Pos=0,749
|
Pos=0,749
|
||||||
@@ -80,9 +80,9 @@ DockId=0x0000000F,2
|
|||||||
[Window][Theme]
|
[Window][Theme]
|
||||||
ViewportPos=43,95
|
ViewportPos=43,95
|
||||||
ViewportId=0x78C57832
|
ViewportId=0x78C57832
|
||||||
Size=897,649
|
Size=897,1896
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000D,2
|
DockId=0x00000002,0
|
||||||
|
|
||||||
[Window][Text Viewer - Entry #7]
|
[Window][Text Viewer - Entry #7]
|
||||||
Pos=379,324
|
Pos=379,324
|
||||||
@@ -90,23 +90,66 @@ Size=900,700
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][Diagnostics]
|
[Window][Diagnostics]
|
||||||
ViewportPos=43,95
|
Pos=1190,794
|
||||||
ViewportId=0x78C57832
|
Size=490,406
|
||||||
Size=897,649
|
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000D,1
|
DockId=0x00000006,0
|
||||||
|
|
||||||
|
[Window][Context Hub]
|
||||||
|
Pos=0,17
|
||||||
|
Size=270,728
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000011,0
|
||||||
|
|
||||||
|
[Window][AI Settings Hub]
|
||||||
|
Pos=406,17
|
||||||
|
Size=435,1186
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x0000000D,0
|
||||||
|
|
||||||
|
[Window][Discussion Hub]
|
||||||
|
Pos=1190,17
|
||||||
|
Size=490,775
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000005,0
|
||||||
|
|
||||||
|
[Window][Operations Hub]
|
||||||
|
Pos=272,17
|
||||||
|
Size=916,1183
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000010,0
|
||||||
|
|
||||||
|
[Window][Files & Media]
|
||||||
|
Pos=0,17
|
||||||
|
Size=270,728
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000011,1
|
||||||
|
|
||||||
|
[Window][AI Settings]
|
||||||
|
Pos=0,747
|
||||||
|
Size=270,453
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000012,0
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockNode ID=0x00000007 Pos=43,95 Size=897,1896 Split=Y
|
DockNode ID=0x00000007 Pos=43,95 Size=897,1896 Split=Y
|
||||||
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=1029,1119 Split=Y
|
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=1029,1119 Selected=0x8CA2375C
|
||||||
DockNode ID=0x0000000D Parent=0x00000002 SizeRef=1029,649 Selected=0xB4CBF21A
|
|
||||||
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=1029,468 Selected=0xA07B5F14
|
|
||||||
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=1029,775 Selected=0x8B4EBFA6
|
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=1029,775 Selected=0x8B4EBFA6
|
||||||
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
||||||
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
||||||
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
||||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=1052,572 Size=1680,1183 Split=Y
|
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=476,516 Size=1680,1183 Split=Y
|
||||||
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 CentralNode=1 Selected=0x5D11106F
|
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F
|
||||||
|
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=1188,1183 Split=X
|
||||||
|
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
||||||
|
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=270,1183 Split=Y Selected=0xF4139CA2
|
||||||
|
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=422,728 CentralNode=1 Selected=0xF4139CA2
|
||||||
|
DockNode ID=0x00000012 Parent=0x0000000E SizeRef=422,453 Selected=0x7BD57D6A
|
||||||
|
DockNode ID=0x00000010 Parent=0x0000000B SizeRef=916,1183 Selected=0x418C7449
|
||||||
|
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
||||||
|
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=490,1183 Split=Y Selected=0x418C7449
|
||||||
|
DockNode ID=0x00000005 Parent=0x00000004 SizeRef=837,775 Selected=0x6F2B5B04
|
||||||
|
DockNode ID=0x00000006 Parent=0x00000004 SizeRef=837,406 Selected=0xB4CBF21A
|
||||||
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
||||||
|
|
||||||
;;;<<<Layout_655921752_Default>>>;;;
|
;;;<<<Layout_655921752_Default>>>;;;
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ active = "main"
|
|||||||
|
|
||||||
[discussion.discussions.main]
|
[discussion.discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-23T22:16:53"
|
last_updated = "2026-02-23T22:59:46"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
243
refactor_gui2.py
243
refactor_gui2.py
@@ -1,243 +0,0 @@
|
|||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def main():
|
|
||||||
with open("gui_2.py", "r", encoding="utf-8") as f:
|
|
||||||
content = f.read()
|
|
||||||
|
|
||||||
# 1. Update _default_windows dictionary
|
|
||||||
old_default = """ _default_windows = {
|
|
||||||
"Projects": True,
|
|
||||||
"Files": True,
|
|
||||||
"Screenshots": True,
|
|
||||||
"Discussion History": True,
|
|
||||||
"Provider": True,
|
|
||||||
"Message": True,
|
|
||||||
"Response": True,
|
|
||||||
"Tool Calls": True,
|
|
||||||
"Comms History": True,
|
|
||||||
"System Prompts": True,
|
|
||||||
"Theme": True,
|
|
||||||
"Diagnostics": False,
|
|
||||||
}"""
|
|
||||||
new_default = """ _default_windows = {
|
|
||||||
"Context Hub": True,
|
|
||||||
"AI Settings Hub": True,
|
|
||||||
"Discussion Hub": True,
|
|
||||||
"Operations Hub": True,
|
|
||||||
"Diagnostics": False,
|
|
||||||
}"""
|
|
||||||
if old_default in content:
|
|
||||||
content = content.replace(old_default, new_default)
|
|
||||||
else:
|
|
||||||
print("Could not find _default_windows block")
|
|
||||||
|
|
||||||
# 2. Extract panels into methods
|
|
||||||
panels = {
|
|
||||||
"Projects": "_render_projects_panel",
|
|
||||||
"Files": "_render_files_panel",
|
|
||||||
"Screenshots": "_render_screenshots_panel",
|
|
||||||
"Discussion History": "_render_discussion_panel",
|
|
||||||
"Provider": "_render_provider_panel",
|
|
||||||
"Message": "_render_message_panel",
|
|
||||||
"Response": "_render_response_panel",
|
|
||||||
"Tool Calls": "_render_tool_calls_panel",
|
|
||||||
"Comms History": "_render_comms_history_panel",
|
|
||||||
"System Prompts": "_render_system_prompts_panel",
|
|
||||||
"Theme": "_render_theme_panel",
|
|
||||||
}
|
|
||||||
|
|
||||||
methods = []
|
|
||||||
|
|
||||||
# We will search for:
|
|
||||||
# # ---- PanelName
|
|
||||||
# if self.show_windows["PanelName"]:
|
|
||||||
# ... (until imgui.end())
|
|
||||||
|
|
||||||
for panel_name, method_name in panels.items():
|
|
||||||
# Build a regex to match the entire panel block
|
|
||||||
# We need to capture from the comment to the corresponding imgui.end()
|
|
||||||
# This requires matching balanced indentation or looking for specific end tokens.
|
|
||||||
# Since each block ends with ` imgui.end()\n`, we can use that.
|
|
||||||
# But wait, some panels like 'Response' might have different structures.
|
|
||||||
|
|
||||||
# A simpler way: split the file by `# ---- ` comments.
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Actually, the safest way is to replace the whole `_gui_func` body from `# ---- Projects` down to just before `# ---- Diagnostics`.
|
|
||||||
start_marker = " # ---- Projects"
|
|
||||||
end_marker = " # ---- Diagnostics"
|
|
||||||
|
|
||||||
start_idx = content.find(start_marker)
|
|
||||||
end_idx = content.find(end_marker)
|
|
||||||
|
|
||||||
if start_idx == -1 or end_idx == -1:
|
|
||||||
print("Markers not found!")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
panels_text = content[start_idx:end_idx]
|
|
||||||
|
|
||||||
# Now split panels_text by `# ---- `
|
|
||||||
panel_chunks = panels_text.split(" # ---- ")
|
|
||||||
|
|
||||||
methods_code = ""
|
|
||||||
for chunk in panel_chunks:
|
|
||||||
if not chunk.strip(): continue
|
|
||||||
|
|
||||||
# Find the panel name (first line)
|
|
||||||
lines = chunk.split('\n')
|
|
||||||
name = lines[0].strip()
|
|
||||||
|
|
||||||
if name not in panels:
|
|
||||||
continue
|
|
||||||
|
|
||||||
method_name = panels[name]
|
|
||||||
|
|
||||||
# The rest of the lines are the panel logic.
|
|
||||||
# We need to remove the `if self.show_windows["..."]:` check and the `imgui.begin()`/`imgui.end()` calls.
|
|
||||||
# But wait! For ImGui, when we move them to child tabs, we DON'T want `imgui.begin` and `imgui.end`.
|
|
||||||
# We just want the contents inside `if exp:`
|
|
||||||
# This is critical! A tab item acts as the container.
|
|
||||||
|
|
||||||
# Let's extract everything inside `if exp:` or just before `imgui.begin()`.
|
|
||||||
|
|
||||||
# Find the line with `imgui.begin(`
|
|
||||||
begin_line_idx = -1
|
|
||||||
end_line_idx = -1
|
|
||||||
|
|
||||||
for i, line in enumerate(lines):
|
|
||||||
if "imgui.begin(" in line:
|
|
||||||
begin_line_idx = i
|
|
||||||
elif "imgui.end()" in line:
|
|
||||||
end_line_idx = i
|
|
||||||
|
|
||||||
if begin_line_idx == -1 or end_line_idx == -1:
|
|
||||||
print(f"Could not parse begin/end for {name}")
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Lines before begin (e.g. blinking logic in Response)
|
|
||||||
pre_begin_lines = lines[2:begin_line_idx] # skipping `if self.show_windows...:`
|
|
||||||
|
|
||||||
# Lines between `if exp:` and `imgui.end()`
|
|
||||||
# Usually it's ` if exp:\n ...`
|
|
||||||
# We need to check if line after begin is `if exp:`
|
|
||||||
exp_check_idx = begin_line_idx + 1
|
|
||||||
content_lines = []
|
|
||||||
if "if exp:" in lines[exp_check_idx] or "if expanded:" in lines[exp_check_idx]:
|
|
||||||
content_lines = lines[exp_check_idx+1:end_line_idx]
|
|
||||||
else:
|
|
||||||
content_lines = lines[begin_line_idx+1:end_line_idx]
|
|
||||||
|
|
||||||
# Post end lines (e.g. pop_style_color in Response)
|
|
||||||
# Wait, the pop_style_color is BEFORE imgui.end()
|
|
||||||
# So it's already in content_lines.
|
|
||||||
|
|
||||||
# Reconstruct the method body
|
|
||||||
method_body = []
|
|
||||||
|
|
||||||
for line in pre_begin_lines:
|
|
||||||
# unindent by 12 spaces (was under `if self.show_windows...`)
|
|
||||||
if line.startswith(" "):
|
|
||||||
method_body.append(line[12:])
|
|
||||||
else:
|
|
||||||
method_body.append(line)
|
|
||||||
|
|
||||||
for line in content_lines:
|
|
||||||
# unindent by 16 spaces (was under `if exp:`)
|
|
||||||
if line.startswith(" "):
|
|
||||||
method_body.append(line[8:])
|
|
||||||
elif line.startswith(" "):
|
|
||||||
# like pop_style_color which is under `if show_windows`
|
|
||||||
method_body.append(line[12:])
|
|
||||||
else:
|
|
||||||
method_body.append(line)
|
|
||||||
|
|
||||||
methods_code += f" def {method_name}(self):\n"
|
|
||||||
for line in method_body:
|
|
||||||
methods_code += f" {line}\n"
|
|
||||||
methods_code += "\n"
|
|
||||||
|
|
||||||
# Hub rendering code
|
|
||||||
hub_code = """
|
|
||||||
# ---- Context Hub
|
|
||||||
if self.show_windows.get("Context Hub", False):
|
|
||||||
exp, self.show_windows["Context Hub"] = imgui.begin("Context Hub", self.show_windows["Context Hub"])
|
|
||||||
if exp:
|
|
||||||
if imgui.begin_tab_bar("ContextTabs"):
|
|
||||||
if imgui.begin_tab_item("Projects")[0]:
|
|
||||||
self._render_projects_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Files")[0]:
|
|
||||||
self._render_files_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Screenshots")[0]:
|
|
||||||
self._render_screenshots_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
# ---- AI Settings Hub
|
|
||||||
if self.show_windows.get("AI Settings Hub", False):
|
|
||||||
exp, self.show_windows["AI Settings Hub"] = imgui.begin("AI Settings Hub", self.show_windows["AI Settings Hub"])
|
|
||||||
if exp:
|
|
||||||
if imgui.begin_tab_bar("AISettingsTabs"):
|
|
||||||
if imgui.begin_tab_item("Provider")[0]:
|
|
||||||
self._render_provider_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("System Prompts")[0]:
|
|
||||||
self._render_system_prompts_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Theme")[0]:
|
|
||||||
self._render_theme_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
# ---- Discussion Hub
|
|
||||||
if self.show_windows.get("Discussion Hub", False):
|
|
||||||
exp, self.show_windows["Discussion Hub"] = imgui.begin("Discussion Hub", self.show_windows["Discussion Hub"])
|
|
||||||
if exp:
|
|
||||||
if imgui.begin_tab_bar("DiscussionTabs"):
|
|
||||||
if imgui.begin_tab_item("History")[0]:
|
|
||||||
self._render_discussion_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
# ---- Operations Hub
|
|
||||||
if self.show_windows.get("Operations Hub", False):
|
|
||||||
exp, self.show_windows["Operations Hub"] = imgui.begin("Operations Hub", self.show_windows["Operations Hub"])
|
|
||||||
if exp:
|
|
||||||
if imgui.begin_tab_bar("OperationsTabs"):
|
|
||||||
if imgui.begin_tab_item("Message")[0]:
|
|
||||||
self._render_message_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Response")[0]:
|
|
||||||
self._render_response_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Tool Calls")[0]:
|
|
||||||
self._render_tool_calls_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Comms History")[0]:
|
|
||||||
self._render_comms_history_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Replace panels_text with hub_code
|
|
||||||
content = content[:start_idx] + hub_code + content[end_idx:]
|
|
||||||
|
|
||||||
# Append methods_code to the end of the App class
|
|
||||||
# We find the end of the class by looking for `def _load_fonts(self):`
|
|
||||||
# and inserting methods_code right before it.
|
|
||||||
fonts_idx = content.find(" def _load_fonts(self):")
|
|
||||||
content = content[:fonts_idx] + methods_code + content[fonts_idx:]
|
|
||||||
|
|
||||||
with open("gui_2.py", "w", encoding="utf-8") as f:
|
|
||||||
f.write(content)
|
|
||||||
|
|
||||||
print("Refactoring complete.")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def main():
|
|
||||||
with open("gui_2.py", "r", encoding="utf-8") as f:
|
|
||||||
content = f.read()
|
|
||||||
|
|
||||||
# Define the new structure for the GUI function
|
|
||||||
new_gui_func_body = """
|
|
||||||
# --- Hubs ---
|
|
||||||
if self.show_windows.get("Context Hub", False):
|
|
||||||
exp, self.show_windows["Context Hub"] = imgui.begin("Context Hub", self.show_windows["Context Hub"])
|
|
||||||
if exp:
|
|
||||||
self._render_projects_panel()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
if self.show_windows.get("Files & Media", False):
|
|
||||||
exp, self.show_windows["Files & Media"] = imgui.begin("Files & Media", self.show_windows["Files & Media"])
|
|
||||||
if exp:
|
|
||||||
if imgui.collapsing_header("Files"):
|
|
||||||
self._render_files_panel()
|
|
||||||
if imgui.collapsing_header("Screenshots"):
|
|
||||||
self._render_screenshots_panel()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
if self.show_windows.get("AI Settings", False):
|
|
||||||
exp, self.show_windows["AI Settings"] = imgui.begin("AI Settings", self.show_windows["AI Settings"])
|
|
||||||
if exp:
|
|
||||||
if imgui.collapsing_header("Provider & Model"):
|
|
||||||
self._render_provider_panel()
|
|
||||||
if imgui.collapsing_header("System Prompts"):
|
|
||||||
self._render_system_prompts_panel()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
if self.show_windows.get("Theme", False):
|
|
||||||
self._render_theme_panel()
|
|
||||||
|
|
||||||
if self.show_windows.get("Discussion Hub", False):
|
|
||||||
exp, self.show_windows["Discussion Hub"] = imgui.begin("Discussion Hub", self.show_windows["Discussion Hub"])
|
|
||||||
if exp:
|
|
||||||
# Top part for the history
|
|
||||||
with imgui.begin_child("HistoryChild", size=(0, -200)):
|
|
||||||
self._render_discussion_panel()
|
|
||||||
|
|
||||||
# Bottom part with tabs for message and response
|
|
||||||
if imgui.begin_tab_bar("MessageResponseTabs"):
|
|
||||||
if imgui.begin_tab_item("Message")[0]:
|
|
||||||
self._render_message_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Response")[0]:
|
|
||||||
self._render_response_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
|
|
||||||
if self.show_windows.get("Operations Hub", False):
|
|
||||||
exp, self.show_windows["Operations Hub"] = imgui.begin("Operations Hub", self.show_windows["Operations Hub"])
|
|
||||||
if exp:
|
|
||||||
if imgui.begin_tab_bar("OperationsTabs"):
|
|
||||||
if imgui.begin_tab_item("Tool Calls")[0]:
|
|
||||||
self._render_tool_calls_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
if imgui.begin_tab_item("Comms History")[0]:
|
|
||||||
self._render_comms_history_panel()
|
|
||||||
imgui.end_tab_item()
|
|
||||||
imgui.end_tab_bar()
|
|
||||||
imgui.end()
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Replace the old hub code with the new one
|
|
||||||
start_marker = "# ---- Context Hub"
|
|
||||||
end_marker = "# ---- Diagnostics"
|
|
||||||
|
|
||||||
start_idx = content.find(start_marker)
|
|
||||||
end_idx = content.find(end_marker)
|
|
||||||
|
|
||||||
if start_idx != -1 and end_idx != -1:
|
|
||||||
indented_new_code = "\\n".join([f" {line}" for line in new_gui_func_body.split("\\n")])
|
|
||||||
content = content[:start_idx] + indented_new_code + content[end_idx:]
|
|
||||||
else:
|
|
||||||
print("Could not find the hub markers to replace.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Update the _default_windows dictionary to reflect the new layout
|
|
||||||
old_default = """ _default_windows = {
|
|
||||||
"Context Hub": True,
|
|
||||||
"AI Settings Hub": True,
|
|
||||||
"Discussion Hub": True,
|
|
||||||
"Operations Hub": True,
|
|
||||||
"Diagnostics": False,
|
|
||||||
}"""
|
|
||||||
new_default = """ _default_windows = {
|
|
||||||
"Context Hub": True,
|
|
||||||
"Files & Media": True,
|
|
||||||
"AI Settings": True,
|
|
||||||
"Discussion Hub": True,
|
|
||||||
"Operations Hub": True,
|
|
||||||
"Theme": True,
|
|
||||||
"Diagnostics": False,
|
|
||||||
}"""
|
|
||||||
content = content.replace(old_default, new_default)
|
|
||||||
|
|
||||||
theme_method_start = "def _render_theme_panel(self):"
|
|
||||||
theme_method_end_line = "theme.set_scale(scale)"
|
|
||||||
|
|
||||||
theme_start_idx = content.find(theme_method_start)
|
|
||||||
if theme_start_idx != -1:
|
|
||||||
theme_end_idx = content.find(theme_method_end_line, theme_start_idx)
|
|
||||||
if theme_end_idx != -1:
|
|
||||||
theme_end_idx += len(theme_method_end_line)
|
|
||||||
body = content[theme_start_idx + len(theme_method_start) : theme_end_idx]
|
|
||||||
|
|
||||||
new_theme_method = """ def _render_theme_panel(self):
|
|
||||||
exp, self.show_windows["Theme"] = imgui.begin("Theme", self.show_windows["Theme"])
|
|
||||||
if exp:
|
|
||||||
{}
|
|
||||||
imgui.end()
|
|
||||||
""".format(body)
|
|
||||||
old_method_text = content[theme_start_idx : theme_end_idx+1]
|
|
||||||
content = content.replace(old_method_text, new_theme_method)
|
|
||||||
|
|
||||||
with open("gui_2.py", "w", encoding="utf-8") as f:
|
|
||||||
f.write(content)
|
|
||||||
|
|
||||||
print("GUI refactoring V2 complete.")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -4,6 +4,7 @@ git_dir = "C:\\projects\\manual_slop"
|
|||||||
system_prompt = ""
|
system_prompt = ""
|
||||||
main_context = ""
|
main_context = ""
|
||||||
word_wrap = true
|
word_wrap = true
|
||||||
|
summary_only = false
|
||||||
|
|
||||||
[output]
|
[output]
|
||||||
output_dir = "./md_gen"
|
output_dir = "./md_gen"
|
||||||
@@ -37,56 +38,12 @@ auto_add = true
|
|||||||
|
|
||||||
[discussion.discussions.main]
|
[discussion.discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-23T22:16:59"
|
last_updated = "2026-02-23T23:25:47"
|
||||||
history = [
|
history = [
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0",
|
"@2026-02-23T23:01:07\nUser:\nhey this is a test, plaase read temp-project.toml and do a random web search!",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1",
|
"@2026-02-23T23:01:10\nAI:\nI encountered an error trying to read the file `temp-project.toml`. It seems the file doesn't exist.\n\nFor the web search, I found a few interesting results for \"random search\":\n\n1. **The Useless Web:** A site that takes you to random, useless websites.\n2. **Random Number Generator - Calculator.net:** Information on how random number generators work.\n3. **Random Google Search Generator - Perchance:** A tool to create random Google search queries.\n4. **Random Picker - Vondy:** A tool to randomly select items from a list.\n5. **Wikipedia on Random Search:** An explanation of random search as an optimization method.",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 2 Stress test entry 2 Stress test entry 2 Stress test entry 2 Stress test entry 2",
|
"@2026-02-23T23:01:29\nUser:\nmy bad temp_project.toml",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 3 Stress test entry 3 Stress test entry 3 Stress test entry 3 Stress test entry 3",
|
"@2026-02-23T23:01:30\nAI:\nI'm sorry, but I still couldn't find the file `temp_project.toml`. Please double-check the filename and try again.",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 4 Stress test entry 4 Stress test entry 4 Stress test entry 4 Stress test entry 4",
|
"@2026-02-23T23:01:52\nUser:\n./tests/temp_project.toml?",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 5 Stress test entry 5 Stress test entry 5 Stress test entry 5 Stress test entry 5",
|
"@2026-02-23T23:01:53\nAI:\nOkay, I've successfully read the content of `./tests/temp_project.toml`. It appears to be a configuration file for a project, detailing settings for project name, Git directory, output directories, file paths, screenshot paths, agent tools, and discussion history.",
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 6 Stress test entry 6 Stress test entry 6 Stress test entry 6 Stress test entry 6",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 7 Stress test entry 7 Stress test entry 7 Stress test entry 7 Stress test entry 7",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 8 Stress test entry 8 Stress test entry 8 Stress test entry 8 Stress test entry 8",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 9 Stress test entry 9 Stress test entry 9 Stress test entry 9 Stress test entry 9",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 10 Stress test entry 10 Stress test entry 10 Stress test entry 10 Stress test entry 10",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 11 Stress test entry 11 Stress test entry 11 Stress test entry 11 Stress test entry 11",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 12 Stress test entry 12 Stress test entry 12 Stress test entry 12 Stress test entry 12",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 13 Stress test entry 13 Stress test entry 13 Stress test entry 13 Stress test entry 13",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 14 Stress test entry 14 Stress test entry 14 Stress test entry 14 Stress test entry 14",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 15 Stress test entry 15 Stress test entry 15 Stress test entry 15 Stress test entry 15",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 16 Stress test entry 16 Stress test entry 16 Stress test entry 16 Stress test entry 16",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 17 Stress test entry 17 Stress test entry 17 Stress test entry 17 Stress test entry 17",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 18 Stress test entry 18 Stress test entry 18 Stress test entry 18 Stress test entry 18",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 19 Stress test entry 19 Stress test entry 19 Stress test entry 19 Stress test entry 19",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 20 Stress test entry 20 Stress test entry 20 Stress test entry 20 Stress test entry 20",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 21 Stress test entry 21 Stress test entry 21 Stress test entry 21 Stress test entry 21",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 22 Stress test entry 22 Stress test entry 22 Stress test entry 22 Stress test entry 22",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 23 Stress test entry 23 Stress test entry 23 Stress test entry 23 Stress test entry 23",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 24 Stress test entry 24 Stress test entry 24 Stress test entry 24 Stress test entry 24",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 25 Stress test entry 25 Stress test entry 25 Stress test entry 25 Stress test entry 25",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 26 Stress test entry 26 Stress test entry 26 Stress test entry 26 Stress test entry 26",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 27 Stress test entry 27 Stress test entry 27 Stress test entry 27 Stress test entry 27",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 28 Stress test entry 28 Stress test entry 28 Stress test entry 28 Stress test entry 28",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 29 Stress test entry 29 Stress test entry 29 Stress test entry 29 Stress test entry 29",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 30 Stress test entry 30 Stress test entry 30 Stress test entry 30 Stress test entry 30",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 31 Stress test entry 31 Stress test entry 31 Stress test entry 31 Stress test entry 31",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 32 Stress test entry 32 Stress test entry 32 Stress test entry 32 Stress test entry 32",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 33 Stress test entry 33 Stress test entry 33 Stress test entry 33 Stress test entry 33",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 34 Stress test entry 34 Stress test entry 34 Stress test entry 34 Stress test entry 34",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 35 Stress test entry 35 Stress test entry 35 Stress test entry 35 Stress test entry 35",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 36 Stress test entry 36 Stress test entry 36 Stress test entry 36 Stress test entry 36",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 37 Stress test entry 37 Stress test entry 37 Stress test entry 37 Stress test entry 37",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 38 Stress test entry 38 Stress test entry 38 Stress test entry 38 Stress test entry 38",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 39 Stress test entry 39 Stress test entry 39 Stress test entry 39 Stress test entry 39",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 40 Stress test entry 40 Stress test entry 40 Stress test entry 40 Stress test entry 40",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 41 Stress test entry 41 Stress test entry 41 Stress test entry 41 Stress test entry 41",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 42 Stress test entry 42 Stress test entry 42 Stress test entry 42 Stress test entry 42",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 43 Stress test entry 43 Stress test entry 43 Stress test entry 43 Stress test entry 43",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 44 Stress test entry 44 Stress test entry 44 Stress test entry 44 Stress test entry 44",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 45 Stress test entry 45 Stress test entry 45 Stress test entry 45 Stress test entry 45",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 46 Stress test entry 46 Stress test entry 46 Stress test entry 46 Stress test entry 46",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 47 Stress test entry 47 Stress test entry 47 Stress test entry 47 Stress test entry 47",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 48 Stress test entry 48 Stress test entry 48 Stress test entry 48 Stress test entry 48",
|
|
||||||
"@1771903012.5276124\nUser:\nStress test entry 49 Stress test entry 49 Stress test entry 49 Stress test entry 49 Stress test entry 49",
|
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user