diff --git a/src/aggregate.py b/src/aggregate.py index b028b68..6a24b47 100644 --- a/src/aggregate.py +++ b/src/aggregate.py @@ -363,3 +363,4 @@ def main() -> None: if __name__ == "__main__": main() + diff --git a/src/ai_client.py b/src/ai_client.py index 420bd46..717dad8 100644 --- a/src/ai_client.py +++ b/src/ai_client.py @@ -2400,3 +2400,4 @@ def get_history_bleed_stats(md_content: Optional[str] = None) -> dict[str, Any]: "current": 0, "percentage": 0, }) + diff --git a/src/api_hook_client.py b/src/api_hook_client.py index 88d73bb..46e3995 100644 --- a/src/api_hook_client.py +++ b/src/api_hook_client.py @@ -223,3 +223,4 @@ class ApiHookClient: def get_patch_status(self) -> dict[str, Any]: """Gets the current patch modal status.""" return self._make_request('GET', '/api/patch/status') or {} + diff --git a/src/api_hooks.py b/src/api_hooks.py index e228a63..ab94c23 100644 --- a/src/api_hooks.py +++ b/src/api_hooks.py @@ -523,3 +523,4 @@ class HookServer: if self.thread: self.thread.join() logging.info("Hook server stopped") + diff --git a/src/bg_shader.py b/src/bg_shader.py index 2bd3df5..421a51b 100644 --- a/src/bg_shader.py +++ b/src/bg_shader.py @@ -63,3 +63,4 @@ def get_bg(): if _bg is None: _bg = BackgroundShader() return _bg + diff --git a/src/conductor_tech_lead.py b/src/conductor_tech_lead.py index 0d23f55..ece3734 100644 --- a/src/conductor_tech_lead.py +++ b/src/conductor_tech_lead.py @@ -118,3 +118,4 @@ if __name__ == "__main__": test_skeletons = "class NewFeature: pass" tickets = generate_tickets(test_brief, test_skeletons) print(json.dumps(tickets, indent=2)) + diff --git a/src/cost_tracker.py b/src/cost_tracker.py index 82cc129..fd5cc0b 100644 --- a/src/cost_tracker.py +++ b/src/cost_tracker.py @@ -59,3 +59,4 @@ def estimate_cost(model: str, input_tokens: int, output_tokens: int) -> float: return input_cost + output_cost return 0.0 + diff --git a/src/dag_engine.py b/src/dag_engine.py index 1d56334..bcc7469 100644 --- a/src/dag_engine.py +++ b/src/dag_engine.py @@ -193,3 +193,4 @@ class ExecutionEngine: ticket = self.dag.ticket_map.get(task_id) if ticket: ticket.status = status + diff --git a/src/diff_viewer.py b/src/diff_viewer.py index ef1e55f..ecf8ea8 100644 --- a/src/diff_viewer.py +++ b/src/diff_viewer.py @@ -1,4 +1,4 @@ -from typing import List, Dict, Optional, Tuple +from typing import List, Dict, Optional, Tuple from dataclasses import dataclass import shutil import os @@ -217,4 +217,4 @@ def restore_from_backup(file_path: str) -> bool: def cleanup_backup(file_path: str) -> None: backup_path = Path(str(file_path) + ".backup") if backup_path.exists(): - backup_path.unlink() \ No newline at end of file + backup_path.unlink() diff --git a/src/events.py b/src/events.py index 2a3aa4d..5b42206 100644 --- a/src/events.py +++ b/src/events.py @@ -126,3 +126,4 @@ class UserRequestEvent: "disc_text": self.disc_text, "base_dir": self.base_dir } + diff --git a/src/file_cache.py b/src/file_cache.py index f08b91d..656940f 100644 --- a/src/file_cache.py +++ b/src/file_cache.py @@ -376,3 +376,4 @@ def evict(path: Path) -> None: def list_cached() -> List[Dict[str, Any]]: return [] + diff --git a/src/gemini_cli_adapter.py b/src/gemini_cli_adapter.py index 4af0c92..d2ff974 100644 --- a/src/gemini_cli_adapter.py +++ b/src/gemini_cli_adapter.py @@ -189,3 +189,4 @@ class GeminiCliAdapter: """ total_chars = len("\n".join(contents)) return total_chars // 4 + diff --git a/src/log_pruner.py b/src/log_pruner.py index db265ef..0f2a528 100644 --- a/src/log_pruner.py +++ b/src/log_pruner.py @@ -115,3 +115,4 @@ class LogPruner: sys.stderr.write(f"[LogPruner] Error removing {resolved_path}: {e}\n") self.log_registry.save_registry() + diff --git a/src/log_registry.py b/src/log_registry.py index db64915..65cbcda 100644 --- a/src/log_registry.py +++ b/src/log_registry.py @@ -301,3 +301,4 @@ class LogRegistry: }) return old_sessions + diff --git a/src/markdown_helper.py b/src/markdown_helper.py index 1f5c101..a4cd0bf 100644 --- a/src/markdown_helper.py +++ b/src/markdown_helper.py @@ -166,3 +166,4 @@ def render_unindented(text: str) -> None: def render_code(code: str, lang: str = "", context_id: str = "default", block_idx: int = 0) -> None: get_renderer().render_code(code, lang, context_id, block_idx) + diff --git a/src/mcp_client.py b/src/mcp_client.py index 64b6c17..0c59e43 100644 --- a/src/mcp_client.py +++ b/src/mcp_client.py @@ -1,4 +1,4 @@ -# mcp_client.py +# mcp_client.py """ MCP Client - Multi-tool filesystem and network operations with sandboxing. @@ -782,10 +782,10 @@ def get_tree(path: str, max_depth: int = 2) -> str: entries = [e for e in entries if not e.name.startswith('.') and e.name not in ('__pycache__', 'venv', 'env') and e.name != "history.toml" and not e.name.endswith("_history.toml")] for i, entry in enumerate(entries): is_last = (i == len(entries) - 1) - connector = "└── " if is_last else "├── " + connector = "└── " if is_last else "├── " lines.append(f"{prefix}{connector}{entry.name}") if entry.is_dir(): - extension = " " if is_last else "│ " + extension = " " if is_last else "│ " lines.extend(_build_tree(entry, current_depth + 1, prefix + extension)) return lines tree_lines = [f"{p.name}/"] + _build_tree(p, 1) @@ -1466,3 +1466,4 @@ MCP_TOOL_SPECS: list[dict[str, Any]] = [ + diff --git a/src/mma_prompts.py b/src/mma_prompts.py index b7b15ef..345dd77 100644 --- a/src/mma_prompts.py +++ b/src/mma_prompts.py @@ -178,3 +178,4 @@ RULES: Analyze this error and generate the patch: """ + diff --git a/src/multi_agent_conductor.py b/src/multi_agent_conductor.py index 53ef2fc..650c05e 100644 --- a/src/multi_agent_conductor.py +++ b/src/multi_agent_conductor.py @@ -614,3 +614,4 @@ def run_worker_lifecycle(ticket: Ticket, context: WorkerContext, context_files: if event_queue: _queue_put(event_queue, "ticket_completed", {"ticket_id": ticket.id, "timestamp": time.time()}) return response + diff --git a/src/native_orchestrator.py b/src/native_orchestrator.py index 5a31473..6434176 100644 --- a/src/native_orchestrator.py +++ b/src/native_orchestrator.py @@ -86,3 +86,4 @@ class NativeOrchestrator: """Tier 4: Generate patch for error""" from src import ai_client return ai_client.run_tier4_patch_generation(error, file_context) + diff --git a/src/orchestrator_pm.py b/src/orchestrator_pm.py index 2091656..a64ee3e 100644 --- a/src/orchestrator_pm.py +++ b/src/orchestrator_pm.py @@ -125,3 +125,4 @@ if __name__ == "__main__": history = get_track_history_summary() tracks = generate_tracks("Implement a basic unit test for the ai_client.py module.", flat, file_items, history_summary=history) print(json.dumps(tracks, indent=2)) + diff --git a/src/outline_tool.py b/src/outline_tool.py index dadf5a9..d351290 100644 --- a/src/outline_tool.py +++ b/src/outline_tool.py @@ -87,3 +87,4 @@ def get_outline(path: Path, code: str) -> str: return outliner.outline(code) else: return f"Outlining not supported for {suffix} files yet." + diff --git a/src/patch_modal.py b/src/patch_modal.py index cb5eb2b..1e5d722 100644 --- a/src/patch_modal.py +++ b/src/patch_modal.py @@ -1,4 +1,4 @@ -from typing import Optional, Callable, List +from typing import Optional, Callable, List from dataclasses import dataclass, field @dataclass @@ -70,4 +70,4 @@ def reset_patch_modal_manager() -> None: global _patch_modal_manager if _patch_modal_manager: _patch_modal_manager.reset() - _patch_modal_manager = None \ No newline at end of file + _patch_modal_manager = None diff --git a/src/paths.py b/src/paths.py index 198a88d..129ed1c 100644 --- a/src/paths.py +++ b/src/paths.py @@ -110,3 +110,4 @@ def get_archive_dir() -> Path: def reset_resolved() -> None: """For testing only - clear cached resolutions.""" _RESOLVED.clear() + diff --git a/src/performance_monitor.py b/src/performance_monitor.py index c0e1868..c705434 100644 --- a/src/performance_monitor.py +++ b/src/performance_monitor.py @@ -232,3 +232,4 @@ class PerformanceMonitor: self._stop_event.set() if self._cpu_thread.is_alive(): self._cpu_thread.join(timeout=2.0) + diff --git a/src/personas.py b/src/personas.py index 22792c5..a522243 100644 --- a/src/personas.py +++ b/src/personas.py @@ -82,3 +82,4 @@ class PersonaManager: path.parent.mkdir(parents=True, exist_ok=True) with open(path, "wb") as f: tomli_w.dump(data, f) + diff --git a/src/presets.py b/src/presets.py index 20bbd24..01d1735 100644 --- a/src/presets.py +++ b/src/presets.py @@ -89,3 +89,4 @@ class PresetManager: path.parent.mkdir(parents=True, exist_ok=True) with open(path, "wb") as f: f.write(tomli_w.dumps(data).encode("utf-8")) + diff --git a/src/project_manager.py b/src/project_manager.py index 4a20896..e008929 100644 --- a/src/project_manager.py +++ b/src/project_manager.py @@ -391,3 +391,4 @@ def calculate_track_progress(tickets: list) -> dict: "blocked": blocked, "todo": todo } + diff --git a/src/session_logger.py b/src/session_logger.py index 6a97257..b917c65 100644 --- a/src/session_logger.py +++ b/src/session_logger.py @@ -217,3 +217,4 @@ def log_cli_call(command: str, stdin_content: Optional[str], stdout_content: Opt _cli_fh.flush() except Exception: pass + diff --git a/src/shaders.py b/src/shaders.py index c5fff4c..2be6274 100644 --- a/src/shaders.py +++ b/src/shaders.py @@ -70,3 +70,4 @@ def apply_faux_acrylic_glass(draw_list: imgui.ImDrawList, p_min: imgui.ImVec2, p flags=imgui.ImDrawFlags_.round_corners_all if rounding > 0 else imgui.ImDrawFlags_.none, thickness=1.0 ) + diff --git a/src/shell_runner.py b/src/shell_runner.py index 24884f3..dd02106 100644 --- a/src/shell_runner.py +++ b/src/shell_runner.py @@ -90,3 +90,4 @@ def run_powershell(script: str, base_dir: str, qa_callback: Optional[Callable[[s if 'process' in locals() and process: subprocess.run(["taskkill", "/F", "/T", "/PID", str(process.pid)], capture_output=True) return f"ERROR: {e}" + diff --git a/src/summarize.py b/src/summarize.py index 6bde009..c81357f 100644 --- a/src/summarize.py +++ b/src/summarize.py @@ -190,3 +190,4 @@ def build_summary_markdown(file_items: list[dict[str, Any]]) -> str: summary = item.get("summary", "") parts.append(f"### `{path}`\n\n{summary}") return "\n\n---\n\n".join(parts) + diff --git a/src/theme.py b/src/theme.py index bd4a674..48bec5a 100644 --- a/src/theme.py +++ b/src/theme.py @@ -388,3 +388,4 @@ def load_from_config(config: dict[str, Any]) -> None: if font_path: apply_font(font_path, font_size) set_scale(scale) + diff --git a/src/theme_2.py b/src/theme_2.py index 5849a7b..e71f508 100644 --- a/src/theme_2.py +++ b/src/theme_2.py @@ -392,3 +392,4 @@ def get_tweaked_theme() -> hello_imgui.ImGuiTweakedTheme: # Sync tweaks tt.tweaks.rounding = 6.0 return tt + diff --git a/src/theme_nerv.py b/src/theme_nerv.py index 53f9e1c..436cafb 100644 --- a/src/theme_nerv.py +++ b/src/theme_nerv.py @@ -82,3 +82,4 @@ def apply_nerv() -> None: style.popup_border_size = 1.0 style.child_border_size = 1.0 style.tab_border_size = 1.0 + diff --git a/src/theme_nerv_fx.py b/src/theme_nerv_fx.py index b08f676..ea89ed2 100644 --- a/src/theme_nerv_fx.py +++ b/src/theme_nerv_fx.py @@ -83,3 +83,4 @@ class AlertPulsing: alpha = 0.05 + 0.15 * ((math.sin(time.time() * 4.0) + 1.0) / 2.0) color = imgui.get_color_u32((1.0, 0.0, 0.0, alpha)) draw_list.add_rect((0.0, 0.0), (width, height), color, 0.0, 0, 10.0) + diff --git a/src/tool_bias.py b/src/tool_bias.py index d0d8c57..8cb7577 100644 --- a/src/tool_bias.py +++ b/src/tool_bias.py @@ -63,3 +63,4 @@ class ToolBiasEngine: lines.append(f"- {cat}: {mult}x") return "\n\n".join(lines) + diff --git a/src/tool_presets.py b/src/tool_presets.py index b3519fb..f61ab1a 100644 --- a/src/tool_presets.py +++ b/src/tool_presets.py @@ -108,3 +108,4 @@ class ToolPresetManager: if "bias_profiles" in data and name in data["bias_profiles"]: del data["bias_profiles"][name] self._write_raw(path, data) +