code-puppy 0.0.950__tar.gz → 0.0.951__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 (339) hide show
  1. {code_puppy-0.0.950 → code_puppy-0.0.951}/PKG-INFO +1 -1
  2. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_builder.py +9 -4
  3. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/subagent_invocation.py +24 -14
  4. {code_puppy-0.0.950 → code_puppy-0.0.951}/pyproject.toml +1 -1
  5. {code_puppy-0.0.950 → code_puppy-0.0.951}/.gitignore +0 -0
  6. {code_puppy-0.0.950 → code_puppy-0.0.951}/LICENSE +0 -0
  7. {code_puppy-0.0.950 → code_puppy-0.0.951}/README.md +0 -0
  8. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/__init__.py +0 -0
  9. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/__main__.py +0 -0
  10. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/_plugin_i18n_lifecycle.py +0 -0
  11. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/_pydantic_tool_helpers.py +0 -0
  12. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/_pydantic_video_patch.py +0 -0
  13. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agent_completion_inbox.py +0 -0
  14. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agent_execution_context.py +0 -0
  15. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/__init__.py +0 -0
  16. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_code_mode.py +0 -0
  17. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_code_mode_guidance.py +0 -0
  18. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_code_mode_session.py +0 -0
  19. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_compaction.py +0 -0
  20. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_diagnostics.py +0 -0
  21. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_foreign_thinking.py +0 -0
  22. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_history.py +0 -0
  23. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_key_listeners.py +0 -0
  24. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_mcp.py +0 -0
  25. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_model_message_transform.py +0 -0
  26. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_multimodal_error_hint.py +0 -0
  27. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_non_streaming_render.py +0 -0
  28. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_output_limits.py +0 -0
  29. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_rules.py +0 -0
  30. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_run_signals.py +0 -0
  31. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_runtime.py +0 -0
  32. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_steer_processor.py +0 -0
  33. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_subagent_recursion.py +0 -0
  34. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_token_limit_hint.py +0 -0
  35. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_tty_modes.py +0 -0
  36. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_windows_console.py +0 -0
  37. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/_wire_tool_names.py +0 -0
  38. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_code_puppy.py +0 -0
  39. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_creator_agent.py +0 -0
  40. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_helios.py +0 -0
  41. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_manager.py +0 -0
  42. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_model_judge.py +0 -0
  43. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_planning.py +0 -0
  44. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_qa_kitten.py +0 -0
  45. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/agent_web_retriever.py +0 -0
  46. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/base_agent.py +0 -0
  47. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/event_stream_handler.py +0 -0
  48. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/json_agent.py +0 -0
  49. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/retry_checkpoint.py +0 -0
  50. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/retry_profiles.py +0 -0
  51. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/run_invocation.py +0 -0
  52. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/run_stats.py +0 -0
  53. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/smooth_stream.py +0 -0
  54. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/stream_status.py +0 -0
  55. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/subagent_stream_handler.py +0 -0
  56. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/agents/thinking_output.py +0 -0
  57. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/asyncio_cleanup.py +0 -0
  58. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/atomic_io.py +0 -0
  59. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/atomic_json.py +0 -0
  60. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/ca_bundle.py +0 -0
  61. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/callbacks.py +0 -0
  62. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/capabilities/__init__.py +0 -0
  63. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/capabilities/compaction.py +0 -0
  64. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/capabilities/eager_timing.py +0 -0
  65. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/chatgpt_codex_client.py +0 -0
  66. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/claude_cache_client.py +0 -0
  67. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/claude_oauth_transport.py +0 -0
  68. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/claude_thinking_display.py +0 -0
  69. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/cli_runner.py +0 -0
  70. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/__init__.py +0 -0
  71. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/add_model_details.py +0 -0
  72. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/add_model_menu.py +0 -0
  73. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/add_model_menus.py +0 -0
  74. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/add_model_vllm.py +0 -0
  75. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/agent_menu.py +0 -0
  76. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/attachments.py +0 -0
  77. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/autosave_menu.py +0 -0
  78. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/autosave_search.py +0 -0
  79. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/clipboard.py +0 -0
  80. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/colors_menu.py +0 -0
  81. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/command_handler.py +0 -0
  82. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/command_registry.py +0 -0
  83. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/completers.py +0 -0
  84. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/completion_cache.py +0 -0
  85. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/config_apply.py +0 -0
  86. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/config_commands.py +0 -0
  87. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/core_commands.py +0 -0
  88. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/file_index.py +0 -0
  89. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/file_path_completion.py +0 -0
  90. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/help_catalog.py +0 -0
  91. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/help_overlay.py +0 -0
  92. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/image_utils.py +0 -0
  93. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/load_context_completion.py +0 -0
  94. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/__init__.py +0 -0
  95. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/base.py +0 -0
  96. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/catalog_server_installer.py +0 -0
  97. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/custom_server_form.py +0 -0
  98. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/custom_server_installer.py +0 -0
  99. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/edit_command.py +0 -0
  100. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/handler.py +0 -0
  101. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/help_command.py +0 -0
  102. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/install_command.py +0 -0
  103. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/install_menu.py +0 -0
  104. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/list_command.py +0 -0
  105. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/logs_command.py +0 -0
  106. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/mcp_servers_store.py +0 -0
  107. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/remove_command.py +0 -0
  108. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/restart_command.py +0 -0
  109. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/search_command.py +0 -0
  110. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/silence_warning_command.py +0 -0
  111. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/start_all_command.py +0 -0
  112. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/start_command.py +0 -0
  113. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/status_command.py +0 -0
  114. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
  115. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/stop_command.py +0 -0
  116. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/trust_command.py +0 -0
  117. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/utils.py +0 -0
  118. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
  119. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp_binding_menu.py +0 -0
  120. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/mcp_completion.py +0 -0
  121. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/menu_session.py +0 -0
  122. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/model_picker_completion.py +0 -0
  123. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/model_settings_defs.py +0 -0
  124. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/model_settings_menu.py +0 -0
  125. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/onboarding_slides.py +0 -0
  126. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/onboarding_wizard.py +0 -0
  127. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/pagination.py +0 -0
  128. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/pin_command_completion.py +0 -0
  129. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/refresh_models.py +0 -0
  130. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/session_browser.py +0 -0
  131. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/session_browser_data.py +0 -0
  132. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/session_commands.py +0 -0
  133. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu.py +0 -0
  134. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu_catalog.py +0 -0
  135. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu_schema.py +0 -0
  136. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu_settings.py +0 -0
  137. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu_shims.py +0 -0
  138. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/set_menu_values.py +0 -0
  139. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/shell_passthrough.py +0 -0
  140. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/skills_completion.py +0 -0
  141. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/tui_style.py +0 -0
  142. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/uc_menu.py +0 -0
  143. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/command_line/utils.py +0 -0
  144. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/config.py +0 -0
  145. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/config_file.py +0 -0
  146. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/context_accounting.py +0 -0
  147. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/diagnostics.py +0 -0
  148. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/error_logging.py +0 -0
  149. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/events/__init__.py +0 -0
  150. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/events/bridge.py +0 -0
  151. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/file_completion_io.py +0 -0
  152. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/file_completion_tokens.py +0 -0
  153. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/gemini_code_assist.py +0 -0
  154. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/gemini_common.py +0 -0
  155. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/gemini_model.py +0 -0
  156. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/README.md +0 -0
  157. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/__init__.py +0 -0
  158. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/aliases.py +0 -0
  159. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/engine.py +0 -0
  160. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/executor.py +0 -0
  161. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/matcher.py +0 -0
  162. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/models.py +0 -0
  163. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/registry.py +0 -0
  164. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/hook_engine/validator.py +0 -0
  165. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/http_retry.py +0 -0
  166. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/http_utils.py +0 -0
  167. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/httpx2_utils.py +0 -0
  168. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/__init__.py +0 -0
  169. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/audit.py +0 -0
  170. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/catalog.py +0 -0
  171. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/formats.py +0 -0
  172. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/interpolation.py +0 -0
  173. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/locale.py +0 -0
  174. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/locales/en-US.json +0 -0
  175. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/locales/es.json +0 -0
  176. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/locales/fr-CA.json +0 -0
  177. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/plugin_catalog.py +0 -0
  178. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/plurals.py +0 -0
  179. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/pseudo.py +0 -0
  180. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/i18n/translate.py +0 -0
  181. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/kennel_provider.py +0 -0
  182. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/keymap.py +0 -0
  183. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/list_filtering.py +0 -0
  184. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/main.py +0 -0
  185. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/malloc_noise_guard.py +0 -0
  186. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/__init__.py +0 -0
  187. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/agent_bindings.py +0 -0
  188. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/async_lifecycle.py +0 -0
  189. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/blocking_startup.py +0 -0
  190. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/circuit_breaker.py +0 -0
  191. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/config_wizard.py +0 -0
  192. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/dashboard.py +0 -0
  193. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/error_isolation.py +0 -0
  194. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/examples/retry_example.py +0 -0
  195. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/health_monitor.py +0 -0
  196. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/http_auth.py +0 -0
  197. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/managed_server.py +0 -0
  198. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/manager.py +0 -0
  199. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/manager_lifecycle.py +0 -0
  200. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/mcp_logs.py +0 -0
  201. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/project_config.py +0 -0
  202. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/registry.py +0 -0
  203. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/retry_manager.py +0 -0
  204. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/server_registry_catalog.py +0 -0
  205. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/status_tracker.py +0 -0
  206. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/system_tools.py +0 -0
  207. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/tool_arg_coercion.py +0 -0
  208. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_/toolset_utils.py +0 -0
  209. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_prompts/__init__.py +0 -0
  210. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/mcp_prompts/hook_creator.py +0 -0
  211. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/__init__.py +0 -0
  212. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/bar_painters.py +0 -0
  213. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/bar_rendering.py +0 -0
  214. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/bottom_bar.py +0 -0
  215. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/bus.py +0 -0
  216. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/chords.py +0 -0
  217. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/commands.py +0 -0
  218. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_actions.py +0 -0
  219. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_completion.py +0 -0
  220. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_display.py +0 -0
  221. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_history.py +0 -0
  222. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_keys.py +0 -0
  223. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_paste.py +0 -0
  224. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_queue.py +0 -0
  225. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_submission.py +0 -0
  226. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/editor_undo.py +0 -0
  227. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/external_editor.py +0 -0
  228. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/identity_line.py +0 -0
  229. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/idle_status.py +0 -0
  230. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/inline_bar.py +0 -0
  231. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/line_editor.py +0 -0
  232. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/markdown_patches.py +0 -0
  233. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/menu_lifecycle.py +0 -0
  234. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/message_queue.py +0 -0
  235. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/messages.py +0 -0
  236. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/pause_controller.py +0 -0
  237. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/prompt_prefix_style.py +0 -0
  238. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/queue_console.py +0 -0
  239. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/renderers.py +0 -0
  240. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/rich_renderer.py +0 -0
  241. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/run_ui.py +0 -0
  242. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/run_ui_wiring.py +0 -0
  243. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/safe_console.py +0 -0
  244. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/safe_stream.py +0 -0
  245. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/speculation_line.py +0 -0
  246. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/speculation_stats.py +0 -0
  247. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/speculation_toggle.py +0 -0
  248. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/spinner/__init__.py +0 -0
  249. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/status_line.py +0 -0
  250. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/subagent_console.py +0 -0
  251. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/theme_accent.py +0 -0
  252. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/tool_output.py +0 -0
  253. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/messaging/transcript_guard.py +0 -0
  254. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/model_descriptions.py +0 -0
  255. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/model_factory.py +0 -0
  256. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/model_switching.py +0 -0
  257. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/model_utils.py +0 -0
  258. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/models.json +0 -0
  259. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/models_dev_api.json +0 -0
  260. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/models_dev_family.py +0 -0
  261. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/models_dev_parser.py +0 -0
  262. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/observability.py +0 -0
  263. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/platform_utils.py +0 -0
  264. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/__init__.py +0 -0
  265. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/config.py +0 -0
  266. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/oauth_pasteback.py +0 -0
  267. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/oauth_puppy_html.py +0 -0
  268. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/trust.py +0 -0
  269. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/plugins/trust_notice.py +0 -0
  270. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/private_inference.py +0 -0
  271. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/provider_credentials.py +0 -0
  272. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/provider_identity.py +0 -0
  273. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/pydantic_patches.py +0 -0
  274. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/reopenable_async_client.py +0 -0
  275. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/round_robin_model.py +0 -0
  276. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/secret_store.py +0 -0
  277. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/secret_store_backends.py +0 -0
  278. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/session_format_migration.py +0 -0
  279. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/session_lifecycle.py +0 -0
  280. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/session_migration.py +0 -0
  281. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/session_storage.py +0 -0
  282. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/session_surrogate_unpickler.py +0 -0
  283. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/shared_credentials.py +0 -0
  284. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/skill_provider.py +0 -0
  285. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/splash.py +0 -0
  286. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/status_display.py +0 -0
  287. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/steer_metadata.py +0 -0
  288. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/terminal_utils.py +0 -0
  289. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/token_usage.py +0 -0
  290. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/__init__.py +0 -0
  291. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/_browser_registry.py +0 -0
  292. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/_lazy.py +0 -0
  293. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/agent_tools.py +0 -0
  294. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/approval_feedback.py +0 -0
  295. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/__init__.py +0 -0
  296. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/constants.py +0 -0
  297. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/demo_tui.py +0 -0
  298. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/handler.py +0 -0
  299. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/models.py +0 -0
  300. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/registration.py +0 -0
  301. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/renderers.py +0 -0
  302. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/terminal_ui.py +0 -0
  303. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/theme.py +0 -0
  304. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ask_user_question/tui_loop.py +0 -0
  305. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/__init__.py +0 -0
  306. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_control.py +0 -0
  307. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_interactions.py +0 -0
  308. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_locator_resolver.py +0 -0
  309. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_locators.py +0 -0
  310. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_manager.py +0 -0
  311. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_navigation.py +0 -0
  312. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_page_snapshot.py +0 -0
  313. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_screenshot.py +0 -0
  314. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_scripts.py +0 -0
  315. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_semantic_interactions.py +0 -0
  316. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/browser_workflows.py +0 -0
  317. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/browser/tool_registry.py +0 -0
  318. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/command_runner.py +0 -0
  319. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/common.py +0 -0
  320. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/display.py +0 -0
  321. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/file_modifications.py +0 -0
  322. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/file_operations.py +0 -0
  323. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/file_permission_state.py +0 -0
  324. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/fs_access.py +0 -0
  325. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/image_tools.py +0 -0
  326. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/io_backends.py +0 -0
  327. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/model_tools.py +0 -0
  328. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/ripgrep.py +0 -0
  329. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/shell_backgrounding.py +0 -0
  330. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/skills_tools.py +0 -0
  331. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/subagent_context.py +0 -0
  332. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/subagent_usage_metrics.py +0 -0
  333. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/tools_content.py +0 -0
  334. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/universal_constructor.py +0 -0
  335. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/tools/win_shell_io.py +0 -0
  336. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/undo_manager.py +0 -0
  337. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/universal_constructor_provider.py +0 -0
  338. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/version_checker.py +0 -0
  339. {code_puppy-0.0.950 → code_puppy-0.0.951}/code_puppy/zai_model.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code-puppy
3
- Version: 0.0.950
3
+ Version: 0.0.951
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
@@ -311,11 +311,16 @@ def _build_gpt_5_6_invoke_agent_guard_text() -> str:
311
311
  limit = get_subagent_recursion_limit_gpt_5_6()
312
312
  return (
313
313
  "\n\n## Sub-Agent Delegation (GPT-5.6)\n"
314
- "Use `invoke_agent` only for focused work that benefits from separate "
315
- "context or specialized tools. Handle work directly when you can. "
314
+ "Use `invoke_agent` for focused work that benefits from separate "
315
+ "context or specialized tools; handle small work directly. When a task "
316
+ "has independent, tightly scoped pieces, invoke them as multiple "
317
+ "sub-agents concurrently in one batch (several `invoke_agent` calls in "
318
+ "the same response) rather than one at a time. Each must be a direct "
319
+ "child told not to delegate further. Wait for the batch, then "
320
+ "synthesize the results yourself; "
321
+ "do not start recursive or repeated follow-up delegation chains. "
316
322
  "Never invoke `planning-agent`. "
317
- f"Hard cap: as a GPT-5.6 caller you may only invoke a sub-agent while "
318
- f"the resulting chain depth stays at or below {limit} "
323
+ f"Hard cap: the resulting chain depth must stay at or below {limit} "
319
324
  f"(main agent = depth 0). Do not attempt deeper chains.\n"
320
325
  )
321
326
 
@@ -166,18 +166,17 @@ def _subagent_identity_prompt(agent_name: str) -> str:
166
166
  depth = get_subagent_depth() + 1
167
167
  limit = get_subagent_recursion_limit()
168
168
  chain = " -> ".join(("main agent", *get_subagent_chain(), agent_name))
169
- remaining = max(limit - depth, 0)
170
169
  return f"""## Sub-agent execution context (mandatory)
171
170
 
172
171
  You are the sub-agent `{agent_name}`, not the main agent. Your nesting depth is
173
- {depth} (main agent = 0). Invocation chain: {chain}. The configured maximum
174
- sub-agent depth is {limit}; {remaining} deeper level(s) remain.
172
+ {depth} (main agent = 0). Invocation chain: {chain}.
175
173
 
176
- Complete your assigned task directly. Prefer doing the work yourself over
177
- spawning more agents, but delegation is permitted -- including invoking an agent
178
- whose name matches your own -- as long as it serves the task. The recursion guard
179
- above enforces the depth cap automatically, so nesting beyond it is refused
180
- rather than forbidden by convention."""
174
+ Complete your assigned task directly and return the result to your caller. Do
175
+ not delegate further unless your caller explicitly asks you to; if you do, use
176
+ one concurrent batch of direct children, synthesize their results yourself, and
177
+ do not chain follow-up sub-agent calls. The runtime depth guard (max {limit})
178
+ rejects deeper calls. Remaining depth capacity alone is not a reason to
179
+ delegate."""
181
180
 
182
181
 
183
182
  def _contains_cancellation(exc: BaseException) -> bool:
@@ -798,9 +797,13 @@ def register_invoke_agent(agent):
798
797
  ) -> AgentInvokeOutput | dict:
799
798
  """Invoke a specific sub-agent using its configured model.
800
799
 
801
- Prefer doing the work directly, but delegation is allowed -- including
802
- to an agent whose name matches the caller's. Nesting is capped by the
803
- recursion guard rather than by convention.
800
+ Prefer handling small work directly. When a task has independent,
801
+ tightly scoped pieces, invoke them as multiple sub-agents concurrently
802
+ in one batch (several invoke_agent calls in the same response) rather
803
+ than one at a time. Invoke direct children only and tell each child to
804
+ complete its task without delegating further. After the batch returns,
805
+ synthesize the results yourself instead of starting follow-up chains of
806
+ sub-agent calls. The runtime recursion guard remains the depth backstop.
804
807
 
805
808
  Args:
806
809
  agent_name: Name of the sub-agent to invoke.
@@ -808,6 +811,8 @@ def register_invoke_agent(agent):
808
811
  session_id: Optional kebab-case session id for continuing memory.
809
812
  background: Return immediately and deliver completion automatically
810
813
  to the main agent, even after its turn ends. Defaults to False.
814
+ Not needed for parallel calls; use it only when you do not need
815
+ the result this turn.
811
816
 
812
817
  Returns:
813
818
  AgentInvokeOutput: Contains response, agent_name, session_id,
@@ -859,9 +864,14 @@ def register_invoke_agent_with_model(agent):
859
864
 
860
865
  Use this only when a model override is intentionally required. For
861
866
  normal delegation, use invoke_agent so the sub-agent's configured model
862
- is respected. Prefer doing the work directly, but delegation is allowed
863
- -- including to an agent whose name matches the caller's. Nesting is
864
- capped by the recursion guard rather than by convention.
867
+ is respected. Prefer handling small work directly. When a task has
868
+ independent, tightly scoped pieces, invoke them as multiple sub-agents
869
+ concurrently in one batch (several invoke_agent calls in the same
870
+ response) rather than one at a time. Invoke direct children only and
871
+ tell each child to complete its task without delegating further. After
872
+ the batch returns, synthesize the results yourself instead of starting
873
+ follow-up chains of sub-agent calls. The runtime recursion guard remains
874
+ the depth backstop.
865
875
 
866
876
  Args:
867
877
  agent_name: Name of the sub-agent to invoke.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy"
7
- version = "0.0.950"
7
+ version = "0.0.951"
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