code-puppy 0.0.612__tar.gz → 0.0.613__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 (429) hide show
  1. {code_puppy-0.0.612 → code_puppy-0.0.613}/PKG-INFO +1 -1
  2. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_key_listeners.py +54 -4
  3. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/terminal_utils.py +81 -0
  4. {code_puppy-0.0.612 → code_puppy-0.0.613}/pyproject.toml +1 -1
  5. {code_puppy-0.0.612 → code_puppy-0.0.613}/.gitignore +0 -0
  6. {code_puppy-0.0.612 → code_puppy-0.0.613}/LICENSE +0 -0
  7. {code_puppy-0.0.612 → code_puppy-0.0.613}/README.md +0 -0
  8. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/__init__.py +0 -0
  9. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/__main__.py +0 -0
  10. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/__init__.py +0 -0
  11. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_builder.py +0 -0
  12. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_compaction.py +0 -0
  13. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_diagnostics.py +0 -0
  14. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_history.py +0 -0
  15. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_non_streaming_render.py +0 -0
  16. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_run_signals.py +0 -0
  17. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_runtime.py +0 -0
  18. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/_steer_processor.py +0 -0
  19. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_code_puppy.py +0 -0
  20. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_creator_agent.py +0 -0
  21. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_helios.py +0 -0
  22. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_manager.py +0 -0
  23. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_planning.py +0 -0
  24. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/agent_qa_kitten.py +0 -0
  25. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/base_agent.py +0 -0
  26. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/event_stream_handler.py +0 -0
  27. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/json_agent.py +0 -0
  28. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/run_stats.py +0 -0
  29. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/smooth_stream.py +0 -0
  30. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/agents/subagent_stream_handler.py +0 -0
  31. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/callbacks.py +0 -0
  32. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/chatgpt_codex_client.py +0 -0
  33. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/claude_cache_client.py +0 -0
  34. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/cli_runner.py +0 -0
  35. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/__init__.py +0 -0
  36. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/add_model_menu.py +0 -0
  37. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/agent_menu.py +0 -0
  38. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/attachments.py +0 -0
  39. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/autosave_menu.py +0 -0
  40. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/autosave_search.py +0 -0
  41. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/clipboard.py +0 -0
  42. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/colors_menu.py +0 -0
  43. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/command_handler.py +0 -0
  44. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/command_registry.py +0 -0
  45. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/config_apply.py +0 -0
  46. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/config_commands.py +0 -0
  47. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/core_commands.py +0 -0
  48. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/diff_menu.py +0 -0
  49. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/file_index.py +0 -0
  50. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/file_path_completion.py +0 -0
  51. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/judges_menu.py +0 -0
  52. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/load_context_completion.py +0 -0
  53. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/__init__.py +0 -0
  54. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/base.py +0 -0
  55. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
  56. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
  57. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
  58. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/edit_command.py +0 -0
  59. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/handler.py +0 -0
  60. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/help_command.py +0 -0
  61. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/install_command.py +0 -0
  62. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/install_menu.py +0 -0
  63. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/list_command.py +0 -0
  64. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/logs_command.py +0 -0
  65. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/remove_command.py +0 -0
  66. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/restart_command.py +0 -0
  67. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/search_command.py +0 -0
  68. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
  69. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/start_all_command.py +0 -0
  70. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/start_command.py +0 -0
  71. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/status_command.py +0 -0
  72. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
  73. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/stop_command.py +0 -0
  74. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/utils.py +0 -0
  75. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
  76. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp_binding_menu.py +0 -0
  77. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/mcp_completion.py +0 -0
  78. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/model_picker_completion.py +0 -0
  79. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/model_settings_menu.py +0 -0
  80. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/onboarding_slides.py +0 -0
  81. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/onboarding_wizard.py +0 -0
  82. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/pagination.py +0 -0
  83. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/pin_command_completion.py +0 -0
  84. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
  85. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/session_commands.py +0 -0
  86. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu.py +0 -0
  87. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_catalog.py +0 -0
  88. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_render.py +0 -0
  89. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_schema.py +0 -0
  90. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_settings.py +0 -0
  91. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_shims.py +0 -0
  92. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/set_menu_values.py +0 -0
  93. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/shell_passthrough.py +0 -0
  94. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/skills_completion.py +0 -0
  95. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/uc_menu.py +0 -0
  96. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/utils.py +0 -0
  97. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/command_line/wiggum_state.py +0 -0
  98. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/config.py +0 -0
  99. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/error_logging.py +0 -0
  100. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/gemini_code_assist.py +0 -0
  101. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/gemini_model.py +0 -0
  102. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/README.md +0 -0
  103. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/__init__.py +0 -0
  104. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/aliases.py +0 -0
  105. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/engine.py +0 -0
  106. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/executor.py +0 -0
  107. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/matcher.py +0 -0
  108. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/models.py +0 -0
  109. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/registry.py +0 -0
  110. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/hook_engine/validator.py +0 -0
  111. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/http_utils.py +0 -0
  112. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/keymap.py +0 -0
  113. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/list_filtering.py +0 -0
  114. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/main.py +0 -0
  115. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/__init__.py +0 -0
  116. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/agent_bindings.py +0 -0
  117. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/async_lifecycle.py +0 -0
  118. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/blocking_startup.py +0 -0
  119. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/captured_stdio_server.py +0 -0
  120. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/circuit_breaker.py +0 -0
  121. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/config_wizard.py +0 -0
  122. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/dashboard.py +0 -0
  123. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/error_isolation.py +0 -0
  124. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/examples/retry_example.py +0 -0
  125. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/health_monitor.py +0 -0
  126. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/managed_server.py +0 -0
  127. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/manager.py +0 -0
  128. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/mcp_logs.py +0 -0
  129. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/registry.py +0 -0
  130. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/retry_manager.py +0 -0
  131. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/server_registry_catalog.py +0 -0
  132. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/status_tracker.py +0 -0
  133. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/system_tools.py +0 -0
  134. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
  135. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_prompts/__init__.py +0 -0
  136. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/mcp_prompts/hook_creator.py +0 -0
  137. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/__init__.py +0 -0
  138. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bar_painters.py +0 -0
  139. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bar_rendering.py +0 -0
  140. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bottom_bar.py +0 -0
  141. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/bus.py +0 -0
  142. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/commands.py +0 -0
  143. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_actions.py +0 -0
  144. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_completion.py +0 -0
  145. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_display.py +0 -0
  146. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_history.py +0 -0
  147. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_keys.py +0 -0
  148. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/editor_paste.py +0 -0
  149. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/line_editor.py +0 -0
  150. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/markdown_patches.py +0 -0
  151. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/message_queue.py +0 -0
  152. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/messages.py +0 -0
  153. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/pause_controller.py +0 -0
  154. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/prompt_prefix_style.py +0 -0
  155. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/queue_console.py +0 -0
  156. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/renderers.py +0 -0
  157. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/rich_renderer.py +0 -0
  158. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/run_ui.py +0 -0
  159. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/run_ui_wiring.py +0 -0
  160. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/spinner/__init__.py +0 -0
  161. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/subagent_console.py +0 -0
  162. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/messaging/transcript_guard.py +0 -0
  163. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_descriptions.py +0 -0
  164. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_factory.py +0 -0
  165. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_switching.py +0 -0
  166. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/model_utils.py +0 -0
  167. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models.json +0 -0
  168. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models_dev_api.json +0 -0
  169. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/models_dev_parser.py +0 -0
  170. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/__init__.py +0 -0
  171. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/__init__.py +0 -0
  172. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/config.py +0 -0
  173. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/discovery.py +0 -0
  174. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/downloader.py +0 -0
  175. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/enabled_skills.py +0 -0
  176. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/installer.py +0 -0
  177. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/metadata.py +0 -0
  178. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/prompt_builder.py +0 -0
  179. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/register_callbacks.py +0 -0
  180. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/remote_catalog.py +0 -0
  181. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skill_catalog.py +0 -0
  182. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skill_commands.py +0 -0
  183. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skills_install_menu.py +0 -0
  184. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/agent_skills/skills_menu.py +0 -0
  185. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/__init__.py +0 -0
  186. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/config.py +0 -0
  187. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/register_callbacks.py +0 -0
  188. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/aws_bedrock/utils.py +0 -0
  189. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/README.md +0 -0
  190. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/__init__.py +0 -0
  191. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/config.py +0 -0
  192. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/discovery.py +0 -0
  193. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/register_callbacks.py +0 -0
  194. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/token.py +0 -0
  195. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/azure_foundry/utils.py +0 -0
  196. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/__init__.py +0 -0
  197. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/inline_view.py +0 -0
  198. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/register_callbacks.py +0 -0
  199. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/btw/side_query.py +0 -0
  200. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/__init__.py +0 -0
  201. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/config.py +0 -0
  202. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/oauth_flow.py +0 -0
  203. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/register_callbacks.py +0 -0
  204. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/test_plugin.py +0 -0
  205. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/chatgpt_oauth/utils.py +0 -0
  206. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/__init__.py +0 -0
  207. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/config.py +0 -0
  208. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_hooks/register_callbacks.py +0 -0
  209. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/README.md +0 -0
  210. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/SETUP.md +0 -0
  211. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/__init__.py +0 -0
  212. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/config.py +0 -0
  213. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/fast_mode.py +0 -0
  214. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/prompt_handler.py +0 -0
  215. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/register_callbacks.py +0 -0
  216. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/test_fast_mode.py +0 -0
  217. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/test_plugin.py +0 -0
  218. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  219. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/claude_code_oauth/utils.py +0 -0
  220. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/SKILL.md +0 -0
  221. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/__init__.py +0 -0
  222. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/code_puppy_agent/register_callbacks.py +0 -0
  223. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/config.py +0 -0
  224. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/__init__.py +0 -0
  225. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/register_callbacks.py +0 -0
  226. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/context_indicator/usage.py +0 -0
  227. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/__init__.py +0 -0
  228. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/config.py +0 -0
  229. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/reasoning_client.py +0 -0
  230. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/register_callbacks.py +0 -0
  231. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/copilot_auth/utils.py +0 -0
  232. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/customizable_commands/__init__.py +0 -0
  233. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/customizable_commands/register_callbacks.py +0 -0
  234. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/__init__.py +0 -0
  235. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/cancel.py +0 -0
  236. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/commands.py +0 -0
  237. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/config.py +0 -0
  238. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/lifecycle.py +0 -0
  239. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/register_callbacks.py +0 -0
  240. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/runtime.py +0 -0
  241. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/startup_lock.py +0 -0
  242. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/workflow_ids.py +0 -0
  243. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/dbos_durable_exec/wrapper.py +0 -0
  244. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/__init__.py +0 -0
  245. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/detector.py +0 -0
  246. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/destructive_command_guard/register_callbacks.py +0 -0
  247. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/__init__.py +0 -0
  248. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/config.py +0 -0
  249. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/register_callbacks.py +0 -0
  250. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/emoji_filter/stripper.py +0 -0
  251. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/example_custom_command/README.md +0 -0
  252. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/example_custom_command/register_callbacks.py +0 -0
  253. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/file_permission_handler/__init__.py +0 -0
  254. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/file_permission_handler/register_callbacks.py +0 -0
  255. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/__init__.py +0 -0
  256. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/detector.py +0 -0
  257. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/register_callbacks.py +0 -0
  258. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/force_push_guard/test_detector.py +0 -0
  259. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/fork/__init__.py +0 -0
  260. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/fork/register_callbacks.py +0 -0
  261. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/__init__.py +0 -0
  262. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/emitter.py +0 -0
  263. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/register_callbacks.py +0 -0
  264. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/frontend_emitter/session_context.py +0 -0
  265. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/README.md +0 -0
  266. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/__init__.py +0 -0
  267. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/client.py +0 -0
  268. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/register_callbacks.py +0 -0
  269. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/herdr/reporter.py +0 -0
  270. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_creator/__init__.py +0 -0
  271. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_creator/register_callbacks.py +0 -0
  272. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/__init__.py +0 -0
  273. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/config.py +0 -0
  274. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/hooks_menu.py +0 -0
  275. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/hook_manager/register_callbacks.py +0 -0
  276. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/no_tools/__init__.py +0 -0
  277. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/no_tools/register_callbacks.py +0 -0
  278. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/oauth_puppy_html.py +0 -0
  279. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/README.md +0 -0
  280. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/__init__.py +0 -0
  281. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/agent_obsidian.py +0 -0
  282. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/obsidian_agent/register_callbacks.py +0 -0
  283. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama/__init__.py +0 -0
  284. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama/register_callbacks.py +0 -0
  285. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/__init__.py +0 -0
  286. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/completer.py +0 -0
  287. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/ollama_setup/register_callbacks.py +0 -0
  288. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/__init__.py +0 -0
  289. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_contributions.py +0 -0
  290. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_meta.py +0 -0
  291. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugin_text_utils.py +0 -0
  292. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu.py +0 -0
  293. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu_layout.py +0 -0
  294. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/plugins_menu_render.py +0 -0
  295. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/project_trust_flow.py +0 -0
  296. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/plugin_list/register_callbacks.py +0 -0
  297. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/pop_command/__init__.py +0 -0
  298. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/pop_command/register_callbacks.py +0 -0
  299. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/__init__.py +0 -0
  300. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/config.py +0 -0
  301. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prompt_newline/register_callbacks.py +0 -0
  302. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/__init__.py +0 -0
  303. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_menu.py +0 -0
  304. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_model.py +0 -0
  305. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/prune_render.py +0 -0
  306. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/prune/register_callbacks.py +0 -0
  307. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/README.md +0 -0
  308. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/__init__.py +0 -0
  309. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/commands.py +0 -0
  310. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/config.py +0 -0
  311. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/kennel.py +0 -0
  312. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/packer.py +0 -0
  313. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/recorder.py +0 -0
  314. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/register_callbacks.py +0 -0
  315. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/retriever.py +0 -0
  316. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/schema.py +0 -0
  317. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/state.py +0 -0
  318. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/tools.py +0 -0
  319. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_kennel/wings.py +0 -0
  320. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/README.md +0 -0
  321. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/__init__.py +0 -0
  322. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/builtin_frames.py +0 -0
  323. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/commands.py +0 -0
  324. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/picker.py +0 -0
  325. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/register_callbacks.py +0 -0
  326. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/puppy_spinner/spinners.py +0 -0
  327. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/quick_resume/__init__.py +0 -0
  328. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/quick_resume/register_callbacks.py +0 -0
  329. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/review_pr/__init__.py +0 -0
  330. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/review_pr/register_callbacks.py +0 -0
  331. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/__init__.py +0 -0
  332. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/agent_shell_safety.py +0 -0
  333. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/command_cache.py +0 -0
  334. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/shell_safety/register_callbacks.py +0 -0
  335. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/stack_dump/__init__.py +0 -0
  336. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/stack_dump/register_callbacks.py +0 -0
  337. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/__init__.py +0 -0
  338. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/config.py +0 -0
  339. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/payload.py +0 -0
  340. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/prompt_patch.py +0 -0
  341. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/register_callbacks.py +0 -0
  342. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/runner.py +0 -0
  343. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/statusline/statusline_command.py +0 -0
  344. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/__init__.py +0 -0
  345. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/queue_menu.py +0 -0
  346. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/steer_queue/register_callbacks.py +0 -0
  347. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/README.md +0 -0
  348. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/__init__.py +0 -0
  349. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/coalesce_patch.py +0 -0
  350. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/panel_render.py +0 -0
  351. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/register_callbacks.py +0 -0
  352. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/resume_repaint.py +0 -0
  353. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/subagent_panel/state.py +0 -0
  354. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/switch_agent_resume/__init__.py +0 -0
  355. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/switch_agent_resume/register_callbacks.py +0 -0
  356. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/README.md +0 -0
  357. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/__init__.py +0 -0
  358. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/bundled_palettes.py +0 -0
  359. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/content_styles.py +0 -0
  360. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/osc_palette.py +0 -0
  361. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/picker.py +0 -0
  362. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/register_callbacks.py +0 -0
  363. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/rich_themes.py +0 -0
  364. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/theme/themes.py +0 -0
  365. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/__init__.py +0 -0
  366. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/ratios.py +0 -0
  367. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/token_ratio_learner/register_callbacks.py +0 -0
  368. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/trust.py +0 -0
  369. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/trust_notice.py +0 -0
  370. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/__init__.py +0 -0
  371. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/models.py +0 -0
  372. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/register_callbacks.py +0 -0
  373. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/registry.py +0 -0
  374. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/universal_constructor/sandbox.py +0 -0
  375. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wide_completion_menu/__init__.py +0 -0
  376. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wide_completion_menu/register_callbacks.py +0 -0
  377. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/__init__.py +0 -0
  378. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/judge.py +0 -0
  379. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/judge_config.py +0 -0
  380. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/register_callbacks.py +0 -0
  381. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/plugins/wiggum/state.py +0 -0
  382. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/provider_credentials.py +0 -0
  383. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/provider_identity.py +0 -0
  384. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/pydantic_patches.py +0 -0
  385. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/reopenable_async_client.py +0 -0
  386. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/round_robin_model.py +0 -0
  387. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_lifecycle.py +0 -0
  388. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_migration.py +0 -0
  389. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/session_storage.py +0 -0
  390. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/status_display.py +0 -0
  391. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/summarization_agent.py +0 -0
  392. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/__init__.py +0 -0
  393. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/agent_tools.py +0 -0
  394. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/__init__.py +0 -0
  395. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/constants.py +0 -0
  396. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
  397. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/handler.py +0 -0
  398. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/models.py +0 -0
  399. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/registration.py +0 -0
  400. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/renderers.py +0 -0
  401. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
  402. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/theme.py +0 -0
  403. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
  404. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/__init__.py +0 -0
  405. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_control.py +0 -0
  406. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_interactions.py +0 -0
  407. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_locator_resolver.py +0 -0
  408. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_locators.py +0 -0
  409. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_manager.py +0 -0
  410. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_navigation.py +0 -0
  411. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_page_snapshot.py +0 -0
  412. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_screenshot.py +0 -0
  413. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_scripts.py +0 -0
  414. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_semantic_interactions.py +0 -0
  415. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/browser/browser_workflows.py +0 -0
  416. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/command_runner.py +0 -0
  417. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/common.py +0 -0
  418. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/display.py +0 -0
  419. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/file_modifications.py +0 -0
  420. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/file_operations.py +0 -0
  421. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/image_tools.py +0 -0
  422. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/model_tools.py +0 -0
  423. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/skills_tools.py +0 -0
  424. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/subagent_context.py +0 -0
  425. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/subagent_invocation.py +0 -0
  426. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/tools_content.py +0 -0
  427. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/tools/universal_constructor.py +0 -0
  428. {code_puppy-0.0.612 → code_puppy-0.0.613}/code_puppy/undo_manager.py +0 -0
  429. {code_puppy-0.0.612 → code_puppy-0.0.613}/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.612
3
+ Version: 0.0.613
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
@@ -533,7 +533,18 @@ def _coalesce_paste_burst(items: list) -> Optional[str]:
533
533
  return None
534
534
  if any(kind != "char" for kind, _ in items):
535
535
  return None
536
- return "".join(value for _, value in items)
536
+ payload = "".join(value for _, value in items)
537
+ if "\x1b" in payload and _PASTE_OPEN not in payload and _PASTE_CLOSE not in payload:
538
+ # With ENABLE_VIRTUAL_TERMINAL_INPUT, special keys arrive as VT
539
+ # escape sequences instead of \x00/\xe0 extended-key pairs — an
540
+ # arrow press (or a key-repeat flood of them) is a 3+ char all-
541
+ # text burst that would otherwise classify as a paste and land
542
+ # in the buffer as literal ESC garbage. Real terminal pastes are
543
+ # always bracketed while ?2004h is armed, so an ESC-bearing
544
+ # burst WITHOUT markers is typing: dispatch per key and let the
545
+ # editor's CSI state machine handle the sequences.
546
+ return None
547
+ return payload
537
548
 
538
549
 
539
550
  def _editor_paste_active() -> bool:
@@ -599,11 +610,35 @@ def _listen_windows(
599
610
  on_cancel_agent: Optional[Callable[[], None]] = None,
600
611
  suspend_event: Optional[threading.Event] = None,
601
612
  released_event: Optional[threading.Event] = None,
613
+ ) -> None:
614
+ """Windows listener entry — wraps the loop so VT input is ALWAYS
615
+ released on the way out (the parent shell expects classic key
616
+ events; see ``enable_windows_vt_input`` for the scope contract)."""
617
+ from code_puppy.terminal_utils import disable_windows_vt_input
618
+
619
+ try:
620
+ _listen_windows_loop(
621
+ stop_event, on_escape, on_cancel_agent, suspend_event, released_event
622
+ )
623
+ finally:
624
+ disable_windows_vt_input()
625
+
626
+
627
+ def _listen_windows_loop(
628
+ stop_event: threading.Event,
629
+ on_escape: Callable[[], None],
630
+ on_cancel_agent: Optional[Callable[[], None]] = None,
631
+ suspend_event: Optional[threading.Event] = None,
632
+ released_event: Optional[threading.Event] = None,
602
633
  ) -> None:
603
634
  import msvcrt
604
635
  import time
605
636
 
606
- from code_puppy.terminal_utils import ensure_ctrl_c_disabled
637
+ from code_puppy.terminal_utils import (
638
+ disable_windows_vt_input,
639
+ enable_windows_vt_input,
640
+ ensure_ctrl_c_disabled,
641
+ )
607
642
 
608
643
  cancel_agent_char = _resolve_cancel_char(on_cancel_agent)
609
644
 
@@ -612,12 +647,17 @@ def _listen_windows(
612
647
  next_clamp_check = 0.0 # first lap re-clamps immediately
613
648
 
614
649
  while not stop_event.is_set():
615
- # Honor suspend: msvcrt doesn't reconfigure the terminal, so the
616
- # contract here is purely "don't read keystrokes while suspended."
650
+ # Honor suspend. Whoever suspended us (prompt_toolkit TUIs, the
651
+ # ask_user picker) reads via ReadConsoleInput and expects classic
652
+ # key events — hand the console back without VT input, and
653
+ # re-clamp immediately (not up to 1s later) on resume so a paste
654
+ # right after a menu closes isn't dropped.
617
655
  if suspend_event is not None and suspend_event.is_set():
656
+ disable_windows_vt_input()
618
657
  _wait_while_suspended(stop_event, suspend_event, released_event)
619
658
  if stop_event.is_set():
620
659
  return
660
+ next_clamp_check = 0.0
621
661
  continue
622
662
 
623
663
  # Self-healing console clamp. Anything sharing the console (shell
@@ -639,6 +679,16 @@ def _listen_windows(
639
679
  ensure_ctrl_c_disabled()
640
680
  except Exception:
641
681
  pass
682
+ # VT-input clamp, same self-healing cadence: without
683
+ # ENABLE_VIRTUAL_TERMINAL_INPUT, ConPTY silently drops the
684
+ # bracketed-paste markers Windows Terminal sends for an
685
+ # image-only Ctrl+V (an EMPTY paste has no key events to
686
+ # synthesize) — the Windows image-paste-goes-dead bug.
687
+ # No-op (one GetConsoleMode) when the flag is already set.
688
+ try:
689
+ enable_windows_vt_input()
690
+ except Exception:
691
+ pass
642
692
 
643
693
  try:
644
694
  if msvcrt.kbhit():
@@ -154,6 +154,87 @@ def ensure_windows_vt_processing() -> bool:
154
154
  return False # can't confirm VT -> fail safe, degrade to classic
155
155
 
156
156
 
157
+ #: ENABLE_VIRTUAL_TERMINAL_INPUT — stdin delivers VT sequences verbatim.
158
+ _ENABLE_VIRTUAL_TERMINAL_INPUT = 0x0200
159
+
160
+
161
+ def enable_windows_vt_input() -> bool:
162
+ """Enable VT input (``ENABLE_VIRTUAL_TERMINAL_INPUT``) on stdin, verified.
163
+
164
+ ConPTY only forwards terminal-side VT input sequences to a client
165
+ whose stdin carries this flag. Bracketed-paste markers
166
+ (``ESC[200~``/``ESC[201~``) have no key-event representation, so
167
+ without the flag ConPTY silently DROPS them — and Windows Terminal
168
+ pastes an image-only clipboard as an EMPTY bracketed paste, meaning
169
+ the app receives NOTHING and Ctrl+V image capture never fires.
170
+ (Text pastes still arrive as synthesized keystrokes, which is why
171
+ only image paste broke.) Verified live via console probe 2026-07-08:
172
+ mode ``0x1f7`` → 0 chars delivered; mode ``0x3f7`` → the 12-char
173
+ empty bracketed paste.
174
+
175
+ Scope contract: only the Windows key listener enables this, while it
176
+ owns stdin — and it disables it around suspensions, because
177
+ ``ReadConsoleInput``-based readers (prompt_toolkit TUIs) expect
178
+ classic key events. Returns True when the flag is CONFIRMED set via
179
+ a mode read-back (mirrors :func:`ensure_windows_vt_processing`;
180
+ ancient hosts silently no-op ``SetConsoleMode``). Never raises.
181
+ """
182
+ if platform.system() != "Windows":
183
+ return False
184
+
185
+ try:
186
+ import ctypes
187
+
188
+ kernel32 = ctypes.windll.kernel32
189
+ stdin_handle = kernel32.GetStdHandle(-10) # STD_INPUT_HANDLE
190
+
191
+ mode = ctypes.c_ulong()
192
+ if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(mode)):
193
+ return False
194
+ if mode.value & _ENABLE_VIRTUAL_TERMINAL_INPUT:
195
+ return True # already on
196
+
197
+ if not kernel32.SetConsoleMode(
198
+ stdin_handle, mode.value | _ENABLE_VIRTUAL_TERMINAL_INPUT
199
+ ):
200
+ return False
201
+
202
+ verify = ctypes.c_ulong()
203
+ if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(verify)):
204
+ return False
205
+ return bool(verify.value & _ENABLE_VIRTUAL_TERMINAL_INPUT)
206
+ except Exception:
207
+ return False
208
+
209
+
210
+ def disable_windows_vt_input() -> None:
211
+ """Clear ``ENABLE_VIRTUAL_TERMINAL_INPUT`` from stdin (best-effort).
212
+
213
+ Called by the Windows key listener before parking for a suspension
214
+ and on exit, so ``ReadConsoleInput``-based readers (prompt_toolkit
215
+ TUIs, the parent shell after we quit) get classic key events instead
216
+ of raw VT sequences. Never raises.
217
+ """
218
+ if platform.system() != "Windows":
219
+ return
220
+
221
+ try:
222
+ import ctypes
223
+
224
+ kernel32 = ctypes.windll.kernel32
225
+ stdin_handle = kernel32.GetStdHandle(-10) # STD_INPUT_HANDLE
226
+
227
+ mode = ctypes.c_ulong()
228
+ if not kernel32.GetConsoleMode(stdin_handle, ctypes.byref(mode)):
229
+ return
230
+ if mode.value & _ENABLE_VIRTUAL_TERMINAL_INPUT:
231
+ kernel32.SetConsoleMode(
232
+ stdin_handle, mode.value & ~_ENABLE_VIRTUAL_TERMINAL_INPUT
233
+ )
234
+ except Exception:
235
+ pass
236
+
237
+
157
238
  def flush_windows_keyboard_buffer() -> None:
158
239
  """Flush the Windows keyboard buffer.
159
240
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy"
7
- version = "0.0.612"
7
+ version = "0.0.613"
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