code-puppy-core-plugins 0.0.29__tar.gz → 0.0.31__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_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/PKG-INFO +1 -1
- code_puppy_core_plugins-0.0.31/code_puppy_core_plugins/auto_continue/__init__.py +1 -0
- code_puppy_core_plugins-0.0.31/code_puppy_core_plugins/auto_continue/agent.py +38 -0
- code_puppy_core_plugins-0.0.31/code_puppy_core_plugins/auto_continue/register_callbacks.py +57 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/fork/register_callbacks.py +35 -10
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/register_callbacks.py +82 -20
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/panel_render.py +6 -2
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +10 -1
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/state.py +2 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/pyproject.toml +2 -1
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/agent.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/session.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/session_config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/acp/state.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/downloader.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/installer.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/shell_safety/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/shell_safety/agent_shell_safety.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/shell_safety/command_cache.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/shell_safety/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/README.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.29 → code_puppy_core_plugins-0.0.31}/code_puppy_core_plugins/yolo_cli/register_callbacks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: code-puppy-core-plugins
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.31
|
|
4
4
|
Summary: Official plugin bundle for Code Puppy
|
|
5
5
|
Project-URL: Repository, https://github.com/mpfaffenberger/code_puppy_core_plugins
|
|
6
6
|
Project-URL: Homepage, https://github.com/mpfaffenberger/code_puppy_core_plugins
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Automatic approval of routine agent continuation requests."""
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""The deliberately tiny continuation classifier agent."""
|
|
2
|
+
|
|
3
|
+
from code_puppy.agents.base_agent import BaseAgent
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class AutoContinueAgent(BaseAgent):
|
|
7
|
+
"""Decide whether a completed response merely needs permission to continue."""
|
|
8
|
+
|
|
9
|
+
@property
|
|
10
|
+
def name(self) -> str:
|
|
11
|
+
return "auto-continue"
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def display_name(self) -> str:
|
|
15
|
+
return "Auto Continue "
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def description(self) -> str:
|
|
19
|
+
return "Approves routine requests to continue an already requested task"
|
|
20
|
+
|
|
21
|
+
def get_available_tools(self) -> list[str]:
|
|
22
|
+
return []
|
|
23
|
+
|
|
24
|
+
def get_system_prompt(self) -> str:
|
|
25
|
+
return """You classify whether an assistant is merely waiting for permission to
|
|
26
|
+
continue routine work the user already requested.
|
|
27
|
+
|
|
28
|
+
Reply with exactly one of these strings and nothing else:
|
|
29
|
+
- yes, go.
|
|
30
|
+
- continue
|
|
31
|
+
- okay
|
|
32
|
+
- NO
|
|
33
|
+
|
|
34
|
+
Approve only a clear request to continue, proceed, or perform an explicitly
|
|
35
|
+
described next step within the existing task. Use NO for destructive or risky
|
|
36
|
+
actions, credential or payment requests, ambiguous choices, requests for new
|
|
37
|
+
requirements, completed work, or anything needing a real human decision.
|
|
38
|
+
Never use tools and never explain your answer."""
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""Register automatic continuation after routine permission requests."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from code_puppy.callbacks import register_callback
|
|
8
|
+
|
|
9
|
+
from .agent import AutoContinueAgent
|
|
10
|
+
|
|
11
|
+
_AGENT_NAME = "auto-continue"
|
|
12
|
+
_APPROVALS = {"yes, go.", "continue", "okay"}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _register_agents() -> list[dict[str, object]]:
|
|
16
|
+
return [{"name": _AGENT_NAME, "class": AutoContinueAgent}]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _response_text(result: Any) -> str | None:
|
|
20
|
+
if result is None:
|
|
21
|
+
return None
|
|
22
|
+
output = getattr(result, "output", result)
|
|
23
|
+
return output if isinstance(output, str) else None
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def _on_interactive_turn_end(
|
|
27
|
+
agent: Any,
|
|
28
|
+
prompt: str,
|
|
29
|
+
result: Any = None,
|
|
30
|
+
*,
|
|
31
|
+
success: bool = True,
|
|
32
|
+
error: BaseException | None = None,
|
|
33
|
+
) -> dict[str, str] | None:
|
|
34
|
+
"""Ask the classifier whether the completed response should be continued."""
|
|
35
|
+
response = _response_text(result)
|
|
36
|
+
if not success or error is not None or not response:
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
from code_puppy.tools.subagent_invocation import _invoke_agent_impl
|
|
40
|
+
|
|
41
|
+
verdict = await _invoke_agent_impl(
|
|
42
|
+
context=None,
|
|
43
|
+
agent_name=_AGENT_NAME,
|
|
44
|
+
prompt=f"Classify this assistant response:\n\n{response}",
|
|
45
|
+
emit_response_message=False,
|
|
46
|
+
)
|
|
47
|
+
approval = (verdict.response or "").strip().lower()
|
|
48
|
+
if approval not in _APPROVALS:
|
|
49
|
+
return None
|
|
50
|
+
return {"prompt": approval}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
register_callback("register_agents", _register_agents)
|
|
54
|
+
register_callback("interactive_turn_end", _on_interactive_turn_end)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
__all__ = ["_on_interactive_turn_end", "_register_agents"]
|
|
@@ -33,10 +33,11 @@ includes forked runs — cancelling the agent takes forks down with it.
|
|
|
33
33
|
from __future__ import annotations
|
|
34
34
|
|
|
35
35
|
import asyncio
|
|
36
|
+
import inspect
|
|
36
37
|
import itertools
|
|
37
38
|
import time
|
|
38
39
|
from dataclasses import dataclass, field
|
|
39
|
-
from typing import Dict, List, Optional, Tuple
|
|
40
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple
|
|
40
41
|
|
|
41
42
|
from code_puppy.callbacks import register_callback
|
|
42
43
|
|
|
@@ -220,6 +221,27 @@ def _seed_fork_session(agent_name: str, prompt: str) -> Optional[str]:
|
|
|
220
221
|
return None
|
|
221
222
|
|
|
222
223
|
|
|
224
|
+
def _invoke_impl_supports_is_fork(impl: Callable[..., Any]) -> bool:
|
|
225
|
+
"""Feature-detect the optional ``is_fork`` kwarg on ``_invoke_agent_impl``.
|
|
226
|
+
|
|
227
|
+
``/fork`` calls that core-private function directly (no stable public
|
|
228
|
+
hook exists for this), so core and this plugin can drift independently
|
|
229
|
+
in either direction. An older core build won't accept ``is_fork`` at
|
|
230
|
+
all -- passing it unconditionally would raise ``TypeError`` and take
|
|
231
|
+
``/fork`` down entirely. Detect support at call time instead of pinning
|
|
232
|
+
a version.
|
|
233
|
+
|
|
234
|
+
``inspect.signature`` itself can raise (``TypeError``/``ValueError``) for
|
|
235
|
+
a handful of non-introspectable callables (e.g. some C builtins); core's
|
|
236
|
+
``_invoke_agent_impl`` is always a plain ``async def`` so this never fires
|
|
237
|
+
in practice, but fail closed (assume unsupported) rather than crash.
|
|
238
|
+
"""
|
|
239
|
+
try:
|
|
240
|
+
return "is_fork" in inspect.signature(impl).parameters
|
|
241
|
+
except (TypeError, ValueError):
|
|
242
|
+
return False
|
|
243
|
+
|
|
244
|
+
|
|
223
245
|
async def _run_fork(
|
|
224
246
|
agent_name: str,
|
|
225
247
|
prompt: str,
|
|
@@ -232,16 +254,19 @@ async def _run_fork(
|
|
|
232
254
|
|
|
233
255
|
started_at = time.monotonic()
|
|
234
256
|
result = None
|
|
235
|
-
|
|
257
|
+
invoke_kwargs = dict(
|
|
236
258
|
# ``context`` is unused by the implementation; forks have no RunContext.
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
259
|
+
context=None,
|
|
260
|
+
agent_name=agent_name,
|
|
261
|
+
prompt=prompt,
|
|
262
|
+
session_id=session_id,
|
|
263
|
+
model_name=model_name,
|
|
264
|
+
emit_response_message=False,
|
|
265
|
+
)
|
|
266
|
+
if _invoke_impl_supports_is_fork(_invoke_agent_impl):
|
|
267
|
+
invoke_kwargs["is_fork"] = True
|
|
268
|
+
try:
|
|
269
|
+
result = await _invoke_agent_impl(**invoke_kwargs)
|
|
245
270
|
return result
|
|
246
271
|
finally:
|
|
247
272
|
# /fork calls the shared implementation directly (not via pydantic-ai's tool
|
|
@@ -23,28 +23,59 @@ from code_puppy.callbacks import register_callback
|
|
|
23
23
|
|
|
24
24
|
logger = logging.getLogger(__name__)
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
""
|
|
26
|
+
_CONTRIB_LABELS = [
|
|
27
|
+
("tools", "Tools"),
|
|
28
|
+
("commands", "Commands"),
|
|
29
|
+
("agents", "Agents"),
|
|
30
|
+
("skills", "Skills"),
|
|
31
|
+
("model_types", "Model Types"),
|
|
32
|
+
("model_providers", "Providers"),
|
|
33
|
+
("mcp_servers", "MCP Servers"),
|
|
34
|
+
("browser_types", "Browsers"),
|
|
35
|
+
("agent_tools", "Agent Tools"),
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _format_plugin_list(names: list[str], tier: str, disabled: set[str]) -> str:
|
|
40
|
+
"""Return a detailed listing for plugins in *tier*."""
|
|
29
41
|
if not names:
|
|
30
42
|
return " (none)"
|
|
31
|
-
|
|
43
|
+
from code_puppy_core_plugins.plugin_list import plugin_contributions, plugin_meta
|
|
44
|
+
|
|
45
|
+
lines: list[str] = []
|
|
32
46
|
for name in sorted(names):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
is_disabled = name in disabled
|
|
48
|
+
status_suffix = " (disabled)" if is_disabled else ""
|
|
49
|
+
lines.append(f" {name}{status_suffix}")
|
|
50
|
+
|
|
51
|
+
description = plugin_meta.get_description(name, tier)
|
|
52
|
+
if description:
|
|
53
|
+
lines.append(f" {description}")
|
|
54
|
+
|
|
55
|
+
try:
|
|
56
|
+
contributions = plugin_contributions.get_contributions(name)
|
|
57
|
+
except Exception:
|
|
58
|
+
contributions = {}
|
|
59
|
+
contrib_parts: list[str] = []
|
|
60
|
+
for key, label in _CONTRIB_LABELS:
|
|
61
|
+
items = contributions.get(key)
|
|
62
|
+
if items:
|
|
63
|
+
contrib_parts.append(f"{label}: {', '.join(str(i) for i in items)}")
|
|
64
|
+
if contrib_parts:
|
|
65
|
+
lines.append(f" Contributes: {' | '.join(contrib_parts)}")
|
|
66
|
+
|
|
67
|
+
hooks = plugin_meta.get_hooks(name)
|
|
68
|
+
if hooks:
|
|
69
|
+
lines.append(f" Hooks: {', '.join(hooks)}")
|
|
70
|
+
|
|
71
|
+
path = plugin_meta.get_file_path(name, tier)
|
|
72
|
+
if path:
|
|
73
|
+
lines.append(f" Path: {path}")
|
|
74
|
+
|
|
75
|
+
lines.append("")
|
|
37
76
|
return "\n".join(lines)
|
|
38
77
|
|
|
39
78
|
|
|
40
|
-
_PROJECT_STATUS_LABELS = {
|
|
41
|
-
"untrusted": "(not enabled -- review & enable in the /plugins TUI)",
|
|
42
|
-
"changed": "(changed since accepted -- re-review in the /plugins TUI)",
|
|
43
|
-
"disabled": "(disabled)",
|
|
44
|
-
"error": "(failed to load -- see logs)",
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
79
|
def _format_project_plugin_list(
|
|
49
80
|
loaded_names: list[str],
|
|
50
81
|
statuses: dict[str, str],
|
|
@@ -55,17 +86,48 @@ def _format_project_plugin_list(
|
|
|
55
86
|
Project plugins are disabled by default; unlike other tiers we also
|
|
56
87
|
show plugins that were discovered but NOT imported, with the reason.
|
|
57
88
|
"""
|
|
89
|
+
from code_puppy_core_plugins.plugin_list import plugin_contributions, plugin_meta
|
|
90
|
+
|
|
91
|
+
_PROJECT_STATUS_LABELS = {
|
|
92
|
+
"untrusted": "(not enabled -- review & enable in /plugins TUI)",
|
|
93
|
+
"changed": "(changed since accepted -- re-review in /plugins TUI)",
|
|
94
|
+
"disabled": "(disabled)",
|
|
95
|
+
"error": "(failed to load -- see logs)",
|
|
96
|
+
}
|
|
58
97
|
names = sorted(set(loaded_names) | set(statuses))
|
|
59
98
|
if not names:
|
|
60
99
|
return " (none)"
|
|
61
|
-
lines = []
|
|
100
|
+
lines: list[str] = []
|
|
62
101
|
for name in names:
|
|
63
102
|
status = statuses.get(name, "loaded" if name in loaded_names else "untrusted")
|
|
64
103
|
if status == "loaded":
|
|
65
104
|
suffix = " (disabled)" if name in disabled else ""
|
|
66
105
|
else:
|
|
67
106
|
suffix = " " + _PROJECT_STATUS_LABELS.get(status, f"({status})")
|
|
68
|
-
lines.append(f"
|
|
107
|
+
lines.append(f" {name}{suffix}")
|
|
108
|
+
|
|
109
|
+
if status == "loaded":
|
|
110
|
+
description = plugin_meta.get_description(name, "project")
|
|
111
|
+
if description:
|
|
112
|
+
lines.append(f" {description}")
|
|
113
|
+
|
|
114
|
+
try:
|
|
115
|
+
contributions = plugin_contributions.get_contributions(name)
|
|
116
|
+
except Exception:
|
|
117
|
+
contributions = {}
|
|
118
|
+
contrib_parts: list[str] = []
|
|
119
|
+
for key, label in _CONTRIB_LABELS:
|
|
120
|
+
items = contributions.get(key)
|
|
121
|
+
if items:
|
|
122
|
+
contrib_parts.append(f"{label}: {', '.join(str(i) for i in items)}")
|
|
123
|
+
if contrib_parts:
|
|
124
|
+
lines.append(f" Contributes: {' | '.join(contrib_parts)}")
|
|
125
|
+
|
|
126
|
+
hooks = plugin_meta.get_hooks(name)
|
|
127
|
+
if hooks:
|
|
128
|
+
lines.append(f" Hooks: {', '.join(hooks)}")
|
|
129
|
+
|
|
130
|
+
lines.append("")
|
|
69
131
|
return "\n".join(lines)
|
|
70
132
|
|
|
71
133
|
|
|
@@ -95,10 +157,10 @@ def _build_output() -> str:
|
|
|
95
157
|
"Loaded Plugins",
|
|
96
158
|
"",
|
|
97
159
|
f"Builtin ({builtin_path}):",
|
|
98
|
-
_format_plugin_list(loaded["builtin"], disabled),
|
|
160
|
+
_format_plugin_list(loaded["builtin"], "builtin", disabled),
|
|
99
161
|
"",
|
|
100
162
|
f"User ({user_path}):",
|
|
101
|
-
_format_plugin_list(loaded["user"], disabled),
|
|
163
|
+
_format_plugin_list(loaded["user"], "user", disabled),
|
|
102
164
|
"",
|
|
103
165
|
f"Project ({project_path}):",
|
|
104
166
|
_format_project_plugin_list(loaded["project"], project_status, disabled),
|
|
@@ -77,7 +77,8 @@ def _row_lines(ordered, frame):
|
|
|
77
77
|
right block over together -- columns stay aligned no matter what gets added.
|
|
78
78
|
Alignment is done purely with U+0020 spaces (never literal tabs), and widths
|
|
79
79
|
use Rich cell_len, so the layout renders identically on Windows and macOS.
|
|
80
|
-
Root rows carry the INVOKE AGENT badge
|
|
80
|
+
Root rows carry the INVOKE AGENT badge (or FORK, for /fork-started runs);
|
|
81
|
+
nested rows carry the tree elbow.
|
|
81
82
|
Used for BOTH the live block and the transcript.
|
|
82
83
|
"""
|
|
83
84
|
from rich.cells import cell_len
|
|
@@ -91,7 +92,10 @@ def _row_lines(ordered, frame):
|
|
|
91
92
|
for e, depth in ordered:
|
|
92
93
|
left = Text(no_wrap=True, overflow="ellipsis")
|
|
93
94
|
if depth == 0:
|
|
94
|
-
|
|
95
|
+
if e.get("is_fork"):
|
|
96
|
+
left.append(" \U0001f374 FORK ", style=f"bold white on {color}")
|
|
97
|
+
else:
|
|
98
|
+
left.append(" \U0001f916 INVOKE AGENT ", style=f"bold white on {color}")
|
|
95
99
|
left.append(" ")
|
|
96
100
|
left.append(e["name"], style="bold cyan")
|
|
97
101
|
else:
|
|
@@ -301,7 +301,16 @@ def _install_emit_hook() -> None:
|
|
|
301
301
|
model = _resolve_model(
|
|
302
302
|
message.agent_name, getattr(message, "model_name", None)
|
|
303
303
|
)
|
|
304
|
-
|
|
304
|
+
# ``is_fork`` is core-optional (added after this plugin existed);
|
|
305
|
+
# default False keeps old-core rows rendering exactly as before.
|
|
306
|
+
is_fork = getattr(message, "is_fork", False)
|
|
307
|
+
state.register(
|
|
308
|
+
message.session_id,
|
|
309
|
+
message.agent_name,
|
|
310
|
+
model,
|
|
311
|
+
parent=parent,
|
|
312
|
+
is_fork=is_fork,
|
|
313
|
+
)
|
|
305
314
|
_push_panel(force=True)
|
|
306
315
|
_start_ticker() # keeps mm:ss advancing through silence
|
|
307
316
|
except Exception:
|
|
@@ -47,6 +47,7 @@ def register(
|
|
|
47
47
|
name: str,
|
|
48
48
|
model: Optional[str] = None,
|
|
49
49
|
parent: Optional[str] = None,
|
|
50
|
+
is_fork: bool = False,
|
|
50
51
|
) -> None:
|
|
51
52
|
if not session_id:
|
|
52
53
|
return
|
|
@@ -59,6 +60,7 @@ def register(
|
|
|
59
60
|
"parent": parent,
|
|
60
61
|
"name": name,
|
|
61
62
|
"model": model,
|
|
63
|
+
"is_fork": is_fork,
|
|
62
64
|
"status": "starting",
|
|
63
65
|
"start": existing["start"] if existing else now,
|
|
64
66
|
"last_seen": now,
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-puppy-core-plugins"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.31"
|
|
8
8
|
description = "Official plugin bundle for Code Puppy"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11,<3.15"
|
|
@@ -33,6 +33,7 @@ agent_skills = "code_puppy_core_plugins.agent_skills.register_callbacks"
|
|
|
33
33
|
agent_creator_skill = "code_puppy_core_plugins.agent_creator_skill.register_callbacks"
|
|
34
34
|
aws_bedrock = "code_puppy_core_plugins.aws_bedrock.register_callbacks"
|
|
35
35
|
azure_foundry = "code_puppy_core_plugins.azure_foundry.register_callbacks"
|
|
36
|
+
auto_continue = "code_puppy_core_plugins.auto_continue.register_callbacks"
|
|
36
37
|
btw = "code_puppy_core_plugins.btw.register_callbacks"
|
|
37
38
|
chatgpt_oauth = "code_puppy_core_plugins.chatgpt_oauth.register_callbacks"
|
|
38
39
|
claude_code_hooks = "code_puppy_core_plugins.claude_code_hooks.register_callbacks"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|