code-puppy-core-plugins 0.0.104__tar.gz → 0.0.106__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.106}/PKG-INFO +1 -1
  2. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/README.md +90 -18
  3. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/agent.py +18 -1
  4. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/permissions.py +98 -51
  5. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/register_callbacks.py +1 -0
  6. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/session.py +14 -2
  7. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/session_config.py +40 -2
  8. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/state.py +2 -2
  9. code_puppy_core_plugins-0.0.106/code_puppy_core_plugins/acp/themes.py +99 -0
  10. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/README.md +36 -0
  11. code_puppy_core_plugins-0.0.106/code_puppy_core_plugins/theme/catalog.py +183 -0
  12. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/register_callbacks.py +6 -5
  13. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/pyproject.toml +1 -1
  14. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/.gitignore +0 -0
  15. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/LICENSE +0 -0
  16. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/README.md +0 -0
  17. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/THIRD_PARTY_NOTICES.md +0 -0
  18. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/__init__.py +0 -0
  19. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/__init__.py +0 -0
  20. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/auth_status.py +0 -0
  21. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/bridge.py +0 -0
  22. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/capabilities.py +0 -0
  23. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/commands.py +0 -0
  24. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/content.py +0 -0
  25. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/io_delegation.py +0 -0
  26. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/mcp_config.py +0 -0
  27. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/persistence.py +0 -0
  28. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/acp/replay.py +0 -0
  29. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/agent_skills/__init__.py +0 -0
  33. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/config.py +0 -0
  34. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/agent_skills/discovery.py +0 -0
  35. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/agent_skills/metadata.py +0 -0
  37. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/agent_skills/provider.py +0 -0
  39. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/attachment_references/__init__.py +0 -0
  43. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/attachment_references/tool.py +0 -0
  45. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/auto_continue/__init__.py +0 -0
  46. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/auto_continue/classifier.py +0 -0
  47. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/aws_bedrock/__init__.py +0 -0
  49. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/aws_bedrock/config.py +0 -0
  50. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/aws_bedrock/utils.py +0 -0
  52. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/README.md +0 -0
  53. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/__init__.py +0 -0
  54. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/config.py +0 -0
  55. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/discovery.py +0 -0
  56. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/azure_foundry/token.py +0 -0
  58. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/azure_foundry/utils.py +0 -0
  59. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/background_agents/README.md +0 -0
  60. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/background_agents/__init__.py +0 -0
  61. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/btw/__init__.py +0 -0
  63. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/inline_view.py +0 -0
  64. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/register_callbacks.py +0 -0
  65. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/btw/side_query.py +0 -0
  66. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/chatgpt_oauth/__init__.py +0 -0
  68. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/config.py +0 -0
  69. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/chatgpt_oauth/usage.py +0 -0
  76. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/chatgpt_oauth/utils.py +0 -0
  77. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/completion_notification/__init__.py +0 -0
  105. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/completion_notification/config.py +0 -0
  106. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/completion_notification/notifier.py +0 -0
  110. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/computer_use/NativeCapture.swift +0 -0
  113. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/PARITY.md +0 -0
  114. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/README.md +0 -0
  115. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/WINDOWS.md +0 -0
  116. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/__init__.py +0 -0
  117. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/accessibility.py +0 -0
  118. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/activation.py +0 -0
  119. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/backend.py +0 -0
  120. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/computer_use/batch.py +0 -0
  122. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/capture.py +0 -0
  123. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/commands.py +0 -0
  124. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/geometry.py +0 -0
  125. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/computer_use/keycodes.py +0 -0
  127. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/computer_use/permissions.py +0 -0
  132. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/policy.py +0 -0
  133. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/computer_use/safety.py +0 -0
  135. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/settle.py +0 -0
  136. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/state.py +0 -0
  137. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/computer_use/tools.py +0 -0
  138. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/context_indicator/__init__.py +0 -0
  146. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/context_indicator/usage.py +0 -0
  148. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/__init__.py +0 -0
  149. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/copilot_auth/config.py +0 -0
  150. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/copilot_auth/utils.py +0 -0
  154. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  155. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/emoji_filter/__init__.py +0 -0
  171. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/emoji_filter/config.py +0 -0
  172. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/emoji_filter/stripper.py +0 -0
  174. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/execution_environment/README.md +0 -0
  178. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/execution_environment/__init__.py +0 -0
  179. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/flux_bootstrap/__init__.py +0 -0
  183. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/flux_bootstrap/installer.py +0 -0
  209. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/fork/__init__.py +0 -0
  214. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/fork/register_callbacks.py +0 -0
  215. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/__init__.py +0 -0
  216. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/frontend_emitter/emitter.py +0 -0
  217. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/grok_oauth/__init__.py +0 -0
  220. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/grok_oauth/config.py +0 -0
  221. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/grok_oauth/utils.py +0 -0
  224. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/README.md +0 -0
  225. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/SKILL.md +0 -0
  226. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/__init__.py +0 -0
  227. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/client.py +0 -0
  228. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/command_intent.py +0 -0
  229. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/launch_command.py +0 -0
  230. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/launcher.py +0 -0
  231. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/register_callbacks.py +0 -0
  232. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/reporter.py +0 -0
  233. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/restore.py +0 -0
  234. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/smoke.py +0 -0
  235. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/herdr/sources.py +0 -0
  236. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_creator/__init__.py +0 -0
  237. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/hook_manager/__init__.py +0 -0
  239. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/hook_manager/config.py +0 -0
  240. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/jev_grep/__init__.py +0 -0
  244. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/chunks.py +0 -0
  245. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/config.py +0 -0
  246. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/judge.py +0 -0
  247. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/jev_grep/retrieve.py +0 -0
  249. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/search.py +0 -0
  250. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/structure.py +0 -0
  251. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/tool.py +0 -0
  252. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/jev_grep/treesitter.py +0 -0
  253. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/__init__.py +0 -0
  254. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_instrumentation/instrumentation.py +0 -0
  255. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/logfire_instrumentation/sdk.py +0 -0
  258. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/__init__.py +0 -0
  259. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_oauth/oauth.py +0 -0
  260. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/logfire_sessions/__init__.py +0 -0
  263. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/mirror.py +0 -0
  264. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/logfire_sessions/query.py +0 -0
  265. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/logfire_sessions/sync.py +0 -0
  267. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/meta_oauth/__init__.py +0 -0
  273. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/meta_oauth/config.py +0 -0
  274. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/meta_oauth/plan.py +0 -0
  277. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/meta_oauth/utils.py +0 -0
  279. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/no_tools/__init__.py +0 -0
  285. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/oauth_pasteback.py +0 -0
  287. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/oauth_puppy_html.py +0 -0
  288. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/README.md +0 -0
  289. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/obsidian_agent/__init__.py +0 -0
  290. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/ollama/__init__.py +0 -0
  293. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama/register_callbacks.py +0 -0
  294. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama_setup/__init__.py +0 -0
  295. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/ollama_setup/completer.py +0 -0
  296. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/openrouter_oauth/__init__.py +0 -0
  298. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/openrouter_oauth/config.py +0 -0
  299. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  303. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/plugin_settings.py +0 -0
  311. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pop_command/__init__.py +0 -0
  312. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/profiles/README.md +0 -0
  314. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/__init__.py +0 -0
  315. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/config.py +0 -0
  316. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/profiles/menu.py +0 -0
  318. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/profiles/register_callbacks.py +0 -0
  319. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prompt_newline/__init__.py +0 -0
  320. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prompt_newline/config.py +0 -0
  321. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/prune/__init__.py +0 -0
  323. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_menu.py +0 -0
  324. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_model.py +0 -0
  325. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/prune_render.py +0 -0
  326. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/prune/register_callbacks.py +0 -0
  327. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/README.md +0 -0
  328. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/__init__.py +0 -0
  329. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/adapter.py +0 -0
  330. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/agents.py +0 -0
  331. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/catalog.py +0 -0
  332. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/commands.py +0 -0
  333. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/config.py +0 -0
  334. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/prompt.py +0 -0
  335. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/register_callbacks.py +0 -0
  336. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/skill_validator.py +0 -0
  337. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/pstack/upstream.py +0 -0
  339. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/pstack/vendor/UPSTREAM.json +0 -0
  340. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/pstack/vendor/pstack/LICENSE +0 -0
  345. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/puppy_kennel/README.md +0 -0
  504. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/__init__.py +0 -0
  505. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/commands.py +0 -0
  506. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/config.py +0 -0
  507. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/kennel.py +0 -0
  508. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/packer.py +0 -0
  509. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/recorder.py +0 -0
  510. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/puppy_kennel/retriever.py +0 -0
  512. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/schema.py +0 -0
  513. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/state.py +0 -0
  514. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/tools.py +0 -0
  515. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_kennel/wings.py +0 -0
  516. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/README.md +0 -0
  517. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/__init__.py +0 -0
  518. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/puppy_spinner/commands.py +0 -0
  520. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/puppy_spinner/picker.py +0 -0
  521. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/puppy_spinner/spinners.py +0 -0
  523. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  527. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/resume_hint/__init__.py +0 -0
  529. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/review_pr/__init__.py +0 -0
  534. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/session_namer/__init__.py +0 -0
  536. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/session_namer/namer.py +0 -0
  537. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/setup_cli/README.md +0 -0
  539. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/setup_cli/__init__.py +0 -0
  540. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/setup_cli/cli.py +0 -0
  543. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/setup_cli/doctor.py +0 -0
  545. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/setup_cli/output.py +0 -0
  549. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/setup_cli/providers.py +0 -0
  551. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/setup_cli/wizard.py +0 -0
  555. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/LICENSE.deepseek +0 -0
  556. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/__init__.py +0 -0
  557. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/register_callbacks.py +0 -0
  558. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/spill/store.py +0 -0
  559. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/stack_dump/__init__.py +0 -0
  560. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/statusline/__init__.py +0 -0
  562. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/config.py +0 -0
  563. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/payload.py +0 -0
  564. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/prompt_patch.py +0 -0
  565. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/register_callbacks.py +0 -0
  566. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/runner.py +0 -0
  567. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/statusline/statusline_command.py +0 -0
  568. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/steer_queue/__init__.py +0 -0
  569. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/subagent_panel/README.md +0 -0
  572. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/subagent_panel/__init__.py +0 -0
  573. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/subagent_panel/state.py +0 -0
  578. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/code_puppy_core_plugins/termflow_tui.py +0 -0
  581. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/__init__.py +0 -0
  582. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/bundled_palettes.py +0 -0
  583. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/content_styles.py +0 -0
  584. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/osc_palette.py +0 -0
  585. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/picker.py +0 -0
  586. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/theme/rich_themes.py +0 -0
  588. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/theme/themes.py +0 -0
  589. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/timestamp_heartbeat/__init__.py +0 -0
  590. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/universal_constructor/__init__.py +0 -0
  592. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/models.py +0 -0
  593. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/provider.py +0 -0
  594. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/code_puppy_core_plugins/universal_constructor/registry.py +0 -0
  596. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/universal_constructor/sandbox.py +0 -0
  597. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106}/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.106}/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.106}/code_puppy_core_plugins/wiggum/__init__.py +0 -0
  601. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/cancellation.py +0 -0
  602. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/goal_runs.py +0 -0
  603. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judge.py +0 -0
  604. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judge_config.py +0 -0
  605. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/judges_menu.py +0 -0
  606. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/register_callbacks.py +0 -0
  607. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/wiggum/state.py +0 -0
  608. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/code_puppy_core_plugins/yolo_cli/__init__.py +0 -0
  609. {code_puppy_core_plugins-0.0.104 → code_puppy_core_plugins-0.0.106}/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.106
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
@@ -86,27 +86,31 @@ plugin's protocol layer changed.
86
86
  |----------|--------|
87
87
  | **Protocol layer** | **Official `acp` SDK.** We implement its `Agent` interface; `acp.run_agent` owns stdio + framing. |
88
88
  | **Who does I/O** | **Delegated to the client when the client supports it.** Workspace file reads/writes go through the client's `fs/read_text_file` / `fs/write_text_file` (edits land in the client's diff UI; reads see unsaved buffers), and shell commands run via the client's `terminal/*`. This rides two small, general **I/O-backend seams** in core (`code_puppy/tools/io_backends.py`): a sync `FileSystemBackend` and an async `CommandExecutor`, both `None` by default (local I/O) and installed by this plugin, capability-gated, after `initialize`. Internal writes (config, session state, agent metadata) deliberately stay local — only *workspace* edits reroute (via `common.write_project_file`). |
89
- | **Permissions** | **the client is the authority (non-yolo).** Every approval — file writes and shell commands — is surfaced in the client's own allow/deny dialog via `session/request_permission`. No yolo forcing, no terminal prompts. |
89
+ | **Permissions** | **the client is the authority (non-yolo).** Core runs one approval path for file writes and shell commands; ACP supplies the backend that asks the client via `session/request_permission`. No yolo forcing, no terminal prompts. |
90
90
  | **Entry point** | A `--acp` CLI flag contributed via the `register_cli_args` hook; `handle_cli_args` boots the agent (on its own loop, in a thread) and short-circuits normal TUI startup. |
91
91
  | **Core footprint** | Small, general, additive core seams — **no monkeypatching**: (1) a pluggable *approval backend* (`common.set_approval_backend`), (2) a *workspace write* wrapper (`common.write_project_file`) + backend-aware `_read_file`, and (3) `FileSystemBackend` / `CommandExecutor` registries (`tools/io_backends.py`). Each is useful to any non-terminal embedder, not ACP-specific. Everything else is this plugin + existing public hooks + the SDK. |
92
92
 
93
93
  ### Permissions in non-yolo mode (the important part)
94
94
 
95
- Code Puppy has two approval edges. In a headless ACP server there is no TTY, so
96
- the built-in stdin prompt would **fail closed** (auto-deny every file op — a
97
- latent bug this integration also fixes). We route both edges to the client *without*
98
- forcing yolo and *without* patching tool logic:
99
-
100
- * **File operations** use the **approval-backend seam** in `tools.common`. Sync
101
- file tools run in Code Puppy's tool threadpool, so the backend
102
- (`permissions.py`) bridges to the ACP event loop with
103
- `run_coroutine_threadsafe` to ask the client via the SDK's `request_permission`,
104
- then blocks the worker thread for the answer. The loop is free to service the
105
- round-trip → no deadlock (guarded against being called on the loop itself).
106
- * **Shell commands** use the async `run_shell_command` hook (it runs on the ACP
107
- loop and can `await` the client directly).
108
-
109
- Both edges **fail closed** if the connection drops or the client errors.
95
+ Headless ACP has no TTY, so the built-in stdin prompt would fail closed. Instead,
96
+ the approval decision lives in core and ACP only supplies the prompting backend,
97
+ *without* forcing yolo or patching tool logic:
98
+
99
+ * **One shared path in core:** yolo check, then sub-agent check, then queueing.
100
+ Sub-agents never prompt.
101
+ * **ACP's backend** (`permissions.py`) asks the client via the SDK's
102
+ `request_permission`. Sync file tools run in the tool threadpool, so that path
103
+ bridges to the ACP loop with `run_coroutine_threadsafe` and blocks the worker
104
+ for the answer; it refuses to run on the loop itself (deadlock guard). Shell
105
+ commands go through core's same gate, which calls this backend (from a worker
106
+ thread, so the same bridge applies).
107
+ * **No timeout:** like the terminal, the request waits. It ends on the client's
108
+ answer, on `session/cancel`, or when the connection closes. Cancel and
109
+ disconnect deny (fail closed).
110
+ * **`approval_mode` config option:** read-only, reports `ask` or `auto` from yolo
111
+ mode. `apply_config_option` never writes config; client writes are ignored.
112
+ * **Older cores** without `can_prompt_for_approval` get a fallback shell hook in
113
+ the plugin.
110
114
 
111
115
  ---
112
116
 
@@ -126,10 +130,11 @@ Every file stays well under the 600-line cap and owns one concern.
126
130
  | `persistence.py` | Pickle each session's history under `AUTOSAVE_DIR/acp` keyed by session id, plus an ACP metadata sidecar (`cwd` + `additionalDirectories` + title). Rehydrate on `load`/`resume`/`fork`; enumerate for `session/list` (`list_persisted`); tombstone on `session/close` (`delete`). |
127
131
  | `replay.py` | On `load`/`resume`, stream the rehydrated history back to the client as ordered `session/update`s (user / agent text / thinking / past tool calls) so the client rebuilds the thread UI. |
128
132
  | `mcp_config.py` | Translate client-injected ACP MCP server specs → pydantic-ai servers on the session agent. |
129
- | `session_config.py` | Build the model list (surfaced as ACP *modes*) + safe config options; apply `set_mode` / `set_config_option`. |
133
+ | `session_config.py` | Build the model list (surfaced as ACP *modes*) + safe config options (including the read-only `approval_mode`); apply `set_mode` / `set_config_option`. |
130
134
  | `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
- | `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. |
135
+ | `permissions.py` | The ACP approval backend (`tools.common` seam, cross-thread bridge to `request_permission`) for file and shell approvals, `cancel_pending` for cancel/close, and a legacy `run_shell_command` fallback hook for cores without `can_prompt_for_approval`. No timeout; fails closed. |
132
136
  | `io_delegation.py` | `DelegatedFileSystemBackend` (sync, cross-thread) + `DelegatedCommandExecutor` (async terminal lifecycle) that plug into the core I/O seams, capability-gated. |
137
+ | `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
138
  | `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
139
 
135
140
  ```
@@ -319,6 +324,73 @@ change.
319
324
 
320
325
  ---
321
326
 
327
+ ## Theme catalog (`_code_puppy/themes/*`)
328
+
329
+ You can list Code Puppy's color themes and track the active one without reading
330
+ its config. The catalog is read-only: there is no setter.
331
+
332
+ ### `_code_puppy/themes/list`
333
+
334
+ Send this request before or after `session/new`. It needs no session. Send
335
+ `{}` or omit `params`; extra keys are ignored.
336
+
337
+ The result has this shape:
338
+
339
+ ```jsonc
340
+ {
341
+ "schemaVersion": 1,
342
+ "active": "ocean", // or null
343
+ "themes": [
344
+ {
345
+ "id": "ocean",
346
+ "label": "Ocean",
347
+ "icon": "...",
348
+ "blurb": "...",
349
+ "appearance": "dark", // "dark" or "light"
350
+ "palette": { "bg": "#rrggbb", "fg": "#rrggbb", "ansi": ["#rrggbb", "...16 entries"] },
351
+ "roles": { "background": "#rrggbb", "surface": "#rrggbb", "text": "#rrggbb",
352
+ "mutedText": "#rrggbb", "accent": "#rrggbb", "success": "#rrggbb",
353
+ "error": "#rrggbb", "warning": "#rrggbb", "running": "#rrggbb",
354
+ "diffAdd": "#rrggbb", "diffRemove": "#rrggbb" }
355
+ }
356
+ // ...more themes
357
+ ]
358
+ }
359
+ ```
360
+
361
+ Themes appear in this order: curated themes in menu order, then `default`. The `surprise`
362
+ theme is excluded. The `default` entry has `null` for `appearance`, `palette`,
363
+ and `roles`, because it restores the terminal's own colors.
364
+
365
+ `active` is the ID of the catalog theme stored in the `theme_active_theme`
366
+ config key. It is `null` when the key is unset, and also when the key holds
367
+ `legacy-custom` or `surprise`.
368
+
369
+ For the mapping from palette to roles, see
370
+ [`theme/README.md`](../theme/README.md). This page does not repeat it.
371
+
372
+ ### `_meta` on session responses
373
+
374
+ `session/new`, `session/load`, and `session/resume` results include
375
+ `_meta["codePuppy/theme"] = {"active": <id or null>}`. Use it to paint the first
376
+ frame without waiting for the list request.
377
+
378
+ ### `_code_puppy/themes/changed`
379
+
380
+ When the active theme changes, the agent sends this notification with params
381
+ `{"active": <id or null>}`. It sends one notification per change. The agent
382
+ reads the config value every 2 seconds from the moment the client connects.
383
+ The first reading is a baseline, so no notification is sent for it.
384
+
385
+ ### Unknown methods and older CLIs
386
+
387
+ Any other `_code_puppy/*` method, such as `_code_puppy/themes/set`, returns
388
+ JSON-RPC error `-32601` (method not found). Older Code Puppy CLIs omit the
389
+ `_meta` key and return `-32601` for the list request. Clients should fall back
390
+ to a bundled copy of the catalog when either happens.
391
+
392
+ ---
393
+
322
394
  ## Testing
323
395
 
324
396
  `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(
@@ -366,6 +377,7 @@ class CodePuppyAgent(Agent):
366
377
  """
367
378
  from code_puppy.agents._builder import reset_model_fallback_warnings
368
379
 
380
+ permissions.cancel_pending(session_id)
369
381
  session = self._sessions.pop(session_id, None)
370
382
  if session is not None:
371
383
  await session.cancel_and_wait()
@@ -373,6 +385,10 @@ class CodePuppyAgent(Agent):
373
385
  reset_model_fallback_warnings(scope=session_id)
374
386
  return CloseSessionResponse()
375
387
 
388
+ async def ext_method(self, method: str, params: dict[str, Any]) -> dict[str, Any]:
389
+ """Route ext requests (currently only themes) to the theme catalog."""
390
+ return await themes.handle_ext_method(method, params)
391
+
376
392
  # ---- Prompt turn ------------------------------------------------------
377
393
  async def prompt(
378
394
  self, prompt: List[Any], session_id: str, **kwargs: Any
@@ -385,7 +401,8 @@ class CodePuppyAgent(Agent):
385
401
  return PromptResponse(stop_reason=outcome.stop_reason, usage=outcome.usage)
386
402
 
387
403
  async def cancel(self, session_id: str, **kwargs: Any) -> None:
388
- """Cancel the in-flight run for a session (notification)."""
404
+ """Cancel the in-flight run and any pending approval (file or shell) for a session."""
405
+ permissions.cancel_pending(session_id)
389
406
  session = self._sessions.get(session_id)
390
407
  if session is not None:
391
408
  session.cancel()
@@ -9,21 +9,27 @@ logic or forcing yolo mode:
9
9
  threadpool, so the backend bridges to the ACP event loop via
10
10
  ``run_coroutine_threadsafe`` to ask the client, then blocks the worker thread for
11
11
  the answer. The loop stays free to service the round-trip — no deadlock.
12
- * **Shell commands** go through the ``run_shell_command`` hook, which is async
13
- and already runs on the ACP loop, so it can ``await`` the client directly.
14
-
15
- Both edges fail **closed** (deny) if the connection is gone or the client errors.
16
- A denial nobody chose -- a cancelled, failed or timed-out request, or an option
17
- we do not recognize -- is reported as ``PermissionNotDecided`` rather than as the
18
- user rejecting the operation, so the model is not told the user said no.
12
+ * **Shell commands** go through core's shared shell gate
13
+ (``get_user_approval_async`` -> the same approval backend), so yolo mode and
14
+ sub-agent handling stay in core. Cores older than ``can_prompt_for_approval``
15
+ lack that gate, so a ``run_shell_command`` fallback hook is registered for them
16
+ only.
17
+
18
+ Neither edge has a timeout: a dialog waits for a person. Both fail **closed**
19
+ (deny) if the connection is gone, the client errors, or the session is cancelled
20
+ or closed (``cancel_pending``). A denial nobody chose is reported as
21
+ ``PermissionNotDecided`` rather than as the user rejecting the operation, so the
22
+ model is not told the user said no.
19
23
  """
20
24
 
21
25
  from __future__ import annotations
22
26
 
23
27
  import asyncio
28
+ import concurrent.futures
24
29
  import logging
30
+ import threading
25
31
  import uuid
26
- from typing import Any, Dict, Optional, Tuple
32
+ from typing import Any, Dict, Optional, Set, Tuple
27
33
 
28
34
  from acp.schema import PermissionOption, ToolCallUpdate
29
35
 
@@ -40,9 +46,10 @@ except ImportError: # pragma: no cover - code_puppy without the marker type
40
46
 
41
47
  logger = logging.getLogger(__name__)
42
48
 
43
- # How long to wait for a human in the client to answer a permission dialog. Dialogs
44
- # can sit for a while; deny (fail closed) if it's truly abandoned.
45
- _PERMISSION_TIMEOUT_S = 600
49
+ # In-flight approval bridges (file and shell) per session, so ``cancel_pending`` can unblock
50
+ # the tool threads waiting on them.
51
+ _PENDING: Dict[str, Set[concurrent.futures.Future]] = {}
52
+ _PENDING_LOCK = threading.Lock()
46
53
 
47
54
  # The allow/deny options we present. The client echoes back the chosen ``option_id``.
48
55
  _OPTIONS = [
@@ -73,25 +80,19 @@ async def _ask_client_outcome(
73
80
  """Show an allow/deny dialog in the client.
74
81
 
75
82
  Returns ``(True, None)`` when allowed and ``(False, None)`` when a person
76
- selected Reject. Every other denial -- no connection, a failed or
77
- timed-out request, a cancelled dialog, an unknown option -- returns
83
+ selected Reject. Every other denial -- no connection, a failed request, a
84
+ cancelled dialog, an unknown option -- returns
78
85
  ``(False, PermissionNotDecided(reason))``.
79
86
  """
80
87
  connection = state.get_connection()
81
88
  if connection is None:
82
89
  return False, PermissionNotDecided("The client connection is unavailable.")
83
90
  try:
84
- response = await asyncio.wait_for(
85
- connection.request_permission(
86
- options=list(_OPTIONS),
87
- session_id=session_id,
88
- tool_call=_tool_call_ref(title),
89
- ),
90
- timeout=_PERMISSION_TIMEOUT_S,
91
+ response = await connection.request_permission(
92
+ options=list(_OPTIONS),
93
+ session_id=session_id,
94
+ tool_call=_tool_call_ref(title),
91
95
  )
92
- except asyncio.TimeoutError:
93
- logger.warning("session/request_permission timed out; denying")
94
- return False, PermissionNotDecided("The permission request timed out.")
95
96
  except Exception: # noqa: BLE001
96
97
  logger.exception("session/request_permission failed; denying")
97
98
  return False, PermissionNotDecided(
@@ -118,6 +119,37 @@ async def _ask_client(session_id: str, title: str) -> bool:
118
119
  return allowed
119
120
 
120
121
 
122
+ def _track_pending(session_id: str, future: concurrent.futures.Future) -> None:
123
+ with _PENDING_LOCK:
124
+ _PENDING.setdefault(session_id, set()).add(future)
125
+
126
+
127
+ def _untrack_pending(session_id: str, future: concurrent.futures.Future) -> None:
128
+ with _PENDING_LOCK:
129
+ futures = _PENDING.get(session_id)
130
+ if futures is None:
131
+ return
132
+ futures.discard(future)
133
+ if not futures:
134
+ del _PENDING[session_id]
135
+
136
+
137
+ def cancel_pending(session_id: Optional[str] = None) -> None:
138
+ """Cancel in-flight approvals (file and shell) for one session, or all when ``None``.
139
+
140
+ Each cancelled wait returns ``PermissionNotDecided``, so the blocked tool
141
+ thread unwinds instead of waiting on a dialog nobody will answer.
142
+ """
143
+ with _PENDING_LOCK:
144
+ if session_id is None:
145
+ futures = [f for group in _PENDING.values() for f in group]
146
+ else:
147
+ futures = list(_PENDING.get(session_id, ()))
148
+ # Cancel outside the lock: cancelling runs callbacks that may re-enter tracking.
149
+ for future in futures:
150
+ future.cancel()
151
+
152
+
121
153
  def _approval_backend(
122
154
  title: str, message: str, preview: Optional[str]
123
155
  ) -> Tuple[bool, Optional[str]]:
@@ -148,41 +180,40 @@ def _approval_backend(
148
180
  future = asyncio.run_coroutine_threadsafe(
149
181
  _ask_client_outcome(session_id, title), loop
150
182
  )
183
+ _track_pending(session_id, future)
151
184
  try:
152
- # A little longer than the request's own timeout, which answers first.
153
- allowed, not_decided = future.result(_PERMISSION_TIMEOUT_S + 5)
154
- except Exception: # noqa: BLE001 - includes TimeoutError
185
+ allowed, not_decided = future.result()
186
+ except concurrent.futures.CancelledError:
187
+ return False, PermissionNotDecided("The permission request was cancelled.")
188
+ except Exception: # noqa: BLE001
155
189
  # Abandon the in-flight request so it doesn't linger on the loop.
156
190
  future.cancel()
157
191
  logger.exception("ACP approval bridge failed; denying")
158
192
  return False, PermissionNotDecided(
159
193
  "The permission request could not be completed."
160
194
  )
195
+ finally:
196
+ _untrack_pending(session_id, future)
161
197
  return bool(allowed), not_decided
162
198
 
163
199
 
164
- async def _on_run_shell_command(
200
+ async def _legacy_shell_hook(
165
201
  context: Any, command: str, cwd: Optional[str] = None, timeout: int = 60
166
202
  ) -> Optional[Dict[str, Any]]:
167
- """``run_shell_command`` hook: gate shell execution through the client.
203
+ """``run_shell_command`` fallback for cores without core's shell approval gate.
168
204
 
169
- Returns ``None`` to allow (the hook's "no objection"), or a
205
+ Mirrors that gate's yolo and sub-agent skips. Returns ``None`` to allow, or a
170
206
  ``{"blocked": True, ...}`` dict to deny. Inert outside ACP mode.
171
-
172
- Honors yolo mode: when the user has opted out of approvals we do *not*
173
- surface a client dialog, matching Code Puppy's file-permission edge (which
174
- skips its prompt in yolo mode). Otherwise ACP + yolo would silently
175
- auto-approve file writes yet still prompt for every shell command.
176
207
  """
177
- session_id = state.get_active_session_id()
178
- if session_id is None:
208
+ if state.get_active_session_id() is None:
179
209
  return None
180
210
  from code_puppy.config import get_yolo_mode
211
+ from code_puppy.tools.subagent_context import is_subagent
181
212
 
182
- if get_yolo_mode():
213
+ if get_yolo_mode() or is_subagent():
183
214
  return None
184
- allowed, not_decided = await _ask_client_outcome(
185
- session_id, f"Run shell command: {command}"
215
+ allowed, not_decided = await asyncio.to_thread(
216
+ _approval_backend, "Shell Command", f"Run shell command: {command}", None
186
217
  )
187
218
  if allowed:
188
219
  return None
@@ -202,21 +233,37 @@ async def _on_run_shell_command(
202
233
  }
203
234
 
204
235
 
236
+ # Kept so existing importers/tests of the pre-rename name keep working; core's
237
+ # tests/test_acp_plugin.py still calls it.
238
+ _on_run_shell_command = _legacy_shell_hook
239
+
240
+
241
+ _legacy_shell_hook_registered = False
242
+
243
+
205
244
  def install() -> None:
206
- """Install the file approval backend + the shell permission hook."""
207
- from code_puppy.tools.common import set_approval_backend
245
+ """Install the file approval backend, plus the legacy shell hook on old cores."""
246
+ from code_puppy.tools import common
208
247
 
209
- set_approval_backend(_approval_backend)
210
- register_callback("run_shell_command", _on_run_shell_command)
248
+ global _legacy_shell_hook_registered
249
+ common.set_approval_backend(_approval_backend)
250
+ # Remove once the minimum supported core ships can_prompt_for_approval: until
251
+ # then an older core would run shell commands without asking the client.
252
+ if not hasattr(common, "can_prompt_for_approval"):
253
+ register_callback("run_shell_command", _legacy_shell_hook)
254
+ _legacy_shell_hook_registered = True
211
255
 
212
256
 
213
257
  def uninstall() -> None:
214
- """Remove the approval backend + shell hook so normal stdin prompting resumes."""
258
+ """Remove the approval backend and legacy hook so normal stdin prompting resumes."""
215
259
  from code_puppy.callbacks import unregister_callback
216
- from code_puppy.tools.common import set_approval_backend
217
-
218
- set_approval_backend(None)
219
- try:
220
- unregister_callback("run_shell_command", _on_run_shell_command)
221
- except Exception: # noqa: BLE001
222
- logger.debug("ACP: run_shell_command unregister failed", exc_info=True)
260
+ from code_puppy.tools import common
261
+
262
+ global _legacy_shell_hook_registered
263
+ common.set_approval_backend(None)
264
+ if _legacy_shell_hook_registered:
265
+ _legacy_shell_hook_registered = False
266
+ try:
267
+ unregister_callback("run_shell_command", _legacy_shell_hook)
268
+ except Exception: # noqa: BLE001
269
+ logger.debug("ACP: run_shell_command unregister failed", exc_info=True)
@@ -94,6 +94,7 @@ async def _serve() -> int:
94
94
  await run_agent(agent)
95
95
  finally:
96
96
  agent.shutdown()
97
+ permissions.cancel_pending()
97
98
  permissions.uninstall()
98
99
  io_delegation.uninstall()
99
100
  state.set_connection(None, None)
@@ -65,6 +65,8 @@ class ACPSession:
65
65
  # Set while a ``session/prompt`` is in flight so ``cancel`` has a task
66
66
  # to cancel. ``None`` means idle.
67
67
  self._task: Optional["asyncio.Task[Any]"] = None
68
+ # Set only when cancel() cancels a live task; see cancel().
69
+ self._cancel_requested = False
68
70
 
69
71
  async def prompt(self, blocks: List[Any]) -> PromptResult:
70
72
  """Run the agent on a user turn and return the stop reason + usage.
@@ -117,6 +119,7 @@ class ACPSession:
117
119
  state.begin_run(self.session_id)
118
120
  result: Any = None
119
121
  error: Optional[BaseException] = None
122
+ self._cancel_requested = False
120
123
  try:
121
124
  self._task = asyncio.ensure_future(
122
125
  self.agent.run_with_mcp(
@@ -126,8 +129,13 @@ class ACPSession:
126
129
  )
127
130
  )
128
131
  result = await self._task
132
+ # Core swallows cancellation, so the handler's own cancel would be lost;
133
+ # the SDK response send then hangs after the connection closes.
134
+ current = asyncio.current_task()
135
+ if current is not None and current.cancelling() > 0:
136
+ raise asyncio.CancelledError
129
137
  self._absorb_history(result)
130
- stop_reason = STOP_END_TURN
138
+ stop_reason = STOP_CANCELLED if self._cancel_requested else STOP_END_TURN
131
139
  except asyncio.CancelledError:
132
140
  # Two ways here: our own cancel cancelled the inner task (report
133
141
  # ``cancelled``), or THIS coroutine was cancelled (SDK teardown) while the
@@ -195,7 +203,9 @@ class ACPSession:
195
203
 
196
204
  Besides cancelling the asyncio task, force-kill any local shell
197
205
  processes the run spawned so they don't orphan. (Shells delegated to
198
- the client run client-side and are unaffected.)
206
+ the client run client-side and are unaffected.) Core may swallow the
207
+ cancel, so ``_cancel_requested`` is the authoritative signal that the
208
+ turn was cancelled.
199
209
 
200
210
  Only *requests* cancellation -- delivery happens at the task's next
201
211
  await point, whenever that is, not immediately. Callers that need
@@ -204,6 +214,8 @@ class ACPSession:
204
214
  """
205
215
  task = self._task
206
216
  if task is not None and not task.done():
217
+ # Live-task only, so an idle cancel can't mark the next turn cancelled.
218
+ self._cancel_requested = True
207
219
  task.cancel()
208
220
  try:
209
221
  from code_puppy.tools.command_runner import (
@@ -17,8 +17,11 @@ option by its ``category``, so this is the shape that actually populates them:
17
17
  * **Streaming toggle** — an On/Off ``select`` option. (A boolean option would
18
18
  be more natural, but Zed 1.7.2 renders only ``select`` options in its bottom
19
19
  bar -- a boolean shows as "Unknown" -- so every control here is a select.) We
20
- deliberately expose only this safe setting; we do **not** expose a
21
- yolo/approval-bypass toggle (permissions must stay client-driven).
20
+ deliberately expose only this safe setting.
21
+
22
+ * **Approvals** — a read-only ``select`` (``approval_mode``) reporting ``ask`` or
23
+ ``auto`` from the CLI's yolo setting. Clients cannot change it: writes fall
24
+ through like unknown ids, so permissions stay client-driven.
22
25
 
23
26
  All accessors are best-effort and degrade to "nothing to offer" on error.
24
27
  """
@@ -42,6 +45,13 @@ MODE_OPTION_ID = "mode"
42
45
  _STREAMING_ID = "enable_streaming"
43
46
  _STREAMING_ON = "on"
44
47
  _STREAMING_OFF = "off"
48
+ _APPROVAL_ID = "approval_mode"
49
+ _APPROVAL_ASK = "ask"
50
+ _APPROVAL_AUTO = "auto"
51
+ _APPROVAL_DESCRIPTIONS = {
52
+ _APPROVAL_ASK: "Ask before commands and edits",
53
+ _APPROVAL_AUTO: "Run without asking",
54
+ }
45
55
 
46
56
  # Exactly one operating mode, but advertised as a category="mode" select so the
47
57
  # client's dropdown shows "Default" rather than an empty "Unknown" control.
@@ -105,6 +115,30 @@ def _model_option() -> Optional[SessionConfigOptionSelect]:
105
115
  )
106
116
 
107
117
 
118
+ def _approval_option() -> SessionConfigOptionSelect:
119
+ """Report the CLI's approval mode as a read-only select (ask or auto).
120
+
121
+ Only the current value is listed, so the client has nothing to pick.
122
+ """
123
+ from code_puppy import config
124
+
125
+ current = _APPROVAL_AUTO if config.get_yolo_mode() else _APPROVAL_ASK
126
+ return SessionConfigOptionSelect(
127
+ id=_APPROVAL_ID,
128
+ name="Approvals",
129
+ type="select",
130
+ current_value=current,
131
+ options=[
132
+ SessionConfigSelectOption(
133
+ value=current,
134
+ name=current.capitalize(),
135
+ description=_APPROVAL_DESCRIPTIONS[current],
136
+ )
137
+ ],
138
+ description="Read-only: set by the CLI configuration.",
139
+ )
140
+
141
+
108
142
  def set_model(model_id: str) -> bool:
109
143
  """Switch the active model. Returns ``True`` on success."""
110
144
  try:
@@ -156,6 +190,10 @@ def config_options() -> List[Any]:
156
190
  )
157
191
  except Exception: # noqa: BLE001
158
192
  logger.debug("ACP: could not build streaming option", exc_info=True)
193
+ try:
194
+ opts.append(_approval_option())
195
+ except Exception: # noqa: BLE001
196
+ logger.debug("ACP: could not build approval option", exc_info=True)
159
197
  return opts
160
198
 
161
199
 
@@ -1,7 +1,7 @@
1
1
  """Run context for the active ACP connection.
2
2
 
3
- Code Puppy's approval and I/O seams live at its *edges* (the
4
- ``run_shell_command`` hook, the ``tools.common`` approval backend, and the
3
+ Code Puppy's approval and I/O seams live at its *edges* (the ``tools.common`` approval
4
+ backend, the legacy ``run_shell_command`` hook on older cores, and the
5
5
  ``tools.io_backends`` filesystem/command backends). Those are plain module
6
6
  functions with no reference to the live ACP connection, so this module is the
7
7
  small, explicit bridge between them and the running agent.