code-puppy 0.0.592__tar.gz → 0.0.593__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.592 → code_puppy-0.0.593}/PKG-INFO +1 -1
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/auth_retry.py +65 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/pyproject.toml +1 -1
- {code_puppy-0.0.592 → code_puppy-0.0.593}/.gitignore +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/LICENSE +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_builder.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_compaction.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_diagnostics.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_history.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_key_listeners.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_non_streaming_render.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_run_signals.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_runtime.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/_steer_processor.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/run_stats.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/smooth_stream.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/autosave_search.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/config_apply.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/diff_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/file_index.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/judges_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp_binding_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/pagination.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_catalog.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_render.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_schema.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_settings.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_shims.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/set_menu_values.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/shell_passthrough.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/wiggum_state.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/aliases.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/engine.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/executor.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/matcher.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/models.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/registry.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/hook_engine/validator.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/list_filtering.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/main.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/agent_bindings.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_prompts/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/mcp_prompts/hook_creator.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/bar_painters.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/bar_rendering.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/bottom_bar.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_actions.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_completion.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_display.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_history.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_keys.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/editor_paste.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/line_editor.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/pause_controller.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/prompt_prefix_style.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/rich_renderer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/run_ui.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/run_ui_wiring.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/model_descriptions.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/models.json +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/discovery.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/downloader.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/installer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/metadata.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/aws_bedrock/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/aws_bedrock/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/discovery.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/token.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/azure_foundry/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/btw/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/btw/inline_view.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/btw/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/btw/side_query.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_hooks/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/test_fast_mode.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/context_indicator/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/context_indicator/usage.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/copilot_auth/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/copilot_auth/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/copilot_auth/utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/emoji_filter/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/emoji_filter/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/emoji_filter/stripper.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/example_custom_command/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/force_push_guard/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/force_push_guard/detector.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/force_push_guard/test_detector.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_creator/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_manager/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_manager/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/obsidian_agent/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/ollama/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/ollama/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/ollama_setup/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/ollama_setup/completer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/pop_command/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prompt_newline/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prompt_newline/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prune/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prune/prune_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prune/prune_model.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prune/prune_render.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/prune/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/commands.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/packer.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/schema.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/state.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_kennel/wings.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/quick_resume/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/review_pr/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/shell_safety/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/payload.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/prompt_patch.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/runner.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/statusline/statusline_command.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/steer_queue/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/subagent_panel/state.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/README.md +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/bundled_palettes.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/content_styles.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/osc_palette.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/picker.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/rich_themes.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/theme/themes.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/universal_constructor/models.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/universal_constructor/registry.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wide_completion_menu/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wide_completion_menu/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wiggum/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wiggum/judge.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wiggum/judge_config.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/wiggum/state.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/provider_credentials.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/provider_identity.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/session_lifecycle.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/session_migration.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/image_tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/model_tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/subagent_invocation.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/undo_manager.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/uvx_detection.py +0 -0
- {code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/version_checker.py +0 -0
{code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/claude_code_oauth/auth_retry.py
RENAMED
|
@@ -15,12 +15,20 @@ and return ``True`` so the exception rides the **main agent retry loop**
|
|
|
15
15
|
(``streaming_retry``) — the same delays, banners, error-logging, and
|
|
16
16
|
attempt cap as a 429. The loop's ``max_attempts`` bounds us, so a dead
|
|
17
17
|
refresh token can't spin forever.
|
|
18
|
+
|
|
19
|
+
Recovery escalation ladder for Cloudflare HTML 400s specifically:
|
|
20
|
+
refresh-token exchanges only buy temporary recovery (the edge starts
|
|
21
|
+
flapping again minutes later), while a full interactive re-auth durably
|
|
22
|
+
cures it. So the first CF400 gets the cheap refresh+retry; a recurrence
|
|
23
|
+
within ``CLOUDFLARE_REAUTH_WINDOW_SECONDS`` escalates to the browser
|
|
24
|
+
sign-in flow before retrying.
|
|
18
25
|
"""
|
|
19
26
|
|
|
20
27
|
from __future__ import annotations
|
|
21
28
|
|
|
22
29
|
import asyncio
|
|
23
30
|
import logging
|
|
31
|
+
import time
|
|
24
32
|
from typing import Any, Callable, Iterator, Optional
|
|
25
33
|
from weakref import WeakSet
|
|
26
34
|
|
|
@@ -34,6 +42,17 @@ logger = logging.getLogger(__name__)
|
|
|
34
42
|
AUTH_STATUS_CODES = frozenset({401, 403})
|
|
35
43
|
CLOUDFLARE_400_MARKERS = ("cloudflare", "400 bad request")
|
|
36
44
|
|
|
45
|
+
# Cloudflare 400s are only *durably* cured by a full interactive re-auth
|
|
46
|
+
# (field evidence: refresh-token exchanges buy temporary recovery, then the
|
|
47
|
+
# edge starts flapping again; a browser sign-in stops it entirely). The
|
|
48
|
+
# first CF400 gets the cheap refresh+retry. A recurrence within this window
|
|
49
|
+
# proves refresh isn't curing it, so we escalate to the browser flow.
|
|
50
|
+
CLOUDFLARE_REAUTH_WINDOW_SECONDS = 900.0 # 15 minutes
|
|
51
|
+
|
|
52
|
+
# Monotonic timestamp of the last Cloudflare-400 recovery attempt.
|
|
53
|
+
# Module-level: recurrence is a per-process pattern, not per-run.
|
|
54
|
+
_last_cloudflare_event_at: float = 0.0
|
|
55
|
+
|
|
37
56
|
# Live-client token updaters, registered when a claude_code model is built.
|
|
38
57
|
# Weak references: entries vanish automatically when a model is torn down
|
|
39
58
|
# (the client holds the only strong ref to its updater closure).
|
|
@@ -101,6 +120,25 @@ def is_claude_auth_error(exc: BaseException) -> bool:
|
|
|
101
120
|
return False
|
|
102
121
|
|
|
103
122
|
|
|
123
|
+
def is_cloudflare_error(exc: BaseException) -> bool:
|
|
124
|
+
"""True when any link in the chain is specifically a Cloudflare 400."""
|
|
125
|
+
return any(
|
|
126
|
+
_is_cloudflare_400(link, _status_code_of(link))
|
|
127
|
+
for link in _iter_exception_chain(exc)
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _run_full_reauthentication(model_name: str) -> Optional[str]:
|
|
132
|
+
"""Launch the interactive browser OAuth flow; returns a token or None.
|
|
133
|
+
|
|
134
|
+
Lazy import: register_callbacks imports this module at load time, so a
|
|
135
|
+
top-level import here would be circular.
|
|
136
|
+
"""
|
|
137
|
+
from .register_callbacks import _reauthenticate_after_expired_oauth
|
|
138
|
+
|
|
139
|
+
return _reauthenticate_after_expired_oauth(model_name)
|
|
140
|
+
|
|
141
|
+
|
|
104
142
|
async def handle_retryable_exception(
|
|
105
143
|
exception: Exception, *args: Any, **kwargs: Any
|
|
106
144
|
) -> bool:
|
|
@@ -126,6 +164,33 @@ async def handle_retryable_exception(
|
|
|
126
164
|
)
|
|
127
165
|
return False
|
|
128
166
|
|
|
167
|
+
# Cloudflare 400s that keep recurring are not cured by refresh-token
|
|
168
|
+
# exchanges (field-proven); only a full interactive re-auth stops them.
|
|
169
|
+
global _last_cloudflare_event_at
|
|
170
|
+
if is_cloudflare_error(exception):
|
|
171
|
+
now = time.monotonic()
|
|
172
|
+
recurring = (
|
|
173
|
+
_last_cloudflare_event_at > 0
|
|
174
|
+
and (now - _last_cloudflare_event_at) < CLOUDFLARE_REAUTH_WINDOW_SECONDS
|
|
175
|
+
)
|
|
176
|
+
_last_cloudflare_event_at = now
|
|
177
|
+
if recurring:
|
|
178
|
+
emit_warning(
|
|
179
|
+
"Cloudflare keeps rejecting requests and token refresh isn't "
|
|
180
|
+
"curing it — escalating to full browser re-authentication…"
|
|
181
|
+
)
|
|
182
|
+
token = await asyncio.to_thread(_run_full_reauthentication, model_name)
|
|
183
|
+
if token:
|
|
184
|
+
_broadcast_token(token)
|
|
185
|
+
_last_cloudflare_event_at = 0.0 # cured; future CF400s start fresh
|
|
186
|
+
emit_info("Claude Code re-authentication complete; retrying.")
|
|
187
|
+
return True
|
|
188
|
+
emit_warning(
|
|
189
|
+
"Re-authentication did not produce a usable token. "
|
|
190
|
+
"Run /claude-code-auth manually."
|
|
191
|
+
)
|
|
192
|
+
return False
|
|
193
|
+
|
|
129
194
|
emit_warning(
|
|
130
195
|
"Claude Code OAuth rejected the request — ensuring a fresh token "
|
|
131
196
|
"before the retry…"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.592 → code_puppy-0.0.593}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.592 → code_puppy-0.0.593}/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.592 → code_puppy-0.0.593}/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.592 → code_puppy-0.0.593}/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.592 → code_puppy-0.0.593}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/register_callbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/agent_skills/skills_install_menu.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.592 → code_puppy-0.0.593}/code_puppy/plugins/aws_bedrock/register_callbacks.py
RENAMED
|
File without changes
|
|
File without changes
|