code-puppy 0.0.376__tar.gz → 0.0.377__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.376 → code_puppy-0.0.377}/PKG-INFO +1 -1
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/model_settings_menu.py +13 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/gemini_model.py +63 -22
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/model_factory.py +13 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/models.json +2 -2
- {code_puppy-0.0.376 → code_puppy-0.0.377}/pyproject.toml +1 -1
- {code_puppy-0.0.376 → code_puppy-0.0.377}/.gitignore +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/LICENSE +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/README.md +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_c_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_code_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_cpp_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_golang_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_javascript_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_pack_leader.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_python_programmer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_python_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_qa_expert.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_security_auditor.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_terminal_qa.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/agent_typescript_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/bloodhound.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/husky.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/retriever.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/shepherd.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/terrier.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/pack/watchdog.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/prompt_reviewer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/app.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/main.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/pty_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/routers/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/routers/agents.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/routers/commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/routers/config.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/routers/sessions.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/templates/terminal.html +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/api/websocket.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/diff_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/test_command.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/motd.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/config.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/main.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/captured_stdio_server.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/rich_renderer.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/spinner/console_spinner.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/spinner/spinner_base.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/accounts.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/antigravity_model.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/config.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/constants.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/oauth.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/storage.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/token.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/transport.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/example_custom_command/README.md +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/agents.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/commands.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/loop_controller.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/models.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/state_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/ralph/tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/models.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/registry.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/prompts/antigravity_system_prompt.md +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/summarization_agent.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/chromium_terminal_manager.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/terminal_command_tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/terminal_screenshot_tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/terminal_tools.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/uvx_detection.py +0 -0
- {code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/version_checker.py +0 -0
|
@@ -106,6 +106,19 @@ SETTING_DEFINITIONS: Dict[str, Dict] = {
|
|
|
106
106
|
"type": "boolean",
|
|
107
107
|
"default": False,
|
|
108
108
|
},
|
|
109
|
+
"thinking_enabled": {
|
|
110
|
+
"name": "Thinking Enabled",
|
|
111
|
+
"description": "Enable thinking mode for Gemini 3 Pro models. When enabled, the model will show its reasoning process.",
|
|
112
|
+
"type": "boolean",
|
|
113
|
+
"default": True,
|
|
114
|
+
},
|
|
115
|
+
"thinking_level": {
|
|
116
|
+
"name": "Thinking Level",
|
|
117
|
+
"description": "Controls the depth of thinking for Gemini 3 Pro models. Low = faster responses, High = more thorough reasoning.",
|
|
118
|
+
"type": "choice",
|
|
119
|
+
"choices": ["low", "high"],
|
|
120
|
+
"default": "low",
|
|
121
|
+
},
|
|
109
122
|
}
|
|
110
123
|
|
|
111
124
|
|
|
@@ -40,6 +40,10 @@ from pydantic_ai.usage import RequestUsage
|
|
|
40
40
|
|
|
41
41
|
logger = logging.getLogger(__name__)
|
|
42
42
|
|
|
43
|
+
# Bypass thought signature for Gemini when no pending signature is available
|
|
44
|
+
# This allows function calls to work with thinking models
|
|
45
|
+
BYPASS_THOUGHT_SIGNATURE = "context_engineering_is_the_way_to_go"
|
|
46
|
+
|
|
43
47
|
|
|
44
48
|
def generate_tool_call_id() -> str:
|
|
45
49
|
"""Generate a unique tool call ID."""
|
|
@@ -410,27 +414,48 @@ class GeminiModel(Model):
|
|
|
410
414
|
return system_instruction, contents
|
|
411
415
|
|
|
412
416
|
def _map_model_response(self, m: ModelResponse) -> dict[str, Any] | None:
|
|
413
|
-
"""Map a ModelResponse to Gemini content format.
|
|
417
|
+
"""Map a ModelResponse to Gemini content format.
|
|
418
|
+
|
|
419
|
+
For Gemini thinking models, we need to track thought signatures from
|
|
420
|
+
ThinkingParts and apply them to subsequent function_call parts.
|
|
421
|
+
"""
|
|
414
422
|
parts: list[dict[str, Any]] = []
|
|
423
|
+
pending_signature: str | None = None
|
|
415
424
|
|
|
416
425
|
for item in m.parts:
|
|
417
426
|
if isinstance(item, ToolCallPart):
|
|
418
|
-
|
|
419
|
-
{
|
|
420
|
-
"
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
"id": item.tool_call_id,
|
|
424
|
-
}
|
|
427
|
+
part_dict: dict[str, Any] = {
|
|
428
|
+
"function_call": {
|
|
429
|
+
"name": item.tool_name,
|
|
430
|
+
"args": item.args_as_dict(),
|
|
431
|
+
"id": item.tool_call_id,
|
|
425
432
|
}
|
|
433
|
+
}
|
|
434
|
+
# Gemini thinking models REQUIRE thoughtSignature on function calls
|
|
435
|
+
# Use pending signature from thinking or bypass signature
|
|
436
|
+
part_dict["thoughtSignature"] = (
|
|
437
|
+
pending_signature
|
|
438
|
+
if pending_signature is not None
|
|
439
|
+
else BYPASS_THOUGHT_SIGNATURE
|
|
426
440
|
)
|
|
441
|
+
parts.append(part_dict)
|
|
427
442
|
elif isinstance(item, TextPart):
|
|
428
|
-
|
|
443
|
+
part_dict = {"text": item.content}
|
|
444
|
+
# Apply pending signature to text parts too if present
|
|
445
|
+
if pending_signature is not None:
|
|
446
|
+
part_dict["thoughtSignature"] = pending_signature
|
|
447
|
+
pending_signature = None
|
|
448
|
+
parts.append(part_dict)
|
|
429
449
|
elif isinstance(item, ThinkingPart):
|
|
430
450
|
if item.content:
|
|
431
|
-
part_dict
|
|
451
|
+
part_dict = {"text": item.content, "thought": True}
|
|
432
452
|
if item.signature:
|
|
433
453
|
part_dict["thoughtSignature"] = item.signature
|
|
454
|
+
# Store signature for subsequent parts
|
|
455
|
+
pending_signature = item.signature
|
|
456
|
+
else:
|
|
457
|
+
# No signature on thinking part, use bypass
|
|
458
|
+
pending_signature = BYPASS_THOUGHT_SIGNATURE
|
|
434
459
|
parts.append(part_dict)
|
|
435
460
|
|
|
436
461
|
if not parts:
|
|
@@ -462,18 +487,34 @@ class GeminiModel(Model):
|
|
|
462
487
|
config: dict[str, Any] = {}
|
|
463
488
|
|
|
464
489
|
if model_settings:
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
config["maxOutputTokens"] =
|
|
490
|
+
# ModelSettings is a TypedDict, so use .get() for all access
|
|
491
|
+
temperature = model_settings.get("temperature")
|
|
492
|
+
if temperature is not None:
|
|
493
|
+
config["temperature"] = temperature
|
|
494
|
+
|
|
495
|
+
top_p = model_settings.get("top_p")
|
|
496
|
+
if top_p is not None:
|
|
497
|
+
config["topP"] = top_p
|
|
498
|
+
|
|
499
|
+
max_tokens = model_settings.get("max_tokens")
|
|
500
|
+
if max_tokens is not None:
|
|
501
|
+
config["maxOutputTokens"] = max_tokens
|
|
502
|
+
|
|
503
|
+
# Handle Gemini 3 Pro thinking settings
|
|
504
|
+
thinking_enabled = model_settings.get("thinking_enabled")
|
|
505
|
+
thinking_level = model_settings.get("thinking_level")
|
|
506
|
+
|
|
507
|
+
# Build thinkingConfig if thinking settings are present
|
|
508
|
+
if thinking_enabled is False:
|
|
509
|
+
# Disable thinking by not including thinkingConfig
|
|
510
|
+
pass
|
|
511
|
+
elif thinking_level is not None:
|
|
512
|
+
# Gemini 3 Pro uses thinkingLevel with values "low" or "high"
|
|
513
|
+
# includeThoughts=True is required to surface the thinking in the response
|
|
514
|
+
config["thinkingConfig"] = {
|
|
515
|
+
"thinkingLevel": thinking_level,
|
|
516
|
+
"includeThoughts": True,
|
|
517
|
+
}
|
|
477
518
|
|
|
478
519
|
return config
|
|
479
520
|
|
|
@@ -74,6 +74,7 @@ def make_model_settings(
|
|
|
74
74
|
get_effective_model_settings,
|
|
75
75
|
get_openai_reasoning_effort,
|
|
76
76
|
get_openai_verbosity,
|
|
77
|
+
model_supports_setting,
|
|
77
78
|
)
|
|
78
79
|
|
|
79
80
|
model_settings_dict: dict = {}
|
|
@@ -131,6 +132,18 @@ def make_model_settings(
|
|
|
131
132
|
}
|
|
132
133
|
model_settings = AnthropicModelSettings(**model_settings_dict)
|
|
133
134
|
|
|
135
|
+
# Handle Gemini thinking models (Gemini-3)
|
|
136
|
+
# Check if model supports thinking settings and apply defaults
|
|
137
|
+
if model_supports_setting(model_name, "thinking_level"):
|
|
138
|
+
# Apply defaults if not explicitly set by user
|
|
139
|
+
# Default: thinking_enabled=True, thinking_level="low"
|
|
140
|
+
if "thinking_enabled" not in model_settings_dict:
|
|
141
|
+
model_settings_dict["thinking_enabled"] = True
|
|
142
|
+
if "thinking_level" not in model_settings_dict:
|
|
143
|
+
model_settings_dict["thinking_level"] = "low"
|
|
144
|
+
# Recreate settings with Gemini thinking config
|
|
145
|
+
model_settings = ModelSettings(**model_settings_dict)
|
|
146
|
+
|
|
134
147
|
return model_settings
|
|
135
148
|
|
|
136
149
|
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"type": "gemini",
|
|
34
34
|
"name": "gemini-3-pro-preview",
|
|
35
35
|
"context_length": 200000,
|
|
36
|
-
"supported_settings": ["temperature", "top_p"]
|
|
36
|
+
"supported_settings": ["temperature", "top_p", "thinking_enabled", "thinking_level"]
|
|
37
37
|
},
|
|
38
38
|
"Gemini-3-Long-Context": {
|
|
39
39
|
"type": "gemini",
|
|
40
40
|
"name": "gemini-3-pro-preview",
|
|
41
41
|
"context_length": 1000000,
|
|
42
|
-
"supported_settings": ["temperature", "top_p"]
|
|
42
|
+
"supported_settings": ["temperature", "top_p", "thinking_enabled", "thinking_level"]
|
|
43
43
|
},
|
|
44
44
|
"gpt-5.1": {
|
|
45
45
|
"type": "openai",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.376 → code_puppy-0.0.377}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/mcp/custom_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/command_line/model_picker_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/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
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/antigravity_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/register_callbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/antigravity_oauth/test_plugin.py
RENAMED
|
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.376 → code_puppy-0.0.377}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py
RENAMED
|
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.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/register_callbacks.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/claude_code_oauth/test_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/customizable_commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/example_custom_command/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/file_permission_handler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/frontend_emitter/register_callbacks.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.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/agent_shell_safety.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/shell_safety/register_callbacks.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/__init__.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/registry.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/plugins/universal_constructor/sandbox.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/chromium_terminal_manager.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/terminal_command_tools.py
RENAMED
|
File without changes
|
{code_puppy-0.0.376 → code_puppy-0.0.377}/code_puppy/tools/browser/terminal_screenshot_tools.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
|