newcode 0.2.9__tar.gz → 0.2.10__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 (272) hide show
  1. {newcode-0.2.9 → newcode-0.2.10}/PKG-INFO +1 -1
  2. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/base_agent.py +41 -6
  3. {newcode-0.2.9 → newcode-0.2.10}/pyproject.toml +1 -1
  4. {newcode-0.2.9 → newcode-0.2.10}/.gitignore +0 -0
  5. {newcode-0.2.9 → newcode-0.2.10}/LICENSE +0 -0
  6. {newcode-0.2.9 → newcode-0.2.10}/README.md +0 -0
  7. {newcode-0.2.9 → newcode-0.2.10}/newcode/__init__.py +0 -0
  8. {newcode-0.2.9 → newcode-0.2.10}/newcode/__main__.py +0 -0
  9. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/__init__.py +0 -0
  10. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_c_reviewer.py +0 -0
  11. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_code_agent.py +0 -0
  12. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_code_reviewer.py +0 -0
  13. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_cpp_reviewer.py +0 -0
  14. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_creator_agent.py +0 -0
  15. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_golang_reviewer.py +0 -0
  16. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_javascript_reviewer.py +0 -0
  17. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_manager.py +0 -0
  18. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_pack_leader.py +0 -0
  19. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_planning.py +0 -0
  20. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_python_programmer.py +0 -0
  21. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_python_reviewer.py +0 -0
  22. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_qa_browser.py +0 -0
  23. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_qa_expert.py +0 -0
  24. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_security_auditor.py +0 -0
  25. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_terminal_qa.py +0 -0
  26. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/agent_typescript_reviewer.py +0 -0
  27. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/event_stream_handler.py +0 -0
  28. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/json_agent.py +0 -0
  29. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/__init__.py +0 -0
  30. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/bloodhound.py +0 -0
  31. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/husky.py +0 -0
  32. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/retriever.py +0 -0
  33. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/shepherd.py +0 -0
  34. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/terrier.py +0 -0
  35. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/pack/watchdog.py +0 -0
  36. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/prompt_reviewer.py +0 -0
  37. {newcode-0.2.9 → newcode-0.2.10}/newcode/agents/subagent_stream_handler.py +0 -0
  38. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/__init__.py +0 -0
  39. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/app.py +0 -0
  40. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/main.py +0 -0
  41. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/pty_manager.py +0 -0
  42. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/routers/__init__.py +0 -0
  43. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/routers/agents.py +0 -0
  44. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/routers/commands.py +0 -0
  45. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/routers/config.py +0 -0
  46. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/routers/sessions.py +0 -0
  47. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/templates/terminal.html +0 -0
  48. {newcode-0.2.9 → newcode-0.2.10}/newcode/api/websocket.py +0 -0
  49. {newcode-0.2.9 → newcode-0.2.10}/newcode/callbacks.py +0 -0
  50. {newcode-0.2.9 → newcode-0.2.10}/newcode/chatgpt_codex_client.py +0 -0
  51. {newcode-0.2.9 → newcode-0.2.10}/newcode/claude_cache_client.py +0 -0
  52. {newcode-0.2.9 → newcode-0.2.10}/newcode/cli_runner.py +0 -0
  53. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/__init__.py +0 -0
  54. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/add_model_menu.py +0 -0
  55. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/agent_menu.py +0 -0
  56. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/attachments.py +0 -0
  57. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/autosave_menu.py +0 -0
  58. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/clipboard.py +0 -0
  59. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/colors_menu.py +0 -0
  60. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/command_handler.py +0 -0
  61. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/command_registry.py +0 -0
  62. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/config_commands.py +0 -0
  63. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/core_commands.py +0 -0
  64. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/diff_menu.py +0 -0
  65. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/file_path_completion.py +0 -0
  66. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/load_context_completion.py +0 -0
  67. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/__init__.py +0 -0
  68. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/base.py +0 -0
  69. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/catalog_server_installer.py +0 -0
  70. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/custom_server_form.py +0 -0
  71. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/custom_server_installer.py +0 -0
  72. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/edit_command.py +0 -0
  73. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/handler.py +0 -0
  74. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/help_command.py +0 -0
  75. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/install_command.py +0 -0
  76. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/install_menu.py +0 -0
  77. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/list_command.py +0 -0
  78. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/logs_command.py +0 -0
  79. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/remove_command.py +0 -0
  80. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/restart_command.py +0 -0
  81. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/search_command.py +0 -0
  82. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/start_all_command.py +0 -0
  83. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/start_command.py +0 -0
  84. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/status_command.py +0 -0
  85. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/stop_all_command.py +0 -0
  86. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/stop_command.py +0 -0
  87. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/test_command.py +0 -0
  88. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/utils.py +0 -0
  89. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp/wizard_utils.py +0 -0
  90. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/mcp_completion.py +0 -0
  91. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/model_picker_completion.py +0 -0
  92. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/model_settings_menu.py +0 -0
  93. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/motd.py +0 -0
  94. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/onboarding_slides.py +0 -0
  95. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/onboarding_wizard.py +0 -0
  96. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/pin_command_completion.py +0 -0
  97. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/prompt_toolkit_completion.py +0 -0
  98. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/session_commands.py +0 -0
  99. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/skills_completion.py +0 -0
  100. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/uc_menu.py +0 -0
  101. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/utils.py +0 -0
  102. {newcode-0.2.9 → newcode-0.2.10}/newcode/command_line/wiggum_state.py +0 -0
  103. {newcode-0.2.9 → newcode-0.2.10}/newcode/config.py +0 -0
  104. {newcode-0.2.9 → newcode-0.2.10}/newcode/error_logging.py +0 -0
  105. {newcode-0.2.9 → newcode-0.2.10}/newcode/gemini_code_assist.py +0 -0
  106. {newcode-0.2.9 → newcode-0.2.10}/newcode/gemini_model.py +0 -0
  107. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/README.md +0 -0
  108. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/__init__.py +0 -0
  109. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/aliases.py +0 -0
  110. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/engine.py +0 -0
  111. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/executor.py +0 -0
  112. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/matcher.py +0 -0
  113. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/models.py +0 -0
  114. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/registry.py +0 -0
  115. {newcode-0.2.9 → newcode-0.2.10}/newcode/hook_engine/validator.py +0 -0
  116. {newcode-0.2.9 → newcode-0.2.10}/newcode/http_utils.py +0 -0
  117. {newcode-0.2.9 → newcode-0.2.10}/newcode/image_utils.py +0 -0
  118. {newcode-0.2.9 → newcode-0.2.10}/newcode/keymap.py +0 -0
  119. {newcode-0.2.9 → newcode-0.2.10}/newcode/main.py +0 -0
  120. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/__init__.py +0 -0
  121. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/async_lifecycle.py +0 -0
  122. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/blocking_startup.py +0 -0
  123. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/captured_stdio_server.py +0 -0
  124. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/circuit_breaker.py +0 -0
  125. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/config_wizard.py +0 -0
  126. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/dashboard.py +0 -0
  127. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/error_isolation.py +0 -0
  128. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/examples/retry_example.py +0 -0
  129. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/health_monitor.py +0 -0
  130. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/managed_server.py +0 -0
  131. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/manager.py +0 -0
  132. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/mcp_logs.py +0 -0
  133. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/registry.py +0 -0
  134. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/retry_manager.py +0 -0
  135. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/server_registry_catalog.py +0 -0
  136. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/status_tracker.py +0 -0
  137. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_/system_tools.py +0 -0
  138. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_prompts/__init__.py +0 -0
  139. {newcode-0.2.9 → newcode-0.2.10}/newcode/mcp_prompts/hook_creator.py +0 -0
  140. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/__init__.py +0 -0
  141. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/bus.py +0 -0
  142. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/commands.py +0 -0
  143. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/markdown_patches.py +0 -0
  144. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/message_queue.py +0 -0
  145. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/messages.py +0 -0
  146. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/queue_console.py +0 -0
  147. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/renderers.py +0 -0
  148. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/rich_renderer.py +0 -0
  149. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/spinner/__init__.py +0 -0
  150. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/spinner/console_spinner.py +0 -0
  151. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/spinner/spinner_base.py +0 -0
  152. {newcode-0.2.9 → newcode-0.2.10}/newcode/messaging/subagent_console.py +0 -0
  153. {newcode-0.2.9 → newcode-0.2.10}/newcode/model_factory.py +0 -0
  154. {newcode-0.2.9 → newcode-0.2.10}/newcode/model_switching.py +0 -0
  155. {newcode-0.2.9 → newcode-0.2.10}/newcode/model_utils.py +0 -0
  156. {newcode-0.2.9 → newcode-0.2.10}/newcode/models.json +0 -0
  157. {newcode-0.2.9 → newcode-0.2.10}/newcode/models_dev_api.json +0 -0
  158. {newcode-0.2.9 → newcode-0.2.10}/newcode/models_dev_parser.py +0 -0
  159. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/__init__.py +0 -0
  160. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/__init__.py +0 -0
  161. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/config.py +0 -0
  162. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/discovery.py +0 -0
  163. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/downloader.py +0 -0
  164. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/installer.py +0 -0
  165. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/metadata.py +0 -0
  166. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/prompt_builder.py +0 -0
  167. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/register_callbacks.py +0 -0
  168. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/remote_catalog.py +0 -0
  169. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/skill_catalog.py +0 -0
  170. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/skills_install_menu.py +0 -0
  171. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/agent_skills/skills_menu.py +0 -0
  172. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/__init__.py +0 -0
  173. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/accounts.py +0 -0
  174. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/antigravity_model.py +0 -0
  175. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/config.py +0 -0
  176. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/constants.py +0 -0
  177. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/oauth.py +0 -0
  178. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/register_callbacks.py +0 -0
  179. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/storage.py +0 -0
  180. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/test_plugin.py +0 -0
  181. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/token.py +0 -0
  182. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/transport.py +0 -0
  183. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/antigravity_oauth/utils.py +0 -0
  184. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/__init__.py +0 -0
  185. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/config.py +0 -0
  186. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/oauth_flow.py +0 -0
  187. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/register_callbacks.py +0 -0
  188. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/test_plugin.py +0 -0
  189. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/chatgpt_oauth/utils.py +0 -0
  190. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_hooks/__init__.py +0 -0
  191. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_hooks/config.py +0 -0
  192. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_hooks/register_callbacks.py +0 -0
  193. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/README.md +0 -0
  194. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/SETUP.md +0 -0
  195. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/__init__.py +0 -0
  196. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/config.py +0 -0
  197. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/register_callbacks.py +0 -0
  198. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/test_plugin.py +0 -0
  199. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  200. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/claude_code_oauth/utils.py +0 -0
  201. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/customizable_commands/__init__.py +0 -0
  202. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/customizable_commands/register_callbacks.py +0 -0
  203. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/example_custom_command/README.md +0 -0
  204. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/example_custom_command/register_callbacks.py +0 -0
  205. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/file_permission_handler/__init__.py +0 -0
  206. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/file_permission_handler/register_callbacks.py +0 -0
  207. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/frontend_emitter/__init__.py +0 -0
  208. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/frontend_emitter/emitter.py +0 -0
  209. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/frontend_emitter/register_callbacks.py +0 -0
  210. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_creator/__init__.py +0 -0
  211. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_creator/register_callbacks.py +0 -0
  212. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_manager/__init__.py +0 -0
  213. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_manager/config.py +0 -0
  214. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_manager/hooks_menu.py +0 -0
  215. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/hook_manager/register_callbacks.py +0 -0
  216. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/oauth_puppy_html.py +0 -0
  217. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/shell_safety/__init__.py +0 -0
  218. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/shell_safety/agent_shell_safety.py +0 -0
  219. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/shell_safety/command_cache.py +0 -0
  220. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/shell_safety/register_callbacks.py +0 -0
  221. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/synthetic_status/__init__.py +0 -0
  222. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/synthetic_status/register_callbacks.py +0 -0
  223. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/synthetic_status/status_api.py +0 -0
  224. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/universal_constructor/__init__.py +0 -0
  225. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/universal_constructor/models.py +0 -0
  226. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/universal_constructor/register_callbacks.py +0 -0
  227. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/universal_constructor/registry.py +0 -0
  228. {newcode-0.2.9 → newcode-0.2.10}/newcode/plugins/universal_constructor/sandbox.py +0 -0
  229. {newcode-0.2.9 → newcode-0.2.10}/newcode/prompts/antigravity_system_prompt.md +0 -0
  230. {newcode-0.2.9 → newcode-0.2.10}/newcode/pydantic_patches.py +0 -0
  231. {newcode-0.2.9 → newcode-0.2.10}/newcode/reopenable_async_client.py +0 -0
  232. {newcode-0.2.9 → newcode-0.2.10}/newcode/round_robin_model.py +0 -0
  233. {newcode-0.2.9 → newcode-0.2.10}/newcode/session_storage.py +0 -0
  234. {newcode-0.2.9 → newcode-0.2.10}/newcode/status_display.py +0 -0
  235. {newcode-0.2.9 → newcode-0.2.10}/newcode/summarization_agent.py +0 -0
  236. {newcode-0.2.9 → newcode-0.2.10}/newcode/terminal_utils.py +0 -0
  237. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/__init__.py +0 -0
  238. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/agent_tools.py +0 -0
  239. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/__init__.py +0 -0
  240. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/constants.py +0 -0
  241. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/demo_tui.py +0 -0
  242. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/handler.py +0 -0
  243. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/models.py +0 -0
  244. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/registration.py +0 -0
  245. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/renderers.py +0 -0
  246. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/terminal_ui.py +0 -0
  247. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/theme.py +0 -0
  248. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/ask_user_question/tui_loop.py +0 -0
  249. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/__init__.py +0 -0
  250. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_control.py +0 -0
  251. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_interactions.py +0 -0
  252. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_locators.py +0 -0
  253. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_manager.py +0 -0
  254. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_navigation.py +0 -0
  255. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_screenshot.py +0 -0
  256. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_scripts.py +0 -0
  257. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/browser_workflows.py +0 -0
  258. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/chromium_terminal_manager.py +0 -0
  259. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/terminal_command_tools.py +0 -0
  260. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/terminal_screenshot_tools.py +0 -0
  261. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/browser/terminal_tools.py +0 -0
  262. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/command_runner.py +0 -0
  263. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/common.py +0 -0
  264. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/display.py +0 -0
  265. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/file_modifications.py +0 -0
  266. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/file_operations.py +0 -0
  267. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/skills_tools.py +0 -0
  268. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/subagent_context.py +0 -0
  269. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/tools_content.py +0 -0
  270. {newcode-0.2.9 → newcode-0.2.10}/newcode/tools/universal_constructor.py +0 -0
  271. {newcode-0.2.9 → newcode-0.2.10}/newcode/uvx_detection.py +0 -0
  272. {newcode-0.2.9 → newcode-0.2.10}/newcode/version_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: newcode
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: AI-powered code generation agent platform
5
5
  Project-URL: repository, https://github.com/janfeddersen-wq/new_code
6
6
  Project-URL: HomePage, https://github.com/janfeddersen-wq/new_code
@@ -1441,6 +1441,28 @@ class BaseAgent(ABC):
1441
1441
  self._mcp_servers = filtered_mcp_servers
1442
1442
  return self._code_generation_agent
1443
1443
 
1444
+ def _reload_live_agent_after_token_refresh(
1445
+ self,
1446
+ *,
1447
+ output_type: Optional[Type[Any]] = None,
1448
+ message_group: Optional[str] = None,
1449
+ ) -> Optional[PydanticAgent]:
1450
+ """Rebuild the live agent so refreshed OAuth tokens take effect immediately."""
1451
+ try:
1452
+ self.reload_code_generation_agent(message_group=message_group)
1453
+ if output_type is not None:
1454
+ return self._create_agent_with_output_type(output_type)
1455
+ return self._code_generation_agent
1456
+ except Exception as exc:
1457
+ emit_warning(
1458
+ (
1459
+ "Token refresh succeeded, but rebuilding the live model client "
1460
+ f"failed: {exc}"
1461
+ ),
1462
+ group_id=message_group,
1463
+ )
1464
+ return None
1465
+
1444
1466
  def _create_agent_with_output_type(self, output_type: Type[Any]) -> PydanticAgent:
1445
1467
  """Create a temporary agent configured with a custom output_type.
1446
1468
 
@@ -1763,10 +1785,11 @@ class BaseAgent(ABC):
1763
1785
  pydantic_agent = (
1764
1786
  self._code_generation_agent or self.reload_code_generation_agent()
1765
1787
  )
1788
+ current_output_type = output_type
1766
1789
 
1767
1790
  # If a custom output_type is specified, create a temporary agent with that type
1768
- if output_type is not None:
1769
- pydantic_agent = self._create_agent_with_output_type(output_type)
1791
+ if current_output_type is not None:
1792
+ pydantic_agent = self._create_agent_with_output_type(current_output_type)
1770
1793
 
1771
1794
  # Handle model-specific prompt transformations via prepare_prompt_for_model()
1772
1795
  # This uses the get_model_system_prompt hook, so plugins can register their own handlers
@@ -1822,6 +1845,7 @@ class BaseAgent(ABC):
1822
1845
  prompt_payload = prompt
1823
1846
 
1824
1847
  async def run_agent_task():
1848
+ nonlocal pydantic_agent
1825
1849
  _cloudflare_retry_attempted = False
1826
1850
 
1827
1851
  while True:
@@ -1906,11 +1930,22 @@ class BaseAgent(ABC):
1906
1930
  )
1907
1931
 
1908
1932
  if refreshed_token:
1909
- emit_info(
1910
- "Token refresh successful, retrying request...",
1911
- group_id=group_id,
1933
+ rebuilt_agent = self._reload_live_agent_after_token_refresh(
1934
+ output_type=current_output_type,
1935
+ message_group=group_id,
1912
1936
  )
1913
- _retry_after_cloudflare_refresh = True
1937
+ if rebuilt_agent is not None:
1938
+ pydantic_agent = rebuilt_agent
1939
+ emit_info(
1940
+ "Token refresh successful, rebuilt Claude Code client, retrying request...",
1941
+ group_id=group_id,
1942
+ )
1943
+ _retry_after_cloudflare_refresh = True
1944
+ else:
1945
+ emit_info(
1946
+ "Token refresh succeeded, but retry aborted because the live Claude Code client could not be rebuilt.",
1947
+ group_id=group_id,
1948
+ )
1914
1949
 
1915
1950
  if not _retry_after_cloudflare_refresh:
1916
1951
  # Filter out CancelledError and UsageLimitExceeded from the exception group - let it propagate
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "newcode"
7
- version = "0.2.9"
7
+ version = "0.2.10"
8
8
  description = "AI-powered code generation agent platform"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.14"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes