code-puppy-core-plugins 0.0.104__tar.gz → 0.0.105__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 (609) hide show
  1. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/PKG-INFO +1 -1
  2. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/README.md +68 -0
  3. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/agent.py +15 -0
  4. code_puppy_core_plugins-0.0.105/code_puppy_core_plugins/acp/themes.py +99 -0
  5. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/README.md +36 -0
  6. code_puppy_core_plugins-0.0.105/code_puppy_core_plugins/theme/catalog.py +183 -0
  7. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/register_callbacks.py +6 -5
  8. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/pyproject.toml +1 -1
  9. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/.gitignore +0 -0
  10. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/LICENSE +0 -0
  11. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/README.md +0 -0
  12. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/THIRD_PARTY_NOTICES.md +0 -0
  13. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/__init__.py +0 -0
  14. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/__init__.py +0 -0
  15. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/auth_status.py +0 -0
  16. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/bridge.py +0 -0
  17. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/capabilities.py +0 -0
  18. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/commands.py +0 -0
  19. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/content.py +0 -0
  20. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
  21. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
  22. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/permissions.py +0 -0
  23. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/persistence.py +0 -0
  24. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/register_callbacks.py +0 -0
  25. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/replay.py +0 -0
  26. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/session.py +0 -0
  27. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/session_config.py +0 -0
  28. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/acp/state.py +0 -0
  29. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_creator_skill/SKILL.md +0 -0
  30. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_creator_skill/__init__.py +0 -0
  31. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_creator_skill/register_callbacks.py +0 -0
  32. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
  33. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/config.py +0 -0
  34. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
  35. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/enabled_skills.py +0 -0
  36. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
  37. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/prompt_builder.py +0 -0
  38. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
  39. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/register_callbacks.py +0 -0
  40. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/skill_commands.py +0 -0
  41. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/agent_skills/skills_menu.py +0 -0
  42. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
  43. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/attachment_references/register_callbacks.py +0 -0
  44. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/attachment_references/tool.py +0 -0
  45. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
  46. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
  47. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/auto_continue/register_callbacks.py +0 -0
  48. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
  49. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
  50. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/aws_bedrock/register_callbacks.py +0 -0
  51. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
  52. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
  53. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
  54. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
  55. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
  56. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/register_callbacks.py +0 -0
  57. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
  58. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
  59. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/background_agents/README.md +0 -0
  60. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
  61. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/background_agents/register_callbacks.py +0 -0
  62. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/btw/__init__.py +0 -0
  63. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/btw/inline_view.py +0 -0
  64. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
  65. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/btw/side_query.py +0 -0
  66. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +0 -0
  67. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
  68. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
  69. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/image_generation.py +0 -0
  70. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/image_tool.py +0 -0
  71. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/model_catalog.py +0 -0
  72. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +0 -0
  73. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +0 -0
  74. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +0 -0
  75. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
  76. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
  77. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_hooks/__init__.py +0 -0
  78. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_hooks/config.py +0 -0
  79. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +0 -0
  80. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_hooks/trust.py +0 -0
  81. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/README.md +0 -0
  82. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/SETUP.md +0 -0
  83. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/__init__.py +0 -0
  84. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/config.py +0 -0
  85. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/fast_mode.py +0 -0
  86. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/model_filter.py +0 -0
  87. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/model_provider.py +0 -0
  88. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +0 -0
  89. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +0 -0
  90. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/runtime_credentials.py +0 -0
  91. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/test_plugin.py +0 -0
  92. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  93. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/token_store.py +0 -0
  94. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/claude_code_oauth/utils.py +0 -0
  95. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +0 -0
  96. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +0 -0
  97. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +0 -0
  98. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +0 -0
  99. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/SKILL.md +0 -0
  100. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +0 -0
  101. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +0 -0
  102. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/__init__.py +0 -0
  103. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +0 -0
  104. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
  105. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/config.py +0 -0
  106. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/locales/en-US.json +0 -0
  107. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/locales/es.json +0 -0
  108. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/locales/fr-CA.json +0 -0
  109. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
  110. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/completion_notification/register_callbacks.py +0 -0
  111. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/FOCUS_INVESTIGATION.md +0 -0
  112. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
  113. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
  114. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/README.md +0 -0
  115. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
  116. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
  117. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
  118. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/activation.py +0 -0
  119. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/backend.py +0 -0
  120. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/backend_types.py +0 -0
  121. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/batch.py +0 -0
  122. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/capture.py +0 -0
  123. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/commands.py +0 -0
  124. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
  125. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/inline_image.py +0 -0
  126. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
  127. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/locales/en-US.json +0 -0
  128. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/locales/es.json +0 -0
  129. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/locales/fr-CA.json +0 -0
  130. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/macos_backend.py +0 -0
  131. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
  132. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/policy.py +0 -0
  133. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/register_callbacks.py +0 -0
  134. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/safety.py +0 -0
  135. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/settle.py +0 -0
  136. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/state.py +0 -0
  137. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/tools.py +0 -0
  138. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_accessibility.py +0 -0
  139. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_activation.py +0 -0
  140. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_backend.py +0 -0
  141. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_capture.py +0 -0
  142. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_input.py +0 -0
  143. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_native.py +0 -0
  144. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/computer_use/windows_runtime.py +0 -0
  145. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
  146. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/context_indicator/register_callbacks.py +0 -0
  147. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
  148. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
  149. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
  150. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/reasoning_client.py +0 -0
  151. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/register_callbacks.py +0 -0
  152. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/responses_stream.py +0 -0
  153. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
  154. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  155. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/customizable_commands/register_callbacks.py +0 -0
  156. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/__init__.py +0 -0
  157. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/cancel.py +0 -0
  158. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/commands.py +0 -0
  159. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/config.py +0 -0
  160. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +0 -0
  161. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +0 -0
  162. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/runtime.py +0 -0
  163. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +0 -0
  164. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +0 -0
  165. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/dbos_durable_exec/wrapper.py +0 -0
  166. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/destructive_command_guard/AGENTS.md +0 -0
  167. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/destructive_command_guard/__init__.py +0 -0
  168. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/destructive_command_guard/detector.py +0 -0
  169. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +0 -0
  170. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
  171. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
  172. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/emoji_filter/register_callbacks.py +0 -0
  173. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
  174. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +0 -0
  175. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/example_custom_command/README.md +0 -0
  176. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/example_custom_command/register_callbacks.py +0 -0
  177. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/execution_environment/README.md +0 -0
  178. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
  179. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/execution_environment/register_callbacks.py +0 -0
  180. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/file_permission_handler/__init__.py +0 -0
  181. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/file_permission_handler/register_callbacks.py +0 -0
  182. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
  183. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +0 -0
  184. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +0 -0
  185. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +0 -0
  186. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +0 -0
  187. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +0 -0
  188. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +0 -0
  189. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +0 -0
  190. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +0 -0
  191. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +0 -0
  192. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +0 -0
  193. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +0 -0
  194. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +0 -0
  195. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +0 -0
  196. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +0 -0
  197. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +0 -0
  198. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +0 -0
  199. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +0 -0
  200. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +0 -0
  201. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +0 -0
  202. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +0 -0
  203. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +0 -0
  204. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +0 -0
  205. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +0 -0
  206. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +0 -0
  207. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +0 -0
  208. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
  209. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +0 -0
  210. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/force_push_guard/__init__.py +0 -0
  211. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/force_push_guard/detector.py +0 -0
  212. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/force_push_guard/register_callbacks.py +0 -0
  213. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/fork/__init__.py +0 -0
  214. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
  215. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
  216. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
  217. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/frontend_emitter/register_callbacks.py +0 -0
  218. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/frontend_emitter/session_context.py +0 -0
  219. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
  220. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
  221. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/grok_oauth/oauth_flow.py +0 -0
  222. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/grok_oauth/register_callbacks.py +0 -0
  223. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
  224. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/README.md +0 -0
  225. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
  226. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/__init__.py +0 -0
  227. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/client.py +0 -0
  228. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
  229. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
  230. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/launcher.py +0 -0
  231. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
  232. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/reporter.py +0 -0
  233. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/restore.py +0 -0
  234. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/smoke.py +0 -0
  235. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/herdr/sources.py +0 -0
  236. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
  237. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_creator/register_callbacks.py +0 -0
  238. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
  239. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_manager/config.py +0 -0
  240. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_manager/hooks_menu.py +0 -0
  241. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_manager/register_callbacks.py +0 -0
  242. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/hook_manager/trust_handler.py +0 -0
  243. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
  244. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
  245. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/config.py +0 -0
  246. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
  247. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/register_callbacks.py +0 -0
  248. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
  249. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/search.py +0 -0
  250. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
  251. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
  252. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
  253. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_instrumentation/__init__.py +0 -0
  254. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py +0 -0
  255. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_instrumentation/legacy_core.py +0 -0
  256. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_instrumentation/register_callbacks.py +0 -0
  257. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_instrumentation/sdk.py +0 -0
  258. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
  259. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
  260. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_oauth/query_tool.py +0 -0
  261. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_oauth/register_callbacks.py +0 -0
  262. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
  263. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
  264. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
  265. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_sessions/register_callbacks.py +0 -0
  266. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
  267. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/mcp_binding_prompt/README.md +0 -0
  268. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/mcp_binding_prompt/__init__.py +0 -0
  269. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/mcp_binding_prompt/custom_install.py +0 -0
  270. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/mcp_binding_prompt/http_form.py +0 -0
  271. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/mcp_binding_prompt/register_callbacks.py +0 -0
  272. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
  273. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
  274. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/locales/en-US.json +0 -0
  275. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/oauth_flow.py +0 -0
  276. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
  277. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/register_callbacks.py +0 -0
  278. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
  279. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/namespace_skill_search/README.md +0 -0
  280. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/namespace_skill_search/__init__.py +0 -0
  281. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/namespace_skill_search/namespaces.py +0 -0
  282. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +0 -0
  283. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/namespace_skill_search/search_tool.py +0 -0
  284. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
  285. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/no_tools/register_callbacks.py +0 -0
  286. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
  287. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
  288. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
  289. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
  290. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +0 -0
  291. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/obsidian_agent/register_callbacks.py +0 -0
  292. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/ollama/__init__.py +0 -0
  293. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
  294. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
  295. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
  296. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/ollama_setup/register_callbacks.py +0 -0
  297. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
  298. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
  299. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/openrouter_oauth/oauth_flow.py +0 -0
  300. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/openrouter_oauth/register_callbacks.py +0 -0
  301. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/openrouter_oauth/test_plugin.py +0 -0
  302. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  303. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/plugin_contributions.py +0 -0
  304. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/plugin_meta.py +0 -0
  305. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/plugin_text_utils.py +0 -0
  306. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/plugins_menu.py +0 -0
  307. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/plugins_menu_render.py +0 -0
  308. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/project_trust_flow.py +0 -0
  309. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_list/register_callbacks.py +0 -0
  310. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/plugin_settings.py +0 -0
  311. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
  312. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pop_command/register_callbacks.py +0 -0
  313. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/README.md +0 -0
  314. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/__init__.py +0 -0
  315. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/config.py +0 -0
  316. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/locales/en-US.json +0 -0
  317. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/menu.py +0 -0
  318. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
  319. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
  320. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
  321. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prompt_newline/register_callbacks.py +0 -0
  322. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prune/__init__.py +0 -0
  323. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
  324. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prune/prune_model.py +0 -0
  325. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prune/prune_render.py +0 -0
  326. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
  327. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/README.md +0 -0
  328. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/__init__.py +0 -0
  329. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/adapter.py +0 -0
  330. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/agents.py +0 -0
  331. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/catalog.py +0 -0
  332. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/commands.py +0 -0
  333. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/config.py +0 -0
  334. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/prompt.py +0 -0
  335. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
  336. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
  337. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/skills/create-skill/SKILL.md +0 -0
  338. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/upstream.py +0 -0
  339. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
  340. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/LICENSE +0 -0
  341. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-cli/SKILL.md +0 -0
  342. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/control-ui/SKILL.md +0 -0
  343. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/cursor-team-kit/skills/deslop/SKILL.md +0 -0
  344. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
  345. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/README.md +0 -0
  346. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/agents/comment-sicko.md +0 -0
  347. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/agents/poteto-agent.md +0 -0
  348. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/FOR_AGENTS.md +0 -0
  349. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/README.md +0 -0
  350. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/SKILL.md +0 -0
  351. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/control-adapter.md +0 -0
  352. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/feature-map.example.md +0 -0
  353. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/reproduce-and-fix-issues/references/verify-existing-fix.md +0 -0
  354. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/setup-benny/SKILL.md +0 -0
  355. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/SKILL.md +0 -0
  356. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/skills/triage-issue-reports/references/routing.example.md +0 -0
  357. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/configuration.example.yaml +0 -0
  358. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/reproduce-automation-prompt.md +0 -0
  359. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/automations/benny/templates/triage-automation-prompt.md +0 -0
  360. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/01-setup.md +0 -0
  361. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/02-poteto-mode.md +0 -0
  362. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/03-understand.md +0 -0
  363. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/04-design.md +0 -0
  364. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/05-build-and-clean.md +0 -0
  365. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/06-verify-and-ship.md +0 -0
  366. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/07-overnight.md +0 -0
  367. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/08-principles.md +0 -0
  368. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/09-make-it-yours.md +0 -0
  369. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/10-recipes-and-pitfalls.md +0 -0
  370. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/docs/guide/README.md +0 -0
  371. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/plugin.json +0 -0
  372. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/SKILL.md +0 -0
  373. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/design-red-flags.md +0 -0
  374. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/rationale-template.md +0 -0
  375. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/architect/references/runner-prompt.md +0 -0
  376. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/arena/SKILL.md +0 -0
  377. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/automate-me/SKILL.md +0 -0
  378. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/benchmark-checklist/SKILL.md +0 -0
  379. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/blast-radius/SKILL.md +0 -0
  380. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/bro/SKILL.md +0 -0
  381. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/correct/SKILL.md +0 -0
  382. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/SKILL.md +0 -0
  383. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/README.md +0 -0
  384. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -0
  385. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/create-verification-skill/references/feature-map-example/search.md +0 -0
  386. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/figure-it-out/SKILL.md +0 -0
  387. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/SKILL.md +0 -0
  388. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explainer-prompt.md +0 -0
  389. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/how/references/explorer-prompt.md +0 -0
  390. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/in-your-own-words/SKILL.md +0 -0
  391. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/SKILL.md +0 -0
  392. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/code-quality-review.md +0 -0
  393. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/lead-judgment.md +0 -0
  394. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/reviewer-prompt.md +0 -0
  395. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/interrogate/references/rubric.md +0 -0
  396. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/ketchup/SKILL.md +0 -0
  397. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/maintain-verification-skill/SKILL.md +0 -0
  398. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/make-bot-ui/SKILL.md +0 -0
  399. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/no-comments/SKILL.md +0 -0
  400. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/SKILL.md +0 -0
  401. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/prompting.md +0 -0
  402. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-help/references/recipes.md +0 -0
  403. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/SKILL.md +0 -0
  404. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -0
  405. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autonomous-run.md +0 -0
  406. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-full.md +0 -0
  407. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +0 -0
  408. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/babysit.md +0 -0
  409. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/bug-fix.md +0 -0
  410. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/eval.md +0 -0
  411. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/feature.md +0 -0
  412. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/hillclimb.md +0 -0
  413. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/investigation.md +0 -0
  414. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -0
  415. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +0 -0
  416. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/orchestrate.md +0 -0
  417. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/pause-safely.md +0 -0
  418. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/perf-issue.md +0 -0
  419. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/prototype.md +0 -0
  420. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/refactoring.md +0 -0
  421. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +0 -0
  422. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/session-pickup.md +0 -0
  423. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/shipping.md +0 -0
  424. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/trace-forensics.md +0 -0
  425. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/visual-parity.md +0 -0
  426. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -0
  427. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/references/bugbot-triage.md +0 -0
  428. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bootstrap.ts +0 -0
  429. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/bun.lock +0 -0
  430. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.mjs +0 -0
  431. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/check-plan.test.ts +0 -0
  432. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.test.ts +0 -0
  433. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/orch.ts +0 -0
  434. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/orch/store.ts +0 -0
  435. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/package.json +0 -0
  436. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -0
  437. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -0
  438. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -0
  439. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -0
  440. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +0 -0
  441. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -0
  442. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -0
  443. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +0 -0
  444. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -0
  445. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -0
  446. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +0 -0
  447. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -0
  448. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/poteto-mode/scripts/worktree-audit.sh +0 -0
  449. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-attack-the-premise/SKILL.md +0 -0
  450. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-boundary-discipline/SKILL.md +0 -0
  451. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-build-the-lever/SKILL.md +0 -0
  452. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +0 -0
  453. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-exhaust-the-design-space/SKILL.md +0 -0
  454. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-experience-first/SKILL.md +0 -0
  455. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-explain-the-number/SKILL.md +0 -0
  456. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-fix-root-causes/SKILL.md +0 -0
  457. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-foundational-thinking/SKILL.md +0 -0
  458. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-guard-the-context-window/SKILL.md +0 -0
  459. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-laziness-protocol/SKILL.md +0 -0
  460. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-make-operations-idempotent/SKILL.md +0 -0
  461. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -0
  462. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-minimize-reader-load/SKILL.md +0 -0
  463. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-model-the-domain/SKILL.md +0 -0
  464. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-never-block-on-the-human/SKILL.md +0 -0
  465. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-outcome-oriented-execution/SKILL.md +0 -0
  466. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-prove-it-works/SKILL.md +0 -0
  467. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-redesign-from-first-principles/SKILL.md +0 -0
  468. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -0
  469. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-sequence-verifiable-units/SKILL.md +0 -0
  470. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-subtract-before-you-add/SKILL.md +0 -0
  471. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +0 -0
  472. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/principle-type-system-discipline/SKILL.md +0 -0
  473. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/recall/SKILL.md +0 -0
  474. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/SKILL.md +0 -0
  475. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/divergent-reviewer.md +0 -0
  476. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/judgment-reviewer.md +0 -0
  477. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/synthesizer.md +0 -0
  478. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/reflect/references/tooling-reviewer.md +0 -0
  479. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/setup-pstack/SKILL.md +0 -0
  480. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/SKILL.md +0 -0
  481. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/references/decision-log-template.tsv +0 -0
  482. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/show-me-your-work/scripts/log.sh +0 -0
  483. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/swarm/SKILL.md +0 -0
  484. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/tdd/SKILL.md +0 -0
  485. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/teach/SKILL.md +0 -0
  486. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/technical-writing/SKILL.md +0 -0
  487. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/SKILL.md +0 -0
  488. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/typescript-best-practices/references/patterns.md +0 -0
  489. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/unslop/SKILL.md +0 -0
  490. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/SKILL.md +0 -0
  491. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/epistemics.md +0 -0
  492. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/investigator-prompt.md +0 -0
  493. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/source-playbook.md +0 -0
  494. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/code-archaeology.md +0 -0
  495. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/databricks.md +0 -0
  496. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/datadog.md +0 -0
  497. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/incident-postmortem.md +0 -0
  498. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/linear.md +0 -0
  499. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/notion.md +0 -0
  500. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/sentry.md +0 -0
  501. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/sources/slack.md +0 -0
  502. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/pstack/vendor/pstack/skills/why/references/synthesizer-prompt.md +0 -0
  503. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
  504. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
  505. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
  506. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
  507. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
  508. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
  509. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
  510. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/register_callbacks.py +0 -0
  511. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
  512. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
  513. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
  514. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
  515. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
  516. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
  517. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
  518. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/builtin_frames.py +0 -0
  519. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
  520. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
  521. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/register_callbacks.py +0 -0
  522. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
  523. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/qa_kitten_skill/SKILL.md +0 -0
  524. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/qa_kitten_skill/__init__.py +0 -0
  525. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/qa_kitten_skill/register_callbacks.py +0 -0
  526. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  527. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/quick_resume/register_callbacks.py +0 -0
  528. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/resume_hint/__init__.py +0 -0
  529. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/resume_hint/locales/en-US.json +0 -0
  530. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/resume_hint/locales/es.json +0 -0
  531. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/resume_hint/locales/fr-CA.json +0 -0
  532. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/resume_hint/register_callbacks.py +0 -0
  533. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
  534. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/review_pr/register_callbacks.py +0 -0
  535. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
  536. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/session_namer/namer.py +0 -0
  537. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/session_namer/register_callbacks.py +0 -0
  538. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/README.md +0 -0
  539. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
  540. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/agent_cmds.py +0 -0
  541. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/auth_cmds.py +0 -0
  542. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/cli.py +0 -0
  543. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/config_cmds.py +0 -0
  544. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
  545. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/export_cmds.py +0 -0
  546. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/mcp_cmds.py +0 -0
  547. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/model_cmds.py +0 -0
  548. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/output.py +0 -0
  549. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/plugin_cmds.py +0 -0
  550. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/providers.py +0 -0
  551. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/register_callbacks.py +0 -0
  552. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/sbx_plan.py +0 -0
  553. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/skill_cmds.py +0 -0
  554. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
  555. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
  556. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/spill/__init__.py +0 -0
  557. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
  558. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/spill/store.py +0 -0
  559. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
  560. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/stack_dump/register_callbacks.py +0 -0
  561. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/__init__.py +0 -0
  562. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/config.py +0 -0
  563. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/payload.py +0 -0
  564. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
  565. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
  566. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/runner.py +0 -0
  567. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
  568. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
  569. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/steer_queue/queue_menu.py +0 -0
  570. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/steer_queue/register_callbacks.py +0 -0
  571. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
  572. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
  573. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/coalesce_patch.py +0 -0
  574. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/panel_render.py +0 -0
  575. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/register_callbacks.py +0 -0
  576. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/resume_repaint.py +0 -0
  577. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
  578. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/switch_agent_resume/__init__.py +0 -0
  579. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +0 -0
  580. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/termflow_tui.py +0 -0
  581. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/__init__.py +0 -0
  582. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
  583. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/content_styles.py +0 -0
  584. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
  585. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/picker.py +0 -0
  586. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/prompt_toolkit_theme.py +0 -0
  587. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
  588. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/theme/themes.py +0 -0
  589. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
  590. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +0 -0
  591. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
  592. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
  593. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
  594. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/register_callbacks.py +0 -0
  595. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
  596. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
  597. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/web_retriever_skill/SKILL.md +0 -0
  598. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/web_retriever_skill/__init__.py +0 -0
  599. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/web_retriever_skill/register_callbacks.py +0 -0
  600. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
  601. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
  602. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
  603. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/judge.py +0 -0
  604. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
  605. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
  606. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
  607. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/wiggum/state.py +0 -0
  608. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
  609. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.105}/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.104
3
+ Version: 0.0.105
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
@@ -130,6 +130,7 @@ Every file stays well under the 600-line cap and owns one concern.
130
130
  | `bridge.py` | `EventBridge`: registers `stream_event` / `pre_tool_call` / `post_tool_call` hooks and translates them into SDK `session/update`s via `connection.session_update`. (Hooks, **not** MessageBus — see *Event source*.) |
131
131
  | `permissions.py` | Wires Code Puppy's two approval edges to the client via the SDK's `request_permission`: the `tools.common` approval backend (files, cross-thread) and the `run_shell_command` hook (shell). Fails closed. |
132
132
  | `io_delegation.py` | `DelegatedFileSystemBackend` (sync, cross-thread) + `DelegatedCommandExecutor` (async terminal lifecycle) that plug into the core I/O seams, capability-gated. |
133
+ | `themes.py` | Read-only theme catalog: the `_code_puppy/themes/list` ext method, the `codePuppy/theme` session `_meta`, and the `_code_puppy/themes/changed` poll (`ThemeWatcher`). |
133
134
  | `state.py` | Process-wide run context: the SDK connection + its loop, the active session id, and the open-tool-call stack — so the permission/I/O seams (plain module functions) can reach the running connection and correlate events. |
134
135
 
135
136
  ```
@@ -319,6 +320,73 @@ change.
319
320
 
320
321
  ---
321
322
 
323
+ ## Theme catalog (`_code_puppy/themes/*`)
324
+
325
+ You can list Code Puppy's color themes and track the active one without reading
326
+ its config. The catalog is read-only: there is no setter.
327
+
328
+ ### `_code_puppy/themes/list`
329
+
330
+ Send this request before or after `session/new`. It needs no session. Send
331
+ `{}` or omit `params`; extra keys are ignored.
332
+
333
+ The result has this shape:
334
+
335
+ ```jsonc
336
+ {
337
+ "schemaVersion": 1,
338
+ "active": "ocean", // or null
339
+ "themes": [
340
+ {
341
+ "id": "ocean",
342
+ "label": "Ocean",
343
+ "icon": "...",
344
+ "blurb": "...",
345
+ "appearance": "dark", // "dark" or "light"
346
+ "palette": { "bg": "#rrggbb", "fg": "#rrggbb", "ansi": ["#rrggbb", "...16 entries"] },
347
+ "roles": { "background": "#rrggbb", "surface": "#rrggbb", "text": "#rrggbb",
348
+ "mutedText": "#rrggbb", "accent": "#rrggbb", "success": "#rrggbb",
349
+ "error": "#rrggbb", "warning": "#rrggbb", "running": "#rrggbb",
350
+ "diffAdd": "#rrggbb", "diffRemove": "#rrggbb" }
351
+ }
352
+ // ...more themes
353
+ ]
354
+ }
355
+ ```
356
+
357
+ Themes appear in this order: curated themes in menu order, then `default`. The `surprise`
358
+ theme is excluded. The `default` entry has `null` for `appearance`, `palette`,
359
+ and `roles`, because it restores the terminal's own colors.
360
+
361
+ `active` is the ID of the catalog theme stored in the `theme_active_theme`
362
+ config key. It is `null` when the key is unset, and also when the key holds
363
+ `legacy-custom` or `surprise`.
364
+
365
+ For the mapping from palette to roles, see
366
+ [`theme/README.md`](../theme/README.md). This page does not repeat it.
367
+
368
+ ### `_meta` on session responses
369
+
370
+ `session/new`, `session/load`, and `session/resume` results include
371
+ `_meta["codePuppy/theme"] = {"active": <id or null>}`. Use it to paint the first
372
+ frame without waiting for the list request.
373
+
374
+ ### `_code_puppy/themes/changed`
375
+
376
+ When the active theme changes, the agent sends this notification with params
377
+ `{"active": <id or null>}`. It sends one notification per change. The agent
378
+ reads the config value every 2 seconds from the moment the client connects.
379
+ The first reading is a baseline, so no notification is sent for it.
380
+
381
+ ### Unknown methods and older CLIs
382
+
383
+ Any other `_code_puppy/*` method, such as `_code_puppy/themes/set`, returns
384
+ JSON-RPC error `-32601` (method not found). Older Code Puppy CLIs omit the
385
+ `_meta` key and return `-32601` for the list request. Clients should fall back
386
+ to a bundled copy of the catalog when either happens.
387
+
388
+ ---
389
+
322
390
  ## Testing
323
391
 
324
392
  `tests/test_acp_plugin.py` drives `CodePuppyAgent` directly against a fake SDK
@@ -49,6 +49,7 @@ from code_puppy_core_plugins.acp import (
49
49
  replay,
50
50
  session_config,
51
51
  state,
52
+ themes,
52
53
  )
53
54
  from code_puppy_core_plugins.acp.bridge import EventBridge
54
55
  from code_puppy_core_plugins.acp.session import ACPSession
@@ -77,6 +78,7 @@ class CodePuppyAgent(Agent):
77
78
  self._sessions: Dict[str, ACPSession] = {}
78
79
  self._bridge = EventBridge()
79
80
  self._client_caps: Optional[ClientCapabilities] = None
81
+ self._theme_watcher = themes.ThemeWatcher()
80
82
 
81
83
  # ---- Connection lifecycle ---------------------------------------------
82
84
  def on_connect(self, conn: Any) -> None:
@@ -89,6 +91,11 @@ class CodePuppyAgent(Agent):
89
91
  state.set_connection(conn, asyncio.get_running_loop())
90
92
  self._bridge.register()
91
93
  permissions.install()
94
+ try:
95
+ self._theme_watcher.start()
96
+ except Exception as error: # noqa: BLE001
97
+ # Startup must never fail on the theme watcher; log the class only.
98
+ logger.debug("ACP theme watcher not started: %s", type(error).__name__)
92
99
 
93
100
  def shutdown(self) -> None:
94
101
  """Unwire this agent's event hooks. Call once the connection ends.
@@ -98,6 +105,7 @@ class CodePuppyAgent(Agent):
98
105
  connection leaves the global callback registry clean.
99
106
  """
100
107
  self._bridge.unregister()
108
+ self._theme_watcher.stop()
101
109
 
102
110
  # ---- Handshake --------------------------------------------------------
103
111
  async def initialize(
@@ -159,6 +167,7 @@ class CodePuppyAgent(Agent):
159
167
  return NewSessionResponse(
160
168
  session_id=session_id,
161
169
  config_options=session_config.config_options() or None,
170
+ field_meta=themes.session_meta(),
162
171
  )
163
172
 
164
173
  async def load_session(
@@ -185,6 +194,7 @@ class CodePuppyAgent(Agent):
185
194
  self._announce_commands_soon(session_id)
186
195
  return LoadSessionResponse(
187
196
  config_options=session_config.config_options() or None,
197
+ field_meta=themes.session_meta(),
188
198
  )
189
199
 
190
200
  async def resume_session(
@@ -205,6 +215,7 @@ class CodePuppyAgent(Agent):
205
215
  self._announce_commands_soon(session_id)
206
216
  return ResumeSessionResponse(
207
217
  config_options=session_config.config_options() or None,
218
+ field_meta=themes.session_meta(),
208
219
  )
209
220
 
210
221
  async def fork_session(
@@ -373,6 +384,10 @@ class CodePuppyAgent(Agent):
373
384
  reset_model_fallback_warnings(scope=session_id)
374
385
  return CloseSessionResponse()
375
386
 
387
+ async def ext_method(self, method: str, params: dict[str, Any]) -> dict[str, Any]:
388
+ """Route ext requests (currently only themes) to the theme catalog."""
389
+ return await themes.handle_ext_method(method, params)
390
+
376
391
  # ---- Prompt turn ------------------------------------------------------
377
392
  async def prompt(
378
393
  self, prompt: List[Any], session_id: str, **kwargs: Any
@@ -0,0 +1,99 @@
1
+ """ACP theme catalog: the ``code_puppy/themes/list`` ext method, session meta, and change pushes.
2
+
3
+ Read-only by design: the client lists themes and reads the active one; there is no setter.
4
+
5
+ Depends on: catalog.py :: build_catalog(), read_active_theme_id(), SCHEMA_VERSION
6
+ Depends on: state.py :: get_connection()
7
+ Called by: agent.py :: CodePuppyAgent.ext_method(), new_session(), load_session(), resume_session(), on_connect(), shutdown()
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import asyncio
13
+ import logging
14
+ from typing import Any, Optional
15
+
16
+ from acp import RequestError
17
+
18
+ from code_puppy_core_plugins.acp import state
19
+ from code_puppy_core_plugins.theme.catalog import (
20
+ SCHEMA_VERSION,
21
+ build_catalog,
22
+ read_active_theme_id,
23
+ )
24
+
25
+ logger = logging.getLogger(__name__)
26
+
27
+ EXT_LIST = "code_puppy/themes/list"
28
+ EXT_CHANGED = "code_puppy/themes/changed"
29
+ META_KEY = "codePuppy/theme"
30
+ POLL_SECONDS = 2.0
31
+
32
+ # Distinct from None: None is a valid "no active theme" observation.
33
+ _NO_BASELINE: Any = object()
34
+
35
+
36
+ async def handle_ext_method(method: str, params: Any) -> dict[str, Any]:
37
+ """Serve the theme list; any other ext method is not found."""
38
+ if method != EXT_LIST:
39
+ # The wire name carries the SDK's leading underscore; the error reports it.
40
+ raise RequestError.method_not_found("_" + method)
41
+ return {
42
+ "schemaVersion": SCHEMA_VERSION,
43
+ "active": read_active_theme_id(),
44
+ "themes": build_catalog(),
45
+ }
46
+
47
+
48
+ def session_meta() -> dict[str, Any]:
49
+ """Return the active theme as ACP ``_meta`` for session responses."""
50
+ return {META_KEY: {"active": read_active_theme_id()}}
51
+
52
+
53
+ class ThemeWatcher:
54
+ """Polls the active theme and pushes a notification when it changes.
55
+
56
+ The first observation is the baseline and sends nothing, so a client that
57
+ has not yet read the list is never told about a theme it did not ask about.
58
+ """
59
+
60
+ def __init__(self, poll_seconds: float = POLL_SECONDS) -> None:
61
+ self._poll_seconds = poll_seconds
62
+ self._task: Optional[asyncio.Task[None]] = None
63
+ self._last: Any = _NO_BASELINE
64
+
65
+ def start(self) -> None:
66
+ """Start the poll loop on the running event loop; no-op if already running."""
67
+ if self._task is not None and not self._task.done():
68
+ return
69
+ self._task = asyncio.get_running_loop().create_task(self._run())
70
+
71
+ def stop(self) -> None:
72
+ """Cancel the poll loop; safe when never started or already stopped."""
73
+ if self._task is not None:
74
+ self._task.cancel()
75
+ self._task = None
76
+
77
+ async def poll_once(self) -> None:
78
+ """Read the active theme and notify the client if it changed since last poll."""
79
+ # Broad catches are deliberate: a theme failure must never kill the poll loop.
80
+ try:
81
+ value = await asyncio.to_thread(read_active_theme_id)
82
+ except Exception as error:
83
+ logger.debug("ACP theme poll failed: %s", type(error).__name__)
84
+ return
85
+ previous, self._last = self._last, value
86
+ if previous is _NO_BASELINE or previous == value:
87
+ return
88
+ connection = state.get_connection()
89
+ if connection is None:
90
+ return
91
+ try:
92
+ await connection.ext_notification(EXT_CHANGED, {"active": value})
93
+ except Exception as error:
94
+ logger.debug("ACP theme notify failed: %s", type(error).__name__)
95
+
96
+ async def _run(self) -> None:
97
+ while True:
98
+ await self.poll_once()
99
+ await asyncio.sleep(self._poll_seconds)
@@ -73,6 +73,7 @@ Green Screen ports the canonical phosphor colors from [vybestack/llxprt-code](ht
73
73
  | `osc_palette.py` | OSC escape sequences for terminal-wide bg/fg/ANSI palette (Level 3) |
74
74
  | `picker.py` | prompt_toolkit split-panel TUI with live preview |
75
75
  | `register_callbacks.py` | `/theme` command handler, glue only |
76
+ | `catalog.py` | Pure, read-only catalog for ACP clients (wire dicts, semantic roles, active-theme read) |
76
77
  | `__init__.py` | Re-applies persisted (L1 + L2 + L3) on plugin load |
77
78
 
78
79
  ## How each level works (the spicy bits)
@@ -84,3 +85,38 @@ Green Screen ports the canonical phosphor colors from [vybestack/llxprt-code](ht
84
85
  **Level 3** — fires xterm OSC sequences (`\\033]10;#fg\\007`, `\\033]11;#bg\\007`, `\\033]4;N;#hex\\007`) which modern terminals honor terminal-wide. Auto-resets on exit via `atexit`. Persists across restarts via JSON in `puppy.cfg`. Supported in iTerm2, Terminal.app, Alacritty, kitty, ode, GNOME Terminal, Windows Terminal. Unsupported terminals silently ignore.
85
86
 
86
87
  Plays nice with `/colors` — same color pool, same config keys for banners.
88
+
89
+ ## Theme catalog
90
+
91
+ `catalog.py` is a pure, read-only catalog for ACP clients. It never applies a
92
+ palette, emits OSC sequences, or writes config. Its only config access is the
93
+ read in `read_active_theme_id()`.
94
+
95
+ | Function | Purpose |
96
+ |----------|---------|
97
+ | `build_catalog()` | Returns fresh wire dicts: curated themes in menu order, then `default`. `surprise` is excluded. |
98
+ | `semantic_roles(palette)` | Maps a `bg`/`fg`/`ansi` palette to the semantic roles below. |
99
+ | `appearance_for(bg_hex)` | Returns `dark` when the WCAG relative luminance of `bg` is below 0.179, else `light`. |
100
+ | `active_theme_id(raw)` | Returns `raw` if it is a catalog id, else `None`. |
101
+ | `read_active_theme_id()` | Reads `ACTIVE_THEME_CONFIG_KEY` and returns `active_theme_id(...)`. Never raises. |
102
+
103
+ ### Role mapping
104
+
105
+ | Role | Source | AA adjustment |
106
+ |------|--------|---------------|
107
+ | `background` | `bg` | None (base color) |
108
+ | `surface` | `bg` blended 8% toward `fg` | None (exempt) |
109
+ | `text` | `fg` | Yes |
110
+ | `mutedText` | `ansi[8]` | Yes |
111
+ | `accent` | `ansi[4]` | Yes |
112
+ | `success` | `ansi[2]` | Yes |
113
+ | `error` | `ansi[1]` | Yes |
114
+ | `warning` | `ansi[3]` | Yes |
115
+ | `running` | `ansi[6]` | Yes |
116
+ | `diffAdd` | `ansi[2]` | Yes |
117
+ | `diffRemove` | `ansi[1]` | Yes |
118
+
119
+ AA adjustment: if a role has less than 4.5:1 contrast against `background`, it
120
+ is blended toward `#ffffff` on dark themes or `#000000` on light themes in 5%
121
+ steps. The first step that reaches 4.5:1 is used. The input palette is never
122
+ modified, and output values are lowercase `#rrggbb`.
@@ -0,0 +1,183 @@
1
+ """Pure, read-only theme catalog for ACP clients.
2
+
3
+ Depends on: themes.py :: MENU, CURATED_THEMES, DEFAULT
4
+ Never applies palettes, emits OSC sequences, or writes config.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import re
10
+ from typing import Any
11
+
12
+ from code_puppy.config import get_value
13
+
14
+ from .themes import CURATED_THEMES, DEFAULT, MENU
15
+
16
+ # Called by: register_callbacks.py :: _apply_theme(), _active_terminal_palette(),
17
+ # _apply_default_theme_on_first_run()
18
+ ACTIVE_THEME_CONFIG_KEY = "theme_active_theme"
19
+ SCHEMA_VERSION = 1
20
+
21
+ _AA_MIN_CONTRAST = 4.5
22
+ _SURFACE_BLEND = 0.08
23
+ _DARK_LUMINANCE_CUTOFF = 0.179
24
+ _ADJUST_STEPS = 20 # 5% blend increments toward white or black
25
+ _WHITE = (255, 255, 255)
26
+ _BLACK = (0, 0, 0)
27
+ _HEX_RE = re.compile(r"#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})")
28
+
29
+
30
+ def appearance_for(bg_hex: str) -> str:
31
+ return "dark" if _is_dark(_rgb(bg_hex)) else "light"
32
+
33
+
34
+ def semantic_roles(palette: dict[str, Any]) -> dict[str, str]:
35
+ """Map a bg/fg/ansi palette to semantic role colors.
36
+
37
+ Non-background roles are blended toward white (dark bg) or black (light bg)
38
+ in 5% steps until they reach WCAG AA (4.5:1) against the background. The
39
+ input palette is never mutated.
40
+ """
41
+ bg = _rgb(palette["bg"])
42
+ fg = _rgb(palette["fg"])
43
+ ansi = [_rgb(color) for color in palette["ansi"]]
44
+ adjust_target = _WHITE if _is_dark(bg) else _BLACK
45
+ adjustable = {
46
+ "text": fg,
47
+ "mutedText": ansi[8],
48
+ "accent": ansi[4],
49
+ "success": ansi[2],
50
+ "error": ansi[1],
51
+ "warning": ansi[3],
52
+ "running": ansi[6],
53
+ "diffAdd": ansi[2],
54
+ "diffRemove": ansi[1],
55
+ }
56
+ roles = {
57
+ "background": _hex(bg),
58
+ "surface": _hex(_blend(bg, fg, _SURFACE_BLEND)),
59
+ }
60
+ for role, color in adjustable.items():
61
+ roles[role] = _hex(_meet_aa(color, bg, adjust_target))
62
+ return roles
63
+
64
+
65
+ def build_catalog() -> list[dict[str, Any]]:
66
+ """Return fresh wire dicts: curated themes in menu order, then default.
67
+
68
+ Every call builds new containers, so callers cannot mutate shared state.
69
+ """
70
+ entries = [_curated_entry(theme_id) for theme_id in _curated_ids()]
71
+ entries.append(_default_entry())
72
+ return entries
73
+
74
+
75
+ def active_theme_id(raw: object) -> str | None:
76
+ if isinstance(raw, str) and (raw == "default" or raw in _curated_ids()):
77
+ return raw
78
+ return None
79
+
80
+
81
+ def read_active_theme_id() -> str | None:
82
+ try:
83
+ return active_theme_id(get_value(ACTIVE_THEME_CONFIG_KEY))
84
+ except Exception:
85
+ return None
86
+
87
+
88
+ def _curated_ids() -> list[str]:
89
+ # Resolved per call so a theme added to MENU/CURATED_THEMES reaches ACP without edits here.
90
+ return [name for name, _ in MENU if name in CURATED_THEMES]
91
+
92
+
93
+ def _curated_entry(theme_id: str) -> dict[str, Any]:
94
+ theme = CURATED_THEMES[theme_id]
95
+ palette = _normalised_palette(theme["terminal_palette"])
96
+ return {
97
+ "id": theme_id,
98
+ "label": theme["label"],
99
+ "icon": theme["icon"],
100
+ "blurb": theme["blurb"],
101
+ "appearance": appearance_for(palette["bg"]),
102
+ "palette": palette,
103
+ "roles": semantic_roles(palette),
104
+ }
105
+
106
+
107
+ def _default_entry() -> dict[str, Any]:
108
+ return {
109
+ "id": "default",
110
+ "label": DEFAULT["label"],
111
+ "icon": DEFAULT["icon"],
112
+ "blurb": DEFAULT["blurb"],
113
+ "appearance": None,
114
+ "palette": None,
115
+ "roles": None,
116
+ }
117
+
118
+
119
+ def _normalised_palette(palette: dict[str, Any]) -> dict[str, Any]:
120
+ return {
121
+ "bg": _canonical(palette["bg"]),
122
+ "fg": _canonical(palette["fg"]),
123
+ "ansi": [_canonical(color) for color in palette["ansi"]],
124
+ }
125
+
126
+
127
+ def _meet_aa(
128
+ color: tuple[int, int, int], bg: tuple[int, int, int], target: tuple[int, int, int]
129
+ ) -> tuple[int, int, int]:
130
+ if _contrast(color, bg) >= _AA_MIN_CONTRAST:
131
+ return color
132
+ for step in range(1, _ADJUST_STEPS + 1):
133
+ candidate = _blend(color, target, step / _ADJUST_STEPS)
134
+ if _contrast(candidate, bg) >= _AA_MIN_CONTRAST:
135
+ return candidate
136
+ # Only reachable if the target fails AA, which cannot happen: white clears
137
+ # 4.5:1 on any bg below the dark cutoff, and black on any bg at or above it.
138
+ return target
139
+
140
+
141
+ def _is_dark(rgb: tuple[int, int, int]) -> bool:
142
+ return _luminance(rgb) < _DARK_LUMINANCE_CUTOFF
143
+
144
+
145
+ def _rgb(color: str) -> tuple[int, int, int]:
146
+ match = _HEX_RE.fullmatch(color)
147
+ if match is None:
148
+ raise ValueError(f"not a hex color: {color!r}")
149
+ digits = match.group(1)
150
+ if len(digits) == 3:
151
+ digits = "".join(digit * 2 for digit in digits)
152
+ return (int(digits[0:2], 16), int(digits[2:4], 16), int(digits[4:6], 16))
153
+
154
+
155
+ def _hex(rgb: tuple[int, int, int]) -> str:
156
+ return "#" + "".join(f"{channel:02x}" for channel in rgb)
157
+
158
+
159
+ def _canonical(color: str) -> str:
160
+ return _hex(_rgb(color))
161
+
162
+
163
+ def _blend(
164
+ start: tuple[int, int, int], end: tuple[int, int, int], amount: float
165
+ ) -> tuple[int, int, int]:
166
+ r, g, b = (round(s + (e - s) * amount) for s, e in zip(start, end))
167
+ return (r, g, b)
168
+
169
+
170
+ def _linearise(value: float) -> float:
171
+ if value <= 0.03928:
172
+ return value / 12.92
173
+ return ((value + 0.055) / 1.055) ** 2.4
174
+
175
+
176
+ def _luminance(rgb: tuple[int, int, int]) -> float:
177
+ r, g, b = (_linearise(channel / 255) for channel in rgb)
178
+ return 0.2126 * r + 0.7152 * g + 0.0722 * b
179
+
180
+
181
+ def _contrast(first: tuple[int, int, int], second: tuple[int, int, int]) -> float:
182
+ lighter, darker = sorted((_luminance(first), _luminance(second)), reverse=True)
183
+ return (lighter + 0.05) / (darker + 0.05)
@@ -24,13 +24,14 @@ from typing import TYPE_CHECKING
24
24
 
25
25
  from code_puppy.callbacks import register_callback
26
26
 
27
+ from .catalog import ACTIVE_THEME_CONFIG_KEY
28
+
27
29
  # NOTE: Keep heavy theme/TUI imports inside callers so plugin discovery stays
28
30
  # fast; the deferred style import saves startup time. Caveat: theme/__init__.py
29
31
  # still eagerly imports style modules/reapplies config, so prompt_toolkit remains
30
32
  # on the startup path until that sweep is deferred too.
31
33
 
32
34
  _INTERACTIVE_TIMEOUT_SECONDS = 300 # 5 min — generous; user is browsing
33
- _ACTIVE_THEME_CONFIG_KEY = "theme_active_theme"
34
35
  _DEFAULT_THEME_NAME = "tokyo-night"
35
36
  _LEGACY_THEME_NAME = "legacy-custom"
36
37
 
@@ -118,7 +119,7 @@ def _apply_theme(theme_name: str, *, announce: bool = True) -> None:
118
119
  if terminal_palette:
119
120
  osc.apply_palette(terminal_palette)
120
121
 
121
- set_config_value(_ACTIVE_THEME_CONFIG_KEY, theme_name)
122
+ set_config_value(ACTIVE_THEME_CONFIG_KEY, theme_name)
122
123
  if announce:
123
124
  _announce_applied(theme_name)
124
125
 
@@ -129,7 +130,7 @@ def _active_terminal_palette() -> tuple[str, dict] | None:
129
130
 
130
131
  from . import osc_palette as osc
131
132
 
132
- active_theme = get_value(_ACTIVE_THEME_CONFIG_KEY)
133
+ active_theme = get_value(ACTIVE_THEME_CONFIG_KEY)
133
134
  if not active_theme or active_theme in {"default", _LEGACY_THEME_NAME}:
134
135
  return None
135
136
  palette = osc.get_saved_palette()
@@ -272,7 +273,7 @@ def _apply_default_theme_on_first_run() -> None:
272
273
  """Apply Tokyo Night once, preserving explicit and legacy theme choices."""
273
274
  from code_puppy.config import get_value
274
275
 
275
- if get_value(_ACTIVE_THEME_CONFIG_KEY):
276
+ if get_value(ACTIVE_THEME_CONFIG_KEY):
276
277
  return
277
278
 
278
279
  from code_puppy.config import set_config_value
@@ -282,7 +283,7 @@ def _apply_default_theme_on_first_run() -> None:
282
283
  if osc.get_saved_palette():
283
284
  # Theme persistence predates the active-theme marker. Treat an existing
284
285
  # palette as an intentional choice and migrate without changing it.
285
- set_config_value(_ACTIVE_THEME_CONFIG_KEY, _LEGACY_THEME_NAME)
286
+ set_config_value(ACTIVE_THEME_CONFIG_KEY, _LEGACY_THEME_NAME)
286
287
  return
287
288
 
288
289
  _apply_theme(_DEFAULT_THEME_NAME, announce=False)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy-core-plugins"
7
- version = "0.0.104"
7
+ version = "0.0.105"
8
8
  description = "Official plugin bundle for Code Puppy"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"