code-puppy-core-plugins 0.0.102__tar.gz → 0.0.104__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.102 → code_puppy_core_plugins-0.0.104}/PKG-INFO +18 -1
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/README.md +15 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/README.md +62 -1
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/agent.py +8 -2
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/acp/auth_status.py +148 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/tool.py +2 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +4 -2
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/__init__.py +1 -0
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py +126 -0
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/legacy_core.py +39 -0
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/register_callbacks.py +67 -0
- code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/sdk.py +25 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -1
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +13 -19
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +13 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/pyproject.toml +6 -1
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/THIRD_PARTY_NOTICES.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/session.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/session_config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/state.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/batch.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/launcher.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/restore.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/search.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_settings.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/adapter.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/agents.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/catalog.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/prompt.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/skills/create-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/upstream.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-cli/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-ui/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/deslop/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/agents/comment-sicko.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/agents/poteto-agent.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/FOR_AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/setup-benny/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/configuration.example.yaml +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/reproduce-automation-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/triage-automation-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/01-setup.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/02-poteto-mode.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/03-understand.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/04-design.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/05-build-and-clean.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/06-verify-and-ship.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/07-overnight.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/08-principles.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/09-make-it-yours.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/10-recipes-and-pitfalls.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/plugin.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/design-red-flags.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/rationale-template.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/runner-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/arena/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/automate-me/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/benchmark-checklist/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/blast-radius/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/bro/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/correct/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/figure-it-out/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explainer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explorer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/in-your-own-words/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/code-quality-review.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/lead-judgment.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/reviewer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/rubric.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/ketchup/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/maintain-verification-skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/make-bot-ui/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/no-comments/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/prompting.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/recipes.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autonomous-run.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-full.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/babysit.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/bug-fix.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/eval.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/feature.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/hillclimb.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/investigation.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/orchestrate.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/pause-safely.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/perf-issue.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/prototype.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/refactoring.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/session-pickup.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/shipping.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/trace-forensics.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/visual-parity.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/references/bugbot-triage.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bootstrap.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bun.lock +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.mjs +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.test.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.test.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/store.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/package.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/worktree-audit.sh +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-attack-the-premise/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-boundary-discipline/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-build-the-lever/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-exhaust-the-design-space/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-experience-first/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-explain-the-number/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-fix-root-causes/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-foundational-thinking/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-guard-the-context-window/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-laziness-protocol/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-make-operations-idempotent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-minimize-reader-load/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-model-the-domain/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-never-block-on-the-human/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-outcome-oriented-execution/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-prove-it-works/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-redesign-from-first-principles/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-sequence-verifiable-units/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-subtract-before-you-add/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-type-system-discipline/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/recall/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/divergent-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/judgment-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/synthesizer.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/tooling-reviewer.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/setup-pstack/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/scripts/log.sh +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/swarm/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/tdd/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/teach/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/technical-writing/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/references/patterns.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/unslop/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/epistemics.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/investigator-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/source-playbook.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/code-archaeology.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/databricks.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/datadog.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/incident-postmortem.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/linear.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/notion.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/sentry.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/slack.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/synthesizer-prompt.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/agent_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/auth_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/cli.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/config_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/export_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/mcp_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/model_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/output.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/plugin_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/providers.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/sbx_plan.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/skill_cmds.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/README.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/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.104
|
|
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
|
|
@@ -41,6 +41,8 @@ Requires-Dist: pyobjc-framework-cocoa>=10.3; (sys_platform == 'darwin') and extr
|
|
|
41
41
|
Requires-Dist: pyobjc-framework-quartz>=10.3; (sys_platform == 'darwin') and extra == 'computer-use'
|
|
42
42
|
Requires-Dist: pywinauto<0.7,>=0.6.9; (sys_platform == 'win32') and extra == 'computer-use'
|
|
43
43
|
Requires-Dist: windows-capture<3,>=2.0.1; (sys_platform == 'win32') and extra == 'computer-use'
|
|
44
|
+
Provides-Extra: logfire
|
|
45
|
+
Requires-Dist: logfire>=4.0; extra == 'logfire'
|
|
44
46
|
Description-Content-Type: text/markdown
|
|
45
47
|
|
|
46
48
|
# Code Puppy Core Plugins
|
|
@@ -108,6 +110,21 @@ player can play it. Linux uses `notify-send` for desktop notifications when it
|
|
|
108
110
|
is installed; Windows uses a best-effort PowerShell toast. No external Python
|
|
109
111
|
dependencies are required.
|
|
110
112
|
|
|
113
|
+
## Logfire
|
|
114
|
+
|
|
115
|
+
The `logfire_instrumentation`, `logfire_oauth` and `logfire_sessions` plugins
|
|
116
|
+
do not import the SDK until you opt in. The SDK is an optional extra:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Opt in to pydantic-ai instrumentation with `/set enable_logfire=true` (or a
|
|
123
|
+
truthy `CODE_PUPPY_ENABLE_LOGFIRE` for headless runs), then restart. Spans are
|
|
124
|
+
sent only when a write token is available, either your own `LOGFIRE_TOKEN` or
|
|
125
|
+
one minted by `/logfire onboard`. Opting in without the extra installed shows
|
|
126
|
+
an install hint instead.
|
|
127
|
+
|
|
111
128
|
## pstack
|
|
112
129
|
|
|
113
130
|
The `pstack` plugin bundles poteto's [pstack](https://github.com/cursor/plugins/tree/main/pstack)
|
|
@@ -63,6 +63,21 @@ player can play it. Linux uses `notify-send` for desktop notifications when it
|
|
|
63
63
|
is installed; Windows uses a best-effort PowerShell toast. No external Python
|
|
64
64
|
dependencies are required.
|
|
65
65
|
|
|
66
|
+
## Logfire
|
|
67
|
+
|
|
68
|
+
The `logfire_instrumentation`, `logfire_oauth` and `logfire_sessions` plugins
|
|
69
|
+
do not import the SDK until you opt in. The SDK is an optional extra:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Opt in to pydantic-ai instrumentation with `/set enable_logfire=true` (or a
|
|
76
|
+
truthy `CODE_PUPPY_ENABLE_LOGFIRE` for headless runs), then restart. Spans are
|
|
77
|
+
sent only when a write token is available, either your own `LOGFIRE_TOKEN` or
|
|
78
|
+
one minted by `/logfire onboard`. Opting in without the extra installed shows
|
|
79
|
+
an install hint instead.
|
|
80
|
+
|
|
66
81
|
## pstack
|
|
67
82
|
|
|
68
83
|
The `pstack` plugin bundles poteto's [pstack](https://github.com/cursor/plugins/tree/main/pstack)
|
|
@@ -119,6 +119,7 @@ Every file stays well under the 600-line cap and owns one concern.
|
|
|
119
119
|
| `register_callbacks.py` | Register the `--acp` flag; when present, redirect the console to stderr, run `acp.run_agent(CodePuppyAgent())` on its own loop in a thread, and return `{"handled": True}` so the TUI never starts. |
|
|
120
120
|
| `agent.py` | `CodePuppyAgent(acp.Agent)` — the SDK agent implementation: initialize, new/load/resume/fork/list/close session, prompt, cancel, set_session_mode/model, set_config_option, authenticate, plus `on_connect` (stashes the client handle + installs approvals). |
|
|
121
121
|
| `capabilities.py` | Declarative capability negotiation in SDK models: our `AgentCapabilities`, and parsing the client's `ClientCapabilities` into `(fs_read, fs_write, terminal)`. |
|
|
122
|
+
| `auth_status.py` | Neutral provider registry that lets any plugin report sign-in state; read-only snapshots feed `authMethods` and `authenticate`. |
|
|
122
123
|
| `content.py` | Parse ACP prompt content blocks → text + multimodal attachments (`BinaryContent` / `ImageUrl`), honouring `embeddedContext` + `image`. |
|
|
123
124
|
| `session.py` | `ACPSession`: one ACP session ⇄ one `BaseAgent` + its `_message_history`. Runs each turn as a cancellable `asyncio.Task`; persists history after each turn; owns the final-result fallback. |
|
|
124
125
|
| `commands.py` | Execute client-typed `/slash` commands via `command_handler`, capturing MessageBus output and forwarding it (never touches stdin). |
|
|
@@ -186,7 +187,7 @@ double-send.
|
|
|
186
187
|
| Method | Behaviour |
|
|
187
188
|
|--------|-----------|
|
|
188
189
|
| `initialize` | Negotiate version + capabilities; install capability-gated I/O delegation. |
|
|
189
|
-
| `authenticate` / `logout` |
|
|
190
|
+
| `authenticate` / `logout` | `authenticate` reports (read-only) the registered auth status for a known method id as `_meta.codePuppy.authStatus`, and succeeds even when that status is `missing` or `expired`; clients must read `status`, not infer from success. An unknown method id gets an empty response. `logout` is a no-op. |
|
|
190
191
|
| `session/new` | Create an `ACPSession` (fresh `BaseAgent`) from `cwd` + `additionalDirectories`; attach client `mcpServers`; return models + config options; schedule `available_commands_update`. |
|
|
191
192
|
| `session/load` | Re-open a thread: **replay persisted history into the agent AND stream it back to the client** as `session/update`s so the client rebuilds the thread UI. |
|
|
192
193
|
| `session/resume` | Rehydrate + replay a session across a restart from persisted history. |
|
|
@@ -204,6 +205,66 @@ call in 0.10.1), `plan` updates (no native plan model), and the unstable
|
|
|
204
205
|
unimplemented method to a clean "method not found", so we advertise honestly
|
|
205
206
|
and stub nothing.
|
|
206
207
|
|
|
208
|
+
### Reporting sign-in state
|
|
209
|
+
|
|
210
|
+
`auth_status.py` is a neutral registry: any plugin can register a provider that
|
|
211
|
+
reports its sign-in state, and ACP clients see it in `initialize` (`authMethods`)
|
|
212
|
+
and `authenticate`. Providers must be fast and synchronous; a provider that raises
|
|
213
|
+
or returns a report with wrong-typed fields is skipped. If two providers report the
|
|
214
|
+
same `method_id`, the first registered wins, so the outcome depends on plugin load order.
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
from datetime import datetime, timezone
|
|
218
|
+
|
|
219
|
+
from code_puppy_core_plugins.acp.auth_status import (
|
|
220
|
+
AuthStatusReport,
|
|
221
|
+
register_auth_status_provider,
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def example_auth_status() -> AuthStatusReport | None:
|
|
226
|
+
session = _load_session()
|
|
227
|
+
if session is None:
|
|
228
|
+
return AuthStatusReport("example-login", "Example Login", "missing")
|
|
229
|
+
return AuthStatusReport(
|
|
230
|
+
"example-login",
|
|
231
|
+
"Example Login",
|
|
232
|
+
"signed_in",
|
|
233
|
+
expires_at=datetime(2030, 1, 2, 3, 4, 5, tzinfo=timezone.utc),
|
|
234
|
+
user_id=session.user_name,
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
register_auth_status_provider(example_auth_status)
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
`expires_at` is serialized as ISO-8601 UTC (`...Z`); a naive value is treated as UTC,
|
|
242
|
+
and an aware value is converted to UTC. `user_id` is a display string (trimmed, max 128 chars).
|
|
243
|
+
|
|
244
|
+
Wire shape in the `initialize` result (`authMethods` is omitted when no provider is registered):
|
|
245
|
+
|
|
246
|
+
```json
|
|
247
|
+
{
|
|
248
|
+
"authMethods": [
|
|
249
|
+
{
|
|
250
|
+
"id": "example-login",
|
|
251
|
+
"name": "Example Login",
|
|
252
|
+
"_meta": {
|
|
253
|
+
"codePuppy": {
|
|
254
|
+
"authStatus": { "status": "signed_in", "expiresAt": "2030-01-02T03:04:05Z", "userId": "jdoe" }
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Readers must never trigger login, network or prompts. `id`, `name` and `description`
|
|
263
|
+
are provider-supplied display strings and must never contain secrets; only the contents of
|
|
264
|
+
`_meta.codePuppy.authStatus` are allow-listed to `status`, `expiresAt` and `userId`.
|
|
265
|
+
A `status` of `not_applicable` means the method does not apply to this
|
|
266
|
+
install, so clients should hide any sign-in UI for it.
|
|
267
|
+
|
|
207
268
|
### Outbound notifications (us → the client) — `session/update`
|
|
208
269
|
|
|
209
270
|
`agent_message_chunk`, `agent_thought_chunk`, `tool_call`, `tool_call_update`,
|
|
@@ -40,6 +40,7 @@ from acp.schema import (
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
from code_puppy_core_plugins.acp import (
|
|
43
|
+
auth_status,
|
|
43
44
|
capabilities,
|
|
44
45
|
io_delegation,
|
|
45
46
|
mcp_config,
|
|
@@ -126,11 +127,16 @@ class CodePuppyAgent(Agent):
|
|
|
126
127
|
title="Code Puppy",
|
|
127
128
|
version=_code_puppy_version(),
|
|
128
129
|
),
|
|
130
|
+
auth_methods=auth_status.auth_methods(),
|
|
129
131
|
)
|
|
130
132
|
|
|
131
133
|
async def authenticate(self, method_id: str, **kwargs: Any) -> AuthenticateResponse:
|
|
132
|
-
"""
|
|
133
|
-
|
|
134
|
+
"""Report the registered auth status for ``method_id``.
|
|
135
|
+
Never logs in, calls the network, or prompts."""
|
|
136
|
+
report = auth_status.auth_status_for(method_id)
|
|
137
|
+
if report is None:
|
|
138
|
+
return AuthenticateResponse()
|
|
139
|
+
return AuthenticateResponse(field_meta=auth_status.auth_status_meta(report))
|
|
134
140
|
|
|
135
141
|
# ---- Session lifecycle ------------------------------------------------
|
|
136
142
|
async def new_session(
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"""Neutral registry of sign-in state that plugins report to ACP clients.
|
|
2
|
+
|
|
3
|
+
Any plugin registers a provider; ACP reads it without knowing who owns it.
|
|
4
|
+
Called by: agent.py :: CodePuppyAgent.initialize() / authenticate().
|
|
5
|
+
Readers must never trigger login, network I/O, or prompts; providers stay read-only.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import logging
|
|
11
|
+
import threading
|
|
12
|
+
import typing
|
|
13
|
+
from dataclasses import dataclass
|
|
14
|
+
from datetime import datetime, timezone
|
|
15
|
+
from typing import Any, Callable, Literal
|
|
16
|
+
|
|
17
|
+
from acp.schema import AuthMethodAgent
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
AuthState = Literal["signed_in", "expired", "missing", "not_applicable"]
|
|
22
|
+
|
|
23
|
+
_USER_ID_MAX_LEN = 128
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass(frozen=True)
|
|
27
|
+
class AuthStatusReport:
|
|
28
|
+
method_id: str
|
|
29
|
+
name: str
|
|
30
|
+
status: AuthState
|
|
31
|
+
description: str | None = None
|
|
32
|
+
expires_at: datetime | None = None
|
|
33
|
+
user_id: str | None = None
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
AuthStatusProvider = Callable[[], "AuthStatusReport | None"]
|
|
37
|
+
|
|
38
|
+
_providers: list[AuthStatusProvider] = []
|
|
39
|
+
_providers_lock = threading.Lock()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def register_auth_status_provider(provider: AuthStatusProvider) -> None:
|
|
43
|
+
with _providers_lock:
|
|
44
|
+
if provider not in _providers:
|
|
45
|
+
_providers.append(provider)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def unregister_auth_status_provider(provider: AuthStatusProvider) -> None:
|
|
49
|
+
with _providers_lock:
|
|
50
|
+
if provider in _providers:
|
|
51
|
+
_providers.remove(provider)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _is_valid_report(report: object) -> bool:
|
|
55
|
+
if not isinstance(report, AuthStatusReport):
|
|
56
|
+
return False
|
|
57
|
+
if report.status not in typing.get_args(AuthState):
|
|
58
|
+
return False
|
|
59
|
+
for text in (report.method_id, report.name):
|
|
60
|
+
if not isinstance(text, str) or not text.strip():
|
|
61
|
+
return False
|
|
62
|
+
if report.description is not None and not isinstance(report.description, str):
|
|
63
|
+
return False
|
|
64
|
+
if report.expires_at is not None and not isinstance(report.expires_at, datetime):
|
|
65
|
+
return False
|
|
66
|
+
if report.user_id is not None and not isinstance(report.user_id, str):
|
|
67
|
+
return False
|
|
68
|
+
return True
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def current_auth_reports() -> list[AuthStatusReport]:
|
|
72
|
+
with _providers_lock:
|
|
73
|
+
providers = list(_providers)
|
|
74
|
+
|
|
75
|
+
reports: list[AuthStatusReport] = []
|
|
76
|
+
seen_ids: set[str] = set()
|
|
77
|
+
for provider in providers:
|
|
78
|
+
try:
|
|
79
|
+
report = provider()
|
|
80
|
+
except Exception as exc:
|
|
81
|
+
# Exception type only: messages may carry tokens or other secrets.
|
|
82
|
+
logger.debug("auth status provider failed: %s", type(exc).__name__)
|
|
83
|
+
continue
|
|
84
|
+
if not _is_valid_report(report) or report.method_id in seen_ids:
|
|
85
|
+
continue
|
|
86
|
+
seen_ids.add(report.method_id)
|
|
87
|
+
reports.append(report)
|
|
88
|
+
return reports
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def auth_status_for(method_id: str) -> AuthStatusReport | None:
|
|
92
|
+
for report in current_auth_reports():
|
|
93
|
+
if report.method_id == method_id and _meta_or_none(report) is not None:
|
|
94
|
+
return report
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _format_expires_at(expires_at: datetime) -> str:
|
|
99
|
+
if expires_at.tzinfo is None:
|
|
100
|
+
utc_value = expires_at.replace(tzinfo=timezone.utc)
|
|
101
|
+
else:
|
|
102
|
+
utc_value = expires_at.astimezone(timezone.utc)
|
|
103
|
+
return utc_value.replace(microsecond=0).isoformat().replace("+00:00", "Z")
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def auth_status_meta(report: AuthStatusReport) -> dict[str, Any]:
|
|
107
|
+
# Allow-list only: copying other fields could leak data a subclass carries.
|
|
108
|
+
inner: dict[str, Any] = {"status": report.status}
|
|
109
|
+
if report.expires_at is not None:
|
|
110
|
+
inner["expiresAt"] = _format_expires_at(report.expires_at)
|
|
111
|
+
if isinstance(report.user_id, str):
|
|
112
|
+
user_id = report.user_id.strip()[:_USER_ID_MAX_LEN]
|
|
113
|
+
if user_id:
|
|
114
|
+
inner["userId"] = user_id
|
|
115
|
+
return {"codePuppy": {"authStatus": inner}}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def _meta_or_none(report: AuthStatusReport) -> dict[str, Any] | None:
|
|
119
|
+
try:
|
|
120
|
+
return auth_status_meta(report)
|
|
121
|
+
except Exception as exc:
|
|
122
|
+
# Exception type only: messages may carry tokens or other secrets.
|
|
123
|
+
logger.debug(
|
|
124
|
+
"auth status report could not be serialized: %s", type(exc).__name__
|
|
125
|
+
)
|
|
126
|
+
return None
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def auth_methods() -> list[AuthMethodAgent] | None:
|
|
130
|
+
methods: list[AuthMethodAgent] = []
|
|
131
|
+
for report in current_auth_reports():
|
|
132
|
+
meta = _meta_or_none(report)
|
|
133
|
+
if meta is None:
|
|
134
|
+
continue
|
|
135
|
+
try:
|
|
136
|
+
methods.append(
|
|
137
|
+
AuthMethodAgent(
|
|
138
|
+
id=report.method_id,
|
|
139
|
+
name=report.name,
|
|
140
|
+
description=report.description,
|
|
141
|
+
field_meta=meta,
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
except Exception as exc:
|
|
145
|
+
logger.debug(
|
|
146
|
+
"auth status report could not be serialized: %s", type(exc).__name__
|
|
147
|
+
)
|
|
148
|
+
return methods or None
|
|
@@ -21,6 +21,7 @@ from pydantic_ai import BinaryContent, RunContext
|
|
|
21
21
|
from pydantic_ai.messages import UserPromptPart
|
|
22
22
|
|
|
23
23
|
from code_puppy import config
|
|
24
|
+
from code_puppy.error_logging import log_error
|
|
24
25
|
|
|
25
26
|
TOOL_NAME = "save_attachments_as_references"
|
|
26
27
|
|
|
@@ -117,6 +118,7 @@ def register_save_attachments_as_references(agent: Any) -> None:
|
|
|
117
118
|
try:
|
|
118
119
|
paths = await asyncio.to_thread(_save_reference_images, images)
|
|
119
120
|
except OSError as exc:
|
|
121
|
+
log_error(exc, context="save_attachments_as_references failed")
|
|
120
122
|
return {
|
|
121
123
|
"success": False,
|
|
122
124
|
"error": f"Could not save reference images: {exc}",
|
|
@@ -13,6 +13,7 @@ import logging
|
|
|
13
13
|
from typing import Any, Dict, List, Optional, Tuple
|
|
14
14
|
|
|
15
15
|
from code_puppy.callbacks import register_callback
|
|
16
|
+
from code_puppy.command_line.utils import safe_input
|
|
16
17
|
from code_puppy.messaging import emit_error, emit_info, emit_success, emit_warning
|
|
17
18
|
|
|
18
19
|
from .config import COPILOT_AUTH_CONFIG
|
|
@@ -212,8 +213,9 @@ def _handle_copilot_login(command: str) -> None:
|
|
|
212
213
|
" Press Enter to use github.com."
|
|
213
214
|
)
|
|
214
215
|
try:
|
|
215
|
-
|
|
216
|
-
|
|
216
|
+
# safe_input, not input(): on Windows prompt_toolkit leaves the
|
|
217
|
+
# console in VT-input mode, so raw input() echoes escape codes.
|
|
218
|
+
host = safe_input("GitHub host [github.com]: ") or "github.com"
|
|
217
219
|
except (EOFError, KeyboardInterrupt):
|
|
218
220
|
emit_warning("Copilot login cancelled.")
|
|
219
221
|
return
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Opt-in Logfire instrumentation of Code Puppy agent runs."""
|
code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Opt-in Logfire instrumentation of pydantic-ai agent runs.
|
|
2
|
+
|
|
3
|
+
Dormant unless the user opts in with ``/set enable_logfire true`` or a truthy
|
|
4
|
+
``CODE_PUPPY_ENABLE_LOGFIRE``: until then nothing imports the SDK, warns, or
|
|
5
|
+
touches the environment. Even when opted in, nothing leaves the machine
|
|
6
|
+
without a write token (``send_to_logfire="if-token-present"``). Every failure
|
|
7
|
+
degrades to "no telemetry", never to a broken CLI.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import os
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
from . import legacy_core
|
|
16
|
+
from .sdk import MISSING_SDK_HINT, sdk_available
|
|
17
|
+
|
|
18
|
+
ENABLE_KEY = "enable_logfire"
|
|
19
|
+
ENABLE_ENV = "CODE_PUPPY_ENABLE_LOGFIRE"
|
|
20
|
+
_TRUTHY = frozenset({"1", "true", "yes", "on"})
|
|
21
|
+
|
|
22
|
+
_active = False
|
|
23
|
+
_agent_contexts: dict[str, Any] = {}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _truthy(value: object) -> bool:
|
|
27
|
+
return str(value or "").strip().lower() in _TRUTHY
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def opted_in() -> bool:
|
|
31
|
+
"""A truthy env var opts in without touching ``puppy.cfg``."""
|
|
32
|
+
if _truthy(os.environ.get(ENABLE_ENV)):
|
|
33
|
+
return True
|
|
34
|
+
from code_puppy.config import get_value
|
|
35
|
+
|
|
36
|
+
return _truthy(get_value(ENABLE_KEY))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def resolve_token() -> str | None:
|
|
40
|
+
"""Prefer the user's own ``LOGFIRE_TOKEN``, then the onboarded project's."""
|
|
41
|
+
token = os.environ.get(legacy_core.TOKEN_ENV)
|
|
42
|
+
if token:
|
|
43
|
+
return token
|
|
44
|
+
from ..logfire_oauth.oauth import load_project_credentials
|
|
45
|
+
|
|
46
|
+
credentials = load_project_credentials()
|
|
47
|
+
return credentials.token if credentials else None
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def configure(token: str | None = None) -> bool:
|
|
51
|
+
"""Configure Logfire when opted in; return whether instrumentation is live.
|
|
52
|
+
|
|
53
|
+
An explicit ``token`` (e.g. one onboarding just minted) beats
|
|
54
|
+
``resolve_token()``. Safe to call again: the SDK is reconfigured in place.
|
|
55
|
+
"""
|
|
56
|
+
global _active
|
|
57
|
+
_active = False
|
|
58
|
+
|
|
59
|
+
if not opted_in():
|
|
60
|
+
return False
|
|
61
|
+
|
|
62
|
+
from code_puppy.messaging import emit_system_message, emit_warning
|
|
63
|
+
|
|
64
|
+
legacy = legacy_core.loaded()
|
|
65
|
+
if legacy is not None:
|
|
66
|
+
legacy_core.export_token(token or resolve_token(), overwrite=True)
|
|
67
|
+
return bool(legacy.configure_logfire())
|
|
68
|
+
|
|
69
|
+
if not sdk_available():
|
|
70
|
+
emit_warning(MISSING_SDK_HINT)
|
|
71
|
+
return False
|
|
72
|
+
|
|
73
|
+
try:
|
|
74
|
+
import logfire
|
|
75
|
+
|
|
76
|
+
logfire.configure(
|
|
77
|
+
service_name="code-puppy",
|
|
78
|
+
token=token or resolve_token(),
|
|
79
|
+
send_to_logfire="if-token-present",
|
|
80
|
+
console=False,
|
|
81
|
+
)
|
|
82
|
+
logfire.instrument_pydantic_ai()
|
|
83
|
+
except Exception as exc:
|
|
84
|
+
emit_warning(f"Failed to configure Logfire: {exc}")
|
|
85
|
+
return False
|
|
86
|
+
|
|
87
|
+
_active = True
|
|
88
|
+
emit_system_message(
|
|
89
|
+
"Logfire instrumentation enabled - spans ship only if a Logfire "
|
|
90
|
+
"token is configured."
|
|
91
|
+
)
|
|
92
|
+
return True
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def capture_context(group_id: str) -> None:
|
|
96
|
+
"""Remember the live agent span so a later cancellation can nest under it."""
|
|
97
|
+
if not _active:
|
|
98
|
+
return
|
|
99
|
+
try:
|
|
100
|
+
import logfire
|
|
101
|
+
|
|
102
|
+
_agent_contexts[group_id] = logfire.get_context()
|
|
103
|
+
except Exception:
|
|
104
|
+
return
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def clear_context(group_id: str) -> None:
|
|
108
|
+
"""Discard trace context retained for a finished agent run."""
|
|
109
|
+
_agent_contexts.pop(group_id, None)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def emit_cancellation(group_id: str) -> None:
|
|
113
|
+
"""Log a cancellation as a child of its instrumented agent run."""
|
|
114
|
+
if not _active:
|
|
115
|
+
return
|
|
116
|
+
context = _agent_contexts.pop(group_id, None)
|
|
117
|
+
try:
|
|
118
|
+
import logfire
|
|
119
|
+
|
|
120
|
+
if context is None:
|
|
121
|
+
logfire.warning("Agent run cancelled", group_id=group_id)
|
|
122
|
+
return
|
|
123
|
+
with logfire.attach_context(context):
|
|
124
|
+
logfire.warning("Agent run cancelled", group_id=group_id)
|
|
125
|
+
except Exception:
|
|
126
|
+
return
|
code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/legacy_core.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Bridge to Code Puppy cores that still ship their own Logfire wiring.
|
|
2
|
+
|
|
3
|
+
Those cores configure Logfire themselves from ``code_puppy.observability``
|
|
4
|
+
before the ``startup`` hook fires, and read the write token only from the
|
|
5
|
+
environment. This module never imports that legacy module: it only finds it,
|
|
6
|
+
or looks it up once core has imported it.
|
|
7
|
+
|
|
8
|
+
Delete this module once the minimum supported core no longer ships
|
|
9
|
+
``code_puppy.observability``.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import os
|
|
15
|
+
import sys
|
|
16
|
+
from types import ModuleType
|
|
17
|
+
|
|
18
|
+
from .sdk import module_exists
|
|
19
|
+
|
|
20
|
+
MODULE_NAME = "code_puppy.observability"
|
|
21
|
+
TOKEN_ENV = "LOGFIRE_TOKEN"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def present() -> bool:
|
|
25
|
+
"""Return whether the installed core ships its own Logfire wiring."""
|
|
26
|
+
return module_exists(MODULE_NAME)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def loaded() -> ModuleType | None:
|
|
30
|
+
"""Return the legacy module if core already imported it."""
|
|
31
|
+
return sys.modules.get(MODULE_NAME)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def export_token(token: str | None, *, overwrite: bool) -> None:
|
|
35
|
+
"""Expose ``token`` to a legacy core, the only reader that needs the env."""
|
|
36
|
+
if not token or not present():
|
|
37
|
+
return
|
|
38
|
+
if overwrite or TOKEN_ENV not in os.environ:
|
|
39
|
+
os.environ[TOKEN_ENV] = token
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"""Wire opt-in Logfire instrumentation into core's callback hooks."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
from code_puppy.callbacks import register_callback
|
|
8
|
+
from code_puppy.command_line.set_menu_schema import Setting, SettingsCategory
|
|
9
|
+
from code_puppy_core_plugins.plugin_settings import register_settings
|
|
10
|
+
|
|
11
|
+
from . import instrumentation, legacy_core
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _export_token_for_legacy_core() -> None:
|
|
17
|
+
"""Legacy cores configure Logfire from the env before ``startup`` fires."""
|
|
18
|
+
try:
|
|
19
|
+
if legacy_core.present() and instrumentation.opted_in():
|
|
20
|
+
legacy_core.export_token(instrumentation.resolve_token(), overwrite=False)
|
|
21
|
+
except Exception:
|
|
22
|
+
logger.debug("Could not expose the Logfire token to core", exc_info=True)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _on_startup() -> None:
|
|
26
|
+
if legacy_core.present():
|
|
27
|
+
return
|
|
28
|
+
instrumentation.configure()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _on_agent_run_end(
|
|
32
|
+
_agent_name: str, _model_name: str, session_id: str | None = None, *_args, **_kw
|
|
33
|
+
) -> None:
|
|
34
|
+
if session_id:
|
|
35
|
+
instrumentation.clear_context(session_id)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _register_event_stream_start() -> None:
|
|
39
|
+
try:
|
|
40
|
+
register_callback("agent_event_stream_start", instrumentation.capture_context)
|
|
41
|
+
except ValueError:
|
|
42
|
+
logger.debug("Core predates agent_event_stream_start; it captures context")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
_export_token_for_legacy_core()
|
|
46
|
+
register_settings(
|
|
47
|
+
SettingsCategory(
|
|
48
|
+
"Features",
|
|
49
|
+
(
|
|
50
|
+
Setting(
|
|
51
|
+
key=instrumentation.ENABLE_KEY,
|
|
52
|
+
display_name="Logfire Instrumentation",
|
|
53
|
+
description=(
|
|
54
|
+
"Send agent traces to your own Logfire project. Needs a "
|
|
55
|
+
"write token and the code-puppy-core-plugins[logfire] extra."
|
|
56
|
+
),
|
|
57
|
+
type_hint="bool",
|
|
58
|
+
effective_getter=instrumentation.opted_in,
|
|
59
|
+
requires_restart=True,
|
|
60
|
+
),
|
|
61
|
+
),
|
|
62
|
+
)
|
|
63
|
+
)
|
|
64
|
+
register_callback("startup", _on_startup)
|
|
65
|
+
register_callback("agent_run_cancel", instrumentation.emit_cancellation)
|
|
66
|
+
register_callback("agent_run_end", _on_agent_run_end)
|
|
67
|
+
_register_event_stream_start()
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""Discovery of the optional ``logfire`` SDK, shared by every Logfire plugin."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import importlib.util
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
MISSING_SDK_HINT = (
|
|
9
|
+
"The optional 'logfire' SDK is not installed. Install the plugin extra and "
|
|
10
|
+
"restart Code Puppy, e.g. "
|
|
11
|
+
"uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def module_exists(name: str) -> bool:
|
|
16
|
+
"""Return whether ``name`` can be imported, without importing it."""
|
|
17
|
+
try:
|
|
18
|
+
return importlib.util.find_spec(name) is not None
|
|
19
|
+
except (ImportError, ValueError):
|
|
20
|
+
return False
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def sdk_available() -> bool:
|
|
24
|
+
"""Return whether the ``logfire`` SDK is loaded or importable."""
|
|
25
|
+
return sys.modules.get("logfire") is not None or module_exists("logfire")
|