code-puppy 0.0.882__tar.gz → 0.0.883__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.882 → code_puppy-0.0.883}/PKG-INFO +1 -1
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/callbacks.py +25 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/completers.py +6 -2
- code_puppy-0.0.883/code_puppy/command_line/set_menu_settings.py +44 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/set_menu_values.py +6 -9
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/config.py +12 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/pyproject.toml +1 -1
- code_puppy-0.0.882/code_puppy/command_line/set_menu_settings.py +0 -26
- {code_puppy-0.0.882 → code_puppy-0.0.883}/.gitignore +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/LICENSE +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/README.md +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/__main__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/_plugin_i18n_lifecycle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/_pydantic_tool_helpers.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/_pydantic_video_patch.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agent_completion_inbox.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agent_execution_context.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_builder.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_code_mode.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_code_mode_guidance.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_compaction.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_diagnostics.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_history.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_key_listeners.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_model_message_transform.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_non_streaming_render.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_output_limits.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_run_signals.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_runtime.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_steer_processor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_subagent_recursion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_windows_console.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/_wire_tool_names.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_code_puppy.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_creator_agent.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_helios.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_manager.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_model_judge.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_planning.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_qa_kitten.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/agent_web_retriever.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/base_agent.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/event_stream_handler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/json_agent.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/retry_checkpoint.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/retry_profiles.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/run_stats.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/smooth_stream.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/stream_status.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/subagent_stream_handler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/agents/thinking_output.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/asyncio_cleanup.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/atomic_io.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/atomic_json.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/capabilities/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/capabilities/compaction.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/capabilities/eager_timing.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/chatgpt_codex_client.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/claude_cache_client.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/claude_oauth_transport.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/cli_runner.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/add_model_details.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/add_model_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/add_model_menus.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/add_model_vllm.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/agent_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/attachments.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/autosave_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/autosave_search.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/clipboard.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/colors_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/command_handler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/command_registry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/completion_cache.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/config_apply.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/config_commands.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/core_commands.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/file_index.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/file_path_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/help_catalog.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/help_overlay.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/image_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/load_context_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/base.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/edit_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/handler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/help_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/install_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/install_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/list_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/logs_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/mcp_servers_store.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/remove_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/restart_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/search_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/start_all_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/start_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/status_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/stop_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/trust_command.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp_binding_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/menu_session.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/model_picker_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/model_settings_defs.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/model_settings_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/onboarding_slides.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/onboarding_wizard.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/pagination.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/pin_command_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/refresh_models.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/session_browser.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/session_browser_data.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/session_commands.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/set_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/set_menu_catalog.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/set_menu_schema.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/set_menu_shims.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/shell_passthrough.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/skills_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/tui_style.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/uc_menu.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/config_file.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/diagnostics.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/error_logging.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/events/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/events/bridge.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/file_completion_io.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/file_completion_tokens.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/gemini_code_assist.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/gemini_common.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/gemini_model.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/README.md +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/aliases.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/engine.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/executor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/matcher.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/models.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/registry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/hook_engine/validator.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/http_retry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/http_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/httpx2_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/audit.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/catalog.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/formats.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/interpolation.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/locale.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/locales/en-US.json +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/locales/es.json +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/locales/fr-CA.json +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/plugin_catalog.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/plurals.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/pseudo.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/i18n/translate.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/kennel_provider.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/keymap.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/list_filtering.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/main.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/agent_bindings.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/async_lifecycle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/blocking_startup.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/circuit_breaker.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/config_wizard.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/dashboard.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/error_isolation.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/examples/retry_example.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/health_monitor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/http_auth.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/managed_server.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/manager.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/manager_lifecycle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/mcp_logs.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/project_config.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/registry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/retry_manager.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/server_registry_catalog.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/status_tracker.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/system_tools.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_/toolset_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_prompts/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/mcp_prompts/hook_creator.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/bar_painters.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/bar_rendering.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/bottom_bar.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/bus.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/chords.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/commands.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_actions.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_completion.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_display.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_history.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_keys.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_paste.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_queue.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/editor_submission.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/external_editor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/identity_line.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/idle_status.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/inline_bar.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/line_editor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/markdown_patches.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/menu_lifecycle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/message_queue.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/messages.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/pause_controller.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/prompt_prefix_style.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/queue_console.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/renderers.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/rich_renderer.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/run_ui.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/run_ui_wiring.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/speculation_line.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/speculation_stats.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/speculation_toggle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/spinner/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/status_line.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/subagent_console.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/theme_accent.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/tool_output.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/messaging/transcript_guard.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/model_descriptions.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/model_factory.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/model_switching.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/model_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/models.json +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/models_dev_api.json +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/models_dev_parser.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/observability.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/platform_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/config.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/oauth_pasteback.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/oauth_puppy_html.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/trust.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/plugins/trust_notice.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/private_inference.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/provider_credentials.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/provider_identity.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/pydantic_patches.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/reopenable_async_client.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/round_robin_model.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/secret_store.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/secret_store_backends.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/session_format_migration.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/session_lifecycle.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/session_migration.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/session_storage.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/session_surrogate_unpickler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/shared_credentials.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/skill_provider.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/splash.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/status_display.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/steer_metadata.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/terminal_utils.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/token_usage.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/_browser_registry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/_lazy.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/agent_tools.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/constants.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/handler.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/models.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/registration.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/renderers.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/theme.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/__init__.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_control.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_interactions.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_locator_resolver.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_locators.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_manager.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_navigation.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_page_snapshot.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_screenshot.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_scripts.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_semantic_interactions.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/browser_workflows.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/browser/tool_registry.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/command_runner.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/common.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/display.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/file_modifications.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/file_operations.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/file_permission_state.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/fs_access.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/image_tools.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/io_backends.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/model_tools.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/ripgrep.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/shell_backgrounding.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/skills_tools.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/subagent_context.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/subagent_invocation.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/subagent_usage_metrics.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/tools_content.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/tools/universal_constructor.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/undo_manager.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/universal_constructor_provider.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/version_checker.py +0 -0
- {code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/zai_model.py +0 -0
|
@@ -45,6 +45,7 @@ PhaseType = Literal[
|
|
|
45
45
|
"register_agents",
|
|
46
46
|
"register_model_type",
|
|
47
47
|
"register_skills",
|
|
48
|
+
"register_settings",
|
|
48
49
|
"register_kennel_memory",
|
|
49
50
|
"register_cli_args",
|
|
50
51
|
"handle_cli_args",
|
|
@@ -136,6 +137,7 @@ _callbacks: Dict[PhaseType, List[CallbackFunc]] = {
|
|
|
136
137
|
"register_agents": [],
|
|
137
138
|
"register_model_type": [],
|
|
138
139
|
"register_skills": [],
|
|
140
|
+
"register_settings": [],
|
|
139
141
|
"register_kennel_memory": [],
|
|
140
142
|
"register_cli_args": [],
|
|
141
143
|
"handle_cli_args": [],
|
|
@@ -1239,6 +1241,29 @@ def on_register_skills() -> List[Dict[str, Any]]:
|
|
|
1239
1241
|
return _trigger_callbacks_sync("register_skills")
|
|
1240
1242
|
|
|
1241
1243
|
|
|
1244
|
+
def on_register_settings() -> List[Any]:
|
|
1245
|
+
"""Collect ``/set`` settings declared by plugins.
|
|
1246
|
+
|
|
1247
|
+
Callback contract: ``() -> SettingsCategory | list[SettingsCategory] | None``
|
|
1248
|
+
(from :mod:`code_puppy.command_line.set_menu_schema`). One declaration
|
|
1249
|
+
feeds both ``/set`` autocomplete and the ``/set`` menu; a category named
|
|
1250
|
+
like a core one (e.g. "Features") merges into it. Anything else returned
|
|
1251
|
+
is ignored with a warning.
|
|
1252
|
+
"""
|
|
1253
|
+
from code_puppy.command_line.set_menu_schema import SettingsCategory
|
|
1254
|
+
|
|
1255
|
+
categories: List[Any] = []
|
|
1256
|
+
for result in _trigger_callbacks_sync("register_settings"):
|
|
1257
|
+
if result is None:
|
|
1258
|
+
continue
|
|
1259
|
+
for item in result if isinstance(result, (list, tuple)) else [result]:
|
|
1260
|
+
if isinstance(item, SettingsCategory):
|
|
1261
|
+
categories.append(item)
|
|
1262
|
+
else:
|
|
1263
|
+
logger.warning("Ignoring non-SettingsCategory setting: %r", item)
|
|
1264
|
+
return categories
|
|
1265
|
+
|
|
1266
|
+
|
|
1242
1267
|
def on_register_kennel_memory() -> List[Any]:
|
|
1243
1268
|
"""Collect kennel memory providers from plugins.
|
|
1244
1269
|
|
|
@@ -135,11 +135,15 @@ class SetCompleter(Completer):
|
|
|
135
135
|
lambda: (get_config_keys, sorted(get_config_keys()))
|
|
136
136
|
)
|
|
137
137
|
|
|
138
|
+
from code_puppy.command_line.set_menu_values import sensitive_keys
|
|
139
|
+
|
|
140
|
+
hidden = {"model", "puppy_token"} | MODEL_SETTINGS_ONLY_KEYS
|
|
141
|
+
secret = sensitive_keys() # complete the key, never echo its value
|
|
138
142
|
for key in config_keys:
|
|
139
|
-
if key in
|
|
143
|
+
if key in hidden:
|
|
140
144
|
continue
|
|
141
145
|
if key.startswith(text_after_trigger):
|
|
142
|
-
prev_value = get_value(key)
|
|
146
|
+
prev_value = None if key in secret else get_value(key)
|
|
143
147
|
value_part = f" = {prev_value}" if prev_value is not None else " = "
|
|
144
148
|
completion_text = f"{key}{value_part}"
|
|
145
149
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Facade for the ``/set`` menu's setting registry.
|
|
2
|
+
|
|
3
|
+
The core data lives in :mod:`set_menu_catalog`; plugins add their own via
|
|
4
|
+
the ``register_settings`` hook. This module merges the two so every call
|
|
5
|
+
site sees one registry through :func:`iter_curated_settings`.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from typing import Dict, Iterator, List, Tuple
|
|
11
|
+
|
|
12
|
+
from code_puppy.command_line.set_menu_catalog import SETTINGS_CATEGORIES
|
|
13
|
+
from code_puppy.command_line.set_menu_schema import Setting, SettingsCategory
|
|
14
|
+
|
|
15
|
+
__all__ = [
|
|
16
|
+
"Setting",
|
|
17
|
+
"SettingsCategory",
|
|
18
|
+
"SETTINGS_CATEGORIES",
|
|
19
|
+
"iter_curated_settings",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _merged_categories() -> List[SettingsCategory]:
|
|
24
|
+
"""Core categories, then plugin ones; same-named categories merge in place."""
|
|
25
|
+
from code_puppy.callbacks import on_register_settings
|
|
26
|
+
|
|
27
|
+
merged: Dict[str, List[Setting]] = {}
|
|
28
|
+
for category in (*SETTINGS_CATEGORIES, *on_register_settings()):
|
|
29
|
+
merged.setdefault(category.name, []).extend(category.settings)
|
|
30
|
+
return [SettingsCategory(name, tuple(items)) for name, items in merged.items()]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def iter_curated_settings() -> Iterator[Tuple[SettingsCategory, Setting]]:
|
|
34
|
+
"""Yield ``(category, setting)`` pairs for core and plugin settings.
|
|
35
|
+
|
|
36
|
+
Keys are unique: core claims first, then plugins in load order, so a
|
|
37
|
+
plugin can never shadow (or duplicate) a setting core already owns.
|
|
38
|
+
"""
|
|
39
|
+
seen: set[str] = set()
|
|
40
|
+
for category in _merged_categories():
|
|
41
|
+
for setting in category.settings:
|
|
42
|
+
if setting.key not in seen:
|
|
43
|
+
seen.add(setting.key)
|
|
44
|
+
yield category, setting
|
|
@@ -14,8 +14,8 @@ from __future__ import annotations
|
|
|
14
14
|
from typing import Any, Optional
|
|
15
15
|
|
|
16
16
|
from code_puppy.command_line.set_menu_settings import (
|
|
17
|
-
SETTINGS_CATEGORIES,
|
|
18
17
|
Setting,
|
|
18
|
+
iter_curated_settings,
|
|
19
19
|
)
|
|
20
20
|
from code_puppy.config import get_value
|
|
21
21
|
|
|
@@ -23,17 +23,14 @@ _MASK_KEEP_CHARS = 4
|
|
|
23
23
|
_MASK_ELLIPSIS = "..."
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def
|
|
27
|
-
"""Set of curated keys flagged ``sensitive=True``.
|
|
26
|
+
def sensitive_keys() -> frozenset[str]:
|
|
27
|
+
"""Set of curated keys (core and plugin) flagged ``sensitive=True``.
|
|
28
28
|
|
|
29
29
|
Deliberately not cached: tests monkey-patch the categories registry,
|
|
30
|
-
and the cost is negligible at
|
|
30
|
+
plugins can load late, and the cost is negligible at this scale.
|
|
31
31
|
"""
|
|
32
32
|
return frozenset(
|
|
33
|
-
setting.key
|
|
34
|
-
for category in SETTINGS_CATEGORIES
|
|
35
|
-
for setting in category.settings
|
|
36
|
-
if setting.sensitive
|
|
33
|
+
setting.key for _, setting in iter_curated_settings() if setting.sensitive
|
|
37
34
|
)
|
|
38
35
|
|
|
39
36
|
|
|
@@ -43,7 +40,7 @@ def is_sensitive_key(key: str) -> bool:
|
|
|
43
40
|
Used by the slash-command path to decide whether to mask values in
|
|
44
41
|
success messages without needing the full :class:`Setting` object.
|
|
45
42
|
"""
|
|
46
|
-
return key in
|
|
43
|
+
return key in sensitive_keys()
|
|
47
44
|
|
|
48
45
|
|
|
49
46
|
def is_default_value(setting: Setting) -> bool:
|
|
@@ -715,9 +715,21 @@ def get_config_keys():
|
|
|
715
715
|
config = _load_config()
|
|
716
716
|
keys = set(config[DEFAULT_SECTION].keys()) if DEFAULT_SECTION in config else set()
|
|
717
717
|
keys.update(default_keys)
|
|
718
|
+
keys.update(_plugin_setting_keys())
|
|
718
719
|
return sorted(keys)
|
|
719
720
|
|
|
720
721
|
|
|
722
|
+
def _plugin_setting_keys() -> set[str]:
|
|
723
|
+
"""Keys plugins declare via ``register_settings`` (their own, not core's)."""
|
|
724
|
+
from code_puppy.callbacks import on_register_settings
|
|
725
|
+
|
|
726
|
+
return {
|
|
727
|
+
setting.key
|
|
728
|
+
for category in on_register_settings()
|
|
729
|
+
for setting in category.settings
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
|
|
721
733
|
def set_config_value(key: str, value: str):
|
|
722
734
|
"""
|
|
723
735
|
Sets a config value in the persistent config file.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"""Facade for the ``/set`` menu's setting registry.
|
|
2
|
-
|
|
3
|
-
The actual data lives in :mod:`set_menu_catalog`. This module is a
|
|
4
|
-
thin re-export so existing call sites can keep importing ``Setting``,
|
|
5
|
-
``SettingsCategory``, ``SETTINGS_CATEGORIES``, and
|
|
6
|
-
``iter_curated_settings`` from a single place.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
from code_puppy.command_line.set_menu_catalog import SETTINGS_CATEGORIES
|
|
12
|
-
from code_puppy.command_line.set_menu_schema import Setting, SettingsCategory
|
|
13
|
-
|
|
14
|
-
__all__ = [
|
|
15
|
-
"Setting",
|
|
16
|
-
"SettingsCategory",
|
|
17
|
-
"SETTINGS_CATEGORIES",
|
|
18
|
-
"iter_curated_settings",
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def iter_curated_settings():
|
|
23
|
-
"""Yield ``(category, setting)`` pairs for every curated setting."""
|
|
24
|
-
for category in SETTINGS_CATEGORIES:
|
|
25
|
-
for setting in category.settings:
|
|
26
|
-
yield category, setting
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.882 → code_puppy-0.0.883}/code_puppy/command_line/load_context_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.882 → code_puppy-0.0.883}/code_puppy/command_line/mcp/catalog_server_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_puppy-0.0.882 → code_puppy-0.0.883}/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.882 → code_puppy-0.0.883}/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.882 → code_puppy-0.0.883}/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
|