code-puppy-core-plugins 0.0.50__tar.gz → 0.0.52__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.50 → code_puppy_core_plugins-0.0.52}/PKG-INFO +1 -1
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/fork/register_callbacks.py +36 -4
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/register_callbacks.py +83 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/pyproject.toml +1 -1
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/agent.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/session.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/session_config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/acp/state.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/downloader.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/installer.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/remote_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/skill_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/skills_install_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/background_agents/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/README.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.50 → code_puppy_core_plugins-0.0.52}/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.52
|
|
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
|
|
@@ -35,12 +35,15 @@ from __future__ import annotations
|
|
|
35
35
|
import asyncio
|
|
36
36
|
import inspect
|
|
37
37
|
import itertools
|
|
38
|
+
import logging
|
|
38
39
|
import time
|
|
39
40
|
from dataclasses import dataclass, field
|
|
40
41
|
from typing import Any, Callable, Dict, List, Optional, Tuple
|
|
41
42
|
|
|
42
43
|
from code_puppy.callbacks import register_callback
|
|
43
44
|
|
|
45
|
+
logger = logging.getLogger(__name__)
|
|
46
|
+
|
|
44
47
|
_FORK = "fork"
|
|
45
48
|
_FORKS = "forks"
|
|
46
49
|
_PROMPT_PREVIEW_LEN = 60
|
|
@@ -282,6 +285,18 @@ async def _run_fork(
|
|
|
282
285
|
)
|
|
283
286
|
|
|
284
287
|
|
|
288
|
+
def _first_line(text: Any) -> str:
|
|
289
|
+
"""First line of ``text``, or ``""`` when it has no non-blank content.
|
|
290
|
+
|
|
291
|
+
A whitespace-only error strips to no lines, so indexing ``[0]`` blindly
|
|
292
|
+
raised IndexError -- which the surrounding ``except`` then swallowed,
|
|
293
|
+
marking the fork ``failed`` with no banner at all.
|
|
294
|
+
"""
|
|
295
|
+
stripped = str(text).strip()
|
|
296
|
+
lines = stripped.splitlines()
|
|
297
|
+
return lines[0] if lines else ""
|
|
298
|
+
|
|
299
|
+
|
|
285
300
|
def _on_fork_done(fork_id: int, task: asyncio.Task) -> None:
|
|
286
301
|
"""Done-callback (runs in-loop): record outcome + emit a banner."""
|
|
287
302
|
record = _forks.get(fork_id)
|
|
@@ -304,8 +319,8 @@ def _on_fork_done(fork_id: int, task: asyncio.Task) -> None:
|
|
|
304
319
|
record.session_id = getattr(result, "session_id", None)
|
|
305
320
|
if getattr(result, "error", None):
|
|
306
321
|
record.status = "failed"
|
|
307
|
-
|
|
308
|
-
_emit_error(f"{tag} failed after {record.elapsed:.1f}s: {
|
|
322
|
+
detail = _first_line(result.error) or "no error detail provided"
|
|
323
|
+
_emit_error(f"{tag} failed after {record.elapsed:.1f}s: {detail}")
|
|
309
324
|
return
|
|
310
325
|
record.status = "done"
|
|
311
326
|
response = getattr(result, "response", None)
|
|
@@ -317,8 +332,25 @@ def _on_fork_done(fork_id: int, task: asyncio.Task) -> None:
|
|
|
317
332
|
f"{tag} finished in {record.elapsed:.1f}s"
|
|
318
333
|
+ (f" — session '{record.session_id}'" if record.session_id else "")
|
|
319
334
|
)
|
|
320
|
-
except Exception
|
|
321
|
-
|
|
335
|
+
except Exception as exc:
|
|
336
|
+
# Never let an unexpected error leave the fork silent: emit what we can,
|
|
337
|
+
# but keep the emit itself from breaking the loop. Only a fork still
|
|
338
|
+
# ``running`` may be promoted to ``failed`` -- every other status is a
|
|
339
|
+
# truthful terminal state (``done`` / ``cancelled``) that a rendering
|
|
340
|
+
# failure must not overwrite. Bare exceptions carry no message, so fall
|
|
341
|
+
# back to the exception type name rather than an empty banner.
|
|
342
|
+
detail = _first_line(exc) or type(exc).__name__
|
|
343
|
+
if record.status == "running":
|
|
344
|
+
record.status = "failed"
|
|
345
|
+
message = f"{tag} failed after {record.elapsed:.1f}s: {detail}"
|
|
346
|
+
else:
|
|
347
|
+
message = f"{tag} {record.status} but could not render its result: {detail}"
|
|
348
|
+
try:
|
|
349
|
+
_emit_error(message)
|
|
350
|
+
except Exception: # pragma: no cover - banner must never break the loop
|
|
351
|
+
logger.warning(
|
|
352
|
+
"fork %s: could not emit completion banner", fork_id, exc_info=True
|
|
353
|
+
)
|
|
322
354
|
|
|
323
355
|
|
|
324
356
|
def _start_fork(agent_name: str, prompt: str, model_name: str | None = None) -> None:
|
|
@@ -33,6 +33,12 @@ Callback -> effect:
|
|
|
33
33
|
* ``awaiting_user_input`` ............................ blocked <-> not
|
|
34
34
|
* ``post_autosave`` .................................. title refresh / wait
|
|
35
35
|
|
|
36
|
+
Callbacks alone are not enough to guarantee the pane is released. They fire
|
|
37
|
+
from a ``finally:`` in ``cli_runner``, which the interpreter only reaches on
|
|
38
|
+
a graceful exit. ``_install_exit_guards`` adds an ``atexit`` hook and a
|
|
39
|
+
SIGTERM/SIGHUP handler so a closed pane, a plain ``kill``, or a logout also
|
|
40
|
+
release pane authority instead of stranding a dead agent in herdr's sidebar.
|
|
41
|
+
|
|
36
42
|
Session identity is the durable autosave (name, path) resolved by
|
|
37
43
|
``sources.current_session_ref`` -- NOT the per-run ``group_id`` UUID, which
|
|
38
44
|
changes every turn. Pane metadata (model / context / tokens), the
|
|
@@ -49,7 +55,10 @@ choice.
|
|
|
49
55
|
|
|
50
56
|
from __future__ import annotations
|
|
51
57
|
|
|
58
|
+
import atexit
|
|
52
59
|
import logging
|
|
60
|
+
import os
|
|
61
|
+
import signal
|
|
53
62
|
|
|
54
63
|
from code_puppy.callbacks import register_callback
|
|
55
64
|
|
|
@@ -58,6 +67,18 @@ from .reporter import HerdrReporter
|
|
|
58
67
|
|
|
59
68
|
logger = logging.getLogger(__name__)
|
|
60
69
|
|
|
70
|
+
#: Signals that terminate the process without unwinding the interpreter, so
|
|
71
|
+
#: neither the ``finally:`` in cli_runner nor ``atexit`` would otherwise run.
|
|
72
|
+
#: SIGKILL is deliberately absent -- it cannot be caught by design. SIGHUP is
|
|
73
|
+
#: resolved defensively because it does not exist on Windows, where this
|
|
74
|
+
#: module is still imported (client.py speaks a named pipe there) and a bare
|
|
75
|
+
#: ``signal.SIGHUP`` would raise AttributeError and break the whole plugin.
|
|
76
|
+
_TERMINATING_SIGNALS = tuple(
|
|
77
|
+
sig
|
|
78
|
+
for sig in (getattr(signal, name, None) for name in ("SIGTERM", "SIGHUP"))
|
|
79
|
+
if sig is not None
|
|
80
|
+
)
|
|
81
|
+
|
|
61
82
|
_client = HerdrClient()
|
|
62
83
|
_reporter = HerdrReporter(_client)
|
|
63
84
|
|
|
@@ -126,6 +147,67 @@ def _on_shutdown(*_args, **_kw) -> None:
|
|
|
126
147
|
_reporter.on_shutdown()
|
|
127
148
|
|
|
128
149
|
|
|
150
|
+
def _install_exit_guards() -> None:
|
|
151
|
+
"""Release the pane even when the interpreter never unwinds.
|
|
152
|
+
|
|
153
|
+
The ``shutdown`` / ``session_end`` callbacks fire from a ``finally:`` in
|
|
154
|
+
``cli_runner``, which only runs on a graceful exit (``/exit``, EOF). A
|
|
155
|
+
terminal closing its pane, a plain ``kill``, a logout, or a service
|
|
156
|
+
restart all send SIGTERM/SIGHUP, whose *default* disposition terminates
|
|
157
|
+
the process immediately -- the ``finally:`` never executes, no
|
|
158
|
+
``pane.release_agent`` is ever sent, and herdr keeps showing a dead
|
|
159
|
+
agent forever with no mechanism to reap it.
|
|
160
|
+
|
|
161
|
+
Two guards, because neither alone is sufficient:
|
|
162
|
+
|
|
163
|
+
* ``atexit`` -- covers ordinary interpreter teardown paths that bypass
|
|
164
|
+
the callback (an unhandled exception above the ``finally:``,
|
|
165
|
+
``sys.exit()`` from a nested frame). It does **not** run on SIGTERM.
|
|
166
|
+
* a SIGTERM/SIGHUP handler -- covers the signal paths ``atexit`` misses.
|
|
167
|
+
|
|
168
|
+
The handler restores the previous disposition and re-raises so the
|
|
169
|
+
process still dies from the signal with correct ``128 + signum`` exit
|
|
170
|
+
status; it does not swallow the signal or alter shutdown semantics.
|
|
171
|
+
Any previously-installed handler is chained rather than clobbered.
|
|
172
|
+
|
|
173
|
+
SIGKILL cannot be caught, so a ``kill -9`` still strands the pane. That
|
|
174
|
+
residual case needs a herdr-side liveness check on the reporting
|
|
175
|
+
process and is out of scope here.
|
|
176
|
+
"""
|
|
177
|
+
# release_and_close() is idempotent and bounded, so double-firing from
|
|
178
|
+
# both a signal and atexit is harmless.
|
|
179
|
+
atexit.register(_client.release_and_close)
|
|
180
|
+
|
|
181
|
+
previous_handlers = {}
|
|
182
|
+
|
|
183
|
+
def _release_and_reraise(signum: int, frame) -> None:
|
|
184
|
+
try:
|
|
185
|
+
_client.release_and_close()
|
|
186
|
+
except Exception: # never let cleanup mask the shutdown itself
|
|
187
|
+
logger.debug("herdr: release on signal %s failed", signum, exc_info=True)
|
|
188
|
+
|
|
189
|
+
previous = previous_handlers.get(signum)
|
|
190
|
+
if callable(previous):
|
|
191
|
+
previous(signum, frame)
|
|
192
|
+
return
|
|
193
|
+
|
|
194
|
+
# Restore the default disposition and re-raise so the exit status
|
|
195
|
+
# remains 128 + signum rather than a synthetic 0.
|
|
196
|
+
signal.signal(signum, previous if previous is not None else signal.SIG_DFL)
|
|
197
|
+
os.kill(os.getpid(), signum)
|
|
198
|
+
|
|
199
|
+
for sig in _TERMINATING_SIGNALS:
|
|
200
|
+
try:
|
|
201
|
+
previous_handlers[sig] = signal.getsignal(sig)
|
|
202
|
+
signal.signal(sig, _release_and_reraise)
|
|
203
|
+
except (OSError, ValueError, AttributeError):
|
|
204
|
+
# signal.signal() only works on the main thread, and some signals
|
|
205
|
+
# are absent on some platforms (SIGHUP on Windows). Reporting must
|
|
206
|
+
# never break the agent, so degrade quietly.
|
|
207
|
+
previous_handlers.pop(sig, None)
|
|
208
|
+
logger.debug("herdr: could not install handler for %s", sig, exc_info=True)
|
|
209
|
+
|
|
210
|
+
|
|
129
211
|
if _reporter.active:
|
|
130
212
|
register_callback("startup", _on_startup)
|
|
131
213
|
register_callback("user_prompt_submit", _on_user_prompt)
|
|
@@ -140,6 +222,7 @@ if _reporter.active:
|
|
|
140
222
|
register_callback("awaiting_user_input", _on_awaiting_user_input)
|
|
141
223
|
register_callback("session_end", _on_shutdown)
|
|
142
224
|
register_callback("shutdown", _on_shutdown)
|
|
225
|
+
_install_exit_guards()
|
|
143
226
|
logger.debug("herdr plugin active for pane %s", _client._pane_id)
|
|
144
227
|
else:
|
|
145
228
|
logger.debug("herdr plugin inactive (not running inside a herdr pane)")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|