code-puppy-core-plugins 0.0.102__tar.gz → 0.0.104__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/PKG-INFO +18 -1
  2. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/README.md +15 -0
  3. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/README.md +62 -1
  4. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/agent.py +8 -2
  5. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/acp/auth_status.py +148 -0
  6. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/tool.py +2 -0
  7. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +4 -2
  8. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/__init__.py +1 -0
  9. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py +126 -0
  10. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/legacy_core.py +39 -0
  11. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/register_callbacks.py +67 -0
  12. code_puppy_core_plugins-0.0.104/code_puppy_core_plugins/logfire_instrumentation/sdk.py +25 -0
  13. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -1
  14. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +13 -19
  15. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +13 -0
  16. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/pyproject.toml +6 -1
  17. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/.gitignore +0 -0
  18. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/LICENSE +0 -0
  19. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/THIRD_PARTY_NOTICES.md +0 -0
  20. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/__init__.py +0 -0
  21. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/__init__.py +0 -0
  22. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/bridge.py +0 -0
  23. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/capabilities.py +0 -0
  24. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/commands.py +0 -0
  25. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/content.py +0 -0
  26. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
  27. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
  28. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/permissions.py +0 -0
  29. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/persistence.py +0 -0
  30. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
  31. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/replay.py +0 -0
  32. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/session.py +0 -0
  33. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/session_config.py +0 -0
  34. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/acp/state.py +0 -0
  35. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
  36. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
  37. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
  38. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
  39. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/config.py +0 -0
  40. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
  41. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
  42. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
  43. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
  44. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
  45. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
  46. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
  47. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
  48. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
  49. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
  50. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
  51. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
  52. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
  53. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
  54. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
  55. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
  56. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
  57. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
  58. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
  59. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
  60. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
  61. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
  62. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
  63. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
  64. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/README.md +0 -0
  65. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
  66. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
  67. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/__init__.py +0 -0
  68. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/inline_view.py +0 -0
  69. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
  70. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/btw/side_query.py +0 -0
  71. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
  72. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
  73. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
  74. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
  75. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
  76. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
  77. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
  78. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
  79. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
  80. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
  81. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
  82. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
  83. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
  84. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
  85. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
  86. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
  87. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
  88. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
  89. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
  90. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
  91. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
  92. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
  93. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
  94. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
  95. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
  96. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
  97. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  98. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
  99. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
  100. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
  101. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
  102. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
  103. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
  104. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
  105. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
  106. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
  107. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
  108. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
  109. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
  110. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/config.py +0 -0
  111. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
  112. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
  113. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
  114. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
  115. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
  116. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
  117. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
  118. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
  119. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/README.md +0 -0
  120. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
  121. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
  122. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
  123. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/activation.py +0 -0
  124. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/backend.py +0 -0
  125. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
  126. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/batch.py +0 -0
  127. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/capture.py +0 -0
  128. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/commands.py +0 -0
  129. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
  130. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
  131. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
  132. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
  133. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
  134. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
  135. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
  136. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
  137. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/policy.py +0 -0
  138. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
  139. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/safety.py +0 -0
  140. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/settle.py +0 -0
  141. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/state.py +0 -0
  142. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/tools.py +0 -0
  143. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
  144. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
  145. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
  146. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
  147. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
  148. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
  149. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
  150. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
  151. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
  152. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
  153. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
  154. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
  155. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
  156. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
  157. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
  158. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  159. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
  160. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
  161. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
  162. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
  163. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
  164. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
  165. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
  166. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
  167. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
  168. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
  169. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
  170. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
  171. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
  172. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
  173. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
  174. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
  175. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
  176. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
  177. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
  178. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
  179. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
  180. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
  181. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/README.md +0 -0
  182. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
  183. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/execution_environment/register_callbacks.py +0 -0
  184. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
  185. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
  186. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
  187. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
  188. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
  189. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
  190. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
  191. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
  192. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
  193. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
  194. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
  195. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
  196. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
  197. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
  198. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
  199. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
  200. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
  201. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
  202. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
  203. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
  204. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
  205. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
  206. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
  207. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
  208. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
  209. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
  210. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
  211. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
  212. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
  213. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
  214. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
  215. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
  216. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
  217. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/fork/__init__.py +0 -0
  218. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
  219. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
  220. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
  221. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
  222. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
  223. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
  224. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
  225. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
  226. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
  227. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
  228. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/README.md +0 -0
  229. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
  230. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/__init__.py +0 -0
  231. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/client.py +0 -0
  232. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
  233. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
  234. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/launcher.py +0 -0
  235. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
  236. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/reporter.py +0 -0
  237. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/restore.py +0 -0
  238. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/smoke.py +0 -0
  239. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/herdr/sources.py +0 -0
  240. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
  241. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
  242. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
  243. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/config.py +0 -0
  244. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
  245. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
  246. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
  247. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
  248. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
  249. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/config.py +0 -0
  250. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
  251. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
  252. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
  253. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/search.py +0 -0
  254. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
  255. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
  256. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
  257. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
  258. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
  259. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
  260. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
  261. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
  262. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
  263. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
  264. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
  265. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
  266. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
  267. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
  268. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
  269. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
  270. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/locales/en-US.json +0 -0
  271. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
  272. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
  273. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
  274. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
  275. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
  276. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
  277. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
  278. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
  279. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
  280. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
  281. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
  282. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
  283. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
  284. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
  285. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
  286. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
  287. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
  288. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama/__init__.py +0 -0
  289. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
  290. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
  291. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
  292. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
  293. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
  294. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
  295. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
  296. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
  297. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
  298. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  299. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
  300. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
  301. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
  302. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
  303. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
  304. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
  305. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
  306. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/plugin_settings.py +0 -0
  307. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
  308. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
  309. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/README.md +0 -0
  310. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/__init__.py +0 -0
  311. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/config.py +0 -0
  312. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
  313. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/menu.py +0 -0
  314. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
  315. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
  316. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
  317. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
  318. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/__init__.py +0 -0
  319. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
  320. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_model.py +0 -0
  321. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/prune_render.py +0 -0
  322. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
  323. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/README.md +0 -0
  324. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/__init__.py +0 -0
  325. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/adapter.py +0 -0
  326. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/agents.py +0 -0
  327. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/catalog.py +0 -0
  328. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/commands.py +0 -0
  329. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/config.py +0 -0
  330. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/prompt.py +0 -0
  331. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
  332. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
  333. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/skills/create-skill/SKILL.md +0 -0
  334. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/upstream.py +0 -0
  335. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
  336. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/LICENSE +0 -0
  337. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-cli/SKILL.md +0 -0
  338. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-ui/SKILL.md +0 -0
  339. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/deslop/SKILL.md +0 -0
  340. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
  341. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/README.md +0 -0
  342. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/agents/comment-sicko.md +0 -0
  343. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/agents/poteto-agent.md +0 -0
  344. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/FOR_AGENTS.md +0 -0
  345. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/README.md +0 -0
  346. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/SKILL.md +0 -0
  347. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/control-adapter.md +0 -0
  348. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/feature-map.example.md +0 -0
  349. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/verify-existing-fix.md +0 -0
  350. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/setup-benny/SKILL.md +0 -0
  351. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/SKILL.md +0 -0
  352. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/references/routing.example.md +0 -0
  353. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/configuration.example.yaml +0 -0
  354. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/reproduce-automation-prompt.md +0 -0
  355. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/triage-automation-prompt.md +0 -0
  356. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/01-setup.md +0 -0
  357. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/02-poteto-mode.md +0 -0
  358. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/03-understand.md +0 -0
  359. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/04-design.md +0 -0
  360. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/05-build-and-clean.md +0 -0
  361. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/06-verify-and-ship.md +0 -0
  362. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/07-overnight.md +0 -0
  363. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/08-principles.md +0 -0
  364. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/09-make-it-yours.md +0 -0
  365. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/10-recipes-and-pitfalls.md +0 -0
  366. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/README.md +0 -0
  367. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/plugin.json +0 -0
  368. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/SKILL.md +0 -0
  369. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/design-red-flags.md +0 -0
  370. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/rationale-template.md +0 -0
  371. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/runner-prompt.md +0 -0
  372. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/arena/SKILL.md +0 -0
  373. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/automate-me/SKILL.md +0 -0
  374. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/benchmark-checklist/SKILL.md +0 -0
  375. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/blast-radius/SKILL.md +0 -0
  376. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/bro/SKILL.md +0 -0
  377. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/correct/SKILL.md +0 -0
  378. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/SKILL.md +0 -0
  379. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/README.md +0 -0
  380. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -0
  381. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/search.md +0 -0
  382. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/figure-it-out/SKILL.md +0 -0
  383. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/SKILL.md +0 -0
  384. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explainer-prompt.md +0 -0
  385. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explorer-prompt.md +0 -0
  386. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/in-your-own-words/SKILL.md +0 -0
  387. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/SKILL.md +0 -0
  388. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/code-quality-review.md +0 -0
  389. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/lead-judgment.md +0 -0
  390. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/reviewer-prompt.md +0 -0
  391. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/rubric.md +0 -0
  392. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/ketchup/SKILL.md +0 -0
  393. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/maintain-verification-skill/SKILL.md +0 -0
  394. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/make-bot-ui/SKILL.md +0 -0
  395. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/no-comments/SKILL.md +0 -0
  396. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/SKILL.md +0 -0
  397. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/prompting.md +0 -0
  398. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/recipes.md +0 -0
  399. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/SKILL.md +0 -0
  400. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -0
  401. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autonomous-run.md +0 -0
  402. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-full.md +0 -0
  403. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +0 -0
  404. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/babysit.md +0 -0
  405. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/bug-fix.md +0 -0
  406. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/eval.md +0 -0
  407. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/feature.md +0 -0
  408. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/hillclimb.md +0 -0
  409. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/investigation.md +0 -0
  410. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -0
  411. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +0 -0
  412. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/orchestrate.md +0 -0
  413. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/pause-safely.md +0 -0
  414. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/perf-issue.md +0 -0
  415. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/prototype.md +0 -0
  416. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/refactoring.md +0 -0
  417. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +0 -0
  418. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/session-pickup.md +0 -0
  419. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/shipping.md +0 -0
  420. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/trace-forensics.md +0 -0
  421. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/visual-parity.md +0 -0
  422. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -0
  423. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/references/bugbot-triage.md +0 -0
  424. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bootstrap.ts +0 -0
  425. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bun.lock +0 -0
  426. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.mjs +0 -0
  427. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.test.ts +0 -0
  428. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.test.ts +0 -0
  429. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.ts +0 -0
  430. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/store.ts +0 -0
  431. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/package.json +0 -0
  432. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -0
  433. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -0
  434. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -0
  435. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -0
  436. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +0 -0
  437. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -0
  438. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -0
  439. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +0 -0
  440. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -0
  441. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -0
  442. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +0 -0
  443. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -0
  444. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/worktree-audit.sh +0 -0
  445. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-attack-the-premise/SKILL.md +0 -0
  446. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-boundary-discipline/SKILL.md +0 -0
  447. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-build-the-lever/SKILL.md +0 -0
  448. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +0 -0
  449. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-exhaust-the-design-space/SKILL.md +0 -0
  450. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-experience-first/SKILL.md +0 -0
  451. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-explain-the-number/SKILL.md +0 -0
  452. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-fix-root-causes/SKILL.md +0 -0
  453. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-foundational-thinking/SKILL.md +0 -0
  454. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-guard-the-context-window/SKILL.md +0 -0
  455. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-laziness-protocol/SKILL.md +0 -0
  456. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-make-operations-idempotent/SKILL.md +0 -0
  457. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -0
  458. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-minimize-reader-load/SKILL.md +0 -0
  459. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-model-the-domain/SKILL.md +0 -0
  460. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-never-block-on-the-human/SKILL.md +0 -0
  461. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-outcome-oriented-execution/SKILL.md +0 -0
  462. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-prove-it-works/SKILL.md +0 -0
  463. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-redesign-from-first-principles/SKILL.md +0 -0
  464. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -0
  465. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-sequence-verifiable-units/SKILL.md +0 -0
  466. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-subtract-before-you-add/SKILL.md +0 -0
  467. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +0 -0
  468. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-type-system-discipline/SKILL.md +0 -0
  469. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/recall/SKILL.md +0 -0
  470. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/SKILL.md +0 -0
  471. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/divergent-reviewer.md +0 -0
  472. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/judgment-reviewer.md +0 -0
  473. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/synthesizer.md +0 -0
  474. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/tooling-reviewer.md +0 -0
  475. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/setup-pstack/SKILL.md +0 -0
  476. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/SKILL.md +0 -0
  477. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/references/decision-log-template.tsv +0 -0
  478. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/scripts/log.sh +0 -0
  479. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/swarm/SKILL.md +0 -0
  480. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/tdd/SKILL.md +0 -0
  481. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/teach/SKILL.md +0 -0
  482. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/technical-writing/SKILL.md +0 -0
  483. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/SKILL.md +0 -0
  484. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/references/patterns.md +0 -0
  485. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/unslop/SKILL.md +0 -0
  486. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/SKILL.md +0 -0
  487. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/epistemics.md +0 -0
  488. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/investigator-prompt.md +0 -0
  489. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/source-playbook.md +0 -0
  490. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/code-archaeology.md +0 -0
  491. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/databricks.md +0 -0
  492. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/datadog.md +0 -0
  493. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/incident-postmortem.md +0 -0
  494. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/linear.md +0 -0
  495. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/notion.md +0 -0
  496. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/sentry.md +0 -0
  497. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/slack.md +0 -0
  498. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/synthesizer-prompt.md +0 -0
  499. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
  500. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
  501. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
  502. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
  503. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
  504. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
  505. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
  506. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
  507. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
  508. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
  509. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
  510. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
  511. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
  512. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
  513. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
  514. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
  515. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
  516. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
  517. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
  518. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
  519. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
  520. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
  521. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
  522. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  523. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
  524. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/__init__.py +0 -0
  525. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/en-US.json +0 -0
  526. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/es.json +0 -0
  527. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/locales/fr-CA.json +0 -0
  528. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/resume_hint/register_callbacks.py +0 -0
  529. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
  530. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
  531. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
  532. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/namer.py +0 -0
  533. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
  534. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/README.md +0 -0
  535. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
  536. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/agent_cmds.py +0 -0
  537. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/auth_cmds.py +0 -0
  538. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/cli.py +0 -0
  539. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/config_cmds.py +0 -0
  540. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
  541. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/export_cmds.py +0 -0
  542. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/mcp_cmds.py +0 -0
  543. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/model_cmds.py +0 -0
  544. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/output.py +0 -0
  545. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/plugin_cmds.py +0 -0
  546. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/providers.py +0 -0
  547. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/register_callbacks.py +0 -0
  548. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/sbx_plan.py +0 -0
  549. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/skill_cmds.py +0 -0
  550. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
  551. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
  552. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/__init__.py +0 -0
  553. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
  554. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/spill/store.py +0 -0
  555. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
  556. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
  557. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/__init__.py +0 -0
  558. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/config.py +0 -0
  559. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/payload.py +0 -0
  560. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
  561. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
  562. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/runner.py +0 -0
  563. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
  564. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
  565. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
  566. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
  567. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
  568. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
  569. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
  570. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
  571. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
  572. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
  573. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
  574. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
  575. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
  576. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/termflow_tui.py +0 -0
  577. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/README.md +0 -0
  578. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/__init__.py +0 -0
  579. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
  580. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/content_styles.py +0 -0
  581. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
  582. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/picker.py +0 -0
  583. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
  584. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
  585. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
  586. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/theme/themes.py +0 -0
  587. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
  588. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
  589. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
  590. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
  591. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
  592. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
  593. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
  594. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
  595. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
  596. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
  597. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
  598. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
  599. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
  600. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
  601. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judge.py +0 -0
  602. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
  603. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
  604. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
  605. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/wiggum/state.py +0 -0
  606. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
  607. {code_puppy_core_plugins-0.0.102 → code_puppy_core_plugins-0.0.104}/code_puppy_core_plugins/yolo_cli/register_callbacks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code-puppy-core-plugins
3
- Version: 0.0.102
3
+ Version: 0.0.104
4
4
  Summary: Official plugin bundle for Code Puppy
5
5
  Project-URL: Repository, https://github.com/mpfaffenberger/code_puppy_core_plugins
6
6
  Project-URL: Homepage, https://github.com/mpfaffenberger/code_puppy_core_plugins
@@ -41,6 +41,8 @@ Requires-Dist: pyobjc-framework-cocoa>=10.3; (sys_platform == 'darwin') and extr
41
41
  Requires-Dist: pyobjc-framework-quartz>=10.3; (sys_platform == 'darwin') and extra == 'computer-use'
42
42
  Requires-Dist: pywinauto<0.7,>=0.6.9; (sys_platform == 'win32') and extra == 'computer-use'
43
43
  Requires-Dist: windows-capture<3,>=2.0.1; (sys_platform == 'win32') and extra == 'computer-use'
44
+ Provides-Extra: logfire
45
+ Requires-Dist: logfire>=4.0; extra == 'logfire'
44
46
  Description-Content-Type: text/markdown
45
47
 
46
48
  # Code Puppy Core Plugins
@@ -108,6 +110,21 @@ player can play it. Linux uses `notify-send` for desktop notifications when it
108
110
  is installed; Windows uses a best-effort PowerShell toast. No external Python
109
111
  dependencies are required.
110
112
 
113
+ ## Logfire
114
+
115
+ The `logfire_instrumentation`, `logfire_oauth` and `logfire_sessions` plugins
116
+ do not import the SDK until you opt in. The SDK is an optional extra:
117
+
118
+ ```bash
119
+ uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'
120
+ ```
121
+
122
+ Opt in to pydantic-ai instrumentation with `/set enable_logfire=true` (or a
123
+ truthy `CODE_PUPPY_ENABLE_LOGFIRE` for headless runs), then restart. Spans are
124
+ sent only when a write token is available, either your own `LOGFIRE_TOKEN` or
125
+ one minted by `/logfire onboard`. Opting in without the extra installed shows
126
+ an install hint instead.
127
+
111
128
  ## pstack
112
129
 
113
130
  The `pstack` plugin bundles poteto's [pstack](https://github.com/cursor/plugins/tree/main/pstack)
@@ -63,6 +63,21 @@ player can play it. Linux uses `notify-send` for desktop notifications when it
63
63
  is installed; Windows uses a best-effort PowerShell toast. No external Python
64
64
  dependencies are required.
65
65
 
66
+ ## Logfire
67
+
68
+ The `logfire_instrumentation`, `logfire_oauth` and `logfire_sessions` plugins
69
+ do not import the SDK until you opt in. The SDK is an optional extra:
70
+
71
+ ```bash
72
+ uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'
73
+ ```
74
+
75
+ Opt in to pydantic-ai instrumentation with `/set enable_logfire=true` (or a
76
+ truthy `CODE_PUPPY_ENABLE_LOGFIRE` for headless runs), then restart. Spans are
77
+ sent only when a write token is available, either your own `LOGFIRE_TOKEN` or
78
+ one minted by `/logfire onboard`. Opting in without the extra installed shows
79
+ an install hint instead.
80
+
66
81
  ## pstack
67
82
 
68
83
  The `pstack` plugin bundles poteto's [pstack](https://github.com/cursor/plugins/tree/main/pstack)
@@ -119,6 +119,7 @@ Every file stays well under the 600-line cap and owns one concern.
119
119
  | `register_callbacks.py` | Register the `--acp` flag; when present, redirect the console to stderr, run `acp.run_agent(CodePuppyAgent())` on its own loop in a thread, and return `{"handled": True}` so the TUI never starts. |
120
120
  | `agent.py` | `CodePuppyAgent(acp.Agent)` — the SDK agent implementation: initialize, new/load/resume/fork/list/close session, prompt, cancel, set_session_mode/model, set_config_option, authenticate, plus `on_connect` (stashes the client handle + installs approvals). |
121
121
  | `capabilities.py` | Declarative capability negotiation in SDK models: our `AgentCapabilities`, and parsing the client's `ClientCapabilities` into `(fs_read, fs_write, terminal)`. |
122
+ | `auth_status.py` | Neutral provider registry that lets any plugin report sign-in state; read-only snapshots feed `authMethods` and `authenticate`. |
122
123
  | `content.py` | Parse ACP prompt content blocks → text + multimodal attachments (`BinaryContent` / `ImageUrl`), honouring `embeddedContext` + `image`. |
123
124
  | `session.py` | `ACPSession`: one ACP session ⇄ one `BaseAgent` + its `_message_history`. Runs each turn as a cancellable `asyncio.Task`; persists history after each turn; owns the final-result fallback. |
124
125
  | `commands.py` | Execute client-typed `/slash` commands via `command_handler`, capturing MessageBus output and forwarding it (never touches stdin). |
@@ -186,7 +187,7 @@ double-send.
186
187
  | Method | Behaviour |
187
188
  |--------|-----------|
188
189
  | `initialize` | Negotiate version + capabilities; install capability-gated I/O delegation. |
189
- | `authenticate` / `logout` | No-op (auth is via Code Puppy's own model config/env). |
190
+ | `authenticate` / `logout` | `authenticate` reports (read-only) the registered auth status for a known method id as `_meta.codePuppy.authStatus`, and succeeds even when that status is `missing` or `expired`; clients must read `status`, not infer from success. An unknown method id gets an empty response. `logout` is a no-op. |
190
191
  | `session/new` | Create an `ACPSession` (fresh `BaseAgent`) from `cwd` + `additionalDirectories`; attach client `mcpServers`; return models + config options; schedule `available_commands_update`. |
191
192
  | `session/load` | Re-open a thread: **replay persisted history into the agent AND stream it back to the client** as `session/update`s so the client rebuilds the thread UI. |
192
193
  | `session/resume` | Rehydrate + replay a session across a restart from persisted history. |
@@ -204,6 +205,66 @@ call in 0.10.1), `plan` updates (no native plan model), and the unstable
204
205
  unimplemented method to a clean "method not found", so we advertise honestly
205
206
  and stub nothing.
206
207
 
208
+ ### Reporting sign-in state
209
+
210
+ `auth_status.py` is a neutral registry: any plugin can register a provider that
211
+ reports its sign-in state, and ACP clients see it in `initialize` (`authMethods`)
212
+ and `authenticate`. Providers must be fast and synchronous; a provider that raises
213
+ or returns a report with wrong-typed fields is skipped. If two providers report the
214
+ same `method_id`, the first registered wins, so the outcome depends on plugin load order.
215
+
216
+ ```python
217
+ from datetime import datetime, timezone
218
+
219
+ from code_puppy_core_plugins.acp.auth_status import (
220
+ AuthStatusReport,
221
+ register_auth_status_provider,
222
+ )
223
+
224
+
225
+ def example_auth_status() -> AuthStatusReport | None:
226
+ session = _load_session()
227
+ if session is None:
228
+ return AuthStatusReport("example-login", "Example Login", "missing")
229
+ return AuthStatusReport(
230
+ "example-login",
231
+ "Example Login",
232
+ "signed_in",
233
+ expires_at=datetime(2030, 1, 2, 3, 4, 5, tzinfo=timezone.utc),
234
+ user_id=session.user_name,
235
+ )
236
+
237
+
238
+ register_auth_status_provider(example_auth_status)
239
+ ```
240
+
241
+ `expires_at` is serialized as ISO-8601 UTC (`...Z`); a naive value is treated as UTC,
242
+ and an aware value is converted to UTC. `user_id` is a display string (trimmed, max 128 chars).
243
+
244
+ Wire shape in the `initialize` result (`authMethods` is omitted when no provider is registered):
245
+
246
+ ```json
247
+ {
248
+ "authMethods": [
249
+ {
250
+ "id": "example-login",
251
+ "name": "Example Login",
252
+ "_meta": {
253
+ "codePuppy": {
254
+ "authStatus": { "status": "signed_in", "expiresAt": "2030-01-02T03:04:05Z", "userId": "jdoe" }
255
+ }
256
+ }
257
+ }
258
+ ]
259
+ }
260
+ ```
261
+
262
+ Readers must never trigger login, network or prompts. `id`, `name` and `description`
263
+ are provider-supplied display strings and must never contain secrets; only the contents of
264
+ `_meta.codePuppy.authStatus` are allow-listed to `status`, `expiresAt` and `userId`.
265
+ A `status` of `not_applicable` means the method does not apply to this
266
+ install, so clients should hide any sign-in UI for it.
267
+
207
268
  ### Outbound notifications (us → the client) — `session/update`
208
269
 
209
270
  `agent_message_chunk`, `agent_thought_chunk`, `tool_call`, `tool_call_update`,
@@ -40,6 +40,7 @@ from acp.schema import (
40
40
  )
41
41
 
42
42
  from code_puppy_core_plugins.acp import (
43
+ auth_status,
43
44
  capabilities,
44
45
  io_delegation,
45
46
  mcp_config,
@@ -126,11 +127,16 @@ class CodePuppyAgent(Agent):
126
127
  title="Code Puppy",
127
128
  version=_code_puppy_version(),
128
129
  ),
130
+ auth_methods=auth_status.auth_methods(),
129
131
  )
130
132
 
131
133
  async def authenticate(self, method_id: str, **kwargs: Any) -> AuthenticateResponse:
132
- """No auth flow — Code Puppy authenticates via its own model config."""
133
- return AuthenticateResponse()
134
+ """Report the registered auth status for ``method_id``.
135
+ Never logs in, calls the network, or prompts."""
136
+ report = auth_status.auth_status_for(method_id)
137
+ if report is None:
138
+ return AuthenticateResponse()
139
+ return AuthenticateResponse(field_meta=auth_status.auth_status_meta(report))
134
140
 
135
141
  # ---- Session lifecycle ------------------------------------------------
136
142
  async def new_session(
@@ -0,0 +1,148 @@
1
+ """Neutral registry of sign-in state that plugins report to ACP clients.
2
+
3
+ Any plugin registers a provider; ACP reads it without knowing who owns it.
4
+ Called by: agent.py :: CodePuppyAgent.initialize() / authenticate().
5
+ Readers must never trigger login, network I/O, or prompts; providers stay read-only.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import logging
11
+ import threading
12
+ import typing
13
+ from dataclasses import dataclass
14
+ from datetime import datetime, timezone
15
+ from typing import Any, Callable, Literal
16
+
17
+ from acp.schema import AuthMethodAgent
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+ AuthState = Literal["signed_in", "expired", "missing", "not_applicable"]
22
+
23
+ _USER_ID_MAX_LEN = 128
24
+
25
+
26
+ @dataclass(frozen=True)
27
+ class AuthStatusReport:
28
+ method_id: str
29
+ name: str
30
+ status: AuthState
31
+ description: str | None = None
32
+ expires_at: datetime | None = None
33
+ user_id: str | None = None
34
+
35
+
36
+ AuthStatusProvider = Callable[[], "AuthStatusReport | None"]
37
+
38
+ _providers: list[AuthStatusProvider] = []
39
+ _providers_lock = threading.Lock()
40
+
41
+
42
+ def register_auth_status_provider(provider: AuthStatusProvider) -> None:
43
+ with _providers_lock:
44
+ if provider not in _providers:
45
+ _providers.append(provider)
46
+
47
+
48
+ def unregister_auth_status_provider(provider: AuthStatusProvider) -> None:
49
+ with _providers_lock:
50
+ if provider in _providers:
51
+ _providers.remove(provider)
52
+
53
+
54
+ def _is_valid_report(report: object) -> bool:
55
+ if not isinstance(report, AuthStatusReport):
56
+ return False
57
+ if report.status not in typing.get_args(AuthState):
58
+ return False
59
+ for text in (report.method_id, report.name):
60
+ if not isinstance(text, str) or not text.strip():
61
+ return False
62
+ if report.description is not None and not isinstance(report.description, str):
63
+ return False
64
+ if report.expires_at is not None and not isinstance(report.expires_at, datetime):
65
+ return False
66
+ if report.user_id is not None and not isinstance(report.user_id, str):
67
+ return False
68
+ return True
69
+
70
+
71
+ def current_auth_reports() -> list[AuthStatusReport]:
72
+ with _providers_lock:
73
+ providers = list(_providers)
74
+
75
+ reports: list[AuthStatusReport] = []
76
+ seen_ids: set[str] = set()
77
+ for provider in providers:
78
+ try:
79
+ report = provider()
80
+ except Exception as exc:
81
+ # Exception type only: messages may carry tokens or other secrets.
82
+ logger.debug("auth status provider failed: %s", type(exc).__name__)
83
+ continue
84
+ if not _is_valid_report(report) or report.method_id in seen_ids:
85
+ continue
86
+ seen_ids.add(report.method_id)
87
+ reports.append(report)
88
+ return reports
89
+
90
+
91
+ def auth_status_for(method_id: str) -> AuthStatusReport | None:
92
+ for report in current_auth_reports():
93
+ if report.method_id == method_id and _meta_or_none(report) is not None:
94
+ return report
95
+ return None
96
+
97
+
98
+ def _format_expires_at(expires_at: datetime) -> str:
99
+ if expires_at.tzinfo is None:
100
+ utc_value = expires_at.replace(tzinfo=timezone.utc)
101
+ else:
102
+ utc_value = expires_at.astimezone(timezone.utc)
103
+ return utc_value.replace(microsecond=0).isoformat().replace("+00:00", "Z")
104
+
105
+
106
+ def auth_status_meta(report: AuthStatusReport) -> dict[str, Any]:
107
+ # Allow-list only: copying other fields could leak data a subclass carries.
108
+ inner: dict[str, Any] = {"status": report.status}
109
+ if report.expires_at is not None:
110
+ inner["expiresAt"] = _format_expires_at(report.expires_at)
111
+ if isinstance(report.user_id, str):
112
+ user_id = report.user_id.strip()[:_USER_ID_MAX_LEN]
113
+ if user_id:
114
+ inner["userId"] = user_id
115
+ return {"codePuppy": {"authStatus": inner}}
116
+
117
+
118
+ def _meta_or_none(report: AuthStatusReport) -> dict[str, Any] | None:
119
+ try:
120
+ return auth_status_meta(report)
121
+ except Exception as exc:
122
+ # Exception type only: messages may carry tokens or other secrets.
123
+ logger.debug(
124
+ "auth status report could not be serialized: %s", type(exc).__name__
125
+ )
126
+ return None
127
+
128
+
129
+ def auth_methods() -> list[AuthMethodAgent] | None:
130
+ methods: list[AuthMethodAgent] = []
131
+ for report in current_auth_reports():
132
+ meta = _meta_or_none(report)
133
+ if meta is None:
134
+ continue
135
+ try:
136
+ methods.append(
137
+ AuthMethodAgent(
138
+ id=report.method_id,
139
+ name=report.name,
140
+ description=report.description,
141
+ field_meta=meta,
142
+ )
143
+ )
144
+ except Exception as exc:
145
+ logger.debug(
146
+ "auth status report could not be serialized: %s", type(exc).__name__
147
+ )
148
+ return methods or None
@@ -21,6 +21,7 @@ from pydantic_ai import BinaryContent, RunContext
21
21
  from pydantic_ai.messages import UserPromptPart
22
22
 
23
23
  from code_puppy import config
24
+ from code_puppy.error_logging import log_error
24
25
 
25
26
  TOOL_NAME = "save_attachments_as_references"
26
27
 
@@ -117,6 +118,7 @@ def register_save_attachments_as_references(agent: Any) -> None:
117
118
  try:
118
119
  paths = await asyncio.to_thread(_save_reference_images, images)
119
120
  except OSError as exc:
121
+ log_error(exc, context="save_attachments_as_references failed")
120
122
  return {
121
123
  "success": False,
122
124
  "error": f"Could not save reference images: {exc}",
@@ -13,6 +13,7 @@ import logging
13
13
  from typing import Any, Dict, List, Optional, Tuple
14
14
 
15
15
  from code_puppy.callbacks import register_callback
16
+ from code_puppy.command_line.utils import safe_input
16
17
  from code_puppy.messaging import emit_error, emit_info, emit_success, emit_warning
17
18
 
18
19
  from .config import COPILOT_AUTH_CONFIG
@@ -212,8 +213,9 @@ def _handle_copilot_login(command: str) -> None:
212
213
  " Press Enter to use github.com."
213
214
  )
214
215
  try:
215
- raw = input("GitHub host [github.com]: ").strip()
216
- host = raw if raw else "github.com"
216
+ # safe_input, not input(): on Windows prompt_toolkit leaves the
217
+ # console in VT-input mode, so raw input() echoes escape codes.
218
+ host = safe_input("GitHub host [github.com]: ") or "github.com"
217
219
  except (EOFError, KeyboardInterrupt):
218
220
  emit_warning("Copilot login cancelled.")
219
221
  return
@@ -0,0 +1 @@
1
+ """Opt-in Logfire instrumentation of Code Puppy agent runs."""
@@ -0,0 +1,126 @@
1
+ """Opt-in Logfire instrumentation of pydantic-ai agent runs.
2
+
3
+ Dormant unless the user opts in with ``/set enable_logfire true`` or a truthy
4
+ ``CODE_PUPPY_ENABLE_LOGFIRE``: until then nothing imports the SDK, warns, or
5
+ touches the environment. Even when opted in, nothing leaves the machine
6
+ without a write token (``send_to_logfire="if-token-present"``). Every failure
7
+ degrades to "no telemetry", never to a broken CLI.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import os
13
+ from typing import Any
14
+
15
+ from . import legacy_core
16
+ from .sdk import MISSING_SDK_HINT, sdk_available
17
+
18
+ ENABLE_KEY = "enable_logfire"
19
+ ENABLE_ENV = "CODE_PUPPY_ENABLE_LOGFIRE"
20
+ _TRUTHY = frozenset({"1", "true", "yes", "on"})
21
+
22
+ _active = False
23
+ _agent_contexts: dict[str, Any] = {}
24
+
25
+
26
+ def _truthy(value: object) -> bool:
27
+ return str(value or "").strip().lower() in _TRUTHY
28
+
29
+
30
+ def opted_in() -> bool:
31
+ """A truthy env var opts in without touching ``puppy.cfg``."""
32
+ if _truthy(os.environ.get(ENABLE_ENV)):
33
+ return True
34
+ from code_puppy.config import get_value
35
+
36
+ return _truthy(get_value(ENABLE_KEY))
37
+
38
+
39
+ def resolve_token() -> str | None:
40
+ """Prefer the user's own ``LOGFIRE_TOKEN``, then the onboarded project's."""
41
+ token = os.environ.get(legacy_core.TOKEN_ENV)
42
+ if token:
43
+ return token
44
+ from ..logfire_oauth.oauth import load_project_credentials
45
+
46
+ credentials = load_project_credentials()
47
+ return credentials.token if credentials else None
48
+
49
+
50
+ def configure(token: str | None = None) -> bool:
51
+ """Configure Logfire when opted in; return whether instrumentation is live.
52
+
53
+ An explicit ``token`` (e.g. one onboarding just minted) beats
54
+ ``resolve_token()``. Safe to call again: the SDK is reconfigured in place.
55
+ """
56
+ global _active
57
+ _active = False
58
+
59
+ if not opted_in():
60
+ return False
61
+
62
+ from code_puppy.messaging import emit_system_message, emit_warning
63
+
64
+ legacy = legacy_core.loaded()
65
+ if legacy is not None:
66
+ legacy_core.export_token(token or resolve_token(), overwrite=True)
67
+ return bool(legacy.configure_logfire())
68
+
69
+ if not sdk_available():
70
+ emit_warning(MISSING_SDK_HINT)
71
+ return False
72
+
73
+ try:
74
+ import logfire
75
+
76
+ logfire.configure(
77
+ service_name="code-puppy",
78
+ token=token or resolve_token(),
79
+ send_to_logfire="if-token-present",
80
+ console=False,
81
+ )
82
+ logfire.instrument_pydantic_ai()
83
+ except Exception as exc:
84
+ emit_warning(f"Failed to configure Logfire: {exc}")
85
+ return False
86
+
87
+ _active = True
88
+ emit_system_message(
89
+ "Logfire instrumentation enabled - spans ship only if a Logfire "
90
+ "token is configured."
91
+ )
92
+ return True
93
+
94
+
95
+ def capture_context(group_id: str) -> None:
96
+ """Remember the live agent span so a later cancellation can nest under it."""
97
+ if not _active:
98
+ return
99
+ try:
100
+ import logfire
101
+
102
+ _agent_contexts[group_id] = logfire.get_context()
103
+ except Exception:
104
+ return
105
+
106
+
107
+ def clear_context(group_id: str) -> None:
108
+ """Discard trace context retained for a finished agent run."""
109
+ _agent_contexts.pop(group_id, None)
110
+
111
+
112
+ def emit_cancellation(group_id: str) -> None:
113
+ """Log a cancellation as a child of its instrumented agent run."""
114
+ if not _active:
115
+ return
116
+ context = _agent_contexts.pop(group_id, None)
117
+ try:
118
+ import logfire
119
+
120
+ if context is None:
121
+ logfire.warning("Agent run cancelled", group_id=group_id)
122
+ return
123
+ with logfire.attach_context(context):
124
+ logfire.warning("Agent run cancelled", group_id=group_id)
125
+ except Exception:
126
+ return
@@ -0,0 +1,39 @@
1
+ """Bridge to Code Puppy cores that still ship their own Logfire wiring.
2
+
3
+ Those cores configure Logfire themselves from ``code_puppy.observability``
4
+ before the ``startup`` hook fires, and read the write token only from the
5
+ environment. This module never imports that legacy module: it only finds it,
6
+ or looks it up once core has imported it.
7
+
8
+ Delete this module once the minimum supported core no longer ships
9
+ ``code_puppy.observability``.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import os
15
+ import sys
16
+ from types import ModuleType
17
+
18
+ from .sdk import module_exists
19
+
20
+ MODULE_NAME = "code_puppy.observability"
21
+ TOKEN_ENV = "LOGFIRE_TOKEN"
22
+
23
+
24
+ def present() -> bool:
25
+ """Return whether the installed core ships its own Logfire wiring."""
26
+ return module_exists(MODULE_NAME)
27
+
28
+
29
+ def loaded() -> ModuleType | None:
30
+ """Return the legacy module if core already imported it."""
31
+ return sys.modules.get(MODULE_NAME)
32
+
33
+
34
+ def export_token(token: str | None, *, overwrite: bool) -> None:
35
+ """Expose ``token`` to a legacy core, the only reader that needs the env."""
36
+ if not token or not present():
37
+ return
38
+ if overwrite or TOKEN_ENV not in os.environ:
39
+ os.environ[TOKEN_ENV] = token
@@ -0,0 +1,67 @@
1
+ """Wire opt-in Logfire instrumentation into core's callback hooks."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+
7
+ from code_puppy.callbacks import register_callback
8
+ from code_puppy.command_line.set_menu_schema import Setting, SettingsCategory
9
+ from code_puppy_core_plugins.plugin_settings import register_settings
10
+
11
+ from . import instrumentation, legacy_core
12
+
13
+ logger = logging.getLogger(__name__)
14
+
15
+
16
+ def _export_token_for_legacy_core() -> None:
17
+ """Legacy cores configure Logfire from the env before ``startup`` fires."""
18
+ try:
19
+ if legacy_core.present() and instrumentation.opted_in():
20
+ legacy_core.export_token(instrumentation.resolve_token(), overwrite=False)
21
+ except Exception:
22
+ logger.debug("Could not expose the Logfire token to core", exc_info=True)
23
+
24
+
25
+ def _on_startup() -> None:
26
+ if legacy_core.present():
27
+ return
28
+ instrumentation.configure()
29
+
30
+
31
+ def _on_agent_run_end(
32
+ _agent_name: str, _model_name: str, session_id: str | None = None, *_args, **_kw
33
+ ) -> None:
34
+ if session_id:
35
+ instrumentation.clear_context(session_id)
36
+
37
+
38
+ def _register_event_stream_start() -> None:
39
+ try:
40
+ register_callback("agent_event_stream_start", instrumentation.capture_context)
41
+ except ValueError:
42
+ logger.debug("Core predates agent_event_stream_start; it captures context")
43
+
44
+
45
+ _export_token_for_legacy_core()
46
+ register_settings(
47
+ SettingsCategory(
48
+ "Features",
49
+ (
50
+ Setting(
51
+ key=instrumentation.ENABLE_KEY,
52
+ display_name="Logfire Instrumentation",
53
+ description=(
54
+ "Send agent traces to your own Logfire project. Needs a "
55
+ "write token and the code-puppy-core-plugins[logfire] extra."
56
+ ),
57
+ type_hint="bool",
58
+ effective_getter=instrumentation.opted_in,
59
+ requires_restart=True,
60
+ ),
61
+ ),
62
+ )
63
+ )
64
+ register_callback("startup", _on_startup)
65
+ register_callback("agent_run_cancel", instrumentation.emit_cancellation)
66
+ register_callback("agent_run_end", _on_agent_run_end)
67
+ _register_event_stream_start()
@@ -0,0 +1,25 @@
1
+ """Discovery of the optional ``logfire`` SDK, shared by every Logfire plugin."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib.util
6
+ import sys
7
+
8
+ MISSING_SDK_HINT = (
9
+ "The optional 'logfire' SDK is not installed. Install the plugin extra and "
10
+ "restart Code Puppy, e.g. "
11
+ "uv tool install code-puppy --with 'code-puppy-core-plugins[logfire]'"
12
+ )
13
+
14
+
15
+ def module_exists(name: str) -> bool:
16
+ """Return whether ``name`` can be imported, without importing it."""
17
+ try:
18
+ return importlib.util.find_spec(name) is not None
19
+ except (ImportError, ValueError):
20
+ return False
21
+
22
+
23
+ def sdk_available() -> bool:
24
+ """Return whether the ``logfire`` SDK is loaded or importable."""
25
+ return sys.modules.get("logfire") is not None or module_exists("logfire")
@@ -309,7 +309,6 @@ def mint_write_token(
309
309
  response.json(), base_url=tokens.base_url
310
310
  )
311
311
  save_project_credentials(credentials)
312
- os.environ["LOGFIRE_TOKEN"] = credentials.token
313
312
  return credentials
314
313
  except httpx.HTTPError as exc:
315
314
  raise OAuthError(