code-puppy-core-plugins 0.0.67__tar.gz → 0.0.69__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.
Files changed (377) hide show
  1. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/PKG-INFO +2 -1
  2. code_puppy_core_plugins-0.0.69/THIRD_PARTY_NOTICES.md +56 -0
  3. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +8 -3
  4. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/chunks.py +5 -7
  5. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/config.py +21 -4
  6. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/judge.py +5 -5
  7. code_puppy_core_plugins-0.0.69/code_puppy_core_plugins/jev_grep/locales/en-US.json +3 -0
  8. code_puppy_core_plugins-0.0.69/code_puppy_core_plugins/jev_grep/register_callbacks.py +54 -0
  9. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/retrieve.py +1 -1
  10. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/search.py +2 -1
  11. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/tool.py +25 -13
  12. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/pyproject.toml +4 -1
  13. code_puppy_core_plugins-0.0.67/code_puppy_core_plugins/jev_grep/locales/en-US.json +0 -3
  14. code_puppy_core_plugins-0.0.67/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -25
  15. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/.gitignore +0 -0
  16. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/LICENSE +0 -0
  17. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/README.md +0 -0
  18. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/__init__.py +0 -0
  19. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/README.md +0 -0
  20. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/__init__.py +0 -0
  21. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/agent.py +0 -0
  22. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/bridge.py +0 -0
  23. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/capabilities.py +0 -0
  24. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/commands.py +0 -0
  25. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/content.py +0 -0
  26. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
  27. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
  28. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/permissions.py +0 -0
  29. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/persistence.py +0 -0
  30. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
  31. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/replay.py +0 -0
  32. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/session.py +0 -0
  33. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/session_config.py +0 -0
  34. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/acp/state.py +0 -0
  35. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
  36. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
  37. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
  38. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
  39. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/config.py +0 -0
  40. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
  41. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
  42. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
  43. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
  44. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
  45. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
  46. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
  47. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
  48. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
  49. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
  50. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
  51. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
  52. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
  53. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
  54. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
  55. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
  56. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
  57. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
  58. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
  59. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
  60. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
  61. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
  62. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/background_agents/README.md +0 -0
  63. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
  64. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
  65. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/btw/__init__.py +0 -0
  66. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/btw/inline_view.py +0 -0
  67. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
  68. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/btw/side_query.py +0 -0
  69. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
  70. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
  71. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
  72. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
  73. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
  74. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
  75. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
  76. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
  77. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
  78. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
  79. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
  80. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
  81. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
  82. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
  83. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
  84. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
  85. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
  86. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
  87. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
  88. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
  89. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
  90. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
  91. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
  92. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
  93. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
  94. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  95. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
  96. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
  97. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
  98. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
  99. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
  100. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
  101. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
  102. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
  103. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
  104. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
  105. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
  106. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
  107. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/config.py +0 -0
  108. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
  109. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
  110. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
  111. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
  112. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
  113. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
  114. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/README.md +0 -0
  115. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
  116. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
  117. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/activation.py +0 -0
  118. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/backend.py +0 -0
  119. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
  120. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/capture.py +0 -0
  121. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/commands.py +0 -0
  122. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
  123. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
  124. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
  125. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/policy.py +0 -0
  126. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
  127. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/safety.py +0 -0
  128. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/settle.py +0 -0
  129. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/state.py +0 -0
  130. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/computer_use/tools.py +0 -0
  131. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
  132. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
  133. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
  134. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
  135. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
  136. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
  137. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
  138. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
  139. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
  140. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  141. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
  142. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
  143. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
  144. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
  145. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
  146. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
  147. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
  148. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
  149. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
  150. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
  151. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
  152. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
  153. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
  154. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
  155. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
  156. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
  157. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
  158. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
  159. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
  160. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
  161. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
  162. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
  163. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
  164. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
  165. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
  166. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
  167. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
  168. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
  169. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
  170. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
  171. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
  172. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
  173. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
  174. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
  175. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
  176. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
  177. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
  178. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
  179. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
  180. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
  181. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
  182. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
  183. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
  184. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
  185. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
  186. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
  187. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
  188. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
  189. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
  190. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
  191. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
  192. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
  193. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
  194. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
  195. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
  196. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/fork/__init__.py +0 -0
  197. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
  198. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
  199. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
  200. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
  201. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
  202. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
  203. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
  204. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
  205. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
  206. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
  207. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/README.md +0 -0
  208. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/__init__.py +0 -0
  209. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/client.py +0 -0
  210. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
  211. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/reporter.py +0 -0
  212. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/restore.py +0 -0
  213. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/smoke.py +0 -0
  214. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/herdr/sources.py +0 -0
  215. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
  216. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
  217. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
  218. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_manager/config.py +0 -0
  219. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
  220. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
  221. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
  222. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
  223. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
  224. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
  225. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
  226. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
  227. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
  228. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
  229. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
  230. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
  231. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
  232. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
  233. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
  234. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
  235. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
  236. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
  237. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
  238. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
  239. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
  240. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
  241. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
  242. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
  243. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
  244. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
  245. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
  246. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
  247. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
  248. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
  249. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
  250. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
  251. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
  252. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
  253. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
  254. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
  255. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/ollama/__init__.py +0 -0
  256. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
  257. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
  258. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
  259. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
  260. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
  261. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
  262. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
  263. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
  264. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
  265. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  266. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
  267. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
  268. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
  269. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
  270. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
  271. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
  272. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
  273. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
  274. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
  275. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/README.md +0 -0
  276. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/__init__.py +0 -0
  277. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/config.py +0 -0
  278. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
  279. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/menu.py +0 -0
  280. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
  281. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
  282. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
  283. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
  284. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prune/__init__.py +0 -0
  285. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
  286. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prune/prune_model.py +0 -0
  287. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prune/prune_render.py +0 -0
  288. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
  289. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
  290. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
  291. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
  292. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
  293. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
  294. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
  295. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
  296. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
  297. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
  298. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
  299. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
  300. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
  301. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
  302. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
  303. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
  304. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
  305. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
  306. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
  307. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
  308. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
  309. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
  310. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
  311. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
  312. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  313. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
  314. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
  315. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
  316. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
  317. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/session_namer/namer.py +0 -0
  318. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
  319. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
  320. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/spill/__init__.py +0 -0
  321. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
  322. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/spill/store.py +0 -0
  323. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
  324. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
  325. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/__init__.py +0 -0
  326. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/config.py +0 -0
  327. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/payload.py +0 -0
  328. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
  329. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
  330. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/runner.py +0 -0
  331. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
  332. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
  333. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
  334. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
  335. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
  336. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
  337. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
  338. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
  339. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
  340. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
  341. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
  342. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
  343. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
  344. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/termflow_tui.py +0 -0
  345. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/README.md +0 -0
  346. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/__init__.py +0 -0
  347. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
  348. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/content_styles.py +0 -0
  349. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
  350. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/picker.py +0 -0
  351. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
  352. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
  353. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
  354. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/theme/themes.py +0 -0
  355. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
  356. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
  357. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/token_ratio_learner/__init__.py +0 -0
  358. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/token_ratio_learner/ratios.py +0 -0
  359. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +0 -0
  360. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
  361. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
  362. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
  363. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
  364. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
  365. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
  366. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
  367. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
  368. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
  369. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
  370. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
  371. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/judge.py +0 -0
  372. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
  373. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
  374. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
  375. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/wiggum/state.py +0 -0
  376. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
  377. {code_puppy_core_plugins-0.0.67 → code_puppy_core_plugins-0.0.69}/code_puppy_core_plugins/yolo_cli/register_callbacks.py +0 -0
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code-puppy-core-plugins
3
- Version: 0.0.67
3
+ Version: 0.0.69
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
7
7
  Author: Michael Pfaffenberger
8
8
  License: MIT
9
9
  License-File: LICENSE
10
+ License-File: THIRD_PARTY_NOTICES.md
10
11
  Classifier: License :: OSI Approved :: MIT License
11
12
  Classifier: Operating System :: OS Independent
12
13
  Classifier: Programming Language :: Python :: 3
@@ -0,0 +1,56 @@
1
+ # Third-Party Notices
2
+
3
+ This package includes material derived from the third-party projects listed
4
+ below. Each remains under its own license; the full license text is either
5
+ reproduced here or shipped next to the derived code, as noted.
6
+
7
+ ## jg
8
+
9
+ - Source: https://github.com/remotehostai/jg (version 1.0.1, commit
10
+ `e4f464467130da8b60ee46f93bc6732f5c9bd196`)
11
+ - License: MIT
12
+ - Used in `code_puppy_core_plugins/jev_grep/`:
13
+ - `chunks.py`: ported from `src/chunks.mjs` (line windows, Python AST
14
+ partitioning, merging of short adjacent declarations)
15
+ - `retrieve.py`: ported from `src/retrieve.mjs` (BM25 ranking, identifier
16
+ term splitting, synonym groups)
17
+ - `search.py`: adapted from `src/search.mjs` (overlapping-window
18
+ de-duplication, narrower evidence block selection)
19
+
20
+ ```
21
+ MIT License
22
+
23
+ Copyright (c) 2026 Remotehost
24
+
25
+ Permission is hereby granted, free of charge, to any person obtaining a copy
26
+ of this software and associated documentation files (the "Software"), to deal
27
+ in the Software without restriction, including without limitation the rights
28
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
29
+ copies of the Software, and to permit persons to whom the Software is
30
+ furnished to do so, subject to the following conditions:
31
+
32
+ The above copyright notice and this permission notice shall be included in all
33
+ copies or substantial portions of the Software.
34
+
35
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
36
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
38
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
39
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
40
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
41
+ SOFTWARE.
42
+ ```
43
+
44
+ ## DeepSeek Harness
45
+
46
+ - Source: https://github.com/deepseek-ai/DeepSeek-Harness
47
+ - License: MIT, Copyright (c) 2026 DeepSeek
48
+ - Used in `code_puppy_core_plugins/spill/`: ported spill design. The full
49
+ license text ships alongside it in `code_puppy_core_plugins/spill/LICENSE.deepseek`.
50
+
51
+ ## llxprt-code
52
+
53
+ - Source: https://github.com/vybestack/llxprt-code
54
+ - License: Apache-2.0
55
+ - Used in `code_puppy_core_plugins/theme/`: the Green Screen theme's phosphor
56
+ color values. Attribution only; no llxprt-code source code is included.
@@ -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: the UnprefixingStream tool-name rewrite breaks under
102
- # HTTP/2's compression handling, causing zlib decompression errors.
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
- A port of jevgrep's client-side chunker. Python files are split along the
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 semantic_grep.")
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 jev_grep. Set with `/set <key> <value>` or the environment."""
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("jev_grep_model") or DEFAULT_MODEL
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("jev_grep_threshold") or DEFAULT_THRESHOLD)
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
- This replaces jevgrep's hosted ``/api/v1/grep`` backend. jevgrep documents its
4
- score as the product of two independent judgments -- the snippet acts on the
5
- requested *entity*, and it performs the requested *operation* -- so that is
6
- exactly what we ask. A bounded ``float`` field on a decision model is answered
7
- with the raw probability of yes, so there is no confidence-margin math to undo.
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,3 @@
1
+ {
2
+ "smart_grep.summary": "smart_grep '{query}' in {directory}: {matches} matches ({evaluated}/{snippets} snippets judged)"
3
+ }
@@ -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 (port of jevgrep's retrieve.mjs).
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 = 48,
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 ``semantic_grep`` agent tool."""
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 run_semantic_grep(
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 = 48,
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"semantic_grep failed: {type(err).__name__}: {err}"
72
+ error=f"smart_grep failed: {type(err).__name__}: {err}"
63
73
  )
64
74
  emit_info(
65
75
  t(
66
- "jev_grep.summary",
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 register_semantic_grep(agent):
78
- """Register the semantic_grep tool on an agent."""
87
+ def register_smart_grep(agent):
88
+ """Register the smart_grep tool on an agent."""
79
89
 
80
- @agent.tool
81
- async def semantic_grep(
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 = 48,
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 run_semantic_grep(query, directory, glob, limit, candidates)
121
+ return await run_smart_grep(query, directory, glob, limit, candidates)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy-core-plugins"
7
- version = "0.0.67"
7
+ version = "0.0.69"
8
8
  description = "Official plugin bundle for Code Puppy"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -13,6 +13,9 @@ dependencies = [
13
13
  "pydantic-ai-slim[openai,anthropic,mcp,typesafe]>=2.51.0,<3",
14
14
  ]
15
15
  license = {text = "MIT"}
16
+ # Ship third-party notices with every build: MIT requires the notice to
17
+ # accompany ported code (see THIRD_PARTY_NOTICES.md).
18
+ license-files = ["LICENSE", "THIRD_PARTY_NOTICES.md"]
16
19
  authors = [{name = "Michael Pfaffenberger"}]
17
20
  classifiers = [
18
21
  "Programming Language :: Python :: 3",
@@ -1,3 +0,0 @@
1
- {
2
- "jev_grep.summary": "semantic_grep '{query}' in {directory}: {matches} matches ({evaluated}/{snippets} snippets judged)"
3
- }
@@ -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)