code-puppy 0.0.414__tar.gz → 0.0.415__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.414 → code_puppy-0.0.415}/PKG-INFO +1 -1
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/rich_renderer.py +76 -44
- {code_puppy-0.0.414 → code_puppy-0.0.415}/pyproject.toml +1 -1
- {code_puppy-0.0.414 → code_puppy-0.0.415}/.gitignore +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/LICENSE +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/README.md +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_c_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_code_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_cpp_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_golang_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_javascript_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_pack_leader.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_python_programmer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_python_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_qa_expert.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_scheduler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_security_auditor.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_terminal_qa.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/agent_typescript_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/bloodhound.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/husky.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/retriever.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/shepherd.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/terrier.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/pack/watchdog.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/prompt_reviewer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/app.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/main.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/pty_manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/routers/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/routers/agents.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/routers/commands.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/routers/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/routers/sessions.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/templates/terminal.html +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/api/websocket.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/diff_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/test_command.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/motd.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/wiggum_state.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/main.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/spinner/console_spinner.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/spinner/spinner_base.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/models.json +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/discovery.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/downloader.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/installer.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/metadata.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/accounts.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/antigravity_model.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/constants.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/oauth.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/storage.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/token.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/transport.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/antigravity_oauth/utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/example_custom_command/README.md +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/scheduler/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/scheduler/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/scheduler/scheduler_menu.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/scheduler/scheduler_wizard.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/shell_safety/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/synthetic_status/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/synthetic_status/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/synthetic_status/status_api.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/universal_constructor/models.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/universal_constructor/registry.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/prompts/antigravity_system_prompt.md +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/__main__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/cli.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/config.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/daemon.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/executor.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/platform.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/platform_unix.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/scheduler/platform_win.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/chromium_terminal_manager.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/terminal_command_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/terminal_screenshot_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/browser/terminal_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/scheduler_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/uvx_detection.py +0 -0
- {code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/version_checker.py +0 -0
|
@@ -98,6 +98,17 @@ DIFF_STYLES = {
|
|
|
98
98
|
"context": "dim",
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
GROUPABLE_TYPES = frozenset(
|
|
102
|
+
{
|
|
103
|
+
FileContentMessage,
|
|
104
|
+
GrepResultMessage,
|
|
105
|
+
DiffMessage,
|
|
106
|
+
FileListingMessage,
|
|
107
|
+
ShellStartMessage,
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
TRANSPARENT_TYPES = frozenset({SpinnerControl})
|
|
111
|
+
|
|
101
112
|
|
|
102
113
|
# =============================================================================
|
|
103
114
|
# Rich Console Renderer
|
|
@@ -111,6 +122,12 @@ class RichConsoleRenderer:
|
|
|
111
122
|
It uses a background thread for synchronous compatibility with the main loop.
|
|
112
123
|
"""
|
|
113
124
|
|
|
125
|
+
# Message types that support consecutive grouping under a single banner
|
|
126
|
+
_GROUPABLE_TYPES = GROUPABLE_TYPES
|
|
127
|
+
|
|
128
|
+
# Message types that are "transparent" - they don't break an active group
|
|
129
|
+
_TRANSPARENT_TYPES = TRANSPARENT_TYPES
|
|
130
|
+
|
|
114
131
|
def __init__(
|
|
115
132
|
self,
|
|
116
133
|
bus: MessageBus,
|
|
@@ -132,6 +149,8 @@ class RichConsoleRenderer:
|
|
|
132
149
|
self._running = False
|
|
133
150
|
self._thread: Optional[threading.Thread] = None
|
|
134
151
|
self._spinners: Dict[str, object] = {} # spinner_id -> status context
|
|
152
|
+
# Grouping: track last rendered message type for consecutive grouping
|
|
153
|
+
self._last_rendered_type: Optional[type] = None
|
|
135
154
|
|
|
136
155
|
@property
|
|
137
156
|
def console(self) -> Console:
|
|
@@ -172,6 +191,16 @@ class RichConsoleRenderer:
|
|
|
172
191
|
"""
|
|
173
192
|
return is_subagent() and not get_subagent_verbose()
|
|
174
193
|
|
|
194
|
+
def _is_continuation(self, msg_type: type) -> bool:
|
|
195
|
+
"""Check if this message should be rendered as a grouped child (no banner).
|
|
196
|
+
|
|
197
|
+
Returns True if the previous rendered message was the same groupable type,
|
|
198
|
+
meaning the banner was already printed and we just need the child line.
|
|
199
|
+
"""
|
|
200
|
+
return (
|
|
201
|
+
msg_type in self._GROUPABLE_TYPES and self._last_rendered_type == msg_type
|
|
202
|
+
)
|
|
203
|
+
|
|
175
204
|
# =========================================================================
|
|
176
205
|
# Lifecycle (Synchronous - for compatibility with main.py)
|
|
177
206
|
# =========================================================================
|
|
@@ -226,9 +255,12 @@ class RichConsoleRenderer:
|
|
|
226
255
|
"""Render a message synchronously with error handling."""
|
|
227
256
|
try:
|
|
228
257
|
self._do_render(message)
|
|
258
|
+
# Track type for grouping (transparent types don't break groups)
|
|
259
|
+
msg_type = type(message)
|
|
260
|
+
if msg_type not in self._TRANSPARENT_TYPES:
|
|
261
|
+
self._last_rendered_type = msg_type
|
|
229
262
|
except Exception as e:
|
|
230
|
-
|
|
231
|
-
# Escape the error message to prevent nested markup errors
|
|
263
|
+
self._last_rendered_type = None
|
|
232
264
|
safe_error = escape_rich_markup(str(e))
|
|
233
265
|
self._console.print(f"[dim red]Render error: {safe_error}[/dim red]")
|
|
234
266
|
|
|
@@ -327,8 +359,8 @@ class RichConsoleRenderer:
|
|
|
327
359
|
elif isinstance(message, SelectionRequest):
|
|
328
360
|
await self._render_selection_request(message)
|
|
329
361
|
else:
|
|
330
|
-
# Use sync
|
|
331
|
-
self.
|
|
362
|
+
# Use sync renderer for shared rendering and grouping behavior
|
|
363
|
+
self._render_sync(message)
|
|
332
364
|
|
|
333
365
|
# =========================================================================
|
|
334
366
|
# Text Messages
|
|
@@ -383,12 +415,13 @@ class RichConsoleRenderer:
|
|
|
383
415
|
import os
|
|
384
416
|
from collections import defaultdict
|
|
385
417
|
|
|
386
|
-
# Header on single line
|
|
387
418
|
rec_flag = f"(recursive={msg.recursive})"
|
|
388
|
-
|
|
419
|
+
if not self._is_continuation(FileListingMessage):
|
|
420
|
+
banner = self._format_banner("directory_listing", "DIRECTORY LISTING")
|
|
421
|
+
self._console.print(f"\n{banner}")
|
|
422
|
+
|
|
389
423
|
self._console.print(
|
|
390
|
-
f"
|
|
391
|
-
f"📂 [bold cyan]{msg.directory}[/bold cyan] [dim]{rec_flag}[/dim]\n"
|
|
424
|
+
f" ├─ 📂 [bold cyan]{msg.directory}[/bold cyan] [dim]{rec_flag}[/dim]\n"
|
|
392
425
|
)
|
|
393
426
|
|
|
394
427
|
# Build a tree structure: {parent_path: {files: [], dirs: set(), size: int}}
|
|
@@ -498,11 +531,7 @@ class RichConsoleRenderer:
|
|
|
498
531
|
)
|
|
499
532
|
|
|
500
533
|
def _render_file_content(self, msg: FileContentMessage) -> None:
|
|
501
|
-
"""Render a file read - just show the header, not the content.
|
|
502
|
-
|
|
503
|
-
The file content is for the LLM only, not for display in the UI.
|
|
504
|
-
"""
|
|
505
|
-
# Skip for sub-agents unless verbose mode
|
|
534
|
+
"""Render a file read - just show the header, not the content."""
|
|
506
535
|
if self._should_suppress_subagent_output():
|
|
507
536
|
return
|
|
508
537
|
|
|
@@ -512,11 +541,13 @@ class RichConsoleRenderer:
|
|
|
512
541
|
end_line = msg.start_line + msg.num_lines - 1
|
|
513
542
|
line_info = f" [dim](lines {msg.start_line}-{end_line})[/dim]"
|
|
514
543
|
|
|
515
|
-
#
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
f"\n{banner}
|
|
519
|
-
|
|
544
|
+
# Print banner only if this is NOT a continuation of the same type
|
|
545
|
+
if not self._is_continuation(FileContentMessage):
|
|
546
|
+
banner = self._format_banner("read_file", "READ FILE")
|
|
547
|
+
self._console.print(f"\n{banner}")
|
|
548
|
+
|
|
549
|
+
# Always print as tree child
|
|
550
|
+
self._console.print(f" ├─ 📂 [bold cyan]{msg.path}[/bold cyan]{line_info}")
|
|
520
551
|
|
|
521
552
|
def _render_grep_result(self, msg: GrepResultMessage) -> None:
|
|
522
553
|
"""Render grep results grouped by file matching old format."""
|
|
@@ -526,15 +557,17 @@ class RichConsoleRenderer:
|
|
|
526
557
|
|
|
527
558
|
import re
|
|
528
559
|
|
|
529
|
-
|
|
530
|
-
|
|
560
|
+
if not self._is_continuation(GrepResultMessage):
|
|
561
|
+
banner = self._format_banner("grep", "GREP")
|
|
562
|
+
self._console.print(f"\n{banner}")
|
|
563
|
+
|
|
531
564
|
self._console.print(
|
|
532
|
-
f"
|
|
565
|
+
f" ├─ 📂 [dim]{msg.directory} for '{msg.search_term}'[/dim]"
|
|
533
566
|
)
|
|
534
567
|
|
|
535
568
|
if not msg.matches:
|
|
536
569
|
self._console.print(
|
|
537
|
-
f"[dim]No matches found for '{msg.search_term}' "
|
|
570
|
+
f" │ [dim]No matches found for '{msg.search_term}' "
|
|
538
571
|
f"in {msg.directory}[/dim]"
|
|
539
572
|
)
|
|
540
573
|
return
|
|
@@ -551,7 +584,7 @@ class RichConsoleRenderer:
|
|
|
551
584
|
file_matches = by_file[file_path]
|
|
552
585
|
match_word = "match" if len(file_matches) == 1 else "matches"
|
|
553
586
|
self._console.print(
|
|
554
|
-
f"
|
|
587
|
+
f" │ [dim]📄 {file_path} ({len(file_matches)} {match_word})[/dim]"
|
|
555
588
|
)
|
|
556
589
|
|
|
557
590
|
# Show each match with line number and content
|
|
@@ -577,15 +610,16 @@ class RichConsoleRenderer:
|
|
|
577
610
|
highlighted_line = line
|
|
578
611
|
|
|
579
612
|
ln = match.line_number
|
|
580
|
-
self._console.print(
|
|
613
|
+
self._console.print(
|
|
614
|
+
f" │ [dim]{ln:4d}[/dim] │ {highlighted_line}"
|
|
615
|
+
)
|
|
581
616
|
else:
|
|
582
617
|
# Concise mode (default): Show only file summaries
|
|
583
|
-
self._console.print("")
|
|
584
618
|
for file_path in sorted(by_file.keys()):
|
|
585
619
|
file_matches = by_file[file_path]
|
|
586
620
|
match_word = "match" if len(file_matches) == 1 else "matches"
|
|
587
621
|
self._console.print(
|
|
588
|
-
f"[dim]📄 {file_path} ({len(file_matches)} {match_word})[/dim]"
|
|
622
|
+
f" │ [dim]📄 {file_path} ({len(file_matches)} {match_word})[/dim]"
|
|
589
623
|
)
|
|
590
624
|
|
|
591
625
|
# Summary - subtle
|
|
@@ -593,13 +627,10 @@ class RichConsoleRenderer:
|
|
|
593
627
|
file_word = "file" if len(by_file) == 1 else "files"
|
|
594
628
|
num_files = len(by_file)
|
|
595
629
|
self._console.print(
|
|
596
|
-
f"[dim]Found {msg.total_matches} {match_word} "
|
|
630
|
+
f" │ [dim]Found {msg.total_matches} {match_word} "
|
|
597
631
|
f"across {num_files} {file_word}[/dim]"
|
|
598
632
|
)
|
|
599
633
|
|
|
600
|
-
# Trailing newline for spinner separation
|
|
601
|
-
self._console.print()
|
|
602
|
-
|
|
603
634
|
# =========================================================================
|
|
604
635
|
# Diff
|
|
605
636
|
# =========================================================================
|
|
@@ -616,11 +647,12 @@ class RichConsoleRenderer:
|
|
|
616
647
|
icon = op_icons.get(msg.operation, "📄")
|
|
617
648
|
op_color = op_colors.get(msg.operation, "white")
|
|
618
649
|
|
|
619
|
-
|
|
620
|
-
|
|
650
|
+
if not self._is_continuation(DiffMessage):
|
|
651
|
+
banner = self._format_banner("edit_file", "EDIT FILE")
|
|
652
|
+
self._console.print(f"\n{banner}")
|
|
653
|
+
|
|
621
654
|
self._console.print(
|
|
622
|
-
f"
|
|
623
|
-
f"{icon} [{op_color}]{msg.operation.upper()}[/{op_color}] "
|
|
655
|
+
f" ├─ {icon} [{op_color}]{msg.operation.upper()}[/{op_color}] "
|
|
624
656
|
f"[bold cyan]{msg.path}[/bold cyan]"
|
|
625
657
|
)
|
|
626
658
|
|
|
@@ -654,33 +686,33 @@ class RichConsoleRenderer:
|
|
|
654
686
|
|
|
655
687
|
def _render_shell_start(self, msg: ShellStartMessage) -> None:
|
|
656
688
|
"""Render shell command start notification."""
|
|
657
|
-
# Skip for sub-agents unless verbose mode
|
|
658
689
|
if self._should_suppress_subagent_output():
|
|
659
690
|
return
|
|
660
691
|
|
|
661
|
-
# Escape command to prevent Rich markup injection
|
|
662
692
|
safe_command = escape_rich_markup(msg.command)
|
|
663
|
-
# Header showing command is starting
|
|
664
|
-
banner = self._format_banner("shell_command", "SHELL COMMAND")
|
|
665
693
|
|
|
666
|
-
|
|
694
|
+
if not self._is_continuation(ShellStartMessage):
|
|
695
|
+
banner = self._format_banner("shell_command", "SHELL COMMAND")
|
|
696
|
+
self._console.print(f"\n{banner}")
|
|
697
|
+
|
|
698
|
+
# Tree child with command
|
|
667
699
|
if msg.background:
|
|
668
700
|
self._console.print(
|
|
669
|
-
f"
|
|
701
|
+
f" ├─ 🚀 [dim]$ {safe_command}[/dim] [bold magenta][BACKGROUND 🌙][/bold magenta]"
|
|
670
702
|
)
|
|
671
703
|
else:
|
|
672
|
-
self._console.print(f"
|
|
704
|
+
self._console.print(f" ├─ 🚀 [dim]$ {safe_command}[/dim]")
|
|
673
705
|
|
|
674
706
|
# Show working directory if specified
|
|
675
707
|
if msg.cwd:
|
|
676
708
|
safe_cwd = escape_rich_markup(msg.cwd)
|
|
677
|
-
self._console.print(f"[dim]📂 Working directory: {safe_cwd}[/dim]")
|
|
709
|
+
self._console.print(f" │ [dim]📂 Working directory: {safe_cwd}[/dim]")
|
|
678
710
|
|
|
679
711
|
# Show timeout or background status
|
|
680
712
|
if msg.background:
|
|
681
|
-
self._console.print("[dim]⏱ Runs detached (no timeout)[/dim]")
|
|
713
|
+
self._console.print(" │ [dim]⏱ Runs detached (no timeout)[/dim]")
|
|
682
714
|
else:
|
|
683
|
-
self._console.print(f"[dim]⏱ Timeout: {msg.timeout}s[/dim]")
|
|
715
|
+
self._console.print(f" │ [dim]⏱ Timeout: {msg.timeout}s[/dim]")
|
|
684
716
|
|
|
685
717
|
def _render_shell_line(self, msg: ShellLineMessage) -> None:
|
|
686
718
|
"""Render shell output line preserving ANSI codes and carriage returns."""
|
|
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
|
|
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.414 → code_puppy-0.0.415}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.414 → code_puppy-0.0.415}/code_puppy/command_line/mcp/custom_server_installer.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.414 → code_puppy-0.0.415}/code_puppy/command_line/model_picker_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.414 → code_puppy-0.0.415}/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
|