code-puppy-core-plugins 0.0.104__tar.gz → 0.0.106__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.104 → code_puppy_core_plugins-0.0.106}/PKG-INFO +1 -1
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/README.md +90 -18
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/agent.py +18 -1
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/permissions.py +98 -51
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/register_callbacks.py +1 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/session.py +14 -2
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/session_config.py +40 -2
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/state.py +2 -2
- code_puppy_core_plugins-0.0.106/code_puppy_core_plugins/acp/themes.py +99 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/README.md +36 -0
- code_puppy_core_plugins-0.0.106/code_puppy_core_plugins/theme/catalog.py +183 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/register_callbacks.py +6 -5
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/pyproject.toml +1 -1
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/THIRD_PARTY_NOTICES.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/auth_status.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/attachment_references/tool.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/background_agents/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/batch.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/execution_environment/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/execution_environment/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/launcher.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/restore.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/search.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/legacy_core.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/sdk.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/plugin_settings.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/adapter.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/agents.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/catalog.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/prompt.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/skills/create-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/upstream.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-cli/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-ui/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/deslop/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/agents/comment-sicko.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/agents/poteto-agent.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/FOR_AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/control-adapter.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/feature-map.example.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/verify-existing-fix.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/setup-benny/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/references/routing.example.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/configuration.example.yaml +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/reproduce-automation-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/triage-automation-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/01-setup.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/02-poteto-mode.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/03-understand.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/04-design.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/05-build-and-clean.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/06-verify-and-ship.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/07-overnight.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/08-principles.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/09-make-it-yours.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/10-recipes-and-pitfalls.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/plugin.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/design-red-flags.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/rationale-template.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/runner-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/arena/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/automate-me/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/benchmark-checklist/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/blast-radius/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/bro/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/correct/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/search.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/figure-it-out/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explainer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explorer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/in-your-own-words/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/code-quality-review.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/lead-judgment.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/reviewer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/rubric.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/ketchup/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/maintain-verification-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/make-bot-ui/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/no-comments/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/prompting.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/recipes.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autonomous-run.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-full.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/babysit.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/bug-fix.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/eval.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/feature.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/hillclimb.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/investigation.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/orchestrate.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/pause-safely.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/perf-issue.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/prototype.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/refactoring.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/session-pickup.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/shipping.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/trace-forensics.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/visual-parity.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/references/bugbot-triage.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bootstrap.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bun.lock +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.mjs +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.test.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.test.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/store.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/package.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/worktree-audit.sh +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-attack-the-premise/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-boundary-discipline/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-build-the-lever/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-exhaust-the-design-space/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-experience-first/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-explain-the-number/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-fix-root-causes/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-foundational-thinking/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-guard-the-context-window/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-laziness-protocol/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-make-operations-idempotent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-minimize-reader-load/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-model-the-domain/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-never-block-on-the-human/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-outcome-oriented-execution/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-prove-it-works/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-redesign-from-first-principles/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-sequence-verifiable-units/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-subtract-before-you-add/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-type-system-discipline/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/recall/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/divergent-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/judgment-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/synthesizer.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/tooling-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/setup-pstack/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/references/decision-log-template.tsv +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/scripts/log.sh +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/swarm/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/tdd/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/teach/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/technical-writing/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/references/patterns.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/unslop/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/epistemics.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/investigator-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/source-playbook.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/code-archaeology.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/databricks.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/datadog.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/incident-postmortem.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/linear.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/notion.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/sentry.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/slack.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/synthesizer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/resume_hint/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/resume_hint/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/resume_hint/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/resume_hint/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/resume_hint/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/agent_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/auth_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/cli.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/config_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/export_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/mcp_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/model_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/output.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/plugin_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/providers.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/sbx_plan.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/skill_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106
|
|
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
|
|
@@ -86,27 +86,31 @@ plugin's protocol layer changed.
|
|
|
86
86
|
|----------|--------|
|
|
87
87
|
| **Protocol layer** | **Official `acp` SDK.** We implement its `Agent` interface; `acp.run_agent` owns stdio + framing. |
|
|
88
88
|
| **Who does I/O** | **Delegated to the client when the client supports it.** Workspace file reads/writes go through the client's `fs/read_text_file` / `fs/write_text_file` (edits land in the client's diff UI; reads see unsaved buffers), and shell commands run via the client's `terminal/*`. This rides two small, general **I/O-backend seams** in core (`code_puppy/tools/io_backends.py`): a sync `FileSystemBackend` and an async `CommandExecutor`, both `None` by default (local I/O) and installed by this plugin, capability-gated, after `initialize`. Internal writes (config, session state, agent metadata) deliberately stay local — only *workspace* edits reroute (via `common.write_project_file`). |
|
|
89
|
-
| **Permissions** | **the client is the authority (non-yolo).**
|
|
89
|
+
| **Permissions** | **the client is the authority (non-yolo).** Core runs one approval path for file writes and shell commands; ACP supplies the backend that asks the client via `session/request_permission`. No yolo forcing, no terminal prompts. |
|
|
90
90
|
| **Entry point** | A `--acp` CLI flag contributed via the `register_cli_args` hook; `handle_cli_args` boots the agent (on its own loop, in a thread) and short-circuits normal TUI startup. |
|
|
91
91
|
| **Core footprint** | Small, general, additive core seams — **no monkeypatching**: (1) a pluggable *approval backend* (`common.set_approval_backend`), (2) a *workspace write* wrapper (`common.write_project_file`) + backend-aware `_read_file`, and (3) `FileSystemBackend` / `CommandExecutor` registries (`tools/io_backends.py`). Each is useful to any non-terminal embedder, not ACP-specific. Everything else is this plugin + existing public hooks + the SDK. |
|
|
92
92
|
|
|
93
93
|
### Permissions in non-yolo mode (the important part)
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
the
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
95
|
+
Headless ACP has no TTY, so the built-in stdin prompt would fail closed. Instead,
|
|
96
|
+
the approval decision lives in core and ACP only supplies the prompting backend,
|
|
97
|
+
*without* forcing yolo or patching tool logic:
|
|
98
|
+
|
|
99
|
+
* **One shared path in core:** yolo check, then sub-agent check, then queueing.
|
|
100
|
+
Sub-agents never prompt.
|
|
101
|
+
* **ACP's backend** (`permissions.py`) asks the client via the SDK's
|
|
102
|
+
`request_permission`. Sync file tools run in the tool threadpool, so that path
|
|
103
|
+
bridges to the ACP loop with `run_coroutine_threadsafe` and blocks the worker
|
|
104
|
+
for the answer; it refuses to run on the loop itself (deadlock guard). Shell
|
|
105
|
+
commands go through core's same gate, which calls this backend (from a worker
|
|
106
|
+
thread, so the same bridge applies).
|
|
107
|
+
* **No timeout:** like the terminal, the request waits. It ends on the client's
|
|
108
|
+
answer, on `session/cancel`, or when the connection closes. Cancel and
|
|
109
|
+
disconnect deny (fail closed).
|
|
110
|
+
* **`approval_mode` config option:** read-only, reports `ask` or `auto` from yolo
|
|
111
|
+
mode. `apply_config_option` never writes config; client writes are ignored.
|
|
112
|
+
* **Older cores** without `can_prompt_for_approval` get a fallback shell hook in
|
|
113
|
+
the plugin.
|
|
110
114
|
|
|
111
115
|
---
|
|
112
116
|
|
|
@@ -126,10 +130,11 @@ Every file stays well under the 600-line cap and owns one concern.
|
|
|
126
130
|
| `persistence.py` | Pickle each session's history under `AUTOSAVE_DIR/acp` keyed by session id, plus an ACP metadata sidecar (`cwd` + `additionalDirectories` + title). Rehydrate on `load`/`resume`/`fork`; enumerate for `session/list` (`list_persisted`); tombstone on `session/close` (`delete`). |
|
|
127
131
|
| `replay.py` | On `load`/`resume`, stream the rehydrated history back to the client as ordered `session/update`s (user / agent text / thinking / past tool calls) so the client rebuilds the thread UI. |
|
|
128
132
|
| `mcp_config.py` | Translate client-injected ACP MCP server specs → pydantic-ai servers on the session agent. |
|
|
129
|
-
| `session_config.py` | Build the model list (surfaced as ACP *modes*) + safe config options; apply `set_mode` / `set_config_option`. |
|
|
133
|
+
| `session_config.py` | Build the model list (surfaced as ACP *modes*) + safe config options (including the read-only `approval_mode`); apply `set_mode` / `set_config_option`. |
|
|
130
134
|
| `bridge.py` | `EventBridge`: registers `stream_event` / `pre_tool_call` / `post_tool_call` hooks and translates them into SDK `session/update`s via `connection.session_update`. (Hooks, **not** MessageBus — see *Event source*.) |
|
|
131
|
-
| `permissions.py` |
|
|
135
|
+
| `permissions.py` | The ACP approval backend (`tools.common` seam, cross-thread bridge to `request_permission`) for file and shell approvals, `cancel_pending` for cancel/close, and a legacy `run_shell_command` fallback hook for cores without `can_prompt_for_approval`. No timeout; fails closed. |
|
|
132
136
|
| `io_delegation.py` | `DelegatedFileSystemBackend` (sync, cross-thread) + `DelegatedCommandExecutor` (async terminal lifecycle) that plug into the core I/O seams, capability-gated. |
|
|
137
|
+
| `themes.py` | Read-only theme catalog: the `_code_puppy/themes/list` ext method, the `codePuppy/theme` session `_meta`, and the `_code_puppy/themes/changed` poll (`ThemeWatcher`). |
|
|
133
138
|
| `state.py` | Process-wide run context: the SDK connection + its loop, the active session id, and the open-tool-call stack — so the permission/I/O seams (plain module functions) can reach the running connection and correlate events. |
|
|
134
139
|
|
|
135
140
|
```
|
|
@@ -319,6 +324,73 @@ change.
|
|
|
319
324
|
|
|
320
325
|
---
|
|
321
326
|
|
|
327
|
+
## Theme catalog (`_code_puppy/themes/*`)
|
|
328
|
+
|
|
329
|
+
You can list Code Puppy's color themes and track the active one without reading
|
|
330
|
+
its config. The catalog is read-only: there is no setter.
|
|
331
|
+
|
|
332
|
+
### `_code_puppy/themes/list`
|
|
333
|
+
|
|
334
|
+
Send this request before or after `session/new`. It needs no session. Send
|
|
335
|
+
`{}` or omit `params`; extra keys are ignored.
|
|
336
|
+
|
|
337
|
+
The result has this shape:
|
|
338
|
+
|
|
339
|
+
```jsonc
|
|
340
|
+
{
|
|
341
|
+
"schemaVersion": 1,
|
|
342
|
+
"active": "ocean", // or null
|
|
343
|
+
"themes": [
|
|
344
|
+
{
|
|
345
|
+
"id": "ocean",
|
|
346
|
+
"label": "Ocean",
|
|
347
|
+
"icon": "...",
|
|
348
|
+
"blurb": "...",
|
|
349
|
+
"appearance": "dark", // "dark" or "light"
|
|
350
|
+
"palette": { "bg": "#rrggbb", "fg": "#rrggbb", "ansi": ["#rrggbb", "...16 entries"] },
|
|
351
|
+
"roles": { "background": "#rrggbb", "surface": "#rrggbb", "text": "#rrggbb",
|
|
352
|
+
"mutedText": "#rrggbb", "accent": "#rrggbb", "success": "#rrggbb",
|
|
353
|
+
"error": "#rrggbb", "warning": "#rrggbb", "running": "#rrggbb",
|
|
354
|
+
"diffAdd": "#rrggbb", "diffRemove": "#rrggbb" }
|
|
355
|
+
}
|
|
356
|
+
// ...more themes
|
|
357
|
+
]
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Themes appear in this order: curated themes in menu order, then `default`. The `surprise`
|
|
362
|
+
theme is excluded. The `default` entry has `null` for `appearance`, `palette`,
|
|
363
|
+
and `roles`, because it restores the terminal's own colors.
|
|
364
|
+
|
|
365
|
+
`active` is the ID of the catalog theme stored in the `theme_active_theme`
|
|
366
|
+
config key. It is `null` when the key is unset, and also when the key holds
|
|
367
|
+
`legacy-custom` or `surprise`.
|
|
368
|
+
|
|
369
|
+
For the mapping from palette to roles, see
|
|
370
|
+
[`theme/README.md`](../theme/README.md). This page does not repeat it.
|
|
371
|
+
|
|
372
|
+
### `_meta` on session responses
|
|
373
|
+
|
|
374
|
+
`session/new`, `session/load`, and `session/resume` results include
|
|
375
|
+
`_meta["codePuppy/theme"] = {"active": <id or null>}`. Use it to paint the first
|
|
376
|
+
frame without waiting for the list request.
|
|
377
|
+
|
|
378
|
+
### `_code_puppy/themes/changed`
|
|
379
|
+
|
|
380
|
+
When the active theme changes, the agent sends this notification with params
|
|
381
|
+
`{"active": <id or null>}`. It sends one notification per change. The agent
|
|
382
|
+
reads the config value every 2 seconds from the moment the client connects.
|
|
383
|
+
The first reading is a baseline, so no notification is sent for it.
|
|
384
|
+
|
|
385
|
+
### Unknown methods and older CLIs
|
|
386
|
+
|
|
387
|
+
Any other `_code_puppy/*` method, such as `_code_puppy/themes/set`, returns
|
|
388
|
+
JSON-RPC error `-32601` (method not found). Older Code Puppy CLIs omit the
|
|
389
|
+
`_meta` key and return `-32601` for the list request. Clients should fall back
|
|
390
|
+
to a bundled copy of the catalog when either happens.
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
322
394
|
## Testing
|
|
323
395
|
|
|
324
396
|
`tests/test_acp_plugin.py` drives `CodePuppyAgent` directly against a fake SDK
|
|
@@ -49,6 +49,7 @@ from code_puppy_core_plugins.acp import (
|
|
|
49
49
|
replay,
|
|
50
50
|
session_config,
|
|
51
51
|
state,
|
|
52
|
+
themes,
|
|
52
53
|
)
|
|
53
54
|
from code_puppy_core_plugins.acp.bridge import EventBridge
|
|
54
55
|
from code_puppy_core_plugins.acp.session import ACPSession
|
|
@@ -77,6 +78,7 @@ class CodePuppyAgent(Agent):
|
|
|
77
78
|
self._sessions: Dict[str, ACPSession] = {}
|
|
78
79
|
self._bridge = EventBridge()
|
|
79
80
|
self._client_caps: Optional[ClientCapabilities] = None
|
|
81
|
+
self._theme_watcher = themes.ThemeWatcher()
|
|
80
82
|
|
|
81
83
|
# ---- Connection lifecycle ---------------------------------------------
|
|
82
84
|
def on_connect(self, conn: Any) -> None:
|
|
@@ -89,6 +91,11 @@ class CodePuppyAgent(Agent):
|
|
|
89
91
|
state.set_connection(conn, asyncio.get_running_loop())
|
|
90
92
|
self._bridge.register()
|
|
91
93
|
permissions.install()
|
|
94
|
+
try:
|
|
95
|
+
self._theme_watcher.start()
|
|
96
|
+
except Exception as error: # noqa: BLE001
|
|
97
|
+
# Startup must never fail on the theme watcher; log the class only.
|
|
98
|
+
logger.debug("ACP theme watcher not started: %s", type(error).__name__)
|
|
92
99
|
|
|
93
100
|
def shutdown(self) -> None:
|
|
94
101
|
"""Unwire this agent's event hooks. Call once the connection ends.
|
|
@@ -98,6 +105,7 @@ class CodePuppyAgent(Agent):
|
|
|
98
105
|
connection leaves the global callback registry clean.
|
|
99
106
|
"""
|
|
100
107
|
self._bridge.unregister()
|
|
108
|
+
self._theme_watcher.stop()
|
|
101
109
|
|
|
102
110
|
# ---- Handshake --------------------------------------------------------
|
|
103
111
|
async def initialize(
|
|
@@ -159,6 +167,7 @@ class CodePuppyAgent(Agent):
|
|
|
159
167
|
return NewSessionResponse(
|
|
160
168
|
session_id=session_id,
|
|
161
169
|
config_options=session_config.config_options() or None,
|
|
170
|
+
field_meta=themes.session_meta(),
|
|
162
171
|
)
|
|
163
172
|
|
|
164
173
|
async def load_session(
|
|
@@ -185,6 +194,7 @@ class CodePuppyAgent(Agent):
|
|
|
185
194
|
self._announce_commands_soon(session_id)
|
|
186
195
|
return LoadSessionResponse(
|
|
187
196
|
config_options=session_config.config_options() or None,
|
|
197
|
+
field_meta=themes.session_meta(),
|
|
188
198
|
)
|
|
189
199
|
|
|
190
200
|
async def resume_session(
|
|
@@ -205,6 +215,7 @@ class CodePuppyAgent(Agent):
|
|
|
205
215
|
self._announce_commands_soon(session_id)
|
|
206
216
|
return ResumeSessionResponse(
|
|
207
217
|
config_options=session_config.config_options() or None,
|
|
218
|
+
field_meta=themes.session_meta(),
|
|
208
219
|
)
|
|
209
220
|
|
|
210
221
|
async def fork_session(
|
|
@@ -366,6 +377,7 @@ class CodePuppyAgent(Agent):
|
|
|
366
377
|
"""
|
|
367
378
|
from code_puppy.agents._builder import reset_model_fallback_warnings
|
|
368
379
|
|
|
380
|
+
permissions.cancel_pending(session_id)
|
|
369
381
|
session = self._sessions.pop(session_id, None)
|
|
370
382
|
if session is not None:
|
|
371
383
|
await session.cancel_and_wait()
|
|
@@ -373,6 +385,10 @@ class CodePuppyAgent(Agent):
|
|
|
373
385
|
reset_model_fallback_warnings(scope=session_id)
|
|
374
386
|
return CloseSessionResponse()
|
|
375
387
|
|
|
388
|
+
async def ext_method(self, method: str, params: dict[str, Any]) -> dict[str, Any]:
|
|
389
|
+
"""Route ext requests (currently only themes) to the theme catalog."""
|
|
390
|
+
return await themes.handle_ext_method(method, params)
|
|
391
|
+
|
|
376
392
|
# ---- Prompt turn ------------------------------------------------------
|
|
377
393
|
async def prompt(
|
|
378
394
|
self, prompt: List[Any], session_id: str, **kwargs: Any
|
|
@@ -385,7 +401,8 @@ class CodePuppyAgent(Agent):
|
|
|
385
401
|
return PromptResponse(stop_reason=outcome.stop_reason, usage=outcome.usage)
|
|
386
402
|
|
|
387
403
|
async def cancel(self, session_id: str, **kwargs: Any) -> None:
|
|
388
|
-
"""Cancel the in-flight run for a session
|
|
404
|
+
"""Cancel the in-flight run and any pending approval (file or shell) for a session."""
|
|
405
|
+
permissions.cancel_pending(session_id)
|
|
389
406
|
session = self._sessions.get(session_id)
|
|
390
407
|
if session is not None:
|
|
391
408
|
session.cancel()
|
|
@@ -9,21 +9,27 @@ logic or forcing yolo mode:
|
|
|
9
9
|
threadpool, so the backend bridges to the ACP event loop via
|
|
10
10
|
``run_coroutine_threadsafe`` to ask the client, then blocks the worker thread for
|
|
11
11
|
the answer. The loop stays free to service the round-trip — no deadlock.
|
|
12
|
-
* **Shell commands** go through
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
* **Shell commands** go through core's shared shell gate
|
|
13
|
+
(``get_user_approval_async`` -> the same approval backend), so yolo mode and
|
|
14
|
+
sub-agent handling stay in core. Cores older than ``can_prompt_for_approval``
|
|
15
|
+
lack that gate, so a ``run_shell_command`` fallback hook is registered for them
|
|
16
|
+
only.
|
|
17
|
+
|
|
18
|
+
Neither edge has a timeout: a dialog waits for a person. Both fail **closed**
|
|
19
|
+
(deny) if the connection is gone, the client errors, or the session is cancelled
|
|
20
|
+
or closed (``cancel_pending``). A denial nobody chose is reported as
|
|
21
|
+
``PermissionNotDecided`` rather than as the user rejecting the operation, so the
|
|
22
|
+
model is not told the user said no.
|
|
19
23
|
"""
|
|
20
24
|
|
|
21
25
|
from __future__ import annotations
|
|
22
26
|
|
|
23
27
|
import asyncio
|
|
28
|
+
import concurrent.futures
|
|
24
29
|
import logging
|
|
30
|
+
import threading
|
|
25
31
|
import uuid
|
|
26
|
-
from typing import Any, Dict, Optional, Tuple
|
|
32
|
+
from typing import Any, Dict, Optional, Set, Tuple
|
|
27
33
|
|
|
28
34
|
from acp.schema import PermissionOption, ToolCallUpdate
|
|
29
35
|
|
|
@@ -40,9 +46,10 @@ except ImportError: # pragma: no cover - code_puppy without the marker type
|
|
|
40
46
|
|
|
41
47
|
logger = logging.getLogger(__name__)
|
|
42
48
|
|
|
43
|
-
#
|
|
44
|
-
#
|
|
45
|
-
|
|
49
|
+
# In-flight approval bridges (file and shell) per session, so ``cancel_pending`` can unblock
|
|
50
|
+
# the tool threads waiting on them.
|
|
51
|
+
_PENDING: Dict[str, Set[concurrent.futures.Future]] = {}
|
|
52
|
+
_PENDING_LOCK = threading.Lock()
|
|
46
53
|
|
|
47
54
|
# The allow/deny options we present. The client echoes back the chosen ``option_id``.
|
|
48
55
|
_OPTIONS = [
|
|
@@ -73,25 +80,19 @@ async def _ask_client_outcome(
|
|
|
73
80
|
"""Show an allow/deny dialog in the client.
|
|
74
81
|
|
|
75
82
|
Returns ``(True, None)`` when allowed and ``(False, None)`` when a person
|
|
76
|
-
selected Reject. Every other denial -- no connection, a failed
|
|
77
|
-
|
|
83
|
+
selected Reject. Every other denial -- no connection, a failed request, a
|
|
84
|
+
cancelled dialog, an unknown option -- returns
|
|
78
85
|
``(False, PermissionNotDecided(reason))``.
|
|
79
86
|
"""
|
|
80
87
|
connection = state.get_connection()
|
|
81
88
|
if connection is None:
|
|
82
89
|
return False, PermissionNotDecided("The client connection is unavailable.")
|
|
83
90
|
try:
|
|
84
|
-
response = await
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
tool_call=_tool_call_ref(title),
|
|
89
|
-
),
|
|
90
|
-
timeout=_PERMISSION_TIMEOUT_S,
|
|
91
|
+
response = await connection.request_permission(
|
|
92
|
+
options=list(_OPTIONS),
|
|
93
|
+
session_id=session_id,
|
|
94
|
+
tool_call=_tool_call_ref(title),
|
|
91
95
|
)
|
|
92
|
-
except asyncio.TimeoutError:
|
|
93
|
-
logger.warning("session/request_permission timed out; denying")
|
|
94
|
-
return False, PermissionNotDecided("The permission request timed out.")
|
|
95
96
|
except Exception: # noqa: BLE001
|
|
96
97
|
logger.exception("session/request_permission failed; denying")
|
|
97
98
|
return False, PermissionNotDecided(
|
|
@@ -118,6 +119,37 @@ async def _ask_client(session_id: str, title: str) -> bool:
|
|
|
118
119
|
return allowed
|
|
119
120
|
|
|
120
121
|
|
|
122
|
+
def _track_pending(session_id: str, future: concurrent.futures.Future) -> None:
|
|
123
|
+
with _PENDING_LOCK:
|
|
124
|
+
_PENDING.setdefault(session_id, set()).add(future)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def _untrack_pending(session_id: str, future: concurrent.futures.Future) -> None:
|
|
128
|
+
with _PENDING_LOCK:
|
|
129
|
+
futures = _PENDING.get(session_id)
|
|
130
|
+
if futures is None:
|
|
131
|
+
return
|
|
132
|
+
futures.discard(future)
|
|
133
|
+
if not futures:
|
|
134
|
+
del _PENDING[session_id]
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def cancel_pending(session_id: Optional[str] = None) -> None:
|
|
138
|
+
"""Cancel in-flight approvals (file and shell) for one session, or all when ``None``.
|
|
139
|
+
|
|
140
|
+
Each cancelled wait returns ``PermissionNotDecided``, so the blocked tool
|
|
141
|
+
thread unwinds instead of waiting on a dialog nobody will answer.
|
|
142
|
+
"""
|
|
143
|
+
with _PENDING_LOCK:
|
|
144
|
+
if session_id is None:
|
|
145
|
+
futures = [f for group in _PENDING.values() for f in group]
|
|
146
|
+
else:
|
|
147
|
+
futures = list(_PENDING.get(session_id, ()))
|
|
148
|
+
# Cancel outside the lock: cancelling runs callbacks that may re-enter tracking.
|
|
149
|
+
for future in futures:
|
|
150
|
+
future.cancel()
|
|
151
|
+
|
|
152
|
+
|
|
121
153
|
def _approval_backend(
|
|
122
154
|
title: str, message: str, preview: Optional[str]
|
|
123
155
|
) -> Tuple[bool, Optional[str]]:
|
|
@@ -148,41 +180,40 @@ def _approval_backend(
|
|
|
148
180
|
future = asyncio.run_coroutine_threadsafe(
|
|
149
181
|
_ask_client_outcome(session_id, title), loop
|
|
150
182
|
)
|
|
183
|
+
_track_pending(session_id, future)
|
|
151
184
|
try:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
185
|
+
allowed, not_decided = future.result()
|
|
186
|
+
except concurrent.futures.CancelledError:
|
|
187
|
+
return False, PermissionNotDecided("The permission request was cancelled.")
|
|
188
|
+
except Exception: # noqa: BLE001
|
|
155
189
|
# Abandon the in-flight request so it doesn't linger on the loop.
|
|
156
190
|
future.cancel()
|
|
157
191
|
logger.exception("ACP approval bridge failed; denying")
|
|
158
192
|
return False, PermissionNotDecided(
|
|
159
193
|
"The permission request could not be completed."
|
|
160
194
|
)
|
|
195
|
+
finally:
|
|
196
|
+
_untrack_pending(session_id, future)
|
|
161
197
|
return bool(allowed), not_decided
|
|
162
198
|
|
|
163
199
|
|
|
164
|
-
async def
|
|
200
|
+
async def _legacy_shell_hook(
|
|
165
201
|
context: Any, command: str, cwd: Optional[str] = None, timeout: int = 60
|
|
166
202
|
) -> Optional[Dict[str, Any]]:
|
|
167
|
-
"""``run_shell_command``
|
|
203
|
+
"""``run_shell_command`` fallback for cores without core's shell approval gate.
|
|
168
204
|
|
|
169
|
-
Returns ``None`` to allow
|
|
205
|
+
Mirrors that gate's yolo and sub-agent skips. Returns ``None`` to allow, or a
|
|
170
206
|
``{"blocked": True, ...}`` dict to deny. Inert outside ACP mode.
|
|
171
|
-
|
|
172
|
-
Honors yolo mode: when the user has opted out of approvals we do *not*
|
|
173
|
-
surface a client dialog, matching Code Puppy's file-permission edge (which
|
|
174
|
-
skips its prompt in yolo mode). Otherwise ACP + yolo would silently
|
|
175
|
-
auto-approve file writes yet still prompt for every shell command.
|
|
176
207
|
"""
|
|
177
|
-
|
|
178
|
-
if session_id is None:
|
|
208
|
+
if state.get_active_session_id() is None:
|
|
179
209
|
return None
|
|
180
210
|
from code_puppy.config import get_yolo_mode
|
|
211
|
+
from code_puppy.tools.subagent_context import is_subagent
|
|
181
212
|
|
|
182
|
-
if get_yolo_mode():
|
|
213
|
+
if get_yolo_mode() or is_subagent():
|
|
183
214
|
return None
|
|
184
|
-
allowed, not_decided = await
|
|
185
|
-
|
|
215
|
+
allowed, not_decided = await asyncio.to_thread(
|
|
216
|
+
_approval_backend, "Shell Command", f"Run shell command: {command}", None
|
|
186
217
|
)
|
|
187
218
|
if allowed:
|
|
188
219
|
return None
|
|
@@ -202,21 +233,37 @@ async def _on_run_shell_command(
|
|
|
202
233
|
}
|
|
203
234
|
|
|
204
235
|
|
|
236
|
+
# Kept so existing importers/tests of the pre-rename name keep working; core's
|
|
237
|
+
# tests/test_acp_plugin.py still calls it.
|
|
238
|
+
_on_run_shell_command = _legacy_shell_hook
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
_legacy_shell_hook_registered = False
|
|
242
|
+
|
|
243
|
+
|
|
205
244
|
def install() -> None:
|
|
206
|
-
"""Install the file approval backend
|
|
207
|
-
from code_puppy.tools
|
|
245
|
+
"""Install the file approval backend, plus the legacy shell hook on old cores."""
|
|
246
|
+
from code_puppy.tools import common
|
|
208
247
|
|
|
209
|
-
|
|
210
|
-
|
|
248
|
+
global _legacy_shell_hook_registered
|
|
249
|
+
common.set_approval_backend(_approval_backend)
|
|
250
|
+
# Remove once the minimum supported core ships can_prompt_for_approval: until
|
|
251
|
+
# then an older core would run shell commands without asking the client.
|
|
252
|
+
if not hasattr(common, "can_prompt_for_approval"):
|
|
253
|
+
register_callback("run_shell_command", _legacy_shell_hook)
|
|
254
|
+
_legacy_shell_hook_registered = True
|
|
211
255
|
|
|
212
256
|
|
|
213
257
|
def uninstall() -> None:
|
|
214
|
-
"""Remove the approval backend
|
|
258
|
+
"""Remove the approval backend and legacy hook so normal stdin prompting resumes."""
|
|
215
259
|
from code_puppy.callbacks import unregister_callback
|
|
216
|
-
from code_puppy.tools
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
260
|
+
from code_puppy.tools import common
|
|
261
|
+
|
|
262
|
+
global _legacy_shell_hook_registered
|
|
263
|
+
common.set_approval_backend(None)
|
|
264
|
+
if _legacy_shell_hook_registered:
|
|
265
|
+
_legacy_shell_hook_registered = False
|
|
266
|
+
try:
|
|
267
|
+
unregister_callback("run_shell_command", _legacy_shell_hook)
|
|
268
|
+
except Exception: # noqa: BLE001
|
|
269
|
+
logger.debug("ACP: run_shell_command unregister failed", exc_info=True)
|
|
@@ -65,6 +65,8 @@ class ACPSession:
|
|
|
65
65
|
# Set while a ``session/prompt`` is in flight so ``cancel`` has a task
|
|
66
66
|
# to cancel. ``None`` means idle.
|
|
67
67
|
self._task: Optional["asyncio.Task[Any]"] = None
|
|
68
|
+
# Set only when cancel() cancels a live task; see cancel().
|
|
69
|
+
self._cancel_requested = False
|
|
68
70
|
|
|
69
71
|
async def prompt(self, blocks: List[Any]) -> PromptResult:
|
|
70
72
|
"""Run the agent on a user turn and return the stop reason + usage.
|
|
@@ -117,6 +119,7 @@ class ACPSession:
|
|
|
117
119
|
state.begin_run(self.session_id)
|
|
118
120
|
result: Any = None
|
|
119
121
|
error: Optional[BaseException] = None
|
|
122
|
+
self._cancel_requested = False
|
|
120
123
|
try:
|
|
121
124
|
self._task = asyncio.ensure_future(
|
|
122
125
|
self.agent.run_with_mcp(
|
|
@@ -126,8 +129,13 @@ class ACPSession:
|
|
|
126
129
|
)
|
|
127
130
|
)
|
|
128
131
|
result = await self._task
|
|
132
|
+
# Core swallows cancellation, so the handler's own cancel would be lost;
|
|
133
|
+
# the SDK response send then hangs after the connection closes.
|
|
134
|
+
current = asyncio.current_task()
|
|
135
|
+
if current is not None and current.cancelling() > 0:
|
|
136
|
+
raise asyncio.CancelledError
|
|
129
137
|
self._absorb_history(result)
|
|
130
|
-
stop_reason = STOP_END_TURN
|
|
138
|
+
stop_reason = STOP_CANCELLED if self._cancel_requested else STOP_END_TURN
|
|
131
139
|
except asyncio.CancelledError:
|
|
132
140
|
# Two ways here: our own cancel cancelled the inner task (report
|
|
133
141
|
# ``cancelled``), or THIS coroutine was cancelled (SDK teardown) while the
|
|
@@ -195,7 +203,9 @@ class ACPSession:
|
|
|
195
203
|
|
|
196
204
|
Besides cancelling the asyncio task, force-kill any local shell
|
|
197
205
|
processes the run spawned so they don't orphan. (Shells delegated to
|
|
198
|
-
the client run client-side and are unaffected.)
|
|
206
|
+
the client run client-side and are unaffected.) Core may swallow the
|
|
207
|
+
cancel, so ``_cancel_requested`` is the authoritative signal that the
|
|
208
|
+
turn was cancelled.
|
|
199
209
|
|
|
200
210
|
Only *requests* cancellation -- delivery happens at the task's next
|
|
201
211
|
await point, whenever that is, not immediately. Callers that need
|
|
@@ -204,6 +214,8 @@ class ACPSession:
|
|
|
204
214
|
"""
|
|
205
215
|
task = self._task
|
|
206
216
|
if task is not None and not task.done():
|
|
217
|
+
# Live-task only, so an idle cancel can't mark the next turn cancelled.
|
|
218
|
+
self._cancel_requested = True
|
|
207
219
|
task.cancel()
|
|
208
220
|
try:
|
|
209
221
|
from code_puppy.tools.command_runner import (
|
|
@@ -17,8 +17,11 @@ option by its ``category``, so this is the shape that actually populates them:
|
|
|
17
17
|
* **Streaming toggle** — an On/Off ``select`` option. (A boolean option would
|
|
18
18
|
be more natural, but Zed 1.7.2 renders only ``select`` options in its bottom
|
|
19
19
|
bar -- a boolean shows as "Unknown" -- so every control here is a select.) We
|
|
20
|
-
deliberately expose only this safe setting
|
|
21
|
-
|
|
20
|
+
deliberately expose only this safe setting.
|
|
21
|
+
|
|
22
|
+
* **Approvals** — a read-only ``select`` (``approval_mode``) reporting ``ask`` or
|
|
23
|
+
``auto`` from the CLI's yolo setting. Clients cannot change it: writes fall
|
|
24
|
+
through like unknown ids, so permissions stay client-driven.
|
|
22
25
|
|
|
23
26
|
All accessors are best-effort and degrade to "nothing to offer" on error.
|
|
24
27
|
"""
|
|
@@ -42,6 +45,13 @@ MODE_OPTION_ID = "mode"
|
|
|
42
45
|
_STREAMING_ID = "enable_streaming"
|
|
43
46
|
_STREAMING_ON = "on"
|
|
44
47
|
_STREAMING_OFF = "off"
|
|
48
|
+
_APPROVAL_ID = "approval_mode"
|
|
49
|
+
_APPROVAL_ASK = "ask"
|
|
50
|
+
_APPROVAL_AUTO = "auto"
|
|
51
|
+
_APPROVAL_DESCRIPTIONS = {
|
|
52
|
+
_APPROVAL_ASK: "Ask before commands and edits",
|
|
53
|
+
_APPROVAL_AUTO: "Run without asking",
|
|
54
|
+
}
|
|
45
55
|
|
|
46
56
|
# Exactly one operating mode, but advertised as a category="mode" select so the
|
|
47
57
|
# client's dropdown shows "Default" rather than an empty "Unknown" control.
|
|
@@ -105,6 +115,30 @@ def _model_option() -> Optional[SessionConfigOptionSelect]:
|
|
|
105
115
|
)
|
|
106
116
|
|
|
107
117
|
|
|
118
|
+
def _approval_option() -> SessionConfigOptionSelect:
|
|
119
|
+
"""Report the CLI's approval mode as a read-only select (ask or auto).
|
|
120
|
+
|
|
121
|
+
Only the current value is listed, so the client has nothing to pick.
|
|
122
|
+
"""
|
|
123
|
+
from code_puppy import config
|
|
124
|
+
|
|
125
|
+
current = _APPROVAL_AUTO if config.get_yolo_mode() else _APPROVAL_ASK
|
|
126
|
+
return SessionConfigOptionSelect(
|
|
127
|
+
id=_APPROVAL_ID,
|
|
128
|
+
name="Approvals",
|
|
129
|
+
type="select",
|
|
130
|
+
current_value=current,
|
|
131
|
+
options=[
|
|
132
|
+
SessionConfigSelectOption(
|
|
133
|
+
value=current,
|
|
134
|
+
name=current.capitalize(),
|
|
135
|
+
description=_APPROVAL_DESCRIPTIONS[current],
|
|
136
|
+
)
|
|
137
|
+
],
|
|
138
|
+
description="Read-only: set by the CLI configuration.",
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
|
|
108
142
|
def set_model(model_id: str) -> bool:
|
|
109
143
|
"""Switch the active model. Returns ``True`` on success."""
|
|
110
144
|
try:
|
|
@@ -156,6 +190,10 @@ def config_options() -> List[Any]:
|
|
|
156
190
|
)
|
|
157
191
|
except Exception: # noqa: BLE001
|
|
158
192
|
logger.debug("ACP: could not build streaming option", exc_info=True)
|
|
193
|
+
try:
|
|
194
|
+
opts.append(_approval_option())
|
|
195
|
+
except Exception: # noqa: BLE001
|
|
196
|
+
logger.debug("ACP: could not build approval option", exc_info=True)
|
|
159
197
|
return opts
|
|
160
198
|
|
|
161
199
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Run context for the active ACP connection.
|
|
2
2
|
|
|
3
|
-
Code Puppy's approval and I/O seams live at its *edges* (the
|
|
4
|
-
``run_shell_command`` hook
|
|
3
|
+
Code Puppy's approval and I/O seams live at its *edges* (the ``tools.common`` approval
|
|
4
|
+
backend, the legacy ``run_shell_command`` hook on older cores, and the
|
|
5
5
|
``tools.io_backends`` filesystem/command backends). Those are plain module
|
|
6
6
|
functions with no reference to the live ACP connection, so this module is the
|
|
7
7
|
small, explicit bridge between them and the running agent.
|