code-puppy 0.0.197__tar.gz → 0.0.198__tar.gz
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-0.0.197 → code_puppy-0.0.198}/PKG-INFO +1 -1
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/json_agent.py +8 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/command_handler.py +45 -18
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/config.py +6 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/main.py +4 -1
- {code_puppy-0.0.197 → code_puppy-0.0.198}/pyproject.toml +1 -1
- {code_puppy-0.0.197 → code_puppy-0.0.198}/.gitignore +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/LICENSE +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/README.md +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_c_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_code_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_cpp_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_golang_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_javascript_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_python_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_qa_expert.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_security_auditor.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/agent_typescript_reviewer.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/add_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/test_command.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/motd.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/spinner/console_spinner.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/spinner/spinner_base.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/messaging/spinner/textual_spinner.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/models.json +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/camoufox_manager.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/browser/vqa_agent.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/app.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/chat_view.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/command_history_modal.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/copy_button.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/custom_widgets.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/human_input_modal.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/input_area.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/sidebar.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/status_bar.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/messages.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/models/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/models/chat_message.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/models/command_history.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/models/enums.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/__init__.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/autosave_picker.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/help.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/mcp_install_wizard.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/settings.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/screens/tools.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui_state.py +0 -0
- {code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/version_checker.py +0 -0
@@ -101,6 +101,14 @@ class JSONAgent(BaseAgent):
|
|
101
101
|
"""Get tool configuration from JSON config."""
|
102
102
|
return self._config.get("tools_config")
|
103
103
|
|
104
|
+
def refresh_config(self) -> None:
|
105
|
+
"""Reload the agent configuration from disk.
|
106
|
+
|
107
|
+
This keeps long-lived agent instances in sync after external edits.
|
108
|
+
"""
|
109
|
+
self._config = self._load_config()
|
110
|
+
self._validate_config()
|
111
|
+
|
104
112
|
def get_model_name(self) -> Optional[str]:
|
105
113
|
"""Get pinned model name from JSON config, if specified.
|
106
114
|
|
@@ -5,7 +5,11 @@ from pathlib import Path
|
|
5
5
|
from code_puppy.command_line.model_picker_completion import update_model_in_input
|
6
6
|
from code_puppy.command_line.motd import print_motd
|
7
7
|
from code_puppy.command_line.utils import make_directory_table
|
8
|
-
from code_puppy.config import
|
8
|
+
from code_puppy.config import (
|
9
|
+
CONTEXTS_DIR,
|
10
|
+
finalize_autosave_session,
|
11
|
+
get_config_keys,
|
12
|
+
)
|
9
13
|
from code_puppy.session_storage import list_sessions, load_session, save_session
|
10
14
|
from code_puppy.tools.tools_content import tools_content
|
11
15
|
|
@@ -429,31 +433,44 @@ def handle_command(command: str):
|
|
429
433
|
import uuid
|
430
434
|
|
431
435
|
group_id = str(uuid.uuid4())
|
436
|
+
available_agents = get_available_agents()
|
432
437
|
|
433
|
-
if
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
new_agent = get_current_agent()
|
438
|
-
emit_success(
|
439
|
-
f"Switched to agent: {new_agent.display_name}",
|
438
|
+
if agent_name not in available_agents:
|
439
|
+
emit_error(f"Agent '{agent_name}' not found", message_group=group_id)
|
440
|
+
emit_warning(
|
441
|
+
f"Available agents: {', '.join(available_agents.keys())}",
|
440
442
|
message_group=group_id,
|
441
443
|
)
|
442
|
-
emit_info(f"[dim]{new_agent.description}[/dim]", message_group=group_id)
|
443
444
|
return True
|
444
|
-
else:
|
445
|
-
# Generate a group ID for all messages in this command
|
446
|
-
import uuid
|
447
445
|
|
448
|
-
|
446
|
+
current_agent = get_current_agent()
|
447
|
+
if current_agent.name == agent_name:
|
448
|
+
emit_info(
|
449
|
+
f"Already using agent: {current_agent.display_name}",
|
450
|
+
message_group=group_id,
|
451
|
+
)
|
452
|
+
return True
|
449
453
|
|
450
|
-
|
451
|
-
|
454
|
+
new_session_id = finalize_autosave_session()
|
455
|
+
if not set_current_agent(agent_name):
|
452
456
|
emit_warning(
|
453
|
-
|
457
|
+
"Agent switch failed after autosave rotation. Your context was preserved.",
|
454
458
|
message_group=group_id,
|
455
459
|
)
|
456
460
|
return True
|
461
|
+
|
462
|
+
new_agent = get_current_agent()
|
463
|
+
new_agent.reload_code_generation_agent()
|
464
|
+
emit_success(
|
465
|
+
f"Switched to agent: {new_agent.display_name}",
|
466
|
+
message_group=group_id,
|
467
|
+
)
|
468
|
+
emit_info(f"[dim]{new_agent.description}[/dim]", message_group=group_id)
|
469
|
+
emit_info(
|
470
|
+
f"[dim]Auto-save session rotated to: {new_session_id}[/dim]",
|
471
|
+
message_group=group_id,
|
472
|
+
)
|
473
|
+
return True
|
457
474
|
else:
|
458
475
|
emit_warning("Usage: /agent [agent-name]")
|
459
476
|
return True
|
@@ -593,12 +610,22 @@ def handle_command(command: str):
|
|
593
610
|
|
594
611
|
emit_success(f"Model '{model_name}' pinned to agent '{agent_name}'")
|
595
612
|
|
596
|
-
# If this is the current agent,
|
613
|
+
# If this is the current agent, refresh it so the prompt updates immediately
|
597
614
|
from code_puppy.agents import get_current_agent
|
598
615
|
|
599
616
|
current_agent = get_current_agent()
|
600
617
|
if current_agent.name == agent_name:
|
601
|
-
|
618
|
+
try:
|
619
|
+
if is_json_agent and hasattr(current_agent, "refresh_config"):
|
620
|
+
current_agent.refresh_config()
|
621
|
+
current_agent.reload_code_generation_agent()
|
622
|
+
emit_info(
|
623
|
+
f"Active agent reloaded with pinned model '{model_name}'"
|
624
|
+
)
|
625
|
+
except Exception as reload_error:
|
626
|
+
emit_warning(
|
627
|
+
f"Pinned model applied but reload failed: {reload_error}"
|
628
|
+
)
|
602
629
|
|
603
630
|
return True
|
604
631
|
|
@@ -784,3 +784,9 @@ def auto_save_session_if_enabled() -> bool:
|
|
784
784
|
|
785
785
|
Console().print(f"[dim]❌ Failed to auto-save session: {exc}[/dim]")
|
786
786
|
return False
|
787
|
+
|
788
|
+
|
789
|
+
def finalize_autosave_session() -> str:
|
790
|
+
"""Persist the current autosave snapshot and rotate to a fresh session."""
|
791
|
+
auto_save_session_if_enabled()
|
792
|
+
return rotate_autosave_id()
|
@@ -24,6 +24,7 @@ from code_puppy.config import (
|
|
24
24
|
AUTOSAVE_DIR,
|
25
25
|
COMMAND_HISTORY_FILE,
|
26
26
|
ensure_config_exists,
|
27
|
+
finalize_autosave_session,
|
27
28
|
initialize_command_history_file,
|
28
29
|
save_command_to_history,
|
29
30
|
)
|
@@ -414,12 +415,14 @@ async def interactive_mode(message_renderer, initial_command: str = None) -> Non
|
|
414
415
|
|
415
416
|
# Check for clear command (supports both `clear` and `/clear`)
|
416
417
|
if task.strip().lower() in ("clear", "/clear"):
|
417
|
-
from code_puppy.messaging import emit_system_message, emit_warning
|
418
|
+
from code_puppy.messaging import emit_info, emit_system_message, emit_warning
|
418
419
|
|
419
420
|
agent = get_current_agent()
|
421
|
+
new_session_id = finalize_autosave_session()
|
420
422
|
agent.clear_message_history()
|
421
423
|
emit_warning("Conversation history cleared!")
|
422
424
|
emit_system_message("The agent will not remember previous interactions.\n")
|
425
|
+
emit_info(f"[dim]Auto-save session rotated to: {new_session_id}[/dim]")
|
423
426
|
continue
|
424
427
|
|
425
428
|
# Handle / commands before anything else
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/load_context_completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/model_picker_completion.py
RENAMED
File without changes
|
File without changes
|
{code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/command_line/prompt_toolkit_completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_puppy-0.0.197 → code_puppy-0.0.198}/code_puppy/tui/components/command_history_modal.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|