code-puppy 0.0.177__tar.gz → 0.0.178__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 (125) hide show
  1. {code_puppy-0.0.177 → code_puppy-0.0.178}/PKG-INFO +1 -1
  2. code_puppy-0.0.178/code_puppy/agents/agent_golang_reviewer.py +61 -0
  3. {code_puppy-0.0.177 → code_puppy-0.0.178}/pyproject.toml +1 -1
  4. {code_puppy-0.0.177 → code_puppy-0.0.178}/.gitignore +0 -0
  5. {code_puppy-0.0.177 → code_puppy-0.0.178}/LICENSE +0 -0
  6. {code_puppy-0.0.177 → code_puppy-0.0.178}/README.md +0 -0
  7. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/__init__.py +0 -0
  8. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/__main__.py +0 -0
  9. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/__init__.py +0 -0
  10. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/agent_code_puppy.py +0 -0
  11. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/agent_creator_agent.py +0 -0
  12. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/agent_manager.py +0 -0
  13. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/agent_qa_kitten.py +0 -0
  14. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/base_agent.py +0 -0
  15. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/agents/json_agent.py +0 -0
  16. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/callbacks.py +0 -0
  17. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/__init__.py +0 -0
  18. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/command_handler.py +0 -0
  19. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/file_path_completion.py +0 -0
  20. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/load_context_completion.py +0 -0
  21. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/__init__.py +0 -0
  22. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/add_command.py +0 -0
  23. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/base.py +0 -0
  24. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/handler.py +0 -0
  25. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/help_command.py +0 -0
  26. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/install_command.py +0 -0
  27. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/list_command.py +0 -0
  28. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/logs_command.py +0 -0
  29. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/remove_command.py +0 -0
  30. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/restart_command.py +0 -0
  31. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/search_command.py +0 -0
  32. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/start_all_command.py +0 -0
  33. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/start_command.py +0 -0
  34. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/status_command.py +0 -0
  35. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/stop_all_command.py +0 -0
  36. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/stop_command.py +0 -0
  37. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/test_command.py +0 -0
  38. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/utils.py +0 -0
  39. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/mcp/wizard_utils.py +0 -0
  40. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/model_picker_completion.py +0 -0
  41. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/motd.py +0 -0
  42. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/prompt_toolkit_completion.py +0 -0
  43. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/command_line/utils.py +0 -0
  44. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/config.py +0 -0
  45. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/http_utils.py +0 -0
  46. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/main.py +0 -0
  47. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/__init__.py +0 -0
  48. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/async_lifecycle.py +0 -0
  49. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/blocking_startup.py +0 -0
  50. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/captured_stdio_server.py +0 -0
  51. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/circuit_breaker.py +0 -0
  52. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/config_wizard.py +0 -0
  53. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/dashboard.py +0 -0
  54. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/error_isolation.py +0 -0
  55. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/examples/retry_example.py +0 -0
  56. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/health_monitor.py +0 -0
  57. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/managed_server.py +0 -0
  58. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/manager.py +0 -0
  59. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/registry.py +0 -0
  60. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/retry_manager.py +0 -0
  61. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/server_registry_catalog.py +0 -0
  62. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/status_tracker.py +0 -0
  63. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/mcp_/system_tools.py +0 -0
  64. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/__init__.py +0 -0
  65. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/message_queue.py +0 -0
  66. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/queue_console.py +0 -0
  67. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/renderers.py +0 -0
  68. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/spinner/__init__.py +0 -0
  69. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/spinner/console_spinner.py +0 -0
  70. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/spinner/spinner_base.py +0 -0
  71. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/messaging/spinner/textual_spinner.py +0 -0
  72. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/model_factory.py +0 -0
  73. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/models.json +0 -0
  74. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/plugins/__init__.py +0 -0
  75. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/reopenable_async_client.py +0 -0
  76. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/round_robin_model.py +0 -0
  77. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/status_display.py +0 -0
  78. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/summarization_agent.py +0 -0
  79. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/__init__.py +0 -0
  80. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/agent_tools.py +0 -0
  81. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/__init__.py +0 -0
  82. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_control.py +0 -0
  83. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_interactions.py +0 -0
  84. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_locators.py +0 -0
  85. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_navigation.py +0 -0
  86. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_screenshot.py +0 -0
  87. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_scripts.py +0 -0
  88. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/browser_workflows.py +0 -0
  89. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/camoufox_manager.py +0 -0
  90. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser/vqa_agent.py +0 -0
  91. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_control.py +0 -0
  92. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_interactions.py +0 -0
  93. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_locators.py +0 -0
  94. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_navigation.py +0 -0
  95. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_screenshot.py +0 -0
  96. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_scripts.py +0 -0
  97. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/browser_workflows.py +0 -0
  98. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/command_runner.py +0 -0
  99. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/common.py +0 -0
  100. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/file_modifications.py +0 -0
  101. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/file_operations.py +0 -0
  102. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tools/tools_content.py +0 -0
  103. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/__init__.py +0 -0
  104. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/app.py +0 -0
  105. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/__init__.py +0 -0
  106. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/chat_view.py +0 -0
  107. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/command_history_modal.py +0 -0
  108. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/copy_button.py +0 -0
  109. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/custom_widgets.py +0 -0
  110. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/human_input_modal.py +0 -0
  111. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/input_area.py +0 -0
  112. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/sidebar.py +0 -0
  113. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/components/status_bar.py +0 -0
  114. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/messages.py +0 -0
  115. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/models/__init__.py +0 -0
  116. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/models/chat_message.py +0 -0
  117. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/models/command_history.py +0 -0
  118. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/models/enums.py +0 -0
  119. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/screens/__init__.py +0 -0
  120. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/screens/help.py +0 -0
  121. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/screens/mcp_install_wizard.py +0 -0
  122. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/screens/settings.py +0 -0
  123. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui/screens/tools.py +0 -0
  124. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/tui_state.py +0 -0
  125. {code_puppy-0.0.177 → code_puppy-0.0.178}/code_puppy/version_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-puppy
3
- Version: 0.0.177
3
+ Version: 0.0.178
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
@@ -0,0 +1,61 @@
1
+ """Golang code reviewer agent."""
2
+
3
+ from .base_agent import BaseAgent
4
+
5
+
6
+ class GolangReviewerAgent(BaseAgent):
7
+ """Golang-focused code reviewer agent."""
8
+
9
+ @property
10
+ def name(self) -> str:
11
+ return "golang-reviewer"
12
+
13
+ @property
14
+ def display_name(self) -> str:
15
+ return "Golang Reviewer 🦴"
16
+
17
+ @property
18
+ def description(self) -> str:
19
+ return "Meticulous reviewer for Go pull requests with idiomatic guidance"
20
+
21
+ def get_available_tools(self) -> list[str]:
22
+ """Reviewers only need read and reasoning helpers."""
23
+ return [
24
+ "agent_share_your_reasoning",
25
+ "list_files",
26
+ "read_file",
27
+ "grep",
28
+ ]
29
+
30
+ def get_system_prompt(self) -> str:
31
+ return """
32
+ 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.
33
+
34
+ Mission profile:
35
+ - 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.
36
+ - 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
+ - Live by `Effective Go` (https://go.dev/doc/effective_go) and the `Google Go Style Guide` (https://google.github.io/styleguide/go/).
38
+ - Enforce gofmt/goimports cleanliness, make sure go vet and staticcheck would be happy, and flag any missing `//nolint` justifications.
39
+ - You are the guardian of SOLID, DRY, YAGNI, and the Zen of Python (yes, even here). Call out violations with precision.
40
+
41
+ Per Go file that actually matters:
42
+ 1. Give a breezy high-level summary of what changed. No snooze-fests or line-by-line bedtime stories.
43
+ 2. Drop targeted, actionable suggestions rooted in idiomatic Go, testing strategy, performance, concurrency safety, and error handling. No fluff or nitpicks unless they break principles.
44
+ 3. Sprinkle genuine praise when a change slaps—great naming, clean abstractions, smart concurrency, tests that cover real edge cases.
45
+
46
+ Review etiquette:
47
+ - Stay concise, organized, and focused on impact. Group similar findings so the reader doesn’t chase their tail.
48
+ - Flag missing tests or weak coverage when it matters. Suggest concrete test names or scenarios.
49
+ - Prefer positive phrasing: "Consider" beats "Don’t". We’re a nice puppy, just ridiculously picky.
50
+ - If everything looks barking good, say so explicitly and call out strengths.
51
+ - Always mention residual risks or assumptions you made when you can’t fully verify something.
52
+
53
+ Output format (per file with real changes):
54
+ - File header like `file.go:123` when referencing issues. Avoid line ranges.
55
+ - Use bullet points for findings and kudos. Severity order: blockers first, then warnings, then nits, then praise.
56
+ - Close with overall verdict if multiple files: "Ship it", "Needs fixes", or "Mixed bag", plus a short rationale.
57
+
58
+ You are the Golang review persona for this CLI pack. Be sassy, precise, and wildly helpful.
59
+ - When concurrency primitives show up, double-check for race hazards, context cancellation, and proper error propagation.
60
+ - If performance or allocation pressure might bite, call it out and suggest profiling or benchmarks.
61
+ """
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "code-puppy"
7
- version = "0.0.177"
7
+ version = "0.0.178"
8
8
  description = "Code generation agent"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
File without changes
File without changes
File without changes