code-puppy 0.0.893__tar.gz → 0.0.894__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.893 → code_puppy-0.0.894}/PKG-INFO +1 -1
- code_puppy-0.0.894/code_puppy/tools/approval_feedback.py +29 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/common.py +9 -5
- {code_puppy-0.0.893 → code_puppy-0.0.894}/pyproject.toml +1 -1
- {code_puppy-0.0.893 → code_puppy-0.0.894}/.gitignore +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/LICENSE +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/README.md +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/_plugin_i18n_lifecycle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/_pydantic_tool_helpers.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/_pydantic_video_patch.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agent_completion_inbox.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agent_execution_context.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_builder.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_code_mode.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_code_mode_guidance.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_compaction.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_diagnostics.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_foreign_thinking.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_history.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_key_listeners.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_model_message_transform.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_non_streaming_render.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_output_limits.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_run_signals.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_runtime.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_steer_processor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_subagent_recursion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_windows_console.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/_wire_tool_names.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_model_judge.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/agent_web_retriever.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/retry_checkpoint.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/retry_profiles.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/run_stats.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/smooth_stream.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/stream_status.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/agents/thinking_output.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/asyncio_cleanup.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/atomic_io.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/atomic_json.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/ca_bundle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/capabilities/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/capabilities/compaction.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/capabilities/eager_timing.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/claude_oauth_transport.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/add_model_details.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/add_model_menus.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/add_model_vllm.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/autosave_search.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/completers.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/completion_cache.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/config_apply.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/file_index.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/help_catalog.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/help_overlay.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/image_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/mcp_servers_store.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/trust_command.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp_binding_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/menu_session.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/model_settings_defs.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/pagination.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/refresh_models.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/session_browser.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/session_browser_data.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu_catalog.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu_schema.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu_settings.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu_shims.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/set_menu_values.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/shell_passthrough.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/tui_style.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/config.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/config_file.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/diagnostics.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/events/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/events/bridge.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/file_completion_io.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/file_completion_tokens.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/gemini_common.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/README.md +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/aliases.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/engine.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/executor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/matcher.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/models.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/registry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/hook_engine/validator.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/http_retry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/httpx2_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/audit.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/catalog.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/formats.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/interpolation.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/locale.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/locales/en-US.json +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/locales/es.json +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/locales/fr-CA.json +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/plugin_catalog.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/plurals.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/pseudo.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/i18n/translate.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/kennel_provider.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/list_filtering.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/main.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/agent_bindings.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/http_auth.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/manager_lifecycle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/project_config.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_/toolset_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_prompts/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/mcp_prompts/hook_creator.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/bar_painters.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/bar_rendering.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/bottom_bar.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/chords.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_actions.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_completion.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_display.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_history.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_keys.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_paste.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_queue.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/editor_submission.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/external_editor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/identity_line.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/idle_status.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/inline_bar.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/line_editor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/menu_lifecycle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/pause_controller.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/prompt_prefix_style.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/rich_renderer.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/run_ui.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/run_ui_wiring.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/speculation_line.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/speculation_stats.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/speculation_toggle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/status_line.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/theme_accent.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/tool_output.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/messaging/transcript_guard.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/model_descriptions.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/models.json +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/observability.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/platform_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/config.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/oauth_pasteback.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/trust.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/plugins/trust_notice.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/private_inference.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/provider_credentials.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/provider_identity.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/secret_store.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/secret_store_backends.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/session_format_migration.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/session_lifecycle.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/session_migration.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/session_surrogate_unpickler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/shared_credentials.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/skill_provider.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/splash.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/steer_metadata.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/token_usage.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/_browser_registry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/_lazy.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_locator_resolver.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_page_snapshot.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_semantic_interactions.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/browser/tool_registry.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/file_permission_state.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/fs_access.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/image_tools.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/io_backends.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/model_tools.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/ripgrep.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/shell_backgrounding.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/subagent_invocation.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/subagent_usage_metrics.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/undo_manager.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/universal_constructor_provider.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/version_checker.py +0 -0
- {code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/zai_model.py +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Keep blocking feedback input off the loop without abandoning stdin."""
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
async def read_feedback(prompt: Callable[[], str]) -> str:
|
|
8
|
+
"""Read feedback in a worker, retaining ownership through cancellation.
|
|
9
|
+
|
|
10
|
+
A blocking terminal read cannot be interrupted by cancelling its asyncio
|
|
11
|
+
waiter. Defer cancellation until the user submits or closes the input;
|
|
12
|
+
callers must retain their stdin suspension and approval lock throughout.
|
|
13
|
+
"""
|
|
14
|
+
reader = asyncio.create_task(asyncio.to_thread(prompt))
|
|
15
|
+
try:
|
|
16
|
+
return await asyncio.shield(reader)
|
|
17
|
+
except asyncio.CancelledError:
|
|
18
|
+
# Further cancel requests must not release stdin while it is still
|
|
19
|
+
# being read. Retrieve the result/exception before propagating cancel.
|
|
20
|
+
while not reader.done():
|
|
21
|
+
try:
|
|
22
|
+
await asyncio.shield(reader)
|
|
23
|
+
except asyncio.CancelledError:
|
|
24
|
+
continue
|
|
25
|
+
except Exception:
|
|
26
|
+
break
|
|
27
|
+
if not reader.cancelled():
|
|
28
|
+
reader.exception()
|
|
29
|
+
raise
|
|
@@ -1136,14 +1136,18 @@ async def _get_user_approval_async_impl(
|
|
|
1136
1136
|
confirmed = False
|
|
1137
1137
|
emit_info("")
|
|
1138
1138
|
emit_info(t("tools.common.approval.tell", puppy_name=puppy_name))
|
|
1139
|
-
#
|
|
1140
|
-
#
|
|
1139
|
+
# Reading feedback must not block the agent's event loop.
|
|
1140
|
+
# Keep stdin ownership suspended until the worker finishes.
|
|
1141
1141
|
from code_puppy.agents._key_listeners import suspended_key_listener
|
|
1142
|
+
from code_puppy.tools.approval_feedback import read_feedback
|
|
1142
1143
|
|
|
1143
1144
|
with suspended_key_listener():
|
|
1144
|
-
user_feedback =
|
|
1145
|
-
|
|
1146
|
-
|
|
1145
|
+
user_feedback = (
|
|
1146
|
+
await read_feedback(
|
|
1147
|
+
lambda: Prompt.ask(
|
|
1148
|
+
"[bold green]\u27a4[/bold green]", default=""
|
|
1149
|
+
)
|
|
1150
|
+
)
|
|
1147
1151
|
).strip()
|
|
1148
1152
|
|
|
1149
1153
|
if not user_feedback:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.893 → code_puppy-0.0.894}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.893 → code_puppy-0.0.894}/code_puppy/command_line/mcp/custom_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.893 → code_puppy-0.0.894}/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
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.893 → code_puppy-0.0.894}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|