code-puppy 0.0.328__py3-none-any.whl → 0.0.330__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2032,3 +2032,9 @@ class BaseAgent(ABC):
2032
2032
  original_handler is not None
2033
2033
  ): # Explicit None check - SIG_DFL can be 0/falsy!
2034
2034
  signal.signal(signal.SIGINT, original_handler)
2035
+ # Windows-specific: Reset terminal after Ctrl+C to prevent corruption
2036
+ # This fixes the issue where Enter key shows as 'm' after interrupting with uvx
2037
+ if is_windows:
2038
+ from code_puppy.terminal_utils import reset_windows_terminal_full
2039
+
2040
+ reset_windows_terminal_full()
code_puppy/cli_runner.py CHANGED
@@ -421,6 +421,10 @@ async def interactive_mode(message_renderer, initial_command: str = None) -> Non
421
421
  current_agent_task = None
422
422
 
423
423
  while True:
424
+ # Windows-specific: Aggressively reset terminal at the start of every loop
425
+ # This fixes terminal corruption after Ctrl+C, especially when running via uvx
426
+ reset_windows_terminal_full()
427
+
424
428
  from code_puppy.agents.agent_manager import get_current_agent
425
429
  from code_puppy.messaging import emit_info
426
430
 
@@ -604,7 +608,8 @@ async def interactive_mode(message_renderer, initial_command: str = None) -> Non
604
608
  # Check if the task was cancelled (but don't show message if we just killed processes)
605
609
  if result is None:
606
610
  # Windows-specific: Reset terminal state after cancellation
607
- reset_windows_terminal_ansi()
611
+ # Use full reset (ANSI + console mode) to fix stdin after Ctrl+C
612
+ reset_windows_terminal_full()
608
613
  continue
609
614
  # Get the structured response
610
615
  agent_response = result.output
@@ -87,16 +87,20 @@ def reset_windows_console_mode() -> None:
87
87
 
88
88
 
89
89
  def reset_windows_terminal_full() -> None:
90
- """Perform a full Windows terminal reset (ANSI + console mode).
90
+ """Perform a full Windows terminal reset (console mode + ANSI).
91
91
 
92
- Combines both ANSI reset and console mode reset for complete
92
+ Combines both console mode reset and ANSI reset for complete
93
93
  terminal state restoration after interrupts.
94
+
95
+ IMPORTANT: Console mode must be reset FIRST to re-enable
96
+ ENABLE_VIRTUAL_TERMINAL_PROCESSING, otherwise the ANSI escape
97
+ sequences will be printed as literal text (e.g., '[0m').
94
98
  """
95
99
  if platform.system() != "Windows":
96
100
  return
97
101
 
98
- reset_windows_terminal_ansi()
99
- reset_windows_console_mode()
102
+ reset_windows_console_mode() # Must be first! Enables ANSI processing
103
+ reset_windows_terminal_ansi() # Now ANSI escapes will be interpreted
100
104
 
101
105
 
102
106
  def reset_unix_terminal() -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-puppy
3
- Version: 0.0.328
3
+ Version: 0.0.330
4
4
  Summary: Code generation agent
5
5
  Project-URL: repository, https://github.com/mpfaffenberger/code_puppy
6
6
  Project-URL: HomePage, https://github.com/mpfaffenberger/code_puppy
@@ -3,7 +3,7 @@ code_puppy/__main__.py,sha256=pDVssJOWP8A83iFkxMLY9YteHYat0EyWDQqMkKHpWp4,203
3
3
  code_puppy/callbacks.py,sha256=hqTV--dNxG5vwWWm3MrEjmb8MZuHFFdmHePl23NXPHk,8621
4
4
  code_puppy/chatgpt_codex_client.py,sha256=Om0ANB_kpHubhCwNzF9ENf8RvKBqs0IYzBLl_SNw0Vk,9833
5
5
  code_puppy/claude_cache_client.py,sha256=hZr_YtXZSQvBoJFtRbbecKucYqJgoMopqUmm0IxFYGY,6071
6
- code_puppy/cli_runner.py,sha256=qAP5cocyUoRVJwvOmlhNsDcoh6h-AXEakDomWxNYlfs,29581
6
+ code_puppy/cli_runner.py,sha256=M3UlDgH4h8IPCfxwadElztGKhaNe47FNZJtxtcoVbBg,29875
7
7
  code_puppy/config.py,sha256=qqeJrQP7gqADqeYqVzfksP7NYGROLrBQCuYic5PuQfY,52295
8
8
  code_puppy/error_logging.py,sha256=a80OILCUtJhexI6a9GM-r5LqIdjvSRzggfgPp2jv1X0,3297
9
9
  code_puppy/gemini_code_assist.py,sha256=KGS7sO5OLc83nDF3xxS-QiU6vxW9vcm6hmzilu79Ef8,13867
@@ -21,7 +21,7 @@ code_puppy/round_robin_model.py,sha256=kSawwPUiPgg0yg8r4AAVgvjzsWkptxpSORd75-HP7
21
21
  code_puppy/session_storage.py,sha256=T4hOsAl9z0yz2JZCptjJBOnN8fCmkLZx5eLy1hTdv6Q,9631
22
22
  code_puppy/status_display.py,sha256=qHzIQGAPEa2_-4gQSg7_rE1ihOosBq8WO73MWFNmmlo,8938
23
23
  code_puppy/summarization_agent.py,sha256=6Pu_Wp_rF-HAhoX9u2uXTabRVkOZUYwRoMP1lzNS4ew,4485
24
- code_puppy/terminal_utils.py,sha256=oa8SF7Pel4o15Erd7a7vA7Y9wi6SJx196qxXITebDqA,3650
24
+ code_puppy/terminal_utils.py,sha256=P6ProVD_3nHW0zHNRIMWTcg8HvBk9e0ir5bhUgJpT5k,3921
25
25
  code_puppy/version_checker.py,sha256=aq2Mwxl1CR9sEFBgrPt3OQOowLOBUp9VaQYWJhuUv8Q,1780
26
26
  code_puppy/agents/__init__.py,sha256=PtPB7Z5MSwmUKipgt_qxvIuGggcuVaYwNbnp1UP4tPc,518
27
27
  code_puppy/agents/agent_c_reviewer.py,sha256=1kO_89hcrhlS4sJ6elDLSEx-h43jAaWGgvIL0SZUuKo,8214
@@ -39,7 +39,7 @@ code_puppy/agents/agent_qa_expert.py,sha256=5Ikb4U3SZQknUEfwlHZiyZXKqnffnOTQagr_
39
39
  code_puppy/agents/agent_qa_kitten.py,sha256=5PeFFSwCFlTUvP6h5bGntx0xv5NmRwBiw0HnMqY8nLI,9107
40
40
  code_puppy/agents/agent_security_auditor.py,sha256=SpiYNA0XAsIwBj7S2_EQPRslRUmF_-b89pIJyW7DYtY,12022
41
41
  code_puppy/agents/agent_typescript_reviewer.py,sha256=vsnpp98xg6cIoFAEJrRTUM_i4wLEWGm5nJxs6fhHobM,10275
42
- code_puppy/agents/base_agent.py,sha256=MiXGVO0CwLMExIVNltN9RnZ0O4F0hCDdZFX7nZ_xJtU,84179
42
+ code_puppy/agents/base_agent.py,sha256=32nNAGnBMUXLrI-5qTGpEWNEGW_gIN1ELQP1eH_lBCo,84509
43
43
  code_puppy/agents/json_agent.py,sha256=lhopDJDoiSGHvD8A6t50hi9ZBoNRKgUywfxd0Po_Dzc,4886
44
44
  code_puppy/agents/prompt_reviewer.py,sha256=JJrJ0m5q0Puxl8vFsyhAbY9ftU9n6c6UxEVdNct1E-Q,5558
45
45
  code_puppy/command_line/__init__.py,sha256=y7WeRemfYppk8KVbCGeAIiTuiOszIURCDjOMZv_YRmU,45
@@ -159,10 +159,10 @@ code_puppy/tools/browser/browser_scripts.py,sha256=sNb8eLEyzhasy5hV4B9OjM8yIVMLV
159
159
  code_puppy/tools/browser/browser_workflows.py,sha256=nitW42vCf0ieTX1gLabozTugNQ8phtoFzZbiAhw1V90,6491
160
160
  code_puppy/tools/browser/camoufox_manager.py,sha256=RZjGOEftE5sI_tsercUyXFSZI2wpStXf-q0PdYh2G3I,8680
161
161
  code_puppy/tools/browser/vqa_agent.py,sha256=DBn9HKloILqJSTSdNZzH_PYWT0B2h9VwmY6akFQI_uU,2913
162
- code_puppy-0.0.328.data/data/code_puppy/models.json,sha256=IPABdOrDw2OZJxa0XGBWSWmBRerV6_pIEmKVLRtUbAk,3105
163
- code_puppy-0.0.328.data/data/code_puppy/models_dev_api.json,sha256=wHjkj-IM_fx1oHki6-GqtOoCrRMR0ScK0f-Iz0UEcy8,548187
164
- code_puppy-0.0.328.dist-info/METADATA,sha256=mMhOiI3qsKwx-55r9uDy5Bue7Gzfxbqgrrd9KTATk4A,28854
165
- code_puppy-0.0.328.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
166
- code_puppy-0.0.328.dist-info/entry_points.txt,sha256=Tp4eQC99WY3HOKd3sdvb22vZODRq0XkZVNpXOag_KdI,91
167
- code_puppy-0.0.328.dist-info/licenses/LICENSE,sha256=31u8x0SPgdOq3izJX41kgFazWsM43zPEF9eskzqbJMY,1075
168
- code_puppy-0.0.328.dist-info/RECORD,,
162
+ code_puppy-0.0.330.data/data/code_puppy/models.json,sha256=IPABdOrDw2OZJxa0XGBWSWmBRerV6_pIEmKVLRtUbAk,3105
163
+ code_puppy-0.0.330.data/data/code_puppy/models_dev_api.json,sha256=wHjkj-IM_fx1oHki6-GqtOoCrRMR0ScK0f-Iz0UEcy8,548187
164
+ code_puppy-0.0.330.dist-info/METADATA,sha256=uInqiyX5CrLUcTitW8PLxygeYTvdNjy3pj1uOt6aOM8,28854
165
+ code_puppy-0.0.330.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
166
+ code_puppy-0.0.330.dist-info/entry_points.txt,sha256=Tp4eQC99WY3HOKd3sdvb22vZODRq0XkZVNpXOag_KdI,91
167
+ code_puppy-0.0.330.dist-info/licenses/LICENSE,sha256=31u8x0SPgdOq3izJX41kgFazWsM43zPEF9eskzqbJMY,1075
168
+ code_puppy-0.0.330.dist-info/RECORD,,