code-puppy 0.0.563__tar.gz → 0.0.565__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 (372) hide show
  1. {code_puppy-0.0.563 → code_puppy-0.0.565}/PKG-INFO +1 -1
  2. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/config.py +13 -0
  3. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/renderers.py +82 -28
  4. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/rich_renderer.py +45 -14
  5. {code_puppy-0.0.563 → code_puppy-0.0.565}/pyproject.toml +1 -1
  6. {code_puppy-0.0.563 → code_puppy-0.0.565}/.gitignore +0 -0
  7. {code_puppy-0.0.563 → code_puppy-0.0.565}/LICENSE +0 -0
  8. {code_puppy-0.0.563 → code_puppy-0.0.565}/README.md +0 -0
  9. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/__init__.py +0 -0
  10. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/__main__.py +0 -0
  11. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/__init__.py +0 -0
  12. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_builder.py +0 -0
  13. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_compaction.py +0 -0
  14. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_diagnostics.py +0 -0
  15. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_history.py +0 -0
  16. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_key_listeners.py +0 -0
  17. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_non_streaming_render.py +0 -0
  18. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_run_signals.py +0 -0
  19. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_runtime.py +0 -0
  20. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/_steer_processor.py +0 -0
  21. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_code_puppy.py +0 -0
  22. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_creator_agent.py +0 -0
  23. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_helios.py +0 -0
  24. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_manager.py +0 -0
  25. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_planning.py +0 -0
  26. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/agent_qa_kitten.py +0 -0
  27. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/base_agent.py +0 -0
  28. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/event_stream_handler.py +0 -0
  29. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/json_agent.py +0 -0
  30. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/run_stats.py +0 -0
  31. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/smooth_stream.py +0 -0
  32. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/agents/subagent_stream_handler.py +0 -0
  33. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/callbacks.py +0 -0
  34. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/chatgpt_codex_client.py +0 -0
  35. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/claude_cache_client.py +0 -0
  36. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/cli_runner.py +0 -0
  37. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/__init__.py +0 -0
  38. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/add_model_menu.py +0 -0
  39. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/agent_menu.py +0 -0
  40. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/attachments.py +0 -0
  41. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/autosave_menu.py +0 -0
  42. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/clipboard.py +0 -0
  43. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/colors_menu.py +0 -0
  44. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/command_handler.py +0 -0
  45. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/command_registry.py +0 -0
  46. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/config_apply.py +0 -0
  47. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/config_commands.py +0 -0
  48. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/core_commands.py +0 -0
  49. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/diff_menu.py +0 -0
  50. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/file_index.py +0 -0
  51. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/file_path_completion.py +0 -0
  52. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/judges_menu.py +0 -0
  53. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/load_context_completion.py +0 -0
  54. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/__init__.py +0 -0
  55. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/base.py +0 -0
  56. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
  57. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
  58. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
  59. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/edit_command.py +0 -0
  60. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/handler.py +0 -0
  61. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/help_command.py +0 -0
  62. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/install_command.py +0 -0
  63. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/install_menu.py +0 -0
  64. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/list_command.py +0 -0
  65. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/logs_command.py +0 -0
  66. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/remove_command.py +0 -0
  67. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/restart_command.py +0 -0
  68. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/search_command.py +0 -0
  69. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
  70. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/start_all_command.py +0 -0
  71. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/start_command.py +0 -0
  72. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/status_command.py +0 -0
  73. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
  74. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/stop_command.py +0 -0
  75. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/utils.py +0 -0
  76. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
  77. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp_binding_menu.py +0 -0
  78. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/mcp_completion.py +0 -0
  79. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/model_picker_completion.py +0 -0
  80. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/model_settings_menu.py +0 -0
  81. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/onboarding_slides.py +0 -0
  82. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/onboarding_wizard.py +0 -0
  83. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/pagination.py +0 -0
  84. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/pin_command_completion.py +0 -0
  85. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
  86. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/session_commands.py +0 -0
  87. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu.py +0 -0
  88. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_catalog.py +0 -0
  89. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_render.py +0 -0
  90. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_schema.py +0 -0
  91. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_settings.py +0 -0
  92. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_shims.py +0 -0
  93. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/set_menu_values.py +0 -0
  94. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/shell_passthrough.py +0 -0
  95. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/skills_completion.py +0 -0
  96. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/uc_menu.py +0 -0
  97. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/utils.py +0 -0
  98. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/command_line/wiggum_state.py +0 -0
  99. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/error_logging.py +0 -0
  100. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/gemini_code_assist.py +0 -0
  101. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/gemini_model.py +0 -0
  102. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/README.md +0 -0
  103. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/__init__.py +0 -0
  104. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/aliases.py +0 -0
  105. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/engine.py +0 -0
  106. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/executor.py +0 -0
  107. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/matcher.py +0 -0
  108. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/models.py +0 -0
  109. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/registry.py +0 -0
  110. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/hook_engine/validator.py +0 -0
  111. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/http_utils.py +0 -0
  112. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/keymap.py +0 -0
  113. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/list_filtering.py +0 -0
  114. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/main.py +0 -0
  115. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/__init__.py +0 -0
  116. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/agent_bindings.py +0 -0
  117. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/async_lifecycle.py +0 -0
  118. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/blocking_startup.py +0 -0
  119. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/captured_stdio_server.py +0 -0
  120. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/circuit_breaker.py +0 -0
  121. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/config_wizard.py +0 -0
  122. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/dashboard.py +0 -0
  123. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/error_isolation.py +0 -0
  124. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/examples/retry_example.py +0 -0
  125. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/health_monitor.py +0 -0
  126. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/managed_server.py +0 -0
  127. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/manager.py +0 -0
  128. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/mcp_logs.py +0 -0
  129. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/registry.py +0 -0
  130. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/retry_manager.py +0 -0
  131. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/server_registry_catalog.py +0 -0
  132. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/status_tracker.py +0 -0
  133. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_/system_tools.py +0 -0
  134. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_prompts/__init__.py +0 -0
  135. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/mcp_prompts/hook_creator.py +0 -0
  136. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/__init__.py +0 -0
  137. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/bus.py +0 -0
  138. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/commands.py +0 -0
  139. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/markdown_patches.py +0 -0
  140. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/message_queue.py +0 -0
  141. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/messages.py +0 -0
  142. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/pause_controller.py +0 -0
  143. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/queue_console.py +0 -0
  144. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/__init__.py +0 -0
  145. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/console_spinner.py +0 -0
  146. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/spinner/spinner_base.py +0 -0
  147. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/messaging/subagent_console.py +0 -0
  148. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_descriptions.py +0 -0
  149. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_factory.py +0 -0
  150. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_switching.py +0 -0
  151. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/model_utils.py +0 -0
  152. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models.json +0 -0
  153. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models_dev_api.json +0 -0
  154. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/models_dev_parser.py +0 -0
  155. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/__init__.py +0 -0
  156. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/__init__.py +0 -0
  157. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/config.py +0 -0
  158. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/discovery.py +0 -0
  159. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/downloader.py +0 -0
  160. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/enabled_skills.py +0 -0
  161. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/installer.py +0 -0
  162. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/metadata.py +0 -0
  163. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
  164. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
  165. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
  166. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
  167. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skill_commands.py +0 -0
  168. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
  169. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
  170. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/README.md +0 -0
  171. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/__init__.py +0 -0
  172. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/line_editor.py +0 -0
  173. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/register_callbacks.py +0 -0
  174. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/agent_steering/steering_prompt.py +0 -0
  175. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/__init__.py +0 -0
  176. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/config.py +0 -0
  177. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/register_callbacks.py +0 -0
  178. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/aws_bedrock/utils.py +0 -0
  179. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/README.md +0 -0
  180. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/__init__.py +0 -0
  181. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/config.py +0 -0
  182. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/discovery.py +0 -0
  183. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/register_callbacks.py +0 -0
  184. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/token.py +0 -0
  185. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/azure_foundry/utils.py +0 -0
  186. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
  187. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
  188. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
  189. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
  190. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
  191. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
  192. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/__init__.py +0 -0
  193. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/config.py +0 -0
  194. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_hooks/register_callbacks.py +0 -0
  195. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
  196. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
  197. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
  198. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
  199. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/fast_mode.py +0 -0
  200. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/prompt_handler.py +0 -0
  201. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
  202. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/test_fast_mode.py +0 -0
  203. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
  204. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  205. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
  206. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/config.py +0 -0
  207. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/__init__.py +0 -0
  208. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/register_callbacks.py +0 -0
  209. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/context_indicator/usage.py +0 -0
  210. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/__init__.py +0 -0
  211. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/config.py +0 -0
  212. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/reasoning_client.py +0 -0
  213. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/register_callbacks.py +0 -0
  214. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/copilot_auth/utils.py +0 -0
  215. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
  216. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
  217. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/__init__.py +0 -0
  218. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/cancel.py +0 -0
  219. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/commands.py +0 -0
  220. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/config.py +0 -0
  221. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/lifecycle.py +0 -0
  222. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/register_callbacks.py +0 -0
  223. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/runtime.py +0 -0
  224. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/workflow_ids.py +0 -0
  225. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/dbos_durable_exec/wrapper.py +0 -0
  226. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/__init__.py +0 -0
  227. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/detector.py +0 -0
  228. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/destructive_command_guard/register_callbacks.py +0 -0
  229. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/__init__.py +0 -0
  230. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/config.py +0 -0
  231. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/register_callbacks.py +0 -0
  232. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/emoji_filter/stripper.py +0 -0
  233. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/example_custom_command/README.md +0 -0
  234. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
  235. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
  236. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
  237. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/__init__.py +0 -0
  238. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/detector.py +0 -0
  239. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/register_callbacks.py +0 -0
  240. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/force_push_guard/test_detector.py +0 -0
  241. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
  242. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
  243. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
  244. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/frontend_emitter/session_context.py +0 -0
  245. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_creator/__init__.py +0 -0
  246. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_creator/register_callbacks.py +0 -0
  247. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/__init__.py +0 -0
  248. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/config.py +0 -0
  249. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/hooks_menu.py +0 -0
  250. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/hook_manager/register_callbacks.py +0 -0
  251. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/oauth_puppy_html.py +0 -0
  252. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/README.md +0 -0
  253. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/__init__.py +0 -0
  254. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/agent_obsidian.py +0 -0
  255. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/obsidian_agent/register_callbacks.py +0 -0
  256. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama/__init__.py +0 -0
  257. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama/register_callbacks.py +0 -0
  258. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/__init__.py +0 -0
  259. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/completer.py +0 -0
  260. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/ollama_setup/register_callbacks.py +0 -0
  261. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/__init__.py +0 -0
  262. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/plugins_menu.py +0 -0
  263. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/plugin_list/register_callbacks.py +0 -0
  264. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/pop_command/__init__.py +0 -0
  265. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/pop_command/register_callbacks.py +0 -0
  266. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/__init__.py +0 -0
  267. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/config.py +0 -0
  268. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prompt_newline/register_callbacks.py +0 -0
  269. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/__init__.py +0 -0
  270. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_menu.py +0 -0
  271. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_model.py +0 -0
  272. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/prune_render.py +0 -0
  273. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/prune/register_callbacks.py +0 -0
  274. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/README.md +0 -0
  275. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/__init__.py +0 -0
  276. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/commands.py +0 -0
  277. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/config.py +0 -0
  278. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/kennel.py +0 -0
  279. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/packer.py +0 -0
  280. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/recorder.py +0 -0
  281. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/register_callbacks.py +0 -0
  282. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/retriever.py +0 -0
  283. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/schema.py +0 -0
  284. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/state.py +0 -0
  285. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/tools.py +0 -0
  286. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/puppy_kennel/wings.py +0 -0
  287. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/review_pr/__init__.py +0 -0
  288. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/review_pr/register_callbacks.py +0 -0
  289. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/__init__.py +0 -0
  290. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
  291. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
  292. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
  293. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/__init__.py +0 -0
  294. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/config.py +0 -0
  295. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/payload.py +0 -0
  296. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/prompt_patch.py +0 -0
  297. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/register_callbacks.py +0 -0
  298. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/runner.py +0 -0
  299. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/statusline/statusline_command.py +0 -0
  300. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/switch_agent_resume/__init__.py +0 -0
  301. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/switch_agent_resume/register_callbacks.py +0 -0
  302. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/__init__.py +0 -0
  303. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/register_callbacks.py +0 -0
  304. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/synthetic_status/status_api.py +0 -0
  305. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/README.md +0 -0
  306. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/__init__.py +0 -0
  307. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/bundled_palettes.py +0 -0
  308. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/content_styles.py +0 -0
  309. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/osc_palette.py +0 -0
  310. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/picker.py +0 -0
  311. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/register_callbacks.py +0 -0
  312. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/rich_themes.py +0 -0
  313. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/theme/themes.py +0 -0
  314. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/__init__.py +0 -0
  315. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/ratios.py +0 -0
  316. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/token_ratio_learner/register_callbacks.py +0 -0
  317. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
  318. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/models.py +0 -0
  319. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
  320. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/registry.py +0 -0
  321. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
  322. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wide_completion_menu/__init__.py +0 -0
  323. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wide_completion_menu/register_callbacks.py +0 -0
  324. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/__init__.py +0 -0
  325. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/judge.py +0 -0
  326. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/judge_config.py +0 -0
  327. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/register_callbacks.py +0 -0
  328. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/plugins/wiggum/state.py +0 -0
  329. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/provider_credentials.py +0 -0
  330. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/provider_identity.py +0 -0
  331. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/pydantic_patches.py +0 -0
  332. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/reopenable_async_client.py +0 -0
  333. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/round_robin_model.py +0 -0
  334. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/session_storage.py +0 -0
  335. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/status_display.py +0 -0
  336. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/summarization_agent.py +0 -0
  337. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/terminal_utils.py +0 -0
  338. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/__init__.py +0 -0
  339. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/agent_tools.py +0 -0
  340. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/__init__.py +0 -0
  341. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/constants.py +0 -0
  342. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
  343. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/handler.py +0 -0
  344. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/models.py +0 -0
  345. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/registration.py +0 -0
  346. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/renderers.py +0 -0
  347. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
  348. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/theme.py +0 -0
  349. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
  350. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/__init__.py +0 -0
  351. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_control.py +0 -0
  352. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_interactions.py +0 -0
  353. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_locators.py +0 -0
  354. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_manager.py +0 -0
  355. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_navigation.py +0 -0
  356. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_screenshot.py +0 -0
  357. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_scripts.py +0 -0
  358. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/browser/browser_workflows.py +0 -0
  359. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/command_runner.py +0 -0
  360. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/common.py +0 -0
  361. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/display.py +0 -0
  362. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/file_modifications.py +0 -0
  363. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/file_operations.py +0 -0
  364. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/image_tools.py +0 -0
  365. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/model_tools.py +0 -0
  366. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/skills_tools.py +0 -0
  367. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/subagent_context.py +0 -0
  368. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/subagent_invocation.py +0 -0
  369. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/tools_content.py +0 -0
  370. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/tools/universal_constructor.py +0 -0
  371. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/uvx_detection.py +0 -0
  372. {code_puppy-0.0.563 → code_puppy-0.0.565}/code_puppy/version_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-puppy
3
- Version: 0.0.563
3
+ Version: 0.0.565
4
4
  Summary: Code generation agent
5
5
  Project-URL: repository, https://github.com/mpfaffenberger/code_puppy
6
6
  Project-URL: HomePage, https://github.com/mpfaffenberger/code_puppy
@@ -184,6 +184,17 @@ def get_enable_streaming() -> bool:
184
184
  return str(val).lower() in ("1", "true", "yes", "on")
185
185
 
186
186
 
187
+ def get_suppress_directory_listing() -> bool:
188
+ """
189
+ Get the suppress_directory_listing configuration value.
190
+ Returns True if directory listing displays should be suppressed, False otherwise.
191
+ """
192
+ val = get_value("suppress_directory_listing")
193
+ if val is None:
194
+ return True # Default to True (suppress by default)
195
+ return str(val).lower() in ("1", "true", "yes", "on")
196
+
197
+
187
198
  DEFAULT_SECTION = "puppy"
188
199
  REQUIRED_KEYS = ["puppy_name", "owner_name"]
189
200
 
@@ -339,6 +350,8 @@ def get_config_keys():
339
350
  default_keys.append("max_hook_retries")
340
351
  # Add streaming control key
341
352
  default_keys.append("enable_streaming")
353
+ # Add suppress directory listing key
354
+ default_keys.append("suppress_directory_listing")
342
355
  # Add cancel agent key configuration
343
356
  default_keys.append("cancel_agent_key")
344
357
  # Add max pause seconds configuration (used by pause/steer feature to
@@ -66,21 +66,26 @@ def _get_suppress_thinking() -> bool:
66
66
  return _suppress_thinking_getter()
67
67
 
68
68
 
69
- # Message types that are collapsed or hidden in low output mode.
70
- _LOW_MODE_COLLAPSIBLE = frozenset(
71
- {
72
- MessageType.INFO,
73
- MessageType.SUCCESS,
74
- MessageType.WARNING,
75
- MessageType.TOOL_OUTPUT,
76
- MessageType.COMMAND_OUTPUT,
77
- MessageType.FILE_OPERATION,
78
- MessageType.AGENT_REASONING,
79
- MessageType.PLANNED_NEXT_STEPS,
80
- MessageType.SYSTEM,
81
- MessageType.DEBUG,
82
- }
83
- )
69
+ # Low-mode peek formatting.
70
+ _PEEK_INDENT = " "
71
+ _PEEK_MAX_LEN = 80
72
+
73
+ # In low mode, these types condense to a dim ``label: summary`` line.
74
+ _LOW_MODE_PEEK_LABELS = {
75
+ MessageType.INFO: "info",
76
+ MessageType.SUCCESS: "success",
77
+ MessageType.WARNING: "warning",
78
+ MessageType.TOOL_OUTPUT: "tool",
79
+ MessageType.COMMAND_OUTPUT: "output",
80
+ MessageType.FILE_OPERATION: "file",
81
+ MessageType.AGENT_REASONING: "thinking",
82
+ MessageType.PLANNED_NEXT_STEPS: "plan",
83
+ MessageType.SYSTEM: "system",
84
+ MessageType.DEBUG: "debug",
85
+ }
86
+
87
+ # Derived set kept for readability / backwards compatibility.
88
+ _LOW_MODE_COLLAPSIBLE = frozenset(_LOW_MODE_PEEK_LABELS)
84
89
 
85
90
  # Types suppressed by suppress_informational_messages toggle.
86
91
  _INFORMATIONAL_TYPES = frozenset(
@@ -101,15 +106,12 @@ _THINKING_TYPES = frozenset(
101
106
 
102
107
 
103
108
  def _should_suppress_legacy(message: UIMessage) -> bool:
104
- """Return True if *message* should be silently dropped.
109
+ """Return True if *message* should be dropped entirely.
105
110
 
106
- Checks both individual suppress toggles and the unified output-level
107
- density control. This is render-only filtering — autosave and
108
- callbacks always see the full data.
111
+ Only ``suppress_*`` toggles drop messages; low mode condenses via
112
+ ``_build_legacy_peek``. Render-only — autosave/callbacks see full data.
109
113
  """
110
- # Individual suppress toggles high mode overrides ALL of them
111
- # (the user asked for maximum visibility). This mirrors
112
- # rich_renderer._do_render() and event_stream_handler._suppress_thinking_stream().
114
+ # Suppress toggles; high mode overrides them.
113
115
  if (
114
116
  message.type in _INFORMATIONAL_TYPES
115
117
  and _get_output_level() != "high"
@@ -122,13 +124,57 @@ def _should_suppress_legacy(message: UIMessage) -> bool:
122
124
  and _get_suppress_thinking()
123
125
  ):
124
126
  return True
125
- # Low output mode collapses everything except errors, responses,
126
- # and blocking prompts.
127
- if _get_output_level() == "low" and message.type in _LOW_MODE_COLLAPSIBLE:
128
- return True
129
127
  return False
130
128
 
131
129
 
130
+ def _summarize_peek_content(content) -> str:
131
+ """Collapse arbitrary message content to a single truncated line."""
132
+ if isinstance(content, Text):
133
+ text = content.plain
134
+ elif isinstance(content, str):
135
+ text = content
136
+ else:
137
+ text = str(content)
138
+ # First non-empty line keeps the peek to a single row.
139
+ first_line = next((ln for ln in text.splitlines() if ln.strip()), "").strip()
140
+ if len(first_line) > _PEEK_MAX_LEN:
141
+ first_line = first_line[: _PEEK_MAX_LEN - 3] + "..."
142
+ return first_line
143
+
144
+
145
+ def _build_legacy_peek(message: UIMessage) -> Optional[Text]:
146
+ """Return a dim one-line peek for low mode, or ``None`` to render fully.
147
+
148
+ Returns pre-styled ``Text`` to avoid Rich markup mis-parsing.
149
+ """
150
+ if _get_output_level() != "low":
151
+ return None
152
+ label = _LOW_MODE_PEEK_LABELS.get(message.type)
153
+ if label is None:
154
+ return None
155
+ summary = _summarize_peek_content(message.content)
156
+ body = f"{label}: {summary}" if summary else label
157
+ return Text(f"{_PEEK_INDENT}{body}", style="dim")
158
+
159
+
160
+ def _apply_legacy_density(message: UIMessage) -> Optional[UIMessage]:
161
+ """Apply suppress / peek / full-render decision.
162
+
163
+ Used by both legacy renderers.
164
+ """
165
+ if _should_suppress_legacy(message):
166
+ return None
167
+ peek = _build_legacy_peek(message)
168
+ if peek is not None:
169
+ return UIMessage(
170
+ type=message.type,
171
+ content=peek,
172
+ timestamp=message.timestamp,
173
+ metadata=message.metadata,
174
+ )
175
+ return message
176
+
177
+
132
178
  # Threshold for emitting a ``[buffered N messages during pause]`` indicator
133
179
  # when the buffer is drained. Below this we stay silent; the user pressed
134
180
  # pause, output buffered, output flushed — no extra noise needed.
@@ -275,6 +321,12 @@ class InteractiveRenderer(MessageRenderer):
275
321
  await self._handle_human_input_request(message)
276
322
  return
277
323
 
324
+ # Output-level / suppress-toggle gate (render-only filtering).
325
+ resolved = _apply_legacy_density(message)
326
+ if resolved is None:
327
+ return
328
+ message = resolved
329
+
278
330
  from code_puppy.messaging.pause_controller import get_pause_controller
279
331
 
280
332
  pc = get_pause_controller()
@@ -387,9 +439,11 @@ class SynchronousInteractiveRenderer:
387
439
  self._handle_human_input_request(message)
388
440
  return
389
441
 
390
- # Output-level / suppress-toggle gate (render-only filtering).
391
- if _should_suppress_legacy(message):
442
+ # Output-level / suppress-toggle gate.
443
+ resolved = _apply_legacy_density(message)
444
+ if resolved is None:
392
445
  return
446
+ message = resolved
393
447
 
394
448
  from code_puppy.messaging.pause_controller import get_pause_controller
395
449
 
@@ -21,6 +21,7 @@ from rich.table import Table
21
21
  from code_puppy.config import (
22
22
  get_output_level,
23
23
  get_subagent_verbose,
24
+ get_suppress_directory_listing,
24
25
  get_suppress_informational_messages,
25
26
  get_suppress_thinking_messages,
26
27
  )
@@ -122,6 +123,9 @@ def _is_paused() -> bool:
122
123
  # Rich Console Renderer
123
124
  # =============================================================================
124
125
 
126
+ # Max length for low-mode peek lines.
127
+ _PEEK_MAX_LEN = 100
128
+
125
129
 
126
130
  class RichConsoleRenderer:
127
131
  """Rich console implementation of the renderer protocol.
@@ -198,17 +202,18 @@ class RichConsoleRenderer:
198
202
 
199
203
  # -- Output-level density helpers ----------------------------------------
200
204
 
201
- # Message types that are NEVER collapsed, even in low mode.
202
- # These are interactive prompts, structural controls, or critical info.
205
+ # Types that render fully even in low mode: interactive prompts,
206
+ # structural controls, and signal messages (invocations, responses).
207
+ # StatusPanelMessage excluded — it’s multi-line, gets a peek instead.
203
208
  _NEVER_COLLAPSE = (
204
209
  UserInputRequest,
205
210
  ConfirmationRequest,
206
211
  SelectionRequest,
207
212
  SpinnerControl,
208
213
  DividerMessage,
209
- StatusPanelMessage,
210
214
  VersionCheckMessage,
211
215
  AgentResponseMessage,
216
+ SubAgentInvocationMessage,
212
217
  SubAgentResponseMessage,
213
218
  )
214
219
 
@@ -230,14 +235,27 @@ class RichConsoleRenderer:
230
235
  return True
231
236
 
232
237
  def _render_peek(self, message: AnyMessage) -> None:
233
- """Emit a single dim line summarising *message*.
238
+ """Emit a single dim peek line for low mode.
234
239
 
235
- Called instead of the full render method when ``output_level``
236
- is ``low``.
240
+ Body is escaped to avoid Rich markup mis-parsing.
237
241
  """
238
242
  peek = self._build_peek_text(message)
239
- if peek:
240
- self._console.print(f"[dim] {peek}[/dim]")
243
+ if not peek:
244
+ return
245
+ if len(peek) > _PEEK_MAX_LEN:
246
+ peek = peek[: _PEEK_MAX_LEN - 1] + "\u2026"
247
+ self._console.print(f"[dim] {escape_rich_markup(peek)}[/dim]")
248
+
249
+ @staticmethod
250
+ def _peek_label_for_level(level: MessageLevel) -> str:
251
+ """Map a text message level to its ``label: summary`` peek label."""
252
+ labels = {
253
+ MessageLevel.WARNING: "warning",
254
+ MessageLevel.SUCCESS: "success",
255
+ MessageLevel.INFO: "info",
256
+ MessageLevel.DEBUG: "debug",
257
+ }
258
+ return labels.get(level, "info")
241
259
 
242
260
  def _build_peek_text(self, message: AnyMessage) -> str: # noqa: C901
243
261
  """Build the human-readable one-liner for a collapsed message."""
@@ -272,7 +290,11 @@ class RichConsoleRenderer:
272
290
  tokens = max(1, len(message.reasoning) // 3)
273
291
  return f"thinking: ~{tokens} tokens"
274
292
  if isinstance(message, SubAgentInvocationMessage):
275
- return f"invoke_agent: {message.agent_name}"
293
+ prompt = message.prompt.replace("\n", " ").strip()
294
+ return f"invoke_agent: {message.agent_name} -- '{prompt}'"
295
+ if isinstance(message, SubAgentResponseMessage):
296
+ resp = message.response.replace("\n", " ").strip()
297
+ return f"agent_response: {message.agent_name} -- '{resp}'"
276
298
  if isinstance(message, UniversalConstructorMessage):
277
299
  tool = f" tool={message.tool_name}" if message.tool_name else ""
278
300
  return f"constructor: {message.action}{tool}"
@@ -280,13 +302,17 @@ class RichConsoleRenderer:
280
302
  return f"skills: {len(message.skills)} available"
281
303
  if isinstance(message, SkillActivateMessage):
282
304
  return f"skill: activated {message.skill_name}"
305
+ if isinstance(message, StatusPanelMessage):
306
+ fields = ", ".join(f"{k}={v}" for k, v in message.fields.items())
307
+ summary = f"{message.title} ({fields})" if fields else message.title
308
+ return f"status: {summary}"
283
309
  if isinstance(message, TextMessage):
284
- # Info / warning / success — truncate to 80 chars.
310
+ # label: text format.
285
311
  text = message.text
286
312
  if len(text) > 80:
287
313
  text = text[:77] + "..."
288
- prefix = self._get_level_prefix(message.level)
289
- return f"{prefix}{text}"
314
+ label = self._peek_label_for_level(message.level)
315
+ return f"{label}: {text}"
290
316
  return ""
291
317
 
292
318
  # =========================================================================
@@ -462,8 +488,10 @@ class RichConsoleRenderer:
462
488
  elif isinstance(message, SubAgentInvocationMessage):
463
489
  self._render_subagent_invocation(message)
464
490
  elif isinstance(message, SubAgentResponseMessage):
465
- # Skip rendering - we now display sub-agent responses via display_non_streamed_result
466
- pass
491
+ # High mode renders via streaming or render_result_without_streaming
492
+ # in subagent_invocation.py. Non-high modes render here.
493
+ if get_output_level() != "high":
494
+ self._render_subagent_response(message)
467
495
  elif isinstance(message, UniversalConstructorMessage):
468
496
  self._render_universal_constructor(message)
469
497
  elif isinstance(message, UserInputRequest):
@@ -554,6 +582,9 @@ class RichConsoleRenderer:
554
582
  if self._should_suppress_subagent_output():
555
583
  return
556
584
 
585
+ if get_suppress_directory_listing():
586
+ return
587
+
557
588
  import os
558
589
  from collections import defaultdict
559
590
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy"
7
- version = "0.0.563"
7
+ version = "0.0.565"
8
8
  description = "Code generation agent"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
File without changes
File without changes
File without changes