code-puppy-core-plugins 0.0.98__tar.gz → 0.0.100__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 (602) hide show
  1. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/PKG-INFO +1 -1
  2. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/resume_hint/__init__.py +1 -0
  3. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/resume_hint/locales/en-US.json +3 -0
  4. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/resume_hint/locales/es.json +3 -0
  5. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/resume_hint/locales/fr-CA.json +3 -0
  6. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/resume_hint/register_callbacks.py +72 -0
  7. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/README.md +1 -0
  8. code_puppy_core_plugins-0.0.100/code_puppy_core_plugins/setup_cli/auth_cmds.py +215 -0
  9. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/cli.py +9 -4
  10. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/providers.py +25 -0
  11. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/sbx_plan.py +90 -4
  12. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/pyproject.toml +2 -1
  13. code_puppy_core_plugins-0.0.98/code_puppy_core_plugins/setup_cli/auth_cmds.py +0 -124
  14. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/.gitignore +0 -0
  15. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/LICENSE +0 -0
  16. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/README.md +0 -0
  17. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/THIRD_PARTY_NOTICES.md +0 -0
  18. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/__init__.py +0 -0
  19. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/README.md +0 -0
  20. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/__init__.py +0 -0
  21. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/agent.py +0 -0
  22. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/bridge.py +0 -0
  23. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/capabilities.py +0 -0
  24. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/commands.py +0 -0
  25. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/content.py +0 -0
  26. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
  27. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
  28. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/permissions.py +0 -0
  29. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/persistence.py +0 -0
  30. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
  31. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/replay.py +0 -0
  32. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/session.py +0 -0
  33. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/session_config.py +0 -0
  34. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/acp/state.py +0 -0
  35. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
  36. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
  37. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
  38. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
  39. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/config.py +0 -0
  40. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
  41. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
  42. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
  43. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
  44. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
  45. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
  46. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
  47. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
  48. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
  49. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
  50. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/attachment_references/tool.py +0 -0
  51. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
  52. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
  53. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
  54. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
  55. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
  56. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
  57. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
  58. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
  59. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
  60. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
  61. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
  62. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
  63. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
  64. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
  65. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/background_agents/README.md +0 -0
  66. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
  67. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
  68. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/btw/__init__.py +0 -0
  69. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/btw/inline_view.py +0 -0
  70. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
  71. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/btw/side_query.py +0 -0
  72. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
  73. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
  74. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
  75. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
  76. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
  77. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
  78. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
  79. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
  80. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
  81. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
  82. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
  83. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
  84. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
  85. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
  86. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
  87. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
  88. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
  89. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
  90. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
  91. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
  92. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
  93. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
  94. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
  95. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
  96. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
  97. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
  98. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  99. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
  100. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
  101. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
  102. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
  103. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
  104. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
  105. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
  106. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
  107. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
  108. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
  109. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
  110. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
  111. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/config.py +0 -0
  112. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
  113. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
  114. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
  115. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
  116. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
  117. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
  118. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
  119. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
  120. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/README.md +0 -0
  121. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
  122. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
  123. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
  124. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/activation.py +0 -0
  125. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/backend.py +0 -0
  126. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
  127. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/batch.py +0 -0
  128. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/capture.py +0 -0
  129. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/commands.py +0 -0
  130. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
  131. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
  132. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
  133. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
  134. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
  135. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
  136. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
  137. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
  138. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/policy.py +0 -0
  139. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
  140. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/safety.py +0 -0
  141. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/settle.py +0 -0
  142. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/state.py +0 -0
  143. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/tools.py +0 -0
  144. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
  145. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
  146. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
  147. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
  148. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
  149. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
  150. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
  151. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
  152. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
  153. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
  154. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
  155. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
  156. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
  157. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
  158. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
  159. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
  160. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  161. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
  162. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
  163. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
  164. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
  165. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
  166. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
  167. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
  168. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
  169. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
  170. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
  171. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
  172. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
  173. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
  174. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
  175. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
  176. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
  177. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
  178. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
  179. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
  180. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
  181. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
  182. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
  183. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/execution_environment/README.md +0 -0
  184. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
  185. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/execution_environment/register_callbacks.py +0 -0
  186. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
  187. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
  188. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
  189. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
  190. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
  191. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
  192. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
  193. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
  194. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
  195. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
  196. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
  197. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
  198. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
  199. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
  200. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
  201. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
  202. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
  203. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
  204. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
  205. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
  206. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
  207. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
  208. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
  209. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
  210. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
  211. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
  212. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
  213. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
  214. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
  215. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
  216. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
  217. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
  218. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
  219. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/fork/__init__.py +0 -0
  220. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
  221. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
  222. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
  223. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
  224. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
  225. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
  226. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
  227. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
  228. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
  229. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
  230. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/README.md +0 -0
  231. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
  232. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/__init__.py +0 -0
  233. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/client.py +0 -0
  234. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
  235. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
  236. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/launcher.py +0 -0
  237. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
  238. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/reporter.py +0 -0
  239. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/restore.py +0 -0
  240. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/smoke.py +0 -0
  241. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/herdr/sources.py +0 -0
  242. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
  243. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
  244. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
  245. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_manager/config.py +0 -0
  246. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
  247. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
  248. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
  249. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
  250. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
  251. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/config.py +0 -0
  252. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
  253. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
  254. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
  255. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/search.py +0 -0
  256. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
  257. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
  258. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
  259. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
  260. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
  261. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
  262. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
  263. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
  264. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
  265. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
  266. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
  267. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
  268. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
  269. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
  270. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
  271. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
  272. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
  273. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
  274. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
  275. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/locales/en-US.json +0 -0
  276. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
  277. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
  278. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
  279. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
  280. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
  281. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
  282. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
  283. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
  284. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
  285. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
  286. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
  287. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
  288. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
  289. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
  290. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
  291. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
  292. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
  293. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/ollama/__init__.py +0 -0
  294. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
  295. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
  296. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
  297. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
  298. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
  299. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
  300. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
  301. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
  302. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
  303. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  304. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
  305. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
  306. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
  307. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
  308. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
  309. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
  310. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
  311. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/plugin_settings.py +0 -0
  312. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
  313. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
  314. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/README.md +0 -0
  315. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/__init__.py +0 -0
  316. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/config.py +0 -0
  317. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
  318. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/menu.py +0 -0
  319. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
  320. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
  321. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
  322. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
  323. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prune/__init__.py +0 -0
  324. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
  325. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prune/prune_model.py +0 -0
  326. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prune/prune_render.py +0 -0
  327. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
  328. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/README.md +0 -0
  329. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/__init__.py +0 -0
  330. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/adapter.py +0 -0
  331. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/agents.py +0 -0
  332. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/catalog.py +0 -0
  333. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/commands.py +0 -0
  334. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/config.py +0 -0
  335. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/prompt.py +0 -0
  336. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
  337. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
  338. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/skills/create-skill/SKILL.md +0 -0
  339. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/upstream.py +0 -0
  340. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
  341. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/LICENSE +0 -0
  342. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-cli/SKILL.md +0 -0
  343. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-ui/SKILL.md +0 -0
  344. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/deslop/SKILL.md +0 -0
  345. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
  346. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/README.md +0 -0
  347. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/agents/comment-sicko.md +0 -0
  348. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/agents/poteto-agent.md +0 -0
  349. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/FOR_AGENTS.md +0 -0
  350. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/README.md +0 -0
  351. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/SKILL.md +0 -0
  352. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/control-adapter.md +0 -0
  353. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/feature-map.example.md +0 -0
  354. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/verify-existing-fix.md +0 -0
  355. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/setup-benny/SKILL.md +0 -0
  356. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/SKILL.md +0 -0
  357. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/references/routing.example.md +0 -0
  358. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/configuration.example.yaml +0 -0
  359. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/reproduce-automation-prompt.md +0 -0
  360. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/triage-automation-prompt.md +0 -0
  361. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/01-setup.md +0 -0
  362. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/02-poteto-mode.md +0 -0
  363. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/03-understand.md +0 -0
  364. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/04-design.md +0 -0
  365. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/05-build-and-clean.md +0 -0
  366. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/06-verify-and-ship.md +0 -0
  367. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/07-overnight.md +0 -0
  368. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/08-principles.md +0 -0
  369. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/09-make-it-yours.md +0 -0
  370. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/10-recipes-and-pitfalls.md +0 -0
  371. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/README.md +0 -0
  372. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/plugin.json +0 -0
  373. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/SKILL.md +0 -0
  374. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/design-red-flags.md +0 -0
  375. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/rationale-template.md +0 -0
  376. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/runner-prompt.md +0 -0
  377. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/arena/SKILL.md +0 -0
  378. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/automate-me/SKILL.md +0 -0
  379. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/benchmark-checklist/SKILL.md +0 -0
  380. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/blast-radius/SKILL.md +0 -0
  381. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/bro/SKILL.md +0 -0
  382. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/correct/SKILL.md +0 -0
  383. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/SKILL.md +0 -0
  384. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/README.md +0 -0
  385. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -0
  386. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/search.md +0 -0
  387. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/figure-it-out/SKILL.md +0 -0
  388. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/SKILL.md +0 -0
  389. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explainer-prompt.md +0 -0
  390. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explorer-prompt.md +0 -0
  391. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/in-your-own-words/SKILL.md +0 -0
  392. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/SKILL.md +0 -0
  393. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/code-quality-review.md +0 -0
  394. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/lead-judgment.md +0 -0
  395. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/reviewer-prompt.md +0 -0
  396. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/rubric.md +0 -0
  397. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/ketchup/SKILL.md +0 -0
  398. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/maintain-verification-skill/SKILL.md +0 -0
  399. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/make-bot-ui/SKILL.md +0 -0
  400. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/no-comments/SKILL.md +0 -0
  401. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/SKILL.md +0 -0
  402. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/prompting.md +0 -0
  403. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/recipes.md +0 -0
  404. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/SKILL.md +0 -0
  405. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -0
  406. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autonomous-run.md +0 -0
  407. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-full.md +0 -0
  408. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +0 -0
  409. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/babysit.md +0 -0
  410. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/bug-fix.md +0 -0
  411. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/eval.md +0 -0
  412. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/feature.md +0 -0
  413. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/hillclimb.md +0 -0
  414. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/investigation.md +0 -0
  415. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -0
  416. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +0 -0
  417. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/orchestrate.md +0 -0
  418. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/pause-safely.md +0 -0
  419. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/perf-issue.md +0 -0
  420. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/prototype.md +0 -0
  421. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/refactoring.md +0 -0
  422. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +0 -0
  423. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/session-pickup.md +0 -0
  424. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/shipping.md +0 -0
  425. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/trace-forensics.md +0 -0
  426. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/visual-parity.md +0 -0
  427. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -0
  428. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/references/bugbot-triage.md +0 -0
  429. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bootstrap.ts +0 -0
  430. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bun.lock +0 -0
  431. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.mjs +0 -0
  432. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.test.ts +0 -0
  433. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.test.ts +0 -0
  434. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.ts +0 -0
  435. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/store.ts +0 -0
  436. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/package.json +0 -0
  437. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -0
  438. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -0
  439. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -0
  440. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -0
  441. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +0 -0
  442. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -0
  443. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -0
  444. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +0 -0
  445. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -0
  446. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -0
  447. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +0 -0
  448. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -0
  449. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/worktree-audit.sh +0 -0
  450. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-attack-the-premise/SKILL.md +0 -0
  451. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-boundary-discipline/SKILL.md +0 -0
  452. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-build-the-lever/SKILL.md +0 -0
  453. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +0 -0
  454. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-exhaust-the-design-space/SKILL.md +0 -0
  455. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-experience-first/SKILL.md +0 -0
  456. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-explain-the-number/SKILL.md +0 -0
  457. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-fix-root-causes/SKILL.md +0 -0
  458. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-foundational-thinking/SKILL.md +0 -0
  459. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-guard-the-context-window/SKILL.md +0 -0
  460. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-laziness-protocol/SKILL.md +0 -0
  461. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-make-operations-idempotent/SKILL.md +0 -0
  462. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -0
  463. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-minimize-reader-load/SKILL.md +0 -0
  464. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-model-the-domain/SKILL.md +0 -0
  465. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-never-block-on-the-human/SKILL.md +0 -0
  466. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-outcome-oriented-execution/SKILL.md +0 -0
  467. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-prove-it-works/SKILL.md +0 -0
  468. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-redesign-from-first-principles/SKILL.md +0 -0
  469. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -0
  470. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-sequence-verifiable-units/SKILL.md +0 -0
  471. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-subtract-before-you-add/SKILL.md +0 -0
  472. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +0 -0
  473. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-type-system-discipline/SKILL.md +0 -0
  474. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/recall/SKILL.md +0 -0
  475. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/SKILL.md +0 -0
  476. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/divergent-reviewer.md +0 -0
  477. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/judgment-reviewer.md +0 -0
  478. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/synthesizer.md +0 -0
  479. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/tooling-reviewer.md +0 -0
  480. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/setup-pstack/SKILL.md +0 -0
  481. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/SKILL.md +0 -0
  482. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/references/decision-log-template.tsv +0 -0
  483. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/scripts/log.sh +0 -0
  484. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/swarm/SKILL.md +0 -0
  485. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/tdd/SKILL.md +0 -0
  486. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/teach/SKILL.md +0 -0
  487. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/technical-writing/SKILL.md +0 -0
  488. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/SKILL.md +0 -0
  489. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/references/patterns.md +0 -0
  490. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/unslop/SKILL.md +0 -0
  491. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/SKILL.md +0 -0
  492. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/epistemics.md +0 -0
  493. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/investigator-prompt.md +0 -0
  494. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/source-playbook.md +0 -0
  495. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/code-archaeology.md +0 -0
  496. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/databricks.md +0 -0
  497. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/datadog.md +0 -0
  498. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/incident-postmortem.md +0 -0
  499. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/linear.md +0 -0
  500. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/notion.md +0 -0
  501. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/sentry.md +0 -0
  502. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/slack.md +0 -0
  503. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/synthesizer-prompt.md +0 -0
  504. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
  505. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
  506. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
  507. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
  508. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
  509. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
  510. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
  511. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
  512. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
  513. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
  514. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
  515. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
  516. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
  517. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
  518. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
  519. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
  520. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
  521. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
  522. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
  523. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
  524. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
  525. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
  526. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
  527. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  528. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
  529. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
  530. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
  531. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
  532. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/session_namer/namer.py +0 -0
  533. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
  534. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
  535. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/agent_cmds.py +0 -0
  536. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/config_cmds.py +0 -0
  537. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
  538. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/export_cmds.py +0 -0
  539. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/mcp_cmds.py +0 -0
  540. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/model_cmds.py +0 -0
  541. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/output.py +0 -0
  542. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/plugin_cmds.py +0 -0
  543. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/register_callbacks.py +0 -0
  544. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/skill_cmds.py +0 -0
  545. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
  546. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
  547. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/spill/__init__.py +0 -0
  548. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
  549. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/spill/store.py +0 -0
  550. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
  551. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
  552. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/__init__.py +0 -0
  553. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/config.py +0 -0
  554. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/payload.py +0 -0
  555. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
  556. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
  557. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/runner.py +0 -0
  558. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
  559. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
  560. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
  561. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
  562. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
  563. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
  564. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
  565. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
  566. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
  567. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
  568. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
  569. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
  570. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
  571. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/termflow_tui.py +0 -0
  572. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/README.md +0 -0
  573. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/__init__.py +0 -0
  574. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
  575. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/content_styles.py +0 -0
  576. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
  577. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/picker.py +0 -0
  578. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
  579. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/register_callbacks.py +0 -0
  580. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
  581. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/theme/themes.py +0 -0
  582. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
  583. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
  584. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
  585. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
  586. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
  587. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
  588. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
  589. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
  590. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
  591. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
  592. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
  593. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
  594. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
  595. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
  596. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/judge.py +0 -0
  597. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
  598. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
  599. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
  600. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/wiggum/state.py +0 -0
  601. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
  602. {code_puppy_core_plugins-0.0.98 → code_puppy_core_plugins-0.0.100}/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.98
3
+ Version: 0.0.100
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
@@ -0,0 +1 @@
1
+ """Print a copy-pasteable ``--resume`` command when the interactive CLI exits."""
@@ -0,0 +1,3 @@
1
+ {
2
+ "plugin.resume-hint.header": "Resume this session with:"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "plugin.resume-hint.header": "Reanuda esta sesión con:"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "plugin.resume-hint.header": "Reprenez cette session avec :"
3
+ }
@@ -0,0 +1,72 @@
1
+ """Leave a breadcrumb on exit: ``Resume this session with: uvx code-puppy --resume <name>``.
2
+
3
+ Hooks ``shutdown``, which ``cli_runner.main`` fires *after* the persistent UI
4
+ and message renderers are torn down. That makes it the last thing on screen,
5
+ but it also means the message bus is gone, so we write straight to stdout.
6
+
7
+ The hint only appears when autosave is on and the session file exists on
8
+ disk, so we never advertise a name with nothing saved behind it (nothing
9
+ said yet, or a fresh ``/clear``) or a stale snapshot (autosave disabled).
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import logging
15
+ from importlib.resources import files
16
+ from pathlib import Path
17
+
18
+ from code_puppy.callbacks import register_callback
19
+ from code_puppy.config import (
20
+ AUTOSAVE_DIR,
21
+ get_auto_save_session,
22
+ get_current_session_name,
23
+ get_headless_mode,
24
+ )
25
+ from code_puppy.i18n import register_plugin_catalog, t
26
+ from code_puppy.session_storage import build_session_paths
27
+
28
+ register_plugin_catalog(files(__package__).joinpath("locales"))
29
+
30
+ logger = logging.getLogger(__name__)
31
+
32
+ # The README's launch method; works whether or not code-puppy is installed.
33
+ _LAUNCH_COMMAND = "uvx code-puppy"
34
+
35
+
36
+ def _saved_session_name() -> str | None:
37
+ """Return the current session name if it has been persisted, else None."""
38
+ name = get_current_session_name()
39
+ paths = build_session_paths(Path(AUTOSAVE_DIR), name)
40
+ if paths.json_path.is_file() or paths.pickle_path.is_file():
41
+ return name
42
+ return None
43
+
44
+
45
+ def _resume_arg(session_name: str) -> str:
46
+ # argparse reads a leading "-" as an option; the "=" form keeps it a value.
47
+ separator = "=" if session_name.startswith("-") else " "
48
+ return f"--resume{separator}{session_name}"
49
+
50
+
51
+ def _format_resume_hint(session_name: str) -> str:
52
+ return (
53
+ f"\n{t('plugin.resume-hint.header')}\n"
54
+ f" {_LAUNCH_COMMAND} {_resume_arg(session_name)}\n"
55
+ )
56
+
57
+
58
+ def _on_shutdown() -> None:
59
+ try:
60
+ # Headless ``-p`` stdout is often machine-parsed; with autosave off,
61
+ # the file on disk is a stale snapshot rather than "this session".
62
+ if get_headless_mode() or not get_auto_save_session():
63
+ return
64
+ session_name = _saved_session_name()
65
+ if session_name:
66
+ print(_format_resume_hint(session_name), flush=True)
67
+ except Exception:
68
+ # A goodbye nicety must never turn a clean exit into a traceback.
69
+ logger.debug("resume_hint: unable to print resume hint", exc_info=True)
70
+
71
+
72
+ register_callback("shutdown", _on_shutdown)
@@ -11,6 +11,7 @@ no parallel config logic.
11
11
  code-puppy --setup wizard # guided first-run setup
12
12
  code-puppy --setup doctor [--network] # what's broken / missing?
13
13
  code-puppy --setup auth login meta # delegate to the plugin's own flow
14
+ code-puppy --setup auth login zai-coding-plan # models.dev id (raw env var also works)
14
15
  code-puppy --setup auth list --json
15
16
  code-puppy --setup model add anthropic/claude-haiku-5-5 --set-default
16
17
  code-puppy --setup model list
@@ -0,0 +1,215 @@
1
+ """``setup auth`` — one front door for every provider login Code Puppy has.
2
+
3
+ OAuth logins are *delegated* to the owning plugin's existing interactive
4
+ command in a full Code Puppy subprocess (``code-puppy -p "/x-auth"``):
5
+ those flows print through the messaging system and may open browsers or
6
+ localhost callbacks, none of which exist yet in the ``handle_cli_args``
7
+ context this CLI runs in. Status/logout reads go through the plugins'
8
+ own loaders with structured results. API keys are collected directly
9
+ (hidden prompt, stdin, or environment) into the shared credential
10
+ store and never echoed.
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ import getpass
16
+ import os
17
+ import re
18
+ import shutil
19
+ import subprocess
20
+ import sys
21
+ from typing import Optional
22
+
23
+ from . import providers
24
+ from .output import Out, SetupError
25
+
26
+
27
+ def _delegate_slash_command(command: str) -> int:
28
+ exe = shutil.which("code-puppy") or sys.argv[0]
29
+ print(f'launching: code-puppy -p "/{command}" (interactive provider flow)')
30
+ return subprocess.call([exe, "-p", f"/{command}"])
31
+
32
+
33
+ _ENV_NAME_RE = re.compile(r"[A-Z_][A-Z0-9_]*")
34
+
35
+
36
+ def _resolve_api_key_envs(provider_id: str) -> tuple[list[str], Optional[str]]:
37
+ """Resolve an ``auth`` target to its API-key env vars.
38
+
39
+ Accepts a models.dev provider id (``zai-coding-plan`` -> the env
40
+ vars it declares, canonical first) or a raw env var name
41
+ (``ZHIPU_API_KEY``). Returns ``(envs, models_dev_id)``; the id
42
+ is None for the raw-env form. A known provider declaring no env
43
+ vars yields ``([], id)``.
44
+ """
45
+ envs = providers.api_key_envs_for_provider(provider_id)
46
+ if envs is not None:
47
+ return envs, provider_id.strip().lower()
48
+ return [provider_id.strip().upper()], None
49
+
50
+
51
+ def cmd_auth_list(out: Out) -> int:
52
+ status = providers.all_provider_status()
53
+ human = []
54
+ for entry in status.oauth:
55
+ mark = "authenticated" if entry["authenticated"] else "not authenticated"
56
+ human.append(f"{entry['id']}: {mark} [{entry['sandbox_transport']}]")
57
+ for entry in status.api_keys:
58
+ if entry["authenticated"]:
59
+ human.append(f"{entry['env_var']}: set")
60
+ out.result(
61
+ {"oauth": status.oauth, "api_keys": status.api_keys},
62
+ human=human or ["(nothing authenticated)"],
63
+ )
64
+ return 0
65
+
66
+
67
+ def cmd_auth_status(out: Out, provider_id: str) -> int:
68
+ provider = providers.get_oauth_provider(provider_id)
69
+ if provider:
70
+ entry = providers.oauth_status(provider)
71
+ out.result(
72
+ entry,
73
+ human=f"{provider.id}: "
74
+ + ("authenticated" if entry["authenticated"] else "not authenticated")
75
+ + f" (source: {entry['source']})",
76
+ )
77
+ return 0 if entry["authenticated"] else 1
78
+ envs, models_dev_id = _resolve_api_key_envs(provider_id)
79
+ if models_dev_id is None and not providers.is_known_api_key_env(envs[0]):
80
+ raise SetupError(
81
+ f"unknown provider '{provider_id}' (see `setup auth list`)", exit_code=2
82
+ )
83
+ if not envs:
84
+ out.result(
85
+ {
86
+ "provider": models_dev_id,
87
+ "env_var": None,
88
+ "env_vars": {},
89
+ "authenticated": False,
90
+ "kind": "api-key",
91
+ },
92
+ human=f"{models_dev_id}: declares no API-key env var in models.dev",
93
+ )
94
+ return 1
95
+ per_env = {env: providers.credential_present(env) for env in envs}
96
+ present = any(per_env.values())
97
+ result: dict = {
98
+ "env_var": envs[0],
99
+ "env_vars": per_env,
100
+ "authenticated": present,
101
+ "kind": "api-key",
102
+ }
103
+ if models_dev_id:
104
+ result["provider"] = models_dev_id
105
+ detail = ", ".join(
106
+ f"{env} {'set' if is_set else 'not set'}" for env, is_set in per_env.items()
107
+ )
108
+ human = f"{models_dev_id}: {'set' if present else 'not set'} ({detail})"
109
+ else:
110
+ human = f"{envs[0]}: {'set' if present else 'not set'}"
111
+ out.result(result, human=human)
112
+ return 0 if present else 1
113
+
114
+
115
+ def _collect_api_key(env_var: str, from_env: Optional[str], stdin: bool) -> str:
116
+ if stdin:
117
+ value = sys.stdin.read().strip()
118
+ elif from_env:
119
+ value = os.environ.get(from_env, "").strip()
120
+ else:
121
+ value = getpass.getpass(f"Enter {env_var}: ").strip()
122
+ if not value:
123
+ raise SetupError(f"no value provided for {env_var}")
124
+ return value
125
+
126
+
127
+ def cmd_auth_login(
128
+ out: Out, provider_id: str, from_env: Optional[str], stdin: bool
129
+ ) -> int:
130
+ provider = providers.get_oauth_provider(provider_id)
131
+ if provider and provider.login_kind == "slash" and provider.auth_command:
132
+ return _delegate_slash_command(provider.auth_command)
133
+ if provider and provider.env_var:
134
+ env_var, models_dev_id = provider.env_var, None
135
+ else:
136
+ envs, models_dev_id = _resolve_api_key_envs(provider_id)
137
+ if models_dev_id is not None and not envs:
138
+ raise SetupError(
139
+ f"provider '{provider_id}' declares no API-key env var in models.dev",
140
+ exit_code=2,
141
+ )
142
+ env_var = envs[0]
143
+ if models_dev_id is None and not _ENV_NAME_RE.fullmatch(env_var):
144
+ raise SetupError(
145
+ f"unknown provider '{provider_id}' (see `setup auth list`"
146
+ " and `setup model catalog`)",
147
+ exit_code=2,
148
+ )
149
+ value = _collect_api_key(env_var, from_env, stdin)
150
+ from code_puppy.provider_credentials import save_credential
151
+
152
+ save_credential(env_var, value)
153
+ result: dict = {"env_var": env_var, "saved": True}
154
+ suffix = ""
155
+ if models_dev_id:
156
+ result["provider"] = models_dev_id
157
+ suffix = f" (provider {models_dev_id})"
158
+ out.result(result, human=f"saved credential for {env_var}{suffix}")
159
+ return 0
160
+
161
+
162
+ def _clear_stored_credential(env_var: str) -> None:
163
+ from pathlib import Path
164
+
165
+ from code_puppy import config, secret_store, shared_credentials
166
+ from code_puppy.atomic_io import path_lock
167
+ from code_puppy.config_file import mutate_config
168
+
169
+ # Core has no delete-credential API (save() rejects empty values), so
170
+ # mirror shared_credentials.save() in reverse under the same lock:
171
+ # drop the shared-store secret and any legacy puppy.cfg value.
172
+ def _remove_legacy(parser):
173
+ return (
174
+ parser.remove_option(config.DEFAULT_SECTION, env_var)
175
+ if parser.has_section(config.DEFAULT_SECTION)
176
+ else False
177
+ )
178
+
179
+ try:
180
+ with path_lock(str(Path(config.CONFIG_DIR) / "provider_credentials")):
181
+ secret_store.delete_secret(shared_credentials._name(env_var))
182
+ mutate_config(str(config.CONFIG_FILE), _remove_legacy)
183
+ except Exception as e:
184
+ raise SetupError(f"failed to clear stored credential for {env_var}: {e}") from e
185
+ os.environ.pop(env_var, None)
186
+
187
+
188
+ def cmd_auth_logout(out: Out, provider_id: str) -> int:
189
+ provider = providers.get_oauth_provider(provider_id)
190
+ if provider and provider.logout_command:
191
+ return _delegate_slash_command(provider.logout_command)
192
+ if provider and provider.env_var:
193
+ envs, models_dev_id = [provider.env_var], None
194
+ else:
195
+ envs, models_dev_id = _resolve_api_key_envs(provider_id)
196
+ if models_dev_id is not None and not envs:
197
+ raise SetupError(
198
+ f"provider '{provider_id}' declares no API-key env var in models.dev",
199
+ exit_code=2,
200
+ )
201
+ if models_dev_id is None and not _ENV_NAME_RE.fullmatch(envs[0]):
202
+ raise SetupError(
203
+ f"unknown provider '{provider_id}' (see `setup auth list`)", exit_code=2
204
+ )
205
+ for env_var in envs:
206
+ _clear_stored_credential(env_var)
207
+ result: dict = {"env_var": envs[0], "env_vars": envs, "cleared": True}
208
+ if models_dev_id:
209
+ result["provider"] = models_dev_id
210
+ out.result(
211
+ result,
212
+ human=f"cleared stored credential for {', '.join(envs)} "
213
+ "(a shell environment variable of the same name still wins if set)",
214
+ )
215
+ return 0
@@ -92,10 +92,10 @@ def build_parser() -> argparse.ArgumentParser:
92
92
  func=lambda o, a: auth_cmds.cmd_auth_list(o)
93
93
  )
94
94
  s = pa.add_parser("status", parents=[common])
95
- s.add_argument("provider")
95
+ s.add_argument("provider", help="OAuth id, models.dev provider id, or env var")
96
96
  s.set_defaults(func=lambda o, a: auth_cmds.cmd_auth_status(o, a.provider))
97
97
  li = pa.add_parser("login", parents=[common])
98
- li.add_argument("provider")
98
+ li.add_argument("provider", help="OAuth id, models.dev provider id, or env var")
99
99
  li.add_argument(
100
100
  "--from-env", metavar="VAR", help="read an API key from this env var"
101
101
  )
@@ -104,7 +104,7 @@ def build_parser() -> argparse.ArgumentParser:
104
104
  func=lambda o, a: auth_cmds.cmd_auth_login(o, a.provider, a.from_env, a.stdin)
105
105
  )
106
106
  lo = pa.add_parser("logout", parents=[common])
107
- lo.add_argument("provider")
107
+ lo.add_argument("provider", help="OAuth id, models.dev provider id, or env var")
108
108
  lo.set_defaults(func=lambda o, a: auth_cmds.cmd_auth_logout(o, a.provider))
109
109
 
110
110
  p = sub.add_parser("mcp", parents=[common], help="MCP servers")
@@ -226,7 +226,12 @@ def build_parser() -> argparse.ArgumentParser:
226
226
  help="derive sandbox credentials/egress from configured models",
227
227
  )
228
228
  plan_p.add_argument("--provider", help="restrict to one service/provider id")
229
- plan_p.set_defaults(func=lambda o, a: sbx_plan.cmd_sbx_plan(o, a.provider))
229
+ plan_p.add_argument(
230
+ "--prune",
231
+ action="store_true",
232
+ help="remove stored sbx secrets the current catalog no longer needs",
233
+ )
234
+ plan_p.set_defaults(func=lambda o, a: sbx_plan.cmd_sbx_plan(o, a.provider, a.prune))
230
235
  creds_p = psbx.add_parser(
231
236
  "creds-mixin",
232
237
  parents=[common],
@@ -160,6 +160,31 @@ def _models_dev_env_vars() -> frozenset:
160
160
  return frozenset()
161
161
 
162
162
 
163
+ def _models_dev_providers() -> dict[str, list[str]]:
164
+ """models.dev provider id -> declared API-key env vars (best effort)."""
165
+ try:
166
+ from code_puppy.models_dev_parser import ModelsDevRegistry
167
+
168
+ providers_map = ModelsDevRegistry().get_providers()
169
+ values = (
170
+ providers_map.values() if isinstance(providers_map, dict) else providers_map
171
+ )
172
+ return {p.id: list(p.env or []) for p in values if getattr(p, "id", None)}
173
+ except Exception:
174
+ return {}
175
+
176
+
177
+ def api_key_envs_for_provider(provider_id: str) -> Optional[list[str]]:
178
+ """Env vars a models.dev provider declares; None if the id is unknown.
179
+
180
+ ``env[0]`` is canonical: it is the name ``setup model add``
181
+ encodes into generated model configs, so a login by provider id
182
+ stores the key exactly where those models will look for it.
183
+ """
184
+ envs = _models_dev_providers().get(provider_id.strip().lower())
185
+ return list(envs) if envs is not None else None
186
+
187
+
163
188
  def is_known_api_key_env(env_var: str) -> bool:
164
189
  """Known via the curated lists OR declared by a models.dev provider."""
165
190
  return env_var in api_key_env_vars() or env_var in _models_dev_env_vars()
@@ -16,11 +16,12 @@ Values are never read or emitted — only presence on the host.
16
16
  from __future__ import annotations
17
17
 
18
18
  import re
19
+ import subprocess
19
20
  from typing import Any, Optional
20
21
  from urllib.parse import urlparse
21
22
 
22
23
  from . import providers
23
- from .output import Out
24
+ from .output import Out, SetupError
24
25
 
25
26
  # Static-key model types: type -> (service, env var, domain, header, format)
26
27
  _STATIC_TYPES: dict[str, tuple[str, str, str, str, str]] = {
@@ -279,10 +280,95 @@ def render_human(plan: dict[str, Any]) -> list[str]:
279
280
  return lines
280
281
 
281
282
 
282
- def cmd_sbx_plan(out: Out, provider: Optional[str] = None) -> int:
283
+ def _parse_secret_ls(stdout: str) -> list[str]:
284
+ """Global service-secret names from `sbx secret ls` table output."""
285
+ names = []
286
+ for line in stdout.splitlines():
287
+ cols = line.split()
288
+ if len(cols) >= 3 and cols[0] == "(global)" and cols[1] == "service":
289
+ names.append(cols[2])
290
+ return sorted(set(names))
291
+
292
+
293
+ def _stored_sbx_secrets() -> Optional[list[str]]:
294
+ """Stored global sbx service secrets; None when sbx is unavailable."""
295
+ try:
296
+ result = subprocess.run(
297
+ ["sbx", "secret", "ls"],
298
+ capture_output=True,
299
+ text=True,
300
+ check=False,
301
+ timeout=30,
302
+ )
303
+ except (OSError, subprocess.SubprocessError):
304
+ return None
305
+ if result.returncode != 0:
306
+ return None
307
+ return _parse_secret_ls(result.stdout)
308
+
309
+
310
+ def _remove_sbx_secret(name: str) -> Optional[str]:
311
+ """Remove one global sbx secret; None on success, else an error line."""
312
+ try:
313
+ result = subprocess.run(
314
+ ["sbx", "secret", "rm", name, "-f"],
315
+ capture_output=True,
316
+ text=True,
317
+ check=False,
318
+ timeout=30,
319
+ )
320
+ except (OSError, subprocess.SubprocessError) as e:
321
+ return str(e)
322
+ if result.returncode != 0:
323
+ return (result.stderr or result.stdout).strip()[
324
+ :200
325
+ ] or f"exit {result.returncode}"
326
+ return None
327
+
328
+
329
+ def cmd_sbx_plan(out: Out, provider: Optional[str] = None, prune: bool = False) -> int:
330
+ if prune and provider:
331
+ raise SetupError(
332
+ "refusing --prune with --provider: a filtered plan would "
333
+ "delete secrets other providers still need",
334
+ exit_code=2,
335
+ )
283
336
  plan = build_plan(provider=provider)
284
- out.result(plan, human=render_human(plan))
285
- return 0
337
+ stored = _stored_sbx_secrets()
338
+ needed = {c["service"] for c in plan["credentials"]}
339
+ stale = (
340
+ [name for name in stored if name not in needed]
341
+ if stored is not None and not provider
342
+ else []
343
+ )
344
+ human = render_human(plan)
345
+ pruned: list[str] = []
346
+ errors: dict[str, str] = {}
347
+ if prune:
348
+ for name in stale:
349
+ error = _remove_sbx_secret(name)
350
+ if error is None:
351
+ pruned.append(name)
352
+ human.append(f"pruned stale sbx secret '{name}'")
353
+ else:
354
+ errors[name] = error
355
+ human.append(f"failed to prune sbx secret '{name}': {error}")
356
+ stale = [name for name in stale if name not in pruned]
357
+ elif stale:
358
+ human.append(
359
+ "stale sbx secrets (not needed by current catalog): "
360
+ + ", ".join(stale)
361
+ + " - re-run with --prune to remove"
362
+ )
363
+ result: dict[str, Any] = {
364
+ **plan,
365
+ "stale_sbx_secrets": stale,
366
+ "pruned_sbx_secrets": pruned,
367
+ }
368
+ if errors:
369
+ result["prune_errors"] = errors
370
+ out.result(result, human=human)
371
+ return 1 if errors else 0
286
372
 
287
373
 
288
374
  def render_creds_mixin(plan: dict[str, Any]) -> str:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy-core-plugins"
7
- version = "0.0.98"
7
+ version = "0.0.100"
8
8
  description = "Official plugin bundle for Code Puppy"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -114,6 +114,7 @@ pstack = "code_puppy_core_plugins.pstack.register_callbacks"
114
114
  puppy_spinner = "code_puppy_core_plugins.puppy_spinner.register_callbacks"
115
115
  qa_kitten_skill = "code_puppy_core_plugins.qa_kitten_skill.register_callbacks"
116
116
  quick_resume = "code_puppy_core_plugins.quick_resume.register_callbacks"
117
+ resume_hint = "code_puppy_core_plugins.resume_hint.register_callbacks"
117
118
  review_pr = "code_puppy_core_plugins.review_pr.register_callbacks"
118
119
  session_namer = "code_puppy_core_plugins.session_namer.register_callbacks"
119
120
  setup_cli = "code_puppy_core_plugins.setup_cli.register_callbacks"
@@ -1,124 +0,0 @@
1
- """``setup auth`` — one front door for every provider login Code Puppy has.
2
-
3
- OAuth logins are *delegated* to the owning plugin's existing interactive
4
- command in a full Code Puppy subprocess (``code-puppy -p "/x-auth"``):
5
- those flows print through the messaging system and may open browsers or
6
- localhost callbacks, none of which exist yet in the ``handle_cli_args``
7
- context this CLI runs in. Status/logout reads go through the plugins'
8
- own loaders with structured results. API keys are collected directly
9
- (hidden prompt, stdin, or environment) into the shared credential
10
- store and never echoed.
11
- """
12
-
13
- from __future__ import annotations
14
-
15
- import getpass
16
- import os
17
- import shutil
18
- import subprocess
19
- import sys
20
- from typing import Optional
21
-
22
- from . import providers
23
- from .output import Out, SetupError
24
-
25
-
26
- def _delegate_slash_command(command: str) -> int:
27
- exe = shutil.which("code-puppy") or sys.argv[0]
28
- print(f'launching: code-puppy -p "/{command}" (interactive provider flow)')
29
- return subprocess.call([exe, "-p", f"/{command}"])
30
-
31
-
32
- def cmd_auth_list(out: Out) -> int:
33
- status = providers.all_provider_status()
34
- human = []
35
- for entry in status.oauth:
36
- mark = "authenticated" if entry["authenticated"] else "not authenticated"
37
- human.append(f"{entry['id']}: {mark} [{entry['sandbox_transport']}]")
38
- for entry in status.api_keys:
39
- if entry["authenticated"]:
40
- human.append(f"{entry['env_var']}: set")
41
- out.result(
42
- {"oauth": status.oauth, "api_keys": status.api_keys},
43
- human=human or ["(nothing authenticated)"],
44
- )
45
- return 0
46
-
47
-
48
- def cmd_auth_status(out: Out, provider_id: str) -> int:
49
- provider = providers.get_oauth_provider(provider_id)
50
- if provider:
51
- entry = providers.oauth_status(provider)
52
- out.result(
53
- entry,
54
- human=f"{provider.id}: "
55
- + ("authenticated" if entry["authenticated"] else "not authenticated")
56
- + f" (source: {entry['source']})",
57
- )
58
- return 0 if entry["authenticated"] else 1
59
- env_var = provider_id.strip().upper()
60
- if providers.is_known_api_key_env(env_var):
61
- present = providers.credential_present(env_var)
62
- out.result(
63
- {"env_var": env_var, "authenticated": present, "kind": "api-key"},
64
- human=f"{env_var}: {'set' if present else 'not set'}",
65
- )
66
- return 0 if present else 1
67
- raise SetupError(
68
- f"unknown provider '{provider_id}' (see `setup auth list`)", exit_code=2
69
- )
70
-
71
-
72
- def _collect_api_key(env_var: str, from_env: Optional[str], stdin: bool) -> str:
73
- if stdin:
74
- value = sys.stdin.read().strip()
75
- elif from_env:
76
- value = os.environ.get(from_env, "").strip()
77
- else:
78
- value = getpass.getpass(f"Enter {env_var}: ").strip()
79
- if not value:
80
- raise SetupError(f"no value provided for {env_var}")
81
- return value
82
-
83
-
84
- def cmd_auth_login(
85
- out: Out, provider_id: str, from_env: Optional[str], stdin: bool
86
- ) -> int:
87
- provider = providers.get_oauth_provider(provider_id)
88
- if provider and provider.login_kind == "slash" and provider.auth_command:
89
- return _delegate_slash_command(provider.auth_command)
90
- env_var = (
91
- provider.env_var
92
- if provider and provider.env_var
93
- else provider_id.strip().upper()
94
- )
95
- if not env_var:
96
- raise SetupError(f"provider '{provider_id}' has no API-key login", exit_code=2)
97
- value = _collect_api_key(env_var, from_env, stdin)
98
- from code_puppy.provider_credentials import save_credential
99
-
100
- save_credential(env_var, value)
101
- out.result(
102
- {"env_var": env_var, "saved": True}, human=f"saved credential for {env_var}"
103
- )
104
- return 0
105
-
106
-
107
- def cmd_auth_logout(out: Out, provider_id: str) -> int:
108
- provider = providers.get_oauth_provider(provider_id)
109
- if provider and provider.logout_command:
110
- return _delegate_slash_command(provider.logout_command)
111
- env_var = (
112
- provider.env_var
113
- if provider and provider.env_var
114
- else provider_id.strip().upper()
115
- )
116
- from code_puppy.provider_credentials import save_credential
117
-
118
- save_credential(env_var, "")
119
- out.result(
120
- {"env_var": env_var, "cleared": True},
121
- human=f"cleared stored credential for {env_var} "
122
- "(a shell environment variable of the same name still wins if set)",
123
- )
124
- return 0