code-puppy-core-plugins 0.0.85__tar.gz → 0.0.87__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.85 → code_puppy_core_plugins-0.0.87}/PKG-INFO +1 -1
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +1 -1
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/tool.py +0 -16
- code_puppy_core_plugins-0.0.87/code_puppy_core_plugins/meta_oauth/locales/en-US.json +12 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +3 -0
- code_puppy_core_plugins-0.0.87/code_puppy_core_plugins/meta_oauth/plan.py +87 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +8 -2
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/meta_oauth/utils.py +22 -3
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/ollama/register_callbacks.py +1 -1
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/pyproject.toml +1 -1
- code_puppy_core_plugins-0.0.85/code_puppy_core_plugins/jev_grep/locales/en-US.json +0 -3
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/THIRD_PARTY_NOTICES.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/agent.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/session.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/session_config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/acp/state.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/attachment_references/tool.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/background_agents/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/batch.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/launcher.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/restore.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/search.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/plugin_settings.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/README.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.85 → code_puppy_core_plugins-0.0.87}/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.87
|
|
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
|
|
@@ -103,7 +103,7 @@ def _create_grok_oauth_model(model_name: str, model_config: Dict, config: Dict)
|
|
|
103
103
|
from pydantic_ai.models.openai import OpenAIResponsesModel
|
|
104
104
|
from pydantic_ai.providers.openai import OpenAIProvider
|
|
105
105
|
|
|
106
|
-
from code_puppy.
|
|
106
|
+
from code_puppy.httpx2_utils import create_async_client
|
|
107
107
|
|
|
108
108
|
access_token = get_valid_access_token()
|
|
109
109
|
if not access_token:
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
|
|
7
5
|
from pydantic_ai import RunContext
|
|
8
6
|
|
|
9
|
-
from code_puppy.i18n import add_catalog_dir, t
|
|
10
|
-
from code_puppy.messaging import emit_info
|
|
11
7
|
from code_puppy.tools.common import resolve_path
|
|
12
8
|
|
|
13
9
|
from .config import (
|
|
@@ -22,8 +18,6 @@ from .config import (
|
|
|
22
18
|
from .judge import build_jev_model
|
|
23
19
|
from .search import DEFAULT_CANDIDATES, SemanticGrepOutput, semantic_search
|
|
24
20
|
|
|
25
|
-
add_catalog_dir(Path(__file__).parent / "locales")
|
|
26
|
-
|
|
27
21
|
TOOL_NAME = "smart_grep"
|
|
28
22
|
|
|
29
23
|
|
|
@@ -71,16 +65,6 @@ async def run_smart_grep(
|
|
|
71
65
|
return SemanticGrepOutput(
|
|
72
66
|
error=f"smart_grep failed: {type(err).__name__}: {err}"
|
|
73
67
|
)
|
|
74
|
-
emit_info(
|
|
75
|
-
t(
|
|
76
|
-
"smart_grep.summary",
|
|
77
|
-
query=query,
|
|
78
|
-
directory=directory,
|
|
79
|
-
matches=len(result.matches),
|
|
80
|
-
evaluated=result.coverage.evaluated,
|
|
81
|
-
snippets=result.coverage.snippets,
|
|
82
|
-
)
|
|
83
|
-
)
|
|
84
68
|
return result
|
|
85
69
|
|
|
86
70
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"plugin.meta-oauth.plan.tier": "Muse Code plan: {tier}",
|
|
3
|
+
"plugin.meta-oauth.plan.active": "Subscription: active",
|
|
4
|
+
"plugin.meta-oauth.plan.inactive": "Subscription: inactive",
|
|
5
|
+
"plugin.meta-oauth.plan.usage": "{window} usage at login: {used}%",
|
|
6
|
+
"plugin.meta-oauth.plan.usage_reset": "{window} usage at login: {used}% (resets {reset})",
|
|
7
|
+
"plugin.meta-oauth.plan.window": "Rolling window",
|
|
8
|
+
"plugin.meta-oauth.plan.window_hours": "{hours}h window",
|
|
9
|
+
"plugin.meta-oauth.plan.window_minutes": "{minutes}m window",
|
|
10
|
+
"plugin.meta-oauth.plan.weekly": "Weekly",
|
|
11
|
+
"plugin.meta-oauth.plan.upgrade": "A plan upgrade is available at https://accountscenter.meta.com/muse_code/"
|
|
12
|
+
}
|
|
@@ -11,6 +11,7 @@ from code_puppy.messaging import emit_error, emit_info, emit_success, emit_warni
|
|
|
11
11
|
from code_puppy.tools.common import should_suppress_browser
|
|
12
12
|
|
|
13
13
|
from .config import META_OAUTH_CONFIG
|
|
14
|
+
from .plan import describe_plan
|
|
14
15
|
from .utils import (
|
|
15
16
|
discover_models,
|
|
16
17
|
load_credentials,
|
|
@@ -106,4 +107,6 @@ def run_oauth_flow() -> bool:
|
|
|
106
107
|
return False
|
|
107
108
|
|
|
108
109
|
emit_success(t("oauth.meta.auth.success"))
|
|
110
|
+
for line in describe_plan(credentials):
|
|
111
|
+
emit_info(line)
|
|
109
112
|
return True
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"""Describe the Muse Code subscription plan carried by a minted Meta key.
|
|
2
|
+
|
|
3
|
+
Meta's ``/muse-code/key`` response includes plan fields (``subs_tier_name``,
|
|
4
|
+
``is_subs_active``, ``subs_usage``...). They are a snapshot taken at login, so
|
|
5
|
+
usage figures are labelled as such rather than presented as live numbers.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from collections.abc import Mapping
|
|
11
|
+
from datetime import datetime
|
|
12
|
+
|
|
13
|
+
from code_puppy.i18n import t
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _mapping(value: object) -> Mapping[str, object]:
|
|
17
|
+
return value if isinstance(value, Mapping) else {}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _subscription_active(credentials: Mapping[str, object]) -> bool | None:
|
|
21
|
+
# The mint response says ``is_subs_active``; the Muse CLI file says ``subs_active``.
|
|
22
|
+
for key in ("is_subs_active", "subs_active"):
|
|
23
|
+
value = credentials.get(key)
|
|
24
|
+
if isinstance(value, bool):
|
|
25
|
+
return value
|
|
26
|
+
return None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _format_reset(value: object) -> str:
|
|
30
|
+
if isinstance(value, bool):
|
|
31
|
+
return ""
|
|
32
|
+
if isinstance(value, (int, float)):
|
|
33
|
+
return datetime.fromtimestamp(value).astimezone().strftime("%Y-%m-%d %H:%M %Z")
|
|
34
|
+
return str(value) if value else ""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _usage_line(label: str, snapshot: Mapping[str, object]) -> str | None:
|
|
38
|
+
used = snapshot.get("used_percent")
|
|
39
|
+
if not isinstance(used, (int, float)) or isinstance(used, bool):
|
|
40
|
+
return None
|
|
41
|
+
reset = _format_reset(snapshot.get("resets_at"))
|
|
42
|
+
if reset:
|
|
43
|
+
return t(
|
|
44
|
+
"plugin.meta-oauth.plan.usage_reset",
|
|
45
|
+
window=label,
|
|
46
|
+
used=f"{used:g}",
|
|
47
|
+
reset=reset,
|
|
48
|
+
)
|
|
49
|
+
return t("plugin.meta-oauth.plan.usage", window=label, used=f"{used:g}")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _window_label(snapshot: Mapping[str, object]) -> str:
|
|
53
|
+
minutes = snapshot.get("window_duration_mins")
|
|
54
|
+
if isinstance(minutes, int) and not isinstance(minutes, bool) and minutes > 0:
|
|
55
|
+
if minutes % 60 == 0:
|
|
56
|
+
return t("plugin.meta-oauth.plan.window_hours", hours=minutes // 60)
|
|
57
|
+
return t("plugin.meta-oauth.plan.window_minutes", minutes=minutes)
|
|
58
|
+
return t("plugin.meta-oauth.plan.window")
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def describe_plan(credentials: Mapping[str, object]) -> list[str]:
|
|
62
|
+
"""Return human-readable plan lines; empty when Meta sent no plan data."""
|
|
63
|
+
active = _subscription_active(credentials)
|
|
64
|
+
tier = credentials.get("subs_tier_name") or credentials.get("subs_tier_id")
|
|
65
|
+
lines: list[str] = []
|
|
66
|
+
if tier:
|
|
67
|
+
lines.append(t("plugin.meta-oauth.plan.tier", tier=tier))
|
|
68
|
+
if active is not None:
|
|
69
|
+
lines.append(
|
|
70
|
+
t(
|
|
71
|
+
"plugin.meta-oauth.plan.active"
|
|
72
|
+
if active
|
|
73
|
+
else "plugin.meta-oauth.plan.inactive"
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
usage = _mapping(credentials.get("subs_usage"))
|
|
78
|
+
window = _mapping(usage.get("window"))
|
|
79
|
+
candidates = (
|
|
80
|
+
_usage_line(_window_label(window), window),
|
|
81
|
+
_usage_line(t("plugin.meta-oauth.plan.weekly"), _mapping(usage.get("weekly"))),
|
|
82
|
+
)
|
|
83
|
+
lines.extend(line for line in candidates if line)
|
|
84
|
+
|
|
85
|
+
if credentials.get("is_subs_upgrade_available") is True:
|
|
86
|
+
lines.append(t("plugin.meta-oauth.plan.upgrade"))
|
|
87
|
+
return lines
|
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from importlib.resources import files
|
|
5
6
|
from typing import Any
|
|
6
7
|
|
|
7
8
|
from code_puppy.callbacks import register_callback
|
|
8
|
-
from code_puppy.i18n import t
|
|
9
|
+
from code_puppy.i18n import register_plugin_catalog, t
|
|
9
10
|
from code_puppy.messaging import emit_info, emit_success, emit_warning
|
|
10
11
|
from code_puppy.model_switching import set_model_and_reload_agent
|
|
11
12
|
|
|
12
13
|
from .config import FALLBACK_MODELS, META_OAUTH_CONFIG, get_token_storage_path
|
|
13
14
|
from .oauth_flow import run_oauth_flow
|
|
15
|
+
from .plan import describe_plan
|
|
14
16
|
from .utils import discover_models, load_credentials
|
|
15
17
|
|
|
18
|
+
register_plugin_catalog(files(__package__).joinpath("locales"))
|
|
19
|
+
|
|
16
20
|
_PREFIX = str(META_OAUTH_CONFIG["prefix"])
|
|
17
21
|
_DEFAULT_MODEL = f"{_PREFIX}{META_OAUTH_CONFIG['default_model']}"
|
|
18
22
|
_model_cache: dict[str, dict[str, Any]] | None = None
|
|
@@ -80,6 +84,8 @@ def _handle_meta_status() -> None:
|
|
|
80
84
|
emit_info(
|
|
81
85
|
t("oauth.meta.status.source", source=credentials.get("_source", "unknown"))
|
|
82
86
|
)
|
|
87
|
+
for line in describe_plan(credentials):
|
|
88
|
+
emit_info(line)
|
|
83
89
|
emit_info(
|
|
84
90
|
t("oauth.meta.status.models", models=", ".join(_meta_model_names(credentials)))
|
|
85
91
|
)
|
|
@@ -121,7 +127,7 @@ def _create_meta_oauth_model(
|
|
|
121
127
|
del config
|
|
122
128
|
from pydantic_ai.models.openai import OpenAIResponsesModel
|
|
123
129
|
|
|
124
|
-
from code_puppy.
|
|
130
|
+
from code_puppy.httpx2_utils import create_async_client
|
|
125
131
|
from code_puppy.provider_identity import make_openai_provider
|
|
126
132
|
|
|
127
133
|
credentials = load_credentials()
|
|
@@ -6,6 +6,7 @@ import json
|
|
|
6
6
|
import logging
|
|
7
7
|
import os
|
|
8
8
|
import tempfile
|
|
9
|
+
from collections.abc import Mapping
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
from typing import Any
|
|
11
12
|
from urllib.parse import urlparse
|
|
@@ -188,9 +189,14 @@ def poll_device_token(device_code: str) -> tuple[str, dict[str, Any]]:
|
|
|
188
189
|
|
|
189
190
|
|
|
190
191
|
def mint_api_credentials(access_token: str) -> dict[str, Any]:
|
|
191
|
-
"""Exchange a Meta account token for a Model API credential.
|
|
192
|
+
"""Exchange a Meta account token for a Model API credential.
|
|
193
|
+
|
|
194
|
+
The mint endpoint rejects a body-less POST with "Request body is required
|
|
195
|
+
but was empty or null", so always send an (empty) JSON object.
|
|
196
|
+
"""
|
|
192
197
|
response = requests.post(
|
|
193
198
|
_validate_url(str(META_OAUTH_CONFIG["mint_url"]), "api.meta.ai"),
|
|
199
|
+
json={},
|
|
194
200
|
headers={
|
|
195
201
|
"Accept": "application/json",
|
|
196
202
|
"Authorization": f"Bearer {access_token}",
|
|
@@ -205,8 +211,10 @@ def mint_api_credentials(access_token: str) -> dict[str, Any]:
|
|
|
205
211
|
_problem(response, f"Meta key mint failed ({response.status_code})")
|
|
206
212
|
)
|
|
207
213
|
payload = response.json()
|
|
208
|
-
if not isinstance(payload, dict)
|
|
209
|
-
raise RuntimeError("Meta key mint returned
|
|
214
|
+
if not isinstance(payload, dict):
|
|
215
|
+
raise RuntimeError("Meta key mint returned invalid JSON")
|
|
216
|
+
if not payload.get("api_key"):
|
|
217
|
+
raise RuntimeError(_mint_refusal(payload))
|
|
210
218
|
payload["api_base_url"] = validate_api_base_url(
|
|
211
219
|
str(payload.get("base_url") or payload.get("api_base_url") or "")
|
|
212
220
|
)
|
|
@@ -214,6 +222,17 @@ def mint_api_credentials(access_token: str) -> dict[str, Any]:
|
|
|
214
222
|
return payload
|
|
215
223
|
|
|
216
224
|
|
|
225
|
+
def _mint_refusal(payload: Mapping[str, object]) -> str:
|
|
226
|
+
"""Explain a key-less mint, e.g. a Muse Code plan that needs payment."""
|
|
227
|
+
reason = str(
|
|
228
|
+
payload.get("detail")
|
|
229
|
+
or payload.get("title")
|
|
230
|
+
or "Meta key mint returned no API key"
|
|
231
|
+
)
|
|
232
|
+
action_url = payload.get("action_url")
|
|
233
|
+
return f"{reason} ({action_url})" if action_url else reason
|
|
234
|
+
|
|
235
|
+
|
|
217
236
|
def discover_models(credentials: dict[str, Any]) -> dict[str, dict[str, Any]]:
|
|
218
237
|
"""Fetch Meta's Muse catalogue and convert it to Code Puppy model specs."""
|
|
219
238
|
response = requests.get(
|
|
@@ -37,7 +37,7 @@ import os
|
|
|
37
37
|
from typing import TYPE_CHECKING, Any
|
|
38
38
|
|
|
39
39
|
from code_puppy.callbacks import register_callback
|
|
40
|
-
from code_puppy.
|
|
40
|
+
from code_puppy.httpx2_utils import create_async_client
|
|
41
41
|
from code_puppy.model_factory import get_custom_config
|
|
42
42
|
|
|
43
43
|
if TYPE_CHECKING:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|