code-puppy 0.0.612__tar.gz → 0.0.613__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.612 → code_puppy-0.0.613}/PKG-INFO +1 -1
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_key_listeners.py +54 -4
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/terminal_utils.py +81 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/pyproject.toml +1 -1
- {code_puppy-0.0.612 → code_puppy-0.0.613}/.gitignore +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/LICENSE +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_builder.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_compaction.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_diagnostics.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_history.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_non_streaming_render.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_run_signals.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_runtime.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_steer_processor.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/run_stats.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/smooth_stream.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/autosave_search.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/config_apply.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/diff_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/file_index.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/judges_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp_binding_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/pagination.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_catalog.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_render.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_schema.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_settings.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_shims.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_values.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/shell_passthrough.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/wiggum_state.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/aliases.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/engine.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/executor.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/matcher.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/models.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/registry.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/validator.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/list_filtering.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/main.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/agent_bindings.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_prompts/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_prompts/hook_creator.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bar_painters.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bar_rendering.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bottom_bar.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_actions.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_completion.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_display.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_history.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_keys.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_paste.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/line_editor.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/pause_controller.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/prompt_prefix_style.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/rich_renderer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/run_ui.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/run_ui_wiring.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/transcript_guard.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_descriptions.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models.json +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/discovery.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/downloader.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/installer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/metadata.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/discovery.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/token.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/inline_view.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/side_query.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/test_fast_mode.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/usage.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/stripper.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/example_custom_command/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/detector.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/test_detector.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/fork/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/fork/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/client.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/reporter.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_creator/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/no_tools/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/completer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu_layout.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/pop_command/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_model.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_render.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/packer.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/schema.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/state.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/wings.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/commands.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/picker.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/quick_resume/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/review_pr/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/stack_dump/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/payload.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/prompt_patch.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/runner.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/statusline_command.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/state.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/README.md +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/bundled_palettes.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/content_styles.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/osc_palette.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/picker.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/rich_themes.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/themes.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/trust.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/trust_notice.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/models.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/registry.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wide_completion_menu/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wide_completion_menu/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/judge.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/judge_config.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/state.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/provider_credentials.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/provider_identity.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_lifecycle.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_migration.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_locator_resolver.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_page_snapshot.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_semantic_interactions.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/image_tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/model_tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/subagent_invocation.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/undo_manager.py +0 -0
- {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/version_checker.py +0 -0
|
@@ -533,7 +533,18 @@ def _coalesce_paste_burst(items: list) -> Optional[str]:
|
|
|
533
533
|
return None
|
|
534
534
|
if any(kind != "char" for kind, _ in items):
|
|
535
535
|
return None
|
|
536
|
-
|
|
536
|
+
payload = "".join(value for _, value in items)
|
|
537
|
+
if "\x1b" in payload and _PASTE_OPEN not in payload and _PASTE_CLOSE not in payload:
|
|
538
|
+
# With ENABLE_VIRTUAL_TERMINAL_INPUT, special keys arrive as VT
|
|
539
|
+
# escape sequences instead of \x00/\xe0 extended-key pairs — an
|
|
540
|
+
# arrow press (or a key-repeat flood of them) is a 3+ char all-
|
|
541
|
+
# text burst that would otherwise classify as a paste and land
|
|
542
|
+
# in the buffer as literal ESC garbage. Real terminal pastes are
|
|
543
|
+
# always bracketed while ?2004h is armed, so an ESC-bearing
|
|
544
|
+
# burst WITHOUT markers is typing: dispatch per key and let the
|
|
545
|
+
# editor's CSI state machine handle the sequences.
|
|
546
|
+
return None
|
|
547
|
+
return payload
|
|
537
548
|
|
|
538
549
|
|
|
539
550
|
def _editor_paste_active() -> bool:
|
|
@@ -599,11 +610,35 @@ def _listen_windows(
|
|
|
599
610
|
on_cancel_agent: Optional[Callable[[], None]] = None,
|
|
600
611
|
suspend_event: Optional[threading.Event] = None,
|
|
601
612
|
released_event: Optional[threading.Event] = None,
|
|
613
|
+
) -> None:
|
|
614
|
+
"""Windows listener entry — wraps the loop so VT input is ALWAYS
|
|
615
|
+
released on the way out (the parent shell expects classic key
|
|
616
|
+
events; see ``enable_windows_vt_input`` for the scope contract)."""
|
|
617
|
+
from code_puppy.terminal_utils import disable_windows_vt_input
|
|
618
|
+
|
|
619
|
+
try:
|
|
620
|
+
_listen_windows_loop(
|
|
621
|
+
stop_event, on_escape, on_cancel_agent, suspend_event, released_event
|
|
622
|
+
)
|
|
623
|
+
finally:
|
|
624
|
+
disable_windows_vt_input()
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
def _listen_windows_loop(
|
|
628
|
+
stop_event: threading.Event,
|
|
629
|
+
on_escape: Callable[[], None],
|
|
630
|
+
on_cancel_agent: Optional[Callable[[], None]] = None,
|
|
631
|
+
suspend_event: Optional[threading.Event] = None,
|
|
632
|
+
released_event: Optional[threading.Event] = None,
|
|
602
633
|
) -> None:
|
|
603
634
|
import msvcrt
|
|
604
635
|
import time
|
|
605
636
|
|
|
606
|
-
from code_puppy.terminal_utils import
|
|
637
|
+
from code_puppy.terminal_utils import (
|
|
638
|
+
disable_windows_vt_input,
|
|
639
|
+
enable_windows_vt_input,
|
|
640
|
+
ensure_ctrl_c_disabled,
|
|
641
|
+
)
|
|
607
642
|
|
|
608
643
|
cancel_agent_char = _resolve_cancel_char(on_cancel_agent)
|
|
609
644
|
|
|
@@ -612,12 +647,17 @@ def _listen_windows(
|
|
|
612
647
|
next_clamp_check = 0.0 # first lap re-clamps immediately
|
|
613
648
|
|
|
614
649
|
while not stop_event.is_set():
|
|
615
|
-
# Honor suspend
|
|
616
|
-
#
|
|
650
|
+
# Honor suspend. Whoever suspended us (prompt_toolkit TUIs, the
|
|
651
|
+
# ask_user picker) reads via ReadConsoleInput and expects classic
|
|
652
|
+
# key events — hand the console back without VT input, and
|
|
653
|
+
# re-clamp immediately (not up to 1s later) on resume so a paste
|
|
654
|
+
# right after a menu closes isn't dropped.
|
|
617
655
|
if suspend_event is not None and suspend_event.is_set():
|
|
656
|
+
disable_windows_vt_input()
|
|
618
657
|
_wait_while_suspended(stop_event, suspend_event, released_event)
|
|
619
658
|
if stop_event.is_set():
|
|
620
659
|
return
|
|
660
|
+
next_clamp_check = 0.0
|
|
621
661
|
continue
|
|
622
662
|
|
|
623
663
|
# Self-healing console clamp. Anything sharing the console (shell
|
|
@@ -639,6 +679,16 @@ def _listen_windows(
|
|
|
639
679
|
ensure_ctrl_c_disabled()
|
|
640
680
|
except Exception:
|
|
641
681
|
pass
|
|
682
|
+
# VT-input clamp, same self-healing cadence: without
|
|
683
|
+
# ENABLE_VIRTUAL_TERMINAL_INPUT, ConPTY silently drops the
|
|
684
|
+
# bracketed-paste markers Windows Terminal sends for an
|
|
685
|
+
# image-only Ctrl+V (an EMPTY paste has no key events to
|
|
686
|
+
# synthesize) — the Windows image-paste-goes-dead bug.
|
|
687
|
+
# No-op (one GetConsoleMode) when the flag is already set.
|
|
688
|
+
try:
|
|
689
|
+
enable_windows_vt_input()
|
|
690
|
+
except Exception:
|
|
691
|
+
pass
|
|
642
692
|
|
|
643
693
|
try:
|
|
644
694
|
if msvcrt.kbhit():
|
|
@@ -154,6 +154,87 @@ def ensure_windows_vt_processing() -> bool:
|
|
|
154
154
|
return False # can't confirm VT -> fail safe, degrade to classic
|
|
155
155
|
|
|
156
156
|
|
|
157
|
+
#: ENABLE_VIRTUAL_TERMINAL_INPUT — stdin delivers VT sequences verbatim.
|
|
158
|
+
_ENABLE_VIRTUAL_TERMINAL_INPUT = 0x0200
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def enable_windows_vt_input() -> bool:
|
|
162
|
+
"""Enable VT input (``ENABLE_VIRTUAL_TERMINAL_INPUT``) on stdin, verified.
|
|
163
|
+
|
|
164
|
+
ConPTY only forwards terminal-side VT input sequences to a client
|
|
165
|
+
whose stdin carries this flag. Bracketed-paste markers
|
|
166
|
+
(``ESC[200~``/``ESC[201~``) have no key-event representation, so
|
|
167
|
+
without the flag ConPTY silently DROPS them — and Windows Terminal
|
|
168
|
+
pastes an image-only clipboard as an EMPTY bracketed paste, meaning
|
|
169
|
+
the app receives NOTHING and Ctrl+V image capture never fires.
|
|
170
|
+
(Text pastes still arrive as synthesized keystrokes, which is why
|
|
171
|
+
only image paste broke.) Verified live via console probe 2026-07-08:
|
|
172
|
+
mode ``0x1f7`` → 0 chars delivered; mode ``0x3f7`` → the 12-char
|
|
173
|
+
empty bracketed paste.
|
|
174
|
+
|
|
175
|
+
Scope contract: only the Windows key listener enables this, while it
|
|
176
|
+
owns stdin — and it disables it around suspensions, because
|
|
177
|
+
``ReadConsoleInput``-based readers (prompt_toolkit TUIs) expect
|
|
178
|
+
classic key events. Returns True when the flag is CONFIRMED set via
|
|
179
|
+
a mode read-back (mirrors :func:`ensure_windows_vt_processing`;
|
|
180
|
+
ancient hosts silently no-op ``SetConsoleMode``). Never raises.
|
|
181
|
+
"""
|
|
182
|
+
if platform.system() != "Windows":
|
|
183
|
+
return False
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
import ctypes
|
|
187
|
+
|
|
188
|
+
kernel32 = ctypes.windll.kernel32
|
|
189
|
+
stdin_handle = kernel32.GetStdHandle(-10) # STD_INPUT_HANDLE
|
|
190
|
+
|
|
191
|
+
mode = ctypes.c_ulong()
|
|
192
|
+
if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(mode)):
|
|
193
|
+
return False
|
|
194
|
+
if mode.value & _ENABLE_VIRTUAL_TERMINAL_INPUT:
|
|
195
|
+
return True # already on
|
|
196
|
+
|
|
197
|
+
if not kernel32.SetConsoleMode(
|
|
198
|
+
stdin_handle, mode.value | _ENABLE_VIRTUAL_TERMINAL_INPUT
|
|
199
|
+
):
|
|
200
|
+
return False
|
|
201
|
+
|
|
202
|
+
verify = ctypes.c_ulong()
|
|
203
|
+
if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(verify)):
|
|
204
|
+
return False
|
|
205
|
+
return bool(verify.value & _ENABLE_VIRTUAL_TERMINAL_INPUT)
|
|
206
|
+
except Exception:
|
|
207
|
+
return False
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
def disable_windows_vt_input() -> None:
|
|
211
|
+
"""Clear ``ENABLE_VIRTUAL_TERMINAL_INPUT`` from stdin (best-effort).
|
|
212
|
+
|
|
213
|
+
Called by the Windows key listener before parking for a suspension
|
|
214
|
+
and on exit, so ``ReadConsoleInput``-based readers (prompt_toolkit
|
|
215
|
+
TUIs, the parent shell after we quit) get classic key events instead
|
|
216
|
+
of raw VT sequences. Never raises.
|
|
217
|
+
"""
|
|
218
|
+
if platform.system() != "Windows":
|
|
219
|
+
return
|
|
220
|
+
|
|
221
|
+
try:
|
|
222
|
+
import ctypes
|
|
223
|
+
|
|
224
|
+
kernel32 = ctypes.windll.kernel32
|
|
225
|
+
stdin_handle = kernel32.GetStdHandle(-10) # STD_INPUT_HANDLE
|
|
226
|
+
|
|
227
|
+
mode = ctypes.c_ulong()
|
|
228
|
+
if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(mode)):
|
|
229
|
+
return
|
|
230
|
+
if mode.value & _ENABLE_VIRTUAL_TERMINAL_INPUT:
|
|
231
|
+
kernel32.SetConsoleMode(
|
|
232
|
+
stdin_handle, mode.value & ~_ENABLE_VIRTUAL_TERMINAL_INPUT
|
|
233
|
+
)
|
|
234
|
+
except Exception:
|
|
235
|
+
pass
|
|
236
|
+
|
|
237
|
+
|
|
157
238
|
def flush_windows_keyboard_buffer() -> None:
|
|
158
239
|
"""Flush the Windows keyboard buffer.
|
|
159
240
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.612 → code_puppy-0.0.613}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.612 → code_puppy-0.0.613}/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.612 → code_puppy-0.0.613}/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.612 → code_puppy-0.0.613}/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.612 → code_puppy-0.0.613}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|