From 4691848683155de6da107f571cdcbf74cd78717b Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 13 Jun 2026 16:45:12 -0400 Subject: [PATCH] Docstrings: SSDL + ASCII Layout Map for Personas, Providers, and Command Palette --- .../state.toml | 6 +- src/command_palette.py | 14 +++++ src/gui_2.py | 59 ++++++++++++++++++- 3 files changed, 75 insertions(+), 4 deletions(-) diff --git a/conductor/tracks/sqlite_docs_gui_2_continued_20260613/state.toml b/conductor/tracks/sqlite_docs_gui_2_continued_20260613/state.toml index 60d0f0f4..2ecb4183 100644 --- a/conductor/tracks/sqlite_docs_gui_2_continued_20260613/state.toml +++ b/conductor/tracks/sqlite_docs_gui_2_continued_20260613/state.toml @@ -19,6 +19,6 @@ phase_2 = { status = "in_progress", checkpoint_sha = "", name = "Personas, Provi t1_1 = { status = "completed", commit_sha = "", description = "Document Preset Managers and Windows (render_save_preset_modal, render_preset_manager_content, render_preset_manager_window, render_tool_preset_manager_content, render_tool_preset_manager_window)" } # Phase 2: Personas, Providers & Command Palette -t2_1 = { status = "pending", commit_sha = "", description = "Document Personas & Providers (render_persona_editor_window, render_persona_selector_panel, render_provider_panel)" } -t2_2 = { status = "pending", commit_sha = "", description = "Document Command Palette (render_palette_modal in src/command_palette.py)" } -t2_3 = { status = "pending", commit_sha = "", description = "Register track and update status in tracks.md" } +t2_1 = { status = "completed", commit_sha = "", description = "Document Personas & Providers (render_persona_editor_window, render_persona_selector_panel, render_provider_panel)" } +t2_2 = { status = "completed", commit_sha = "", description = "Document Command Palette (render_palette_modal in src/command_palette.py)" } +t2_3 = { status = "in_progress", commit_sha = "", description = "Register track and update status in tracks.md" } diff --git a/src/command_palette.py b/src/command_palette.py index d1204e3b..91e78e3c 100644 --- a/src/command_palette.py +++ b/src/command_palette.py @@ -123,6 +123,20 @@ def _execute(app: Any, command: Command) -> None: def render_palette_modal(app: Any, commands: List[Command]) -> None: + """Renders the interactive Command Palette modal. Exposes a text input query bar + and lists matching commands with fuzzy matching, supporting keyboard navigation (Up/Down/Enter/Esc). + + SSDL: `[I:query_input] -> [B:results_list] => [B:execute_command]` + + ASCII Layout Map: + +==================== Command Palette ===================+ + | |query_text| | + | +-----------------------------------------------------+ | + | | > [category-a] Command Title A (selected) | | + | | [category-b] Command Title B | | + | +-----------------------------------------------------+ | + +========================================================+ + """ if not getattr(app, "show_command_palette", False): return diff --git a/src/gui_2.py b/src/gui_2.py index 29b82234..a172c5f7 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -1549,6 +1549,7 @@ def main() -> None: if __name__ == "__main__": main() + def render_main_interface(app: App) -> None: """Top-level per-frame orchestrator. Dispatches every subsystem in the correct order: error/stale overlay tints, perf bookends, GUI task draining, modal rendering, @@ -2586,10 +2587,36 @@ def render_agent_tools_panel(app: App) -> None: imgui.tree_pop() def render_provider_panel(app: App) -> None: - """Renders the LLM provider configuration panel. Allows selection of API providers, + r"""Renders the LLM provider configuration panel. Allows selection of API providers, active models, hyper-parameters (temperature, max tokens, Top-P), history limits, and Gemini CLI binaries. SSDL: `[I:providers] -> [B:provider_combo] -> [B:model_listbox] -> [B:parameters_sliders] => [B:cli_path_browse]` + + ASCII Layout Map: + +---------------------------------------------------------+ + | Provider | + | [gemini v] [Local] | + | [V2 Badges: JSON/STRUCT/SYS/TOOL/C_IN/C_OUT/C_TRM...] | + | --- | + | Model | + | +-----------------------------------------------------+ | + | | gemini-1.5-pro | | + | | gemini-1.5-flash * | | + | +-----------------------------------------------------+ | + | --- | + | Parameters | + | [======= ] 0.70 Temp: |0.70| | + | [=========== ] 4096 Top-P: [1.00] | + | [====== ] 8192 MaxTok: [8192] | + | History Truncation Limit: |900000| | + | (If gemini_cli active): | + | --- | + | Gemini CLI | + | Session ID: cba123 | + | [Reset CLI Session] | + | Binary Path: | + | [C:\tools\gemini.exe_______________________] [Browse] | + +---------------------------------------------------------+ """ if app.perf_profiling_enabled: app.perf_monitor.start_component("_render_provider_panel") imgui.text("Provider") @@ -2675,6 +2702,12 @@ def render_persona_selector_panel(app: App) -> None: overriding system parameters (models, presets, prompts, bias profiles) and loading preset contexts. SSDL: `[I:personas] -> [B:persona_combo] => [B:manage_personas]` + + ASCII Layout Map: + +---------------------------------------------------------+ + | Persona | + | [assistant v] [Manage Personas] | + +---------------------------------------------------------+ """ if app.perf_profiling_enabled: app.perf_monitor.start_component("_render_persona_selector_panel") imgui.text("Persona") @@ -3214,6 +3247,30 @@ def render_persona_editor_window(app: App, is_embedded: bool = False) -> None: (prompts, preferred models list, tool presets, aggregation strategy, etc). SSDL: `[I:personas_list] -> [B:new_persona] -> [I:settings_editor] -> [I:models_list] -> [I:system_prompt_box] => [B:save_delete]` + + ASCII Layout Map: + +========================== Persona Editor ========================+ + | [New Persona] | + | --- | + | | assistant | Editing Persona: assistant | + | | researcher | --- | + | | Name: |assistant| | + | | Scope: (o) Global ( ) Project | + | | --- | + | | > Preferred Models | + | | [+] 1. gemini - flash (T:0.7, P:1.0, M:0) | + | | [-] 2. anthropic - claude-3-opus | + | | Provider: [anthropic v] | + | | Model: [claude-3-opus v] | + | | Temp: [0.7] Max Tokens: [4096] | + | | [Add Model] | + | | > System Prompt | + | | +---------------------------------------+ | + | | | You are a helpful assistant... | | + | | +---------------------------------------+ | + | ---------------------------------------------------------------- | + | [Save] [Delete] [Close] | + +==================================================================+ """ if not app.show_persona_editor_window and not is_embedded: return if not is_embedded: