newcode 0.1.7__tar.gz → 0.1.9__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 (288) hide show
  1. {newcode-0.1.7 → newcode-0.1.9}/.gitignore +1 -1
  2. {newcode-0.1.7 → newcode-0.1.9}/PKG-INFO +5 -5
  3. {newcode-0.1.7 → newcode-0.1.9}/README.md +3 -3
  4. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/__main__.py +2 -2
  5. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/__init__.py +1 -1
  6. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_c_reviewer.py +2 -2
  7. newcode-0.1.7/code_puppy/agents/agent_code_puppy.py → newcode-0.1.9/newcode/agents/agent_code_agent.py +3 -3
  8. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_code_reviewer.py +2 -2
  9. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_cpp_reviewer.py +3 -3
  10. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_creator_agent.py +6 -8
  11. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_golang_reviewer.py +7 -7
  12. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_javascript_reviewer.py +5 -3
  13. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_manager.py +13 -13
  14. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_pack_leader.py +1 -1
  15. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_planning.py +3 -3
  16. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_python_programmer.py +5 -7
  17. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_python_reviewer.py +3 -3
  18. newcode-0.1.7/code_puppy/agents/agent_qa_kitten.py → newcode-0.1.9/newcode/agents/agent_qa_browser.py +9 -9
  19. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_qa_expert.py +2 -2
  20. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_scheduler.py +4 -4
  21. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_security_auditor.py +3 -3
  22. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_typescript_reviewer.py +3 -3
  23. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/base_agent.py +43 -45
  24. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/event_stream_handler.py +5 -5
  25. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/json_agent.py +5 -5
  26. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/bloodhound.py +1 -1
  27. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/husky.py +1 -1
  28. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/retriever.py +1 -1
  29. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/shepherd.py +1 -1
  30. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/terrier.py +1 -1
  31. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/watchdog.py +1 -1
  32. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/prompt_reviewer.py +1 -1
  33. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/subagent_stream_handler.py +4 -4
  34. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/__init__.py +1 -1
  35. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/app.py +4 -4
  36. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/main.py +1 -1
  37. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/routers/__init__.py +1 -1
  38. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/routers/agents.py +1 -1
  39. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/routers/commands.py +4 -4
  40. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/routers/config.py +5 -5
  41. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/routers/sessions.py +1 -1
  42. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/websocket.py +2 -2
  43. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/claude_cache_client.py +2 -2
  44. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/cli_runner.py +81 -82
  45. newcode-0.1.9/newcode/command_line/__init__.py +1 -0
  46. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/add_model_menu.py +6 -6
  47. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/agent_menu.py +8 -8
  48. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/autosave_menu.py +7 -9
  49. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/colors_menu.py +7 -11
  50. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/command_handler.py +15 -15
  51. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/config_commands.py +43 -43
  52. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/core_commands.py +40 -40
  53. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/diff_menu.py +5 -5
  54. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/load_context_completion.py +1 -1
  55. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/base.py +1 -1
  56. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/catalog_server_installer.py +3 -3
  57. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/custom_server_form.py +4 -4
  58. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/custom_server_installer.py +4 -4
  59. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/edit_command.py +3 -3
  60. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/handler.py +1 -1
  61. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/help_command.py +1 -1
  62. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/install_command.py +4 -4
  63. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/install_menu.py +4 -4
  64. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/list_command.py +2 -2
  65. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/logs_command.py +3 -3
  66. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/remove_command.py +2 -2
  67. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/restart_command.py +2 -2
  68. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/search_command.py +2 -2
  69. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/start_all_command.py +2 -2
  70. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/start_command.py +1 -1
  71. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/status_command.py +3 -3
  72. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/stop_all_command.py +2 -2
  73. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/stop_command.py +1 -1
  74. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/test_command.py +1 -1
  75. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/utils.py +2 -2
  76. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/wizard_utils.py +4 -4
  77. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp_completion.py +1 -1
  78. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/model_picker_completion.py +3 -3
  79. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/model_settings_menu.py +5 -5
  80. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/motd.py +5 -7
  81. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/onboarding_slides.py +1 -1
  82. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/onboarding_wizard.py +4 -4
  83. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/pin_command_completion.py +7 -7
  84. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/prompt_toolkit_completion.py +16 -16
  85. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/session_commands.py +17 -17
  86. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/skills_completion.py +1 -1
  87. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/uc_menu.py +6 -6
  88. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/config.py +25 -25
  89. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/error_logging.py +3 -3
  90. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/README.md +1 -1
  91. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/aliases.py +7 -7
  92. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/matcher.py +1 -1
  93. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/http_utils.py +1 -1
  94. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/keymap.py +3 -3
  95. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/main.py +1 -1
  96. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/blocking_startup.py +3 -3
  97. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/captured_stdio_server.py +1 -1
  98. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/config_wizard.py +4 -4
  99. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/examples/retry_example.py +1 -1
  100. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/managed_server.py +3 -3
  101. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/manager.py +1 -1
  102. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/mcp_logs.py +1 -1
  103. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/registry.py +3 -3
  104. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/server_registry_catalog.py +1 -1
  105. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_prompts/hook_creator.py +1 -1
  106. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/__init__.py +2 -2
  107. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/message_queue.py +2 -2
  108. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/messages.py +1 -1
  109. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/queue_console.py +2 -2
  110. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/rich_renderer.py +23 -17
  111. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/spinner/__init__.py +2 -2
  112. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/spinner/console_spinner.py +3 -3
  113. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/spinner/spinner_base.py +1 -1
  114. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/subagent_console.py +3 -3
  115. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/model_factory.py +13 -13
  116. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/model_switching.py +3 -3
  117. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/model_utils.py +1 -1
  118. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/models_dev_parser.py +3 -3
  119. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/__init__.py +6 -6
  120. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/__init__.py +1 -1
  121. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/config.py +4 -4
  122. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/discovery.py +5 -5
  123. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/downloader.py +6 -6
  124. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/prompt_builder.py +3 -3
  125. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/register_callbacks.py +9 -9
  126. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/remote_catalog.py +3 -3
  127. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/skill_catalog.py +3 -3
  128. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/skills_install_menu.py +7 -7
  129. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/skills_menu.py +10 -10
  130. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/antigravity_model.py +3 -3
  131. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/config.py +1 -1
  132. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/register_callbacks.py +6 -6
  133. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/transport.py +1 -1
  134. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/utils.py +1 -1
  135. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/config.py +1 -1
  136. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/oauth_flow.py +2 -2
  137. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/register_callbacks.py +5 -5
  138. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/test_plugin.py +8 -8
  139. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_hooks/config.py +3 -3
  140. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_hooks/register_callbacks.py +4 -4
  141. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/SETUP.md +5 -5
  142. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/config.py +1 -1
  143. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/register_callbacks.py +9 -9
  144. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/test_plugin.py +8 -8
  145. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/customizable_commands/register_callbacks.py +3 -3
  146. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/example_custom_command/README.md +17 -17
  147. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/example_custom_command/register_callbacks.py +2 -2
  148. newcode-0.1.9/newcode/plugins/file_permission_handler/__init__.py +4 -0
  149. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/file_permission_handler/register_callbacks.py +4 -4
  150. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/frontend_emitter/__init__.py +1 -1
  151. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/frontend_emitter/emitter.py +1 -1
  152. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/frontend_emitter/register_callbacks.py +2 -2
  153. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_creator/register_callbacks.py +3 -3
  154. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_manager/config.py +4 -4
  155. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_manager/hooks_menu.py +6 -6
  156. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_manager/register_callbacks.py +4 -4
  157. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/scheduler/register_callbacks.py +4 -4
  158. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/scheduler/scheduler_menu.py +12 -14
  159. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/scheduler/scheduler_wizard.py +10 -10
  160. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/shell_safety/agent_shell_safety.py +1 -1
  161. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/shell_safety/register_callbacks.py +6 -6
  162. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/synthetic_status/register_callbacks.py +3 -3
  163. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/synthetic_status/status_api.py +1 -1
  164. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/universal_constructor/__init__.py +1 -1
  165. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/universal_constructor/register_callbacks.py +2 -2
  166. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/pydantic_patches.py +8 -8
  167. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/__init__.py +2 -2
  168. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/__main__.py +2 -2
  169. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/cli.py +7 -7
  170. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/config.py +2 -2
  171. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/daemon.py +3 -3
  172. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/executor.py +12 -12
  173. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/platform.py +2 -2
  174. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/session_storage.py +5 -5
  175. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/status_display.py +12 -12
  176. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/summarization_agent.py +4 -4
  177. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/__init__.py +23 -23
  178. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/agent_tools.py +18 -18
  179. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/__init__.py +1 -1
  180. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/demo_tui.py +1 -1
  181. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/handler.py +2 -2
  182. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/terminal_ui.py +1 -1
  183. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/theme.py +3 -3
  184. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/__init__.py +1 -1
  185. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_control.py +2 -2
  186. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_interactions.py +2 -2
  187. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_locators.py +2 -2
  188. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_manager.py +4 -4
  189. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_navigation.py +2 -2
  190. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_screenshot.py +3 -5
  191. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_scripts.py +2 -2
  192. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/browser_workflows.py +3 -3
  193. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/chromium_terminal_manager.py +1 -1
  194. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/terminal_command_tools.py +3 -3
  195. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/terminal_screenshot_tools.py +4 -4
  196. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/browser/terminal_tools.py +6 -7
  197. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/command_runner.py +10 -10
  198. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/common.py +12 -12
  199. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/display.py +3 -3
  200. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/file_modifications.py +13 -13
  201. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/file_operations.py +4 -4
  202. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/scheduler_tools.py +17 -17
  203. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/skills_tools.py +7 -7
  204. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/subagent_context.py +1 -1
  205. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/universal_constructor.py +12 -12
  206. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/uvx_detection.py +4 -4
  207. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/version_checker.py +2 -2
  208. {newcode-0.1.7 → newcode-0.1.9}/pyproject.toml +16 -14
  209. newcode-0.1.7/code_puppy/command_line/__init__.py +0 -1
  210. newcode-0.1.7/code_puppy/plugins/file_permission_handler/__init__.py +0 -4
  211. {newcode-0.1.7 → newcode-0.1.9}/LICENSE +0 -0
  212. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/__init__.py +0 -0
  213. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/agent_terminal_qa.py +0 -0
  214. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/agents/pack/__init__.py +0 -0
  215. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/pty_manager.py +0 -0
  216. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/api/templates/terminal.html +0 -0
  217. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/callbacks.py +0 -0
  218. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/chatgpt_codex_client.py +0 -0
  219. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/attachments.py +0 -0
  220. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/clipboard.py +0 -0
  221. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/command_registry.py +0 -0
  222. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/file_path_completion.py +0 -0
  223. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/mcp/__init__.py +0 -0
  224. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/utils.py +0 -0
  225. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/command_line/wiggum_state.py +0 -0
  226. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/gemini_code_assist.py +0 -0
  227. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/gemini_model.py +0 -0
  228. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/__init__.py +0 -0
  229. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/engine.py +0 -0
  230. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/executor.py +0 -0
  231. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/models.py +0 -0
  232. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/registry.py +0 -0
  233. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/hook_engine/validator.py +0 -0
  234. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/__init__.py +0 -0
  235. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/async_lifecycle.py +0 -0
  236. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/circuit_breaker.py +0 -0
  237. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/dashboard.py +0 -0
  238. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/error_isolation.py +0 -0
  239. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/health_monitor.py +0 -0
  240. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/retry_manager.py +0 -0
  241. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/status_tracker.py +0 -0
  242. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_/system_tools.py +0 -0
  243. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/mcp_prompts/__init__.py +0 -0
  244. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/bus.py +0 -0
  245. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/commands.py +0 -0
  246. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/markdown_patches.py +0 -0
  247. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/messaging/renderers.py +0 -0
  248. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/models.json +0 -0
  249. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/models_dev_api.json +0 -0
  250. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/installer.py +0 -0
  251. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/agent_skills/metadata.py +0 -0
  252. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/__init__.py +0 -0
  253. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/accounts.py +0 -0
  254. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/constants.py +0 -0
  255. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/oauth.py +0 -0
  256. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/storage.py +0 -0
  257. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/test_plugin.py +0 -0
  258. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/antigravity_oauth/token.py +0 -0
  259. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/__init__.py +0 -0
  260. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/chatgpt_oauth/utils.py +0 -0
  261. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_hooks/__init__.py +0 -0
  262. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/README.md +0 -0
  263. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/__init__.py +0 -0
  264. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/token_refresh_heartbeat.py +0 -0
  265. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/claude_code_oauth/utils.py +0 -0
  266. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/customizable_commands/__init__.py +0 -0
  267. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_creator/__init__.py +0 -0
  268. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/hook_manager/__init__.py +0 -0
  269. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/oauth_puppy_html.py +0 -0
  270. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/scheduler/__init__.py +0 -0
  271. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/shell_safety/__init__.py +0 -0
  272. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/shell_safety/command_cache.py +0 -0
  273. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/synthetic_status/__init__.py +0 -0
  274. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/universal_constructor/models.py +0 -0
  275. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/universal_constructor/registry.py +0 -0
  276. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/plugins/universal_constructor/sandbox.py +0 -0
  277. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/prompts/antigravity_system_prompt.md +0 -0
  278. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/reopenable_async_client.py +0 -0
  279. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/round_robin_model.py +0 -0
  280. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/platform_unix.py +0 -0
  281. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/scheduler/platform_win.py +0 -0
  282. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/terminal_utils.py +0 -0
  283. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/constants.py +0 -0
  284. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/models.py +0 -0
  285. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/registration.py +0 -0
  286. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/renderers.py +0 -0
  287. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/ask_user_question/tui_loop.py +0 -0
  288. {newcode-0.1.7/code_puppy → newcode-0.1.9/newcode}/tools/tools_content.py +0 -0
@@ -31,7 +31,7 @@ nuitka-crash-report.xml
31
31
  main.bin
32
32
 
33
33
  # Bundled skills removed — skills are now fetched from remote catalog
34
- code_puppy/bundled_skills/
34
+ newcode/bundled_skills/
35
35
 
36
36
  # Hook engine runtime artifacts (logs, compiled outputs)
37
37
  .claude/activity.jsonl
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: newcode
3
- Version: 0.1.7
4
- Summary: AI-powered code generation agent - a fedstew fork of code-puppy
3
+ Version: 0.1.9
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
7
7
  Project-URL: Upstream, https://github.com/mpfaffenberger/code_puppy
@@ -45,7 +45,7 @@ Description-Content-Type: text/markdown
45
45
 
46
46
  An AI-powered code generation and modification agent for the terminal.
47
47
 
48
- NewCode is a fork of [code-puppy](https://github.com/mpfaffenberger/code_puppy) by Michael Pfaffenberger, customized for the fedstew workflow. We wanted a clean, professional CLI agent with opinionated defaults, streamlined prompts, and a focus on practical code generation without the playful branding.
48
+ NewCode is a fork of [code-puppy](https://github.com/mpfaffenberger/newcode) by Michael Pfaffenberger, customized for the fedstew workflow. We wanted a clean, professional CLI agent with opinionated defaults, streamlined prompts, and a focus on practical code generation without the playful branding.
49
49
 
50
50
  ## What changed from code-puppy
51
51
 
@@ -100,7 +100,7 @@ On first run, you'll be guided through a setup wizard to configure your API keys
100
100
 
101
101
  ## Configuration
102
102
 
103
- Configuration is stored in `~/.config/code_puppy/puppy.cfg` (XDG-compliant paths). The setup wizard handles initial configuration. You can also use CLI commands:
103
+ Configuration is stored in `~/.config/newcode/puppy.cfg` (XDG-compliant paths). The setup wizard handles initial configuration. You can also use CLI commands:
104
104
 
105
105
  ```bash
106
106
  # Inside the agent REPL:
@@ -147,7 +147,7 @@ ruff format --check .
147
147
 
148
148
  ## Credits
149
149
 
150
- This project is a fork of [code-puppy](https://github.com/mpfaffenberger/code_puppy) by [Michael Pfaffenberger](https://github.com/mpfaffenberger), licensed under the MIT License. We are grateful for the original work and the open-source foundation it provides.
150
+ This project is a fork of [code-puppy](https://github.com/mpfaffenberger/newcode) by [Michael Pfaffenberger](https://github.com/mpfaffenberger), licensed under the MIT License. We are grateful for the original work and the open-source foundation it provides.
151
151
 
152
152
  ## License
153
153
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  An AI-powered code generation and modification agent for the terminal.
4
4
 
5
- NewCode is a fork of [code-puppy](https://github.com/mpfaffenberger/code_puppy) by Michael Pfaffenberger, customized for the fedstew workflow. We wanted a clean, professional CLI agent with opinionated defaults, streamlined prompts, and a focus on practical code generation without the playful branding.
5
+ NewCode is a fork of [code-puppy](https://github.com/mpfaffenberger/newcode) by Michael Pfaffenberger, customized for the fedstew workflow. We wanted a clean, professional CLI agent with opinionated defaults, streamlined prompts, and a focus on practical code generation without the playful branding.
6
6
 
7
7
  ## What changed from code-puppy
8
8
 
@@ -57,7 +57,7 @@ On first run, you'll be guided through a setup wizard to configure your API keys
57
57
 
58
58
  ## Configuration
59
59
 
60
- Configuration is stored in `~/.config/code_puppy/puppy.cfg` (XDG-compliant paths). The setup wizard handles initial configuration. You can also use CLI commands:
60
+ Configuration is stored in `~/.config/newcode/puppy.cfg` (XDG-compliant paths). The setup wizard handles initial configuration. You can also use CLI commands:
61
61
 
62
62
  ```bash
63
63
  # Inside the agent REPL:
@@ -104,7 +104,7 @@ ruff format --check .
104
104
 
105
105
  ## Credits
106
106
 
107
- This project is a fork of [code-puppy](https://github.com/mpfaffenberger/code_puppy) by [Michael Pfaffenberger](https://github.com/mpfaffenberger), licensed under the MIT License. We are grateful for the original work and the open-source foundation it provides.
107
+ This project is a fork of [code-puppy](https://github.com/mpfaffenberger/newcode) by [Michael Pfaffenberger](https://github.com/mpfaffenberger), licensed under the MIT License. We are grateful for the original work and the open-source foundation it provides.
108
108
 
109
109
  ## License
110
110
 
@@ -1,10 +1,10 @@
1
1
  """
2
2
  Entry point for running newcode as a module.
3
3
 
4
- This allows the package to be run with: python -m code_puppy
4
+ This allows the package to be run with: python -m newcode
5
5
  """
6
6
 
7
- from code_puppy.main import main_entry
7
+ from newcode.main import main_entry
8
8
 
9
9
  if __name__ == "__main__":
10
10
  main_entry()
@@ -1,4 +1,4 @@
1
- """Agent management system for code-puppy.
1
+ """Agent management system for newcode.
2
2
 
3
3
  This module provides functionality for switching between different agent
4
4
  configurations, each with their own system prompts and tool sets.
@@ -31,7 +31,7 @@ class CReviewerAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are the C systems reviewer puppy. Think C99/C11 in the trenches: kernels, drivers, embedded firmware, high-performance network stacks. Embrace the sass, but never compromise on correctness.
34
+ You are a C systems code reviewer. Think C99/C11 in the trenches: kernels, drivers, embedded firmware, high-performance network stacks. Be direct and never compromise on correctness.
35
35
 
36
36
  Mission profile:
37
37
  - Review only `.c`/`.h` files with meaningful code diffs. Skip untouched files or mechanical formatting changes.
@@ -150,5 +150,5 @@ Agent collaboration:
150
150
  - Use list_agents to discover specialists for domain-specific concerns (embedded, networking, etc.)
151
151
  - Always explain why you're invoking another agent and what specific expertise you need
152
152
 
153
- You're the C review persona for this CLI. Be witty, relentless about low-level rigor, and absurdly helpful.
153
+ You're the C review agent for this CLI. Be thorough, relentless about low-level rigor, and helpful.
154
154
  """
@@ -1,17 +1,17 @@
1
1
  """Code Agent - The default code generation agent."""
2
2
 
3
- from code_puppy.config import get_agent_name, get_user_name
3
+ from newcode.config import get_agent_name, get_user_name
4
4
 
5
5
  from .. import callbacks
6
6
  from .base_agent import BaseAgent
7
7
 
8
8
 
9
- class CodePuppyAgent(BaseAgent):
9
+ class CodeAgent(BaseAgent):
10
10
  """Code Agent - The default general-purpose code agent."""
11
11
 
12
12
  @property
13
13
  def name(self) -> str:
14
- return "code-puppy"
14
+ return "code-agent"
15
15
 
16
16
  @property
17
17
  def display_name(self) -> str:
@@ -31,7 +31,7 @@ class CodeQualityReviewerAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are the general-purpose code review puppy. Security-first, performance-aware, best-practices obsessed. Keep the banter friendly but the feedback razor sharp.
34
+ You are a general-purpose code reviewer. Security-first, performance-aware, best-practices obsessed. Keep the feedback clear and razor sharp.
35
35
 
36
36
  Mission scope:
37
37
  - Review only files with substantive code or config changes. Skip untouched or trivial reformatting noise.
@@ -85,5 +85,5 @@ Agent collaboration:
85
85
  - Always explain what expertise you need when involving other agents
86
86
  - Act as a coordinator when multiple specialist reviews are required
87
87
 
88
- You're the default quality-and-security reviewer for this CLI. Stay playful, stay thorough, keep teams shipping safe and maintainable code.
88
+ You're the default quality-and-security reviewer for this CLI. Stay thorough and keep teams shipping safe and maintainable code.
89
89
  """
@@ -29,7 +29,7 @@ class CppReviewerAgent(BaseAgent):
29
29
 
30
30
  def get_system_prompt(self) -> str:
31
31
  return """
32
- You are the C++ reviewer puppy. You live for zero-overhead abstractions, predictable performance, and ruthless safety. Bring the snark, keep it kind.
32
+ You are a C++ code reviewer. You live for zero-overhead abstractions, predictable performance, and ruthless safety. Be direct and constructive.
33
33
 
34
34
  Mission priorities:
35
35
  - Review only `.cpp`/`.cc`/`.cxx`/`.hpp`/`.hh`/`.hxx` files with meaningful code diffs. Skip untouched headers/impls or formatting-only changes.
@@ -99,7 +99,7 @@ Security Hardening Checklist:
99
99
  - [ ] Type safety: avoid void*, use templates or variants
100
100
 
101
101
  Feedback protocol:
102
- - Be playful yet precise. "Consider …" keeps morale high while delivering the truth.
102
+ - Be direct yet precise. "Consider …" keeps morale high while delivering the truth.
103
103
  - Group related feedback; reference exact lines like `src/core/foo.cpp:128`. No ranges, no hand-waving.
104
104
  - Surface assumptions ("Assuming SSE4.2 is available…") so humans can confirm.
105
105
  - If the change is rock-solid, say so and highlight the wins.
@@ -127,5 +127,5 @@ Agent collaboration:
127
127
  - Use list_agents to find domain experts (graphics, embedded, scientific computing)
128
128
  - Always articulate what specific expertise you need when invoking other agents
129
129
 
130
- You're the C++ review persona for this CLI. Be witty, relentless about quality, and absurdly helpful.
130
+ You're the C++ review agent for this CLI. Be thorough, relentless about quality, and helpful.
131
131
  """
@@ -4,9 +4,9 @@ import json
4
4
  import os
5
5
  from typing import Dict, List, Optional
6
6
 
7
- from code_puppy.config import get_user_agents_directory
8
- from code_puppy.model_factory import ModelFactory
9
- from code_puppy.tools import get_available_tool_names
7
+ from newcode.config import get_user_agents_directory
8
+ from newcode.model_factory import ModelFactory
9
+ from newcode.tools import get_available_tool_names
10
10
 
11
11
  from .base_agent import BaseAgent
12
12
 
@@ -33,7 +33,7 @@ class AgentCreatorAgent(BaseAgent):
33
33
  # Also get Universal Constructor tools (custom tools created by users)
34
34
  uc_tools_info = []
35
35
  try:
36
- from code_puppy.plugins.universal_constructor.registry import get_registry
36
+ from newcode.plugins.universal_constructor.registry import get_registry
37
37
 
38
38
  registry = get_registry()
39
39
  uc_tools = registry.list_tools(include_disabled=True)
@@ -49,9 +49,7 @@ class AgentCreatorAgent(BaseAgent):
49
49
  if uc_tools_info:
50
50
  uc_tools_section = "\n".join(uc_tools_info)
51
51
  else:
52
- uc_tools_section = (
53
- "No custom UC tools created yet."
54
- )
52
+ uc_tools_section = "No custom UC tools created yet."
55
53
 
56
54
  # Load available models dynamically
57
55
  models_config = ModelFactory.load_config()
@@ -509,7 +507,7 @@ Your goal is to take users from idea to working agent in one smooth conversation
509
507
 
510
508
  def get_available_tools(self) -> List[str]:
511
509
  """Get all tools needed for agent creation."""
512
- from code_puppy.config import get_universal_constructor_enabled
510
+ from newcode.config import get_universal_constructor_enabled
513
511
 
514
512
  tools = [
515
513
  "list_files",
@@ -31,11 +31,11 @@ class GolangReviewerAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are an expert Golang reviewer puppy. Sniff only the Go code that changed, bark constructive stuff, and keep it playful but razor sharp without name-dropping any specific humans.
34
+ You are an expert Golang code reviewer. Focus only on the Go code that changed, provide constructive feedback, and keep it razor sharp without name-dropping any specific humans.
35
35
 
36
36
  Mission profile:
37
- - Review only tracked `.go` files with real code diffs. If a file is untouched or only whitespace/comments changed, just wag your tail and skip it.
38
- - Ignore every non-Go file: `.yml`, `.yaml`, `.md`, `.json`, `.txt`, `Dockerfile`, `LICENSE`, `README.md`, etc. If someone tries to sneak one in, roll over and move on.
37
+ - Review only tracked `.go` files with real code diffs. If a file is untouched or only whitespace/comments changed, skip it.
38
+ - Ignore every non-Go file: `.yml`, `.yaml`, `.md`, `.json`, `.txt`, `Dockerfile`, `LICENSE`, `README.md`, etc. If someone tries to sneak one in, skip it.
39
39
  - Live by `Effective Go` (https://go.dev/doc/effective_go) and the `Google Go Style Guide` (https://google.github.io/styleguide/go/).
40
40
  - Enforce gofmt/goimports cleanliness, make sure `go vet`, `staticcheck`, `golangci-lint`, and `go fmt` would be happy, and flag any missing `//nolint` justifications.
41
41
  - You are the guardian of SOLID, DRY, YAGNI, and the Zen of Python (yes, even here). Call out violations with precision.
@@ -46,10 +46,10 @@ Per Go file that actually matters:
46
46
  3. Sprinkle genuine praise when a change slaps—great naming, clean abstractions, smart concurrency, tests that cover real edge cases.
47
47
 
48
48
  Review etiquette:
49
- - Stay concise, organized, and focused on impact. Group similar findings so the reader doesn’t chase their tail.
49
+ - Stay concise, organized, and focused on impact. Group similar findings for easy consumption.
50
50
  - Flag missing tests or weak coverage when it matters. Suggest concrete test names or scenarios using `go test -v`, `go test -race`, `go test -cover`.
51
- - Prefer positive phrasing: "Consider" beats "Don’t". We’re a nice puppy, just ridiculously picky.
52
- - If everything looks barking good, say so explicitly and call out strengths.
51
+ - Prefer positive phrasing: "Consider" beats "Don’t". Be constructive and thorough.
52
+ - If everything looks good, say so explicitly and call out strengths.
53
53
  - Always mention residual risks or assumptions you made when you can’t fully verify something.
54
54
  - Recommend specific Go tools: `go mod tidy`, `go mod verify`, `go generate`, `pprof` profiling.
55
55
 
@@ -144,7 +144,7 @@ Toolchain integration:
144
144
  - Enable `pprof` profiling for performance analysis
145
145
  - Use `go generate` for code generation patterns
146
146
 
147
- You are the Golang review persona for this CLI pack. Be sassy, precise, and wildly helpful.
147
+ You are the Golang review agent for this CLI. Be precise and helpful.
148
148
  - When concurrency primitives show up, double-check for race hazards, context cancellation, and proper error propagation.
149
149
  - If performance or allocation pressure might bite, call it out and suggest profiling or benchmarks.
150
150
  """
@@ -16,7 +16,9 @@ class JavaScriptReviewerAgent(BaseAgent):
16
16
 
17
17
  @property
18
18
  def description(self) -> str:
19
- return "Snarky-but-helpful JavaScript reviewer enforcing modern patterns and runtime sanity"
19
+ return (
20
+ "Thorough JavaScript reviewer enforcing modern patterns and runtime sanity"
21
+ )
20
22
 
21
23
  def get_available_tools(self) -> list[str]:
22
24
  """Reviewers need read-only inspection helpers plus agent collaboration."""
@@ -31,7 +33,7 @@ class JavaScriptReviewerAgent(BaseAgent):
31
33
 
32
34
  def get_system_prompt(self) -> str:
33
35
  return """
34
- You are the JavaScript reviewer puppy. Stay playful but be brutally honest about runtime risks, async chaos, and bundle bloat.
36
+ You are a JavaScript code reviewer. Be thorough and honest about runtime risks, async issues, and bundle bloat.
35
37
 
36
38
  Mission focus:
37
39
  - Review only `.js`/`.mjs`/`.cjs` files (and `.jsx`) with real code changes. Skip untouched files or pure prettier churn.
@@ -155,5 +157,5 @@ Agent collaboration:
155
157
  - Use list_agents to find specialists for specific frameworks (React, Vue, Angular) or deployment concerns
156
158
  - Always articulate what specific JavaScript/Node expertise you need when invoking other agents
157
159
 
158
- You're the JavaScript review persona for this CLI. Be witty, obsessive about quality, and ridiculously helpful.
160
+ You're the JavaScript review agent for this CLI. Be thorough, obsessive about quality, and helpful.
159
161
  """
@@ -12,10 +12,10 @@ from typing import Dict, List, Optional, Type, Union
12
12
 
13
13
  from pydantic_ai.messages import ModelMessage
14
14
 
15
- from code_puppy.agents.base_agent import BaseAgent
16
- from code_puppy.agents.json_agent import JSONAgent, discover_json_agents
17
- from code_puppy.callbacks import on_agent_reload, on_register_agents
18
- from code_puppy.messaging import emit_success, emit_warning
15
+ from newcode.agents.base_agent import BaseAgent
16
+ from newcode.agents.json_agent import JSONAgent, discover_json_agents
17
+ from newcode.callbacks import on_agent_reload, on_register_agents
18
+ from newcode.messaging import emit_success, emit_warning
19
19
 
20
20
  # Registry of available agents (Python classes and JSON file paths)
21
21
  _AGENT_REGISTRY: Dict[str, Union[Type[BaseAgent], str]] = {}
@@ -194,7 +194,7 @@ def _discover_agents(message_group_id: Optional[str] = None):
194
194
  _AGENT_REGISTRY.clear()
195
195
 
196
196
  # 1. Discover Python agent classes in the agents package
197
- import code_puppy.agents as agents_package
197
+ import newcode.agents as agents_package
198
198
 
199
199
  # Iterate through all modules in the agents package
200
200
  for _, modname, _ in pkgutil.iter_modules(agents_package.__path__):
@@ -207,7 +207,7 @@ def _discover_agents(message_group_id: Optional[str] = None):
207
207
 
208
208
  try:
209
209
  # Import the module
210
- module = importlib.import_module(f"code_puppy.agents.{modname}")
210
+ module = importlib.import_module(f"newcode.agents.{modname}")
211
211
 
212
212
  # Look for BaseAgent subclasses
213
213
  for attr_name in dir(module):
@@ -236,7 +236,7 @@ def _discover_agents(message_group_id: Optional[str] = None):
236
236
 
237
237
  try:
238
238
  # Import the sub-package
239
- subpkg = importlib.import_module(f"code_puppy.agents.{subpkg_name}")
239
+ subpkg = importlib.import_module(f"newcode.agents.{subpkg_name}")
240
240
 
241
241
  # Iterate through modules in the sub-package
242
242
  if not hasattr(subpkg, "__path__"):
@@ -249,7 +249,7 @@ def _discover_agents(message_group_id: Optional[str] = None):
249
249
  try:
250
250
  # Import the submodule
251
251
  module = importlib.import_module(
252
- f"code_puppy.agents.{subpkg_name}.{modname}"
252
+ f"newcode.agents.{subpkg_name}.{modname}"
253
253
  )
254
254
 
255
255
  # Look for BaseAgent subclasses
@@ -382,7 +382,7 @@ def get_current_agent_name() -> str:
382
382
 
383
383
  Returns:
384
384
  The name of the current agent for this session.
385
- Priority: session agent > config default > 'code-puppy'.
385
+ Priority: session agent > config default > 'code-agent'.
386
386
  """
387
387
  _ensure_session_cache_loaded()
388
388
  session_id = get_terminal_session_id()
@@ -469,9 +469,9 @@ def load_agent(agent_name: str) -> BaseAgent:
469
469
  _discover_agents(message_group_id=message_group_id)
470
470
 
471
471
  if agent_name not in _AGENT_REGISTRY:
472
- # Fallback to code-puppy if agent not found
473
- if "code-puppy" in _AGENT_REGISTRY:
474
- agent_name = "code-puppy"
472
+ # Fallback to code-agent if agent not found
473
+ if "code-agent" in _AGENT_REGISTRY:
474
+ agent_name = "code-agent"
475
475
  else:
476
476
  raise ValueError(
477
477
  f"Agent '{agent_name}' not found and no fallback available"
@@ -574,7 +574,7 @@ def _build_clone_display_name(display_name: str, clone_index: int) -> str:
574
574
 
575
575
  def _filter_available_tools(tool_names: List[str]) -> List[str]:
576
576
  """Filter a tool list to only available tool names."""
577
- from code_puppy.tools import get_available_tool_names
577
+ from newcode.tools import get_available_tool_names
578
578
 
579
579
  available_tools = set(get_available_tool_names())
580
580
  return [tool for tool in tool_names if tool in available_tools]
@@ -1,6 +1,6 @@
1
1
  """Orchestrator - The coordinator for parallel multi-agent workflows."""
2
2
 
3
- from code_puppy.config import get_agent_name
3
+ from newcode.config import get_agent_name
4
4
 
5
5
  from .. import callbacks
6
6
  from .base_agent import BaseAgent
@@ -1,6 +1,6 @@
1
1
  """Planning Agent - Breaks down complex tasks into actionable steps with strategic roadmapping."""
2
2
 
3
- from code_puppy.config import get_agent_name
3
+ from newcode.config import get_agent_name
4
4
 
5
5
  from .. import callbacks
6
6
  from .base_agent import BaseAgent
@@ -79,9 +79,9 @@ Your core responsibility is to:
79
79
 
80
80
  ### Step 4: Agent Coordination
81
81
  - Recommend which specialized agents should handle specific tasks:
82
- - Code generation: code-puppy
82
+ - Code generation: code-agent
83
83
  - Security review: security-auditor
84
- - Quality assurance: qa-kitten (only for web development) or qa-expert (for all other domains)
84
+ - Quality assurance: qa-browser (only for web development) or qa-expert (for all other domains)
85
85
  - Language-specific reviews: python-reviewer, javascript-reviewer, etc.
86
86
  - File permissions: file-permission-handler
87
87
 
@@ -35,7 +35,7 @@ class PythonProgrammerAgent(BaseAgent):
35
35
 
36
36
  def get_system_prompt(self) -> str:
37
37
  return """
38
- You are a Python programming wizard puppy! 🐍 You breathe Pythonic code and dream in async generators. Your mission is to craft production-ready Python solutions that would make Guido van Rossum proud.
38
+ You are a Python programming specialist. You write Pythonic code and excel at async patterns. Your mission is to craft production-ready Python solutions that follow best practices.
39
39
 
40
40
  Your Python superpowers include:
41
41
 
@@ -145,11 +145,9 @@ Code Quality Checklist (mentally verify for each change):
145
145
  - [ ] Proper error handling and logging
146
146
  - [ ] Documentation is clear and accurate
147
147
 
148
- Your Personality:
149
- - Be enthusiastic about Python but brutally honest about code quality
150
- - Use playful analogies: "This function is slower than a sloth on vacation"
151
- - Be pedantic about best practices but explain WHY they matter
152
- - Celebrate good code: "Now THAT'S some Pythonic poetry!"
148
+ Your Approach:
149
+ - Be thorough about Python but honest about code quality
150
+ - Be rigorous about best practices and explain WHY they matter
153
151
  - When suggesting improvements, provide concrete examples
154
152
  - Always explain the "why" behind your recommendations
155
153
  - Stay current with Python trends but prioritize proven patterns
@@ -160,5 +158,5 @@ Tool Usage:
160
158
  - Use read_file and grep to understand existing codebases
161
159
  Remember: You're not just writing code - you're crafting maintainable, performant, and secure Python solutions that will make future developers (and your future self) grateful. Every line should have purpose, every function should have clarity, and every module should have cohesion.
162
160
 
163
- Now go forth and write some phenomenal Python! 🐍✨
161
+ Write clean, maintainable, and performant Python.
164
162
  """
@@ -31,7 +31,7 @@ class PythonReviewerAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are a senior Python reviewer puppy. Bring the sass, guard code quality like a dragon hoards gold, and stay laser-focused on meaningful diff hunks.
34
+ You are a senior Python code reviewer. Guard code quality rigorously and stay laser-focused on meaningful diff hunks.
35
35
 
36
36
  Mission parameters:
37
37
  - Review only `.py` files with substantive code changes. Skip untouched files or pure formatting/whitespace churn.
@@ -56,7 +56,7 @@ Review heuristics:
56
56
  - Packaging & deployment: entry points with `setuptools`/`poetry`, dependency pinning with `pip-tools`, wheel friendliness, CLI ergonomics with `click`/`typer`, containerization with Docker multi-stage builds.
57
57
 
58
58
  Feedback style:
59
- - Be playful but precise. “Consider …” beats “This is wrong.”
59
+ - Be direct but precise. “Consider …” beats “This is wrong.”
60
60
  - Group related issues; reference exact lines (`path/to/file.py:123`). No ranges, no hand-wavy “somewhere in here.”
61
61
  - Call out unknowns or assumptions so humans can double-check.
62
62
  - If everything looks shipshape, declare victory and highlight why.
@@ -85,5 +85,5 @@ Agent collaboration:
85
85
  - Use list_agents to discover specialists for specific domains (ML, devops, databases)
86
86
  - Always explain what specific Python expertise you need when collaborating with other agents
87
87
 
88
- You're the Python review persona for this CLI. Be opinionated, kind, and relentlessly helpful.
88
+ You're the Python review agent for this CLI. Be opinionated, kind, and relentlessly helpful.
89
89
  """
@@ -1,25 +1,25 @@
1
- """Quality Assurance Kitten - Playwright-powered browser automation agent."""
1
+ """QA Browser - Playwright-powered browser automation agent."""
2
2
 
3
3
  from .base_agent import BaseAgent
4
4
 
5
5
 
6
- class QualityAssuranceKittenAgent(BaseAgent):
7
- """Quality Assurance Kitten - Advanced browser automation with Playwright."""
6
+ class QABrowserAgent(BaseAgent):
7
+ """QA Browser - Advanced browser automation with Playwright."""
8
8
 
9
9
  @property
10
10
  def name(self) -> str:
11
- return "qa-kitten"
11
+ return "qa-browser"
12
12
 
13
13
  @property
14
14
  def display_name(self) -> str:
15
- return "Quality Assurance Kitten 🐱"
15
+ return "QA Browser"
16
16
 
17
17
  @property
18
18
  def description(self) -> str:
19
19
  return "Advanced web browser automation and quality assurance testing using Playwright with visual analysis capabilities"
20
20
 
21
21
  def get_available_tools(self) -> list[str]:
22
- """Get the list of tools available to Web Browser Puppy."""
22
+ """Get the list of tools available to QA Browser."""
23
23
  return [
24
24
  # Browser control and initialization
25
25
  "browser_initialize",
@@ -71,9 +71,9 @@ class QualityAssuranceKittenAgent(BaseAgent):
71
71
  ]
72
72
 
73
73
  def get_system_prompt(self) -> str:
74
- """Get Web Browser Puppy's specialized system prompt."""
74
+ """Get QA Browser's specialized system prompt."""
75
75
  return """
76
- You are Quality Assurance Kitten 🐱, an advanced autonomous browser automation and QA testing agent powered by Playwright!
76
+ You are QA Browser, an advanced autonomous browser automation and QA testing agent powered by Playwright.
77
77
 
78
78
  You specialize in:
79
79
  🎯 **Quality Assurance Testing** - automated testing of web applications and user workflows
@@ -202,5 +202,5 @@ For any browser task, follow this approach:
202
202
  - **Follow accessibility best practices** - your automation should work for everyone
203
203
  - **Document your successes** - Save working patterns with browser_save_workflow for future reuse
204
204
 
205
- Your browser automation should be reliable, maintainable, and accessible. You are a meticulous QA engineer who catches bugs before users do! 🐱✨
205
+ Your browser automation should be reliable, maintainable, and accessible. You are a meticulous QA engineer who catches bugs before users do.
206
206
  """
@@ -31,7 +31,7 @@ class QAExpertAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are the QA expert puppy. Risk-based mindset, defect-prevention first, automation evangelist. Be playful, but push teams to ship with confidence.
34
+ You are a QA expert. Risk-based mindset, defect-prevention first, automation evangelist. Push teams to ship with confidence.
35
35
 
36
36
  Mission charter:
37
37
  - Review only files/artifacts tied to quality: tests, configs, pipelines, docs, code touching critical risk areas.
@@ -158,5 +158,5 @@ Agent collaboration:
158
158
  - Always articulate what specific testing expertise you need when involving other agents
159
159
  - Coordinate multiple reviewers when comprehensive quality assessment is needed
160
160
 
161
- You're the QA conscience for this CLI. Stay playful, stay relentless about quality, and make sure every release feels boringly safe.
161
+ You're the QA agent for this CLI. Stay relentless about quality and make sure every release is thoroughly validated.
162
162
  """
@@ -61,10 +61,10 @@ You can help users:
61
61
 
62
62
  ## How Scheduling Works
63
63
 
64
- - Tasks are stored in `~/.code_puppy/scheduled_tasks.json`
64
+ - Tasks are stored in `~/.newcode/scheduled_tasks.json`
65
65
  - A background daemon checks for tasks to run based on their schedule
66
- - Each task runs: `code-puppy -p <prompt> --model <model> --agent <agent>`
67
- - Output is saved to log files in `~/.code_puppy/scheduler_logs/`
66
+ - Each task runs: `newcode -p <prompt> --model <model> --agent <agent>`
67
+ - Output is saved to log files in `~/.newcode/scheduler_logs/`
68
68
 
69
69
  ## Schedule Types
70
70
 
@@ -75,7 +75,7 @@ You can help users:
75
75
  ## Available Agents to Suggest
76
76
 
77
77
  When users ask about automation, suggest appropriate agents:
78
- - `code-puppy` - General coding tasks
78
+ - `code-agent` - General coding tasks
79
79
  - `code-reviewer` or `python-reviewer` - Code review tasks
80
80
  - `security-auditor` - Security scanning
81
81
  - `qa-expert` - Quality assurance checks
@@ -31,7 +31,7 @@ class SecurityAuditorAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are the security auditor puppy. Objective, risk-driven, compliance-savvy. Mix kindness with ruthless clarity so teams actually fix things.
34
+ You are a security auditor. Objective, risk-driven, compliance-savvy. Mix clarity with actionable guidance so teams actually fix things.
35
35
 
36
36
  Audit mandate:
37
37
  - Scope only the files and configs tied to security posture: auth, access control, crypto, infrastructure as code, policies, logs, pipeline guards.
@@ -61,7 +61,7 @@ Evidence & documentation:
61
61
  Reporting etiquette:
62
62
  - Be concise but complete: risk description, impact, likelihood, affected assets, recommendation.
63
63
  - Suggest remediation phases: immediate quick win, medium-term fix, long-term strategic guardrail.
64
- - Call out positive controls or improvements observed—security teams deserve treats too.
64
+ - Call out positive controls or improvements observed—security teams deserve recognition too.
65
65
 
66
66
  Security toolchain integration:
67
67
  - SAST tools: `semgrep --config=auto`, `codeql database analyze`, SonarQube security rules, `bandit -r .` (Python), `gosec ./...` (Go), `eslint --plugin security`
@@ -176,5 +176,5 @@ Agent collaboration:
176
176
  - Always explain what specific security expertise you need when collaborating with other agents
177
177
  - Provide actionable remediation guidance that other reviewers can implement
178
178
 
179
- You're the security audit persona for this CLI. Stay independent, stay constructive, and keep the whole pack safe.
179
+ You're the security audit agent for this CLI. Stay independent, stay constructive, and keep the whole team safe.
180
180
  """
@@ -31,7 +31,7 @@ class TypeScriptReviewerAgent(BaseAgent):
31
31
 
32
32
  def get_system_prompt(self) -> str:
33
33
  return """
34
- You are an elite TypeScript reviewer puppy. Keep the jokes coming, but defend type soundness, DX, and runtime sanity like it’s your chew toy.
34
+ You are an elite TypeScript code reviewer. Defend type soundness, DX, and runtime sanity with unwavering rigor.
35
35
 
36
36
  Mission directives:
37
37
  - Review only `.ts`/`.tsx` files (and `.mts`/`.cts`) with substantive code changes. Skip untouched files or cosmetic reformatting.
@@ -55,7 +55,7 @@ Review heuristics:
55
55
  - Security: input validation, auth guards, CSRF/CSR token handling, SSR data leaks, and sanitization for DOM APIs.
56
56
 
57
57
  Feedback style:
58
- - Be cheeky but constructive. “Consider …” or “Maybe try …” keeps the tail wagging.
58
+ - Be direct but constructive. “Consider …” or “Maybe try …” keeps the feedback actionable.
59
59
  - Group related feedback; cite precise lines like `src/components/Foo.tsx:42`. No ranges, no vibes-only feedback.
60
60
  - Flag unknowns or assumptions explicitly so humans know what to double-check.
61
61
  - If nothing smells funky, celebrate and spotlight strengths.
@@ -161,5 +161,5 @@ Agent collaboration:
161
161
  - Always articulate what specific TypeScript expertise you need when collaborating with other agents
162
162
  - Ensure type safety collaboration catches runtime issues before deployment
163
163
 
164
- You're the TypeScript review persona for this CLI. Be witty, ruthless about quality, and delightfully helpful.
164
+ You're the TypeScript review agent for this CLI. Be thorough, rigorous about quality, and helpful.
165
165
  """