code-puppy 0.0.563__tar.gz → 0.0.565__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.563 → code_puppy-0.0.565}/PKG-INFO +1 -1
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/config.py +13 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/renderers.py +82 -28
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/rich_renderer.py +45 -14
- {code_puppy-0.0.563 → code_puppy-0.0.565}/pyproject.toml +1 -1
- {code_puppy-0.0.563 → code_puppy-0.0.565}/.gitignore +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/LICENSE +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_builder.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_compaction.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_diagnostics.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_history.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_key_listeners.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_non_streaming_render.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_run_signals.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_runtime.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_steer_processor.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/run_stats.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/smooth_stream.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/config_apply.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/diff_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/file_index.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/judges_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp_binding_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/pagination.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_catalog.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_render.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_schema.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_settings.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_shims.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_values.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/shell_passthrough.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/wiggum_state.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/aliases.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/engine.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/executor.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/matcher.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/models.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/registry.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/validator.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/list_filtering.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/main.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/agent_bindings.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_prompts/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_prompts/hook_creator.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/pause_controller.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/console_spinner.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/spinner_base.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_descriptions.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models.json +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/discovery.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/downloader.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/installer.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/metadata.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/line_editor.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/steering_prompt.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/discovery.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/token.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/test_fast_mode.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/usage.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/stripper.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/example_custom_command/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/detector.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/test_detector.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_creator/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/completer.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/pop_command/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_menu.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_model.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_render.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/commands.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/packer.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/schema.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/state.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/wings.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/review_pr/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/payload.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/prompt_patch.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/runner.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/statusline_command.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/status_api.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/README.md +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/bundled_palettes.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/content_styles.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/osc_palette.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/picker.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/rich_themes.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/themes.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/models.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/registry.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wide_completion_menu/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wide_completion_menu/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/judge.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/judge_config.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/state.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/provider_credentials.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/provider_identity.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/image_tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/model_tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/subagent_invocation.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/uvx_detection.py +0 -0
- {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/version_checker.py +0 -0
|
@@ -184,6 +184,17 @@ def get_enable_streaming() -> bool:
|
|
|
184
184
|
return str(val).lower() in ("1", "true", "yes", "on")
|
|
185
185
|
|
|
186
186
|
|
|
187
|
+
def get_suppress_directory_listing() -> bool:
|
|
188
|
+
"""
|
|
189
|
+
Get the suppress_directory_listing configuration value.
|
|
190
|
+
Returns True if directory listing displays should be suppressed, False otherwise.
|
|
191
|
+
"""
|
|
192
|
+
val = get_value("suppress_directory_listing")
|
|
193
|
+
if val is None:
|
|
194
|
+
return True # Default to True (suppress by default)
|
|
195
|
+
return str(val).lower() in ("1", "true", "yes", "on")
|
|
196
|
+
|
|
197
|
+
|
|
187
198
|
DEFAULT_SECTION = "puppy"
|
|
188
199
|
REQUIRED_KEYS = ["puppy_name", "owner_name"]
|
|
189
200
|
|
|
@@ -339,6 +350,8 @@ def get_config_keys():
|
|
|
339
350
|
default_keys.append("max_hook_retries")
|
|
340
351
|
# Add streaming control key
|
|
341
352
|
default_keys.append("enable_streaming")
|
|
353
|
+
# Add suppress directory listing key
|
|
354
|
+
default_keys.append("suppress_directory_listing")
|
|
342
355
|
# Add cancel agent key configuration
|
|
343
356
|
default_keys.append("cancel_agent_key")
|
|
344
357
|
# Add max pause seconds configuration (used by pause/steer feature to
|
|
@@ -66,21 +66,26 @@ def _get_suppress_thinking() -> bool:
|
|
|
66
66
|
return _suppress_thinking_getter()
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
#
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
69
|
+
# Low-mode peek formatting.
|
|
70
|
+
_PEEK_INDENT = " "
|
|
71
|
+
_PEEK_MAX_LEN = 80
|
|
72
|
+
|
|
73
|
+
# In low mode, these types condense to a dim ``label: summary`` line.
|
|
74
|
+
_LOW_MODE_PEEK_LABELS = {
|
|
75
|
+
MessageType.INFO: "info",
|
|
76
|
+
MessageType.SUCCESS: "success",
|
|
77
|
+
MessageType.WARNING: "warning",
|
|
78
|
+
MessageType.TOOL_OUTPUT: "tool",
|
|
79
|
+
MessageType.COMMAND_OUTPUT: "output",
|
|
80
|
+
MessageType.FILE_OPERATION: "file",
|
|
81
|
+
MessageType.AGENT_REASONING: "thinking",
|
|
82
|
+
MessageType.PLANNED_NEXT_STEPS: "plan",
|
|
83
|
+
MessageType.SYSTEM: "system",
|
|
84
|
+
MessageType.DEBUG: "debug",
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
# Derived set kept for readability / backwards compatibility.
|
|
88
|
+
_LOW_MODE_COLLAPSIBLE = frozenset(_LOW_MODE_PEEK_LABELS)
|
|
84
89
|
|
|
85
90
|
# Types suppressed by suppress_informational_messages toggle.
|
|
86
91
|
_INFORMATIONAL_TYPES = frozenset(
|
|
@@ -101,15 +106,12 @@ _THINKING_TYPES = frozenset(
|
|
|
101
106
|
|
|
102
107
|
|
|
103
108
|
def _should_suppress_legacy(message: UIMessage) -> bool:
|
|
104
|
-
"""Return True if *message* should be
|
|
109
|
+
"""Return True if *message* should be dropped entirely.
|
|
105
110
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
callbacks always see the full data.
|
|
111
|
+
Only ``suppress_*`` toggles drop messages; low mode condenses via
|
|
112
|
+
``_build_legacy_peek``. Render-only — autosave/callbacks see full data.
|
|
109
113
|
"""
|
|
110
|
-
#
|
|
111
|
-
# (the user asked for maximum visibility). This mirrors
|
|
112
|
-
# rich_renderer._do_render() and event_stream_handler._suppress_thinking_stream().
|
|
114
|
+
# Suppress toggles; high mode overrides them.
|
|
113
115
|
if (
|
|
114
116
|
message.type in _INFORMATIONAL_TYPES
|
|
115
117
|
and _get_output_level() != "high"
|
|
@@ -122,13 +124,57 @@ def _should_suppress_legacy(message: UIMessage) -> bool:
|
|
|
122
124
|
and _get_suppress_thinking()
|
|
123
125
|
):
|
|
124
126
|
return True
|
|
125
|
-
# Low output mode collapses everything except errors, responses,
|
|
126
|
-
# and blocking prompts.
|
|
127
|
-
if _get_output_level() == "low" and message.type in _LOW_MODE_COLLAPSIBLE:
|
|
128
|
-
return True
|
|
129
127
|
return False
|
|
130
128
|
|
|
131
129
|
|
|
130
|
+
def _summarize_peek_content(content) -> str:
|
|
131
|
+
"""Collapse arbitrary message content to a single truncated line."""
|
|
132
|
+
if isinstance(content, Text):
|
|
133
|
+
text = content.plain
|
|
134
|
+
elif isinstance(content, str):
|
|
135
|
+
text = content
|
|
136
|
+
else:
|
|
137
|
+
text = str(content)
|
|
138
|
+
# First non-empty line keeps the peek to a single row.
|
|
139
|
+
first_line = next((ln for ln in text.splitlines() if ln.strip()), "").strip()
|
|
140
|
+
if len(first_line) > _PEEK_MAX_LEN:
|
|
141
|
+
first_line = first_line[: _PEEK_MAX_LEN - 3] + "..."
|
|
142
|
+
return first_line
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def _build_legacy_peek(message: UIMessage) -> Optional[Text]:
|
|
146
|
+
"""Return a dim one-line peek for low mode, or ``None`` to render fully.
|
|
147
|
+
|
|
148
|
+
Returns pre-styled ``Text`` to avoid Rich markup mis-parsing.
|
|
149
|
+
"""
|
|
150
|
+
if _get_output_level() != "low":
|
|
151
|
+
return None
|
|
152
|
+
label = _LOW_MODE_PEEK_LABELS.get(message.type)
|
|
153
|
+
if label is None:
|
|
154
|
+
return None
|
|
155
|
+
summary = _summarize_peek_content(message.content)
|
|
156
|
+
body = f"{label}: {summary}" if summary else label
|
|
157
|
+
return Text(f"{_PEEK_INDENT}{body}", style="dim")
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def _apply_legacy_density(message: UIMessage) -> Optional[UIMessage]:
|
|
161
|
+
"""Apply suppress / peek / full-render decision.
|
|
162
|
+
|
|
163
|
+
Used by both legacy renderers.
|
|
164
|
+
"""
|
|
165
|
+
if _should_suppress_legacy(message):
|
|
166
|
+
return None
|
|
167
|
+
peek = _build_legacy_peek(message)
|
|
168
|
+
if peek is not None:
|
|
169
|
+
return UIMessage(
|
|
170
|
+
type=message.type,
|
|
171
|
+
content=peek,
|
|
172
|
+
timestamp=message.timestamp,
|
|
173
|
+
metadata=message.metadata,
|
|
174
|
+
)
|
|
175
|
+
return message
|
|
176
|
+
|
|
177
|
+
|
|
132
178
|
# Threshold for emitting a ``[buffered N messages during pause]`` indicator
|
|
133
179
|
# when the buffer is drained. Below this we stay silent; the user pressed
|
|
134
180
|
# pause, output buffered, output flushed — no extra noise needed.
|
|
@@ -275,6 +321,12 @@ class InteractiveRenderer(MessageRenderer):
|
|
|
275
321
|
await self._handle_human_input_request(message)
|
|
276
322
|
return
|
|
277
323
|
|
|
324
|
+
# Output-level / suppress-toggle gate (render-only filtering).
|
|
325
|
+
resolved = _apply_legacy_density(message)
|
|
326
|
+
if resolved is None:
|
|
327
|
+
return
|
|
328
|
+
message = resolved
|
|
329
|
+
|
|
278
330
|
from code_puppy.messaging.pause_controller import get_pause_controller
|
|
279
331
|
|
|
280
332
|
pc = get_pause_controller()
|
|
@@ -387,9 +439,11 @@ class SynchronousInteractiveRenderer:
|
|
|
387
439
|
self._handle_human_input_request(message)
|
|
388
440
|
return
|
|
389
441
|
|
|
390
|
-
# Output-level / suppress-toggle gate
|
|
391
|
-
|
|
442
|
+
# Output-level / suppress-toggle gate.
|
|
443
|
+
resolved = _apply_legacy_density(message)
|
|
444
|
+
if resolved is None:
|
|
392
445
|
return
|
|
446
|
+
message = resolved
|
|
393
447
|
|
|
394
448
|
from code_puppy.messaging.pause_controller import get_pause_controller
|
|
395
449
|
|
|
@@ -21,6 +21,7 @@ from rich.table import Table
|
|
|
21
21
|
from code_puppy.config import (
|
|
22
22
|
get_output_level,
|
|
23
23
|
get_subagent_verbose,
|
|
24
|
+
get_suppress_directory_listing,
|
|
24
25
|
get_suppress_informational_messages,
|
|
25
26
|
get_suppress_thinking_messages,
|
|
26
27
|
)
|
|
@@ -122,6 +123,9 @@ def _is_paused() -> bool:
|
|
|
122
123
|
# Rich Console Renderer
|
|
123
124
|
# =============================================================================
|
|
124
125
|
|
|
126
|
+
# Max length for low-mode peek lines.
|
|
127
|
+
_PEEK_MAX_LEN = 100
|
|
128
|
+
|
|
125
129
|
|
|
126
130
|
class RichConsoleRenderer:
|
|
127
131
|
"""Rich console implementation of the renderer protocol.
|
|
@@ -198,17 +202,18 @@ class RichConsoleRenderer:
|
|
|
198
202
|
|
|
199
203
|
# -- Output-level density helpers ----------------------------------------
|
|
200
204
|
|
|
201
|
-
#
|
|
202
|
-
#
|
|
205
|
+
# Types that render fully even in low mode: interactive prompts,
|
|
206
|
+
# structural controls, and signal messages (invocations, responses).
|
|
207
|
+
# StatusPanelMessage excluded — it’s multi-line, gets a peek instead.
|
|
203
208
|
_NEVER_COLLAPSE = (
|
|
204
209
|
UserInputRequest,
|
|
205
210
|
ConfirmationRequest,
|
|
206
211
|
SelectionRequest,
|
|
207
212
|
SpinnerControl,
|
|
208
213
|
DividerMessage,
|
|
209
|
-
StatusPanelMessage,
|
|
210
214
|
VersionCheckMessage,
|
|
211
215
|
AgentResponseMessage,
|
|
216
|
+
SubAgentInvocationMessage,
|
|
212
217
|
SubAgentResponseMessage,
|
|
213
218
|
)
|
|
214
219
|
|
|
@@ -230,14 +235,27 @@ class RichConsoleRenderer:
|
|
|
230
235
|
return True
|
|
231
236
|
|
|
232
237
|
def _render_peek(self, message: AnyMessage) -> None:
|
|
233
|
-
"""Emit a single dim line
|
|
238
|
+
"""Emit a single dim peek line for low mode.
|
|
234
239
|
|
|
235
|
-
|
|
236
|
-
is ``low``.
|
|
240
|
+
Body is escaped to avoid Rich markup mis-parsing.
|
|
237
241
|
"""
|
|
238
242
|
peek = self._build_peek_text(message)
|
|
239
|
-
if peek:
|
|
240
|
-
|
|
243
|
+
if not peek:
|
|
244
|
+
return
|
|
245
|
+
if len(peek) > _PEEK_MAX_LEN:
|
|
246
|
+
peek = peek[: _PEEK_MAX_LEN - 1] + "\u2026"
|
|
247
|
+
self._console.print(f"[dim] {escape_rich_markup(peek)}[/dim]")
|
|
248
|
+
|
|
249
|
+
@staticmethod
|
|
250
|
+
def _peek_label_for_level(level: MessageLevel) -> str:
|
|
251
|
+
"""Map a text message level to its ``label: summary`` peek label."""
|
|
252
|
+
labels = {
|
|
253
|
+
MessageLevel.WARNING: "warning",
|
|
254
|
+
MessageLevel.SUCCESS: "success",
|
|
255
|
+
MessageLevel.INFO: "info",
|
|
256
|
+
MessageLevel.DEBUG: "debug",
|
|
257
|
+
}
|
|
258
|
+
return labels.get(level, "info")
|
|
241
259
|
|
|
242
260
|
def _build_peek_text(self, message: AnyMessage) -> str: # noqa: C901
|
|
243
261
|
"""Build the human-readable one-liner for a collapsed message."""
|
|
@@ -272,7 +290,11 @@ class RichConsoleRenderer:
|
|
|
272
290
|
tokens = max(1, len(message.reasoning) // 3)
|
|
273
291
|
return f"thinking: ~{tokens} tokens"
|
|
274
292
|
if isinstance(message, SubAgentInvocationMessage):
|
|
275
|
-
|
|
293
|
+
prompt = message.prompt.replace("\n", " ").strip()
|
|
294
|
+
return f"invoke_agent: {message.agent_name} -- '{prompt}'"
|
|
295
|
+
if isinstance(message, SubAgentResponseMessage):
|
|
296
|
+
resp = message.response.replace("\n", " ").strip()
|
|
297
|
+
return f"agent_response: {message.agent_name} -- '{resp}'"
|
|
276
298
|
if isinstance(message, UniversalConstructorMessage):
|
|
277
299
|
tool = f" tool={message.tool_name}" if message.tool_name else ""
|
|
278
300
|
return f"constructor: {message.action}{tool}"
|
|
@@ -280,13 +302,17 @@ class RichConsoleRenderer:
|
|
|
280
302
|
return f"skills: {len(message.skills)} available"
|
|
281
303
|
if isinstance(message, SkillActivateMessage):
|
|
282
304
|
return f"skill: activated {message.skill_name}"
|
|
305
|
+
if isinstance(message, StatusPanelMessage):
|
|
306
|
+
fields = ", ".join(f"{k}={v}" for k, v in message.fields.items())
|
|
307
|
+
summary = f"{message.title} ({fields})" if fields else message.title
|
|
308
|
+
return f"status: {summary}"
|
|
283
309
|
if isinstance(message, TextMessage):
|
|
284
|
-
#
|
|
310
|
+
# label: text format.
|
|
285
311
|
text = message.text
|
|
286
312
|
if len(text) > 80:
|
|
287
313
|
text = text[:77] + "..."
|
|
288
|
-
|
|
289
|
-
return f"{
|
|
314
|
+
label = self._peek_label_for_level(message.level)
|
|
315
|
+
return f"{label}: {text}"
|
|
290
316
|
return ""
|
|
291
317
|
|
|
292
318
|
# =========================================================================
|
|
@@ -462,8 +488,10 @@ class RichConsoleRenderer:
|
|
|
462
488
|
elif isinstance(message, SubAgentInvocationMessage):
|
|
463
489
|
self._render_subagent_invocation(message)
|
|
464
490
|
elif isinstance(message, SubAgentResponseMessage):
|
|
465
|
-
#
|
|
466
|
-
|
|
491
|
+
# High mode renders via streaming or render_result_without_streaming
|
|
492
|
+
# in subagent_invocation.py. Non-high modes render here.
|
|
493
|
+
if get_output_level() != "high":
|
|
494
|
+
self._render_subagent_response(message)
|
|
467
495
|
elif isinstance(message, UniversalConstructorMessage):
|
|
468
496
|
self._render_universal_constructor(message)
|
|
469
497
|
elif isinstance(message, UserInputRequest):
|
|
@@ -554,6 +582,9 @@ class RichConsoleRenderer:
|
|
|
554
582
|
if self._should_suppress_subagent_output():
|
|
555
583
|
return
|
|
556
584
|
|
|
585
|
+
if get_suppress_directory_listing():
|
|
586
|
+
return
|
|
587
|
+
|
|
557
588
|
import os
|
|
558
589
|
from collections import defaultdict
|
|
559
590
|
|
|
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.563 → code_puppy-0.0.565}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.563 → code_puppy-0.0.565}/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
|
{code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/silence_warning_command.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
|
{code_puppy-0.0.563 → code_puppy-0.0.565}/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.563 → code_puppy-0.0.565}/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
|