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.
- code_puppy/agents/base_agent.py +6 -0
- code_puppy/cli_runner.py +6 -1
- code_puppy/terminal_utils.py +8 -4
- {code_puppy-0.0.328.dist-info → code_puppy-0.0.330.dist-info}/METADATA +1 -1
- {code_puppy-0.0.328.dist-info → code_puppy-0.0.330.dist-info}/RECORD +10 -10
- {code_puppy-0.0.328.data → code_puppy-0.0.330.data}/data/code_puppy/models.json +0 -0
- {code_puppy-0.0.328.data → code_puppy-0.0.330.data}/data/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.328.dist-info → code_puppy-0.0.330.dist-info}/WHEEL +0 -0
- {code_puppy-0.0.328.dist-info → code_puppy-0.0.330.dist-info}/entry_points.txt +0 -0
- {code_puppy-0.0.328.dist-info → code_puppy-0.0.330.dist-info}/licenses/LICENSE +0 -0
code_puppy/agents/base_agent.py
CHANGED
|
@@ -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
|
-
|
|
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
|
code_puppy/terminal_utils.py
CHANGED
|
@@ -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 (
|
|
90
|
+
"""Perform a full Windows terminal reset (console mode + ANSI).
|
|
91
91
|
|
|
92
|
-
Combines both
|
|
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
|
-
|
|
99
|
-
|
|
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:
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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.
|
|
163
|
-
code_puppy-0.0.
|
|
164
|
-
code_puppy-0.0.
|
|
165
|
-
code_puppy-0.0.
|
|
166
|
-
code_puppy-0.0.
|
|
167
|
-
code_puppy-0.0.
|
|
168
|
-
code_puppy-0.0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|