code-puppy-core-plugins 0.0.67__tar.gz → 0.0.68__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.67 → code_puppy_core_plugins-0.0.68}/PKG-INFO +1 -1
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +8 -3
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/chunks.py +5 -7
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/config.py +21 -4
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/judge.py +5 -5
- code_puppy_core_plugins-0.0.68/code_puppy_core_plugins/jev_grep/locales/en-US.json +3 -0
- code_puppy_core_plugins-0.0.68/code_puppy_core_plugins/jev_grep/register_callbacks.py +54 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/retrieve.py +1 -1
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/search.py +2 -1
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/tool.py +25 -13
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/pyproject.toml +1 -1
- code_puppy_core_plugins-0.0.67/code_puppy_core_plugins/jev_grep/locales/en-US.json +0 -3
- code_puppy_core_plugins-0.0.67/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -25
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/.gitignore +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/LICENSE +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/agent.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/bridge.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/capabilities.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/content.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/permissions.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/persistence.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/replay.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/session.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/session_config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/acp/state.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/background_agents/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/btw/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/btw/inline_view.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/btw/side_query.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/activation.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/backend.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/capture.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/policy.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/safety.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/settle.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/state.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/computer_use/tools.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/fork/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/client.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/reporter.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/restore.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/smoke.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/herdr/sources.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_manager/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/ollama/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prune/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prune/prune_model.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prune/prune_render.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/session_namer/namer.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/spill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/spill/store.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/payload.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/runner.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/termflow_tui.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/README.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/content_styles.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/picker.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/theme/themes.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/token_ratio_learner/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/token_ratio_learner/ratios.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/judge.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/wiggum/state.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
- {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.68}/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.68
|
|
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
|
|
@@ -98,8 +98,9 @@ def create_claude_code_model(model_name: str, model_config: Dict, config: Dict)
|
|
|
98
98
|
if verify is None:
|
|
99
99
|
verify = get_cert_bundle_path()
|
|
100
100
|
|
|
101
|
-
# No HTTP/2 for OAuth:
|
|
102
|
-
#
|
|
101
|
+
# No HTTP/2 for OAuth: kept as a precaution from core cfff821b4, which fixed
|
|
102
|
+
# zlib decompression errors caused by rewriting response streams to strip
|
|
103
|
+
# the ``cp_`` prefix. Responses are no longer rewritten -- see below.
|
|
103
104
|
kwargs = {}
|
|
104
105
|
# Plugin releases land before core. Old transports keep their legacy path.
|
|
105
106
|
import inspect
|
|
@@ -116,7 +117,11 @@ def create_claude_code_model(model_name: str, model_config: Dict, config: Dict)
|
|
|
116
117
|
timeout=180,
|
|
117
118
|
http2=False,
|
|
118
119
|
# Claude Code OAuth requires the ``cp_`` tool-name prefix; the wire
|
|
119
|
-
# format Anthropic's CLI uses won't accept un-prefixed tools.
|
|
120
|
+
# format Anthropic's CLI uses won't accept un-prefixed tools. Only
|
|
121
|
+
# requests are rewritten: returned ``cp_*`` calls are mapped back to
|
|
122
|
+
# real tool names at dispatch by core's pydantic_patches
|
|
123
|
+
# (``_normalize_claude_code_tool_name``), so this model needs
|
|
124
|
+
# ``apply_all_patches()`` -- cli_runner applies it at import.
|
|
120
125
|
apply_claude_code_prefix=True,
|
|
121
126
|
oauth_reauthentication_callback=lambda: _reauthenticate_after_expired_oauth(
|
|
122
127
|
model_name
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Discovery and chunking: turn a directory into judgeable source snippets.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Python files are split along the
|
|
4
4
|
AST (functions and methods stay whole; declarations longer than
|
|
5
5
|
``SPLIT_LINES`` are split into the blocks inside them so each snippet is one
|
|
6
6
|
behaviour). Every other file falls back to overlapping line windows. Line
|
|
@@ -17,8 +17,10 @@ from dataclasses import dataclass, field
|
|
|
17
17
|
|
|
18
18
|
from code_puppy.tools.ripgrep import find_ripgrep
|
|
19
19
|
|
|
20
|
+
# Discovery is bounded by files and bytes only. Snippet count is not capped:
|
|
21
|
+
# only the ranked shortlist is judged, and local BM25 over the ~24k snippets
|
|
22
|
+
# of a repo root takes well under a second.
|
|
20
23
|
MAX_FILES = 20_000
|
|
21
|
-
MAX_CHUNKS = 20_000
|
|
22
24
|
MAX_FILE_BYTES = 1024 * 1024
|
|
23
25
|
MAX_TOTAL_BYTES = 32 * 1024 * 1024
|
|
24
26
|
MAX_CHUNK_CHARS = 12_000
|
|
@@ -218,7 +220,7 @@ def list_files(directory: str, glob: str | None = None) -> list[str]:
|
|
|
218
220
|
"""Files ripgrep would search: honours .gitignore, skips hidden files."""
|
|
219
221
|
rg = find_ripgrep()
|
|
220
222
|
if rg is None:
|
|
221
|
-
raise RuntimeError("ripgrep (rg) is required for
|
|
223
|
+
raise RuntimeError("ripgrep (rg) is required for smart_grep.")
|
|
222
224
|
args = [rg, "--files", "-0", *(["-g", glob] if glob else []), "--", directory]
|
|
223
225
|
proc = subprocess.run(args, capture_output=True, timeout=15, check=False)
|
|
224
226
|
if proc.returncode not in (0, 1): # 1 == no files
|
|
@@ -264,8 +266,4 @@ def discover(directory: str, glob: str | None = None) -> Discovery:
|
|
|
264
266
|
continue
|
|
265
267
|
found.parsers[parser] += 1
|
|
266
268
|
found.chunks.extend(chunks)
|
|
267
|
-
if len(found.chunks) > MAX_CHUNKS:
|
|
268
|
-
raise RuntimeError(
|
|
269
|
-
f"Search exceeds {MAX_CHUNKS} snippets. Narrow the directory or glob."
|
|
270
|
-
)
|
|
271
269
|
return found
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
"""Settings for
|
|
1
|
+
"""Settings for smart_grep. Set with `/set <key> <value>` or the environment.
|
|
2
|
+
|
|
3
|
+
/set smart_grep on enable (off by default)
|
|
4
|
+
/set jev_api_key <key> credentials (or TYPESAFE_API_KEY)
|
|
5
|
+
/set smart_grep_model ... pin a Jev version, e.g. jev-1.13.0
|
|
6
|
+
/set smart_grep_threshold relevance cut-off, 0-1 (default 0.5)
|
|
7
|
+
"""
|
|
2
8
|
|
|
3
9
|
from __future__ import annotations
|
|
4
10
|
|
|
5
11
|
import os
|
|
6
12
|
|
|
7
|
-
from code_puppy.config import get_api_key, get_value
|
|
13
|
+
from code_puppy.config import get_api_key, get_truthy_bool_value, get_value
|
|
8
14
|
|
|
15
|
+
ENABLED_KEY = "smart_grep"
|
|
9
16
|
# TypeSafe's official name first, then the Jev-branded alias. Config lookup
|
|
10
17
|
# is case-insensitive, so `/set jev_api_key ...` matches JEV_API_KEY.
|
|
11
18
|
API_KEY_NAMES = ("TYPESAFE_API_KEY", "JEV_API_KEY")
|
|
@@ -25,14 +32,24 @@ def get_typesafe_api_key() -> str:
|
|
|
25
32
|
return ""
|
|
26
33
|
|
|
27
34
|
|
|
35
|
+
def is_enabled() -> bool:
|
|
36
|
+
"""Opt-in: smart_grep sends selected source to an external service."""
|
|
37
|
+
return get_truthy_bool_value(ENABLED_KEY, False)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def is_available() -> bool:
|
|
41
|
+
"""The single gate for tool exposure, prompting and execution."""
|
|
42
|
+
return is_enabled() and bool(get_typesafe_api_key())
|
|
43
|
+
|
|
44
|
+
|
|
28
45
|
def get_jev_model_name() -> str:
|
|
29
46
|
"""Pin a version (e.g. ``jev-1.13.0``) once a threshold is tuned against it."""
|
|
30
|
-
return get_value("
|
|
47
|
+
return get_value("smart_grep_model") or DEFAULT_MODEL
|
|
31
48
|
|
|
32
49
|
|
|
33
50
|
def get_threshold() -> float:
|
|
34
51
|
try:
|
|
35
|
-
value = float(get_value("
|
|
52
|
+
value = float(get_value("smart_grep_threshold") or DEFAULT_THRESHOLD)
|
|
36
53
|
except ValueError:
|
|
37
54
|
return DEFAULT_THRESHOLD
|
|
38
55
|
return value if 0 <= value <= 1 else DEFAULT_THRESHOLD
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"""Relevance judgments from Jev, TypeSafe's decision model, via Pydantic AI.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Relevance is scored as the product of two independent judgments -- the snippet
|
|
4
|
+
acts on the requested *entity*, and it performs the requested *operation* -- so
|
|
5
|
+
mentioning a concept is not enough; the code must do the thing. A bounded
|
|
6
|
+
``float`` field on a decision model is answered with the raw probability of
|
|
7
|
+
yes, so there is no confidence-margin math to undo.
|
|
8
8
|
|
|
9
9
|
Every snippet is judged in its own run (its own Jev state), so neighbouring
|
|
10
10
|
snippets never lend each other evidence.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""smart_grep: semantic code search judged by TypeSafe's Jev decision model.
|
|
2
|
+
|
|
3
|
+
Registers a ``smart_grep`` tool alongside the regular ``grep``. It is opt-in:
|
|
4
|
+
agents only see the tool, and the smart_grep-first discovery policy is only
|
|
5
|
+
added to the prompt, once ``/set smart_grep on`` is set AND a Jev/TypeSafe
|
|
6
|
+
key is configured. ``/set`` reloads the agent, so toggling applies at once.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from code_puppy.callbacks import register_callback
|
|
10
|
+
|
|
11
|
+
from .config import is_available
|
|
12
|
+
from .tool import TOOL_NAME, register_smart_grep
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _register_tools():
|
|
16
|
+
return [{"name": TOOL_NAME, "register_func": register_smart_grep}]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _advertise_when_configured(agent_name=None):
|
|
20
|
+
return [TOOL_NAME] if is_available() else []
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _discovery_instructions() -> str | None:
|
|
24
|
+
"""Same live gate as tool advertisement; the key itself is never included."""
|
|
25
|
+
if not is_available():
|
|
26
|
+
return None
|
|
27
|
+
return """## Code discovery: smart_grep first
|
|
28
|
+
When smart_grep is available, use it as your first tool for gathering code
|
|
29
|
+
context about an unfamiliar implementation. Describe the behavior you need to
|
|
30
|
+
find in plain English, scoped to the relevant repository or directory. Do this
|
|
31
|
+
instead of guessing symbol names, running exploratory grep chains, or listing
|
|
32
|
+
and reading many files just to locate the implementation.
|
|
33
|
+
|
|
34
|
+
Use the returned source excerpts and line ranges to decide which files need a
|
|
35
|
+
targeted read. Do not automatically read every match or repeat searches when
|
|
36
|
+
the excerpts already answer the question. Read the relevant existing code before
|
|
37
|
+
editing; semantic search is discovery, not a substitute for understanding it.
|
|
38
|
+
|
|
39
|
+
Use regular grep for exact symbols, regexes, and exhaustive references. Read a
|
|
40
|
+
known file directly when its location is already established. Use list_files
|
|
41
|
+
when you actually need directory contents, not as a ritual before every search.
|
|
42
|
+
|
|
43
|
+
A lexical shortlist is not exhaustive and no matches do not prove absence.
|
|
44
|
+
If results are weak, rephrase or narrow the query, or use exact grep as needed.
|
|
45
|
+
If smart_grep is unavailable or errors, fall back to grep and targeted reads;
|
|
46
|
+
do not block the task or repeatedly retry a missing key or failing provider.
|
|
47
|
+
Respect requests to keep code local: smart_grep sends selected source, paths,
|
|
48
|
+
and the query to TypeSafe, so use local grep/reads for local-only work.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
register_callback("load_prompt", _discovery_instructions)
|
|
53
|
+
register_callback("register_tools", _register_tools)
|
|
54
|
+
register_callback("register_agent_tools", _advertise_when_configured)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Local BM25 shortlist
|
|
1
|
+
"""Local BM25 shortlist: identifier-aware terms, path/symbol boost, synonyms.
|
|
2
2
|
|
|
3
3
|
Cheap lexical ranking decides which snippets are worth a Jev judgment. It is
|
|
4
4
|
a shortlist, not a verdict: code with unrelated wording can be missed, which
|
|
@@ -15,6 +15,7 @@ from .judge import judge
|
|
|
15
15
|
from .retrieve import rank, terms
|
|
16
16
|
|
|
17
17
|
MAX_QUERY_CHARS = 2000
|
|
18
|
+
DEFAULT_CANDIDATES = 128
|
|
18
19
|
MAX_CANDIDATES = 256
|
|
19
20
|
EXCERPT_LINES = 12
|
|
20
21
|
EXCERPT_CHARS = 1200
|
|
@@ -134,7 +135,7 @@ async def semantic_search(
|
|
|
134
135
|
*,
|
|
135
136
|
glob: str | None = None,
|
|
136
137
|
limit: int = 5,
|
|
137
|
-
candidates: int =
|
|
138
|
+
candidates: int = DEFAULT_CANDIDATES,
|
|
138
139
|
threshold: float = 0.5,
|
|
139
140
|
) -> SemanticGrepOutput:
|
|
140
141
|
query = query.strip()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""The ``
|
|
1
|
+
"""The ``smart_grep`` agent tool."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -13,15 +13,19 @@ from code_puppy.tools.common import resolve_path
|
|
|
13
13
|
from .config import (
|
|
14
14
|
API_KEY_NAME,
|
|
15
15
|
API_KEY_NAMES,
|
|
16
|
+
ENABLED_KEY,
|
|
16
17
|
get_jev_model_name,
|
|
17
18
|
get_threshold,
|
|
18
19
|
get_typesafe_api_key,
|
|
20
|
+
is_enabled,
|
|
19
21
|
)
|
|
20
22
|
from .judge import build_jev_model
|
|
21
|
-
from .search import SemanticGrepOutput, semantic_search
|
|
23
|
+
from .search import DEFAULT_CANDIDATES, SemanticGrepOutput, semantic_search
|
|
22
24
|
|
|
23
25
|
add_catalog_dir(Path(__file__).parent / "locales")
|
|
24
26
|
|
|
27
|
+
TOOL_NAME = "smart_grep"
|
|
28
|
+
|
|
25
29
|
|
|
26
30
|
def _first_error(exc: BaseException) -> BaseException:
|
|
27
31
|
"""TaskGroup wraps failures in ExceptionGroups; surface the real one."""
|
|
@@ -30,13 +34,19 @@ def _first_error(exc: BaseException) -> BaseException:
|
|
|
30
34
|
return exc
|
|
31
35
|
|
|
32
36
|
|
|
33
|
-
async def
|
|
37
|
+
async def run_smart_grep(
|
|
34
38
|
query: str,
|
|
35
39
|
directory: str = ".",
|
|
36
40
|
glob: str | None = None,
|
|
37
41
|
limit: int = 5,
|
|
38
|
-
candidates: int =
|
|
42
|
+
candidates: int = DEFAULT_CANDIDATES,
|
|
39
43
|
) -> SemanticGrepOutput:
|
|
44
|
+
# Re-checked per call: an agent built before `/set smart_grep off` must
|
|
45
|
+
# not keep sending source out.
|
|
46
|
+
if not is_enabled():
|
|
47
|
+
return SemanticGrepOutput(
|
|
48
|
+
error=f"smart_grep is off. Enable it with `/set {ENABLED_KEY} on`."
|
|
49
|
+
)
|
|
40
50
|
api_key = get_typesafe_api_key()
|
|
41
51
|
if not api_key:
|
|
42
52
|
return SemanticGrepOutput(
|
|
@@ -59,11 +69,11 @@ async def run_semantic_grep(
|
|
|
59
69
|
except Exception as exc: # noqa: BLE001 - report to the model, never crash the turn
|
|
60
70
|
err = _first_error(exc)
|
|
61
71
|
return SemanticGrepOutput(
|
|
62
|
-
error=f"
|
|
72
|
+
error=f"smart_grep failed: {type(err).__name__}: {err}"
|
|
63
73
|
)
|
|
64
74
|
emit_info(
|
|
65
75
|
t(
|
|
66
|
-
"
|
|
76
|
+
"smart_grep.summary",
|
|
67
77
|
query=query,
|
|
68
78
|
directory=directory,
|
|
69
79
|
matches=len(result.matches),
|
|
@@ -74,17 +84,19 @@ async def run_semantic_grep(
|
|
|
74
84
|
return result
|
|
75
85
|
|
|
76
86
|
|
|
77
|
-
def
|
|
78
|
-
"""Register the
|
|
87
|
+
def register_smart_grep(agent):
|
|
88
|
+
"""Register the smart_grep tool on an agent."""
|
|
79
89
|
|
|
80
|
-
|
|
81
|
-
|
|
90
|
+
# Read-only discovery: eligible for speculative early launch. Safe because
|
|
91
|
+
# run_smart_grep re-checks the opt-in flag on every call.
|
|
92
|
+
@agent.tool(metadata={"speculatable": True})
|
|
93
|
+
async def smart_grep(
|
|
82
94
|
context: RunContext,
|
|
83
95
|
query: str,
|
|
84
96
|
directory: str = ".",
|
|
85
97
|
glob: str | None = None,
|
|
86
98
|
limit: int = 5,
|
|
87
|
-
candidates: int =
|
|
99
|
+
candidates: int = DEFAULT_CANDIDATES,
|
|
88
100
|
) -> SemanticGrepOutput:
|
|
89
101
|
"""Find code by what it DOES, described in plain English (semantic search).
|
|
90
102
|
|
|
@@ -104,6 +116,6 @@ def register_semantic_grep(agent):
|
|
|
104
116
|
glob: Optional ripgrep glob to restrict files, e.g. "*.py".
|
|
105
117
|
limit: Max matches to return (1-100).
|
|
106
118
|
candidates: Snippets to judge after the lexical shortlist (1-256).
|
|
107
|
-
Higher = better recall, slower and costlier.
|
|
119
|
+
Defaults to 128. Higher = better recall, slower and costlier.
|
|
108
120
|
"""
|
|
109
|
-
return await
|
|
121
|
+
return await run_smart_grep(query, directory, glob, limit, candidates)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"""jev_grep: semantic code search (a jevgrep reimplementation) on TypeSafe's Jev.
|
|
2
|
-
|
|
3
|
-
Registers a ``semantic_grep`` tool alongside the regular ``grep``. It is only
|
|
4
|
-
advertised to agents once ``TYPESAFE_API_KEY`` is configured, so agents never
|
|
5
|
-
see a tool that can only fail.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
from code_puppy.callbacks import register_callback
|
|
9
|
-
|
|
10
|
-
from .config import get_typesafe_api_key
|
|
11
|
-
from .tool import register_semantic_grep
|
|
12
|
-
|
|
13
|
-
TOOL_NAME = "semantic_grep"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def _register_tools():
|
|
17
|
-
return [{"name": TOOL_NAME, "register_func": register_semantic_grep}]
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def _advertise_when_configured(agent_name=None):
|
|
21
|
-
return [TOOL_NAME] if get_typesafe_api_key() else []
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
register_callback("register_tools", _register_tools)
|
|
25
|
-
register_callback("register_agent_tools", _advertise_when_configured)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|