aru-code 0.25.0__tar.gz → 0.25.2__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 (69) hide show
  1. {aru_code-0.25.0/aru_code.egg-info → aru_code-0.25.2}/PKG-INFO +1 -1
  2. aru_code-0.25.2/aru/__init__.py +1 -0
  3. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agent_factory.py +2 -2
  4. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agents/base.py +45 -3
  5. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agents/explorer.py +1 -1
  6. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agents/planner.py +1 -1
  7. {aru_code-0.25.0 → aru_code-0.25.2/aru_code.egg-info}/PKG-INFO +1 -1
  8. {aru_code-0.25.0 → aru_code-0.25.2}/pyproject.toml +1 -1
  9. aru_code-0.25.0/aru/__init__.py +0 -1
  10. {aru_code-0.25.0 → aru_code-0.25.2}/LICENSE +0 -0
  11. {aru_code-0.25.0 → aru_code-0.25.2}/README.md +0 -0
  12. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agents/__init__.py +0 -0
  13. {aru_code-0.25.0 → aru_code-0.25.2}/aru/agents/executor.py +0 -0
  14. {aru_code-0.25.0 → aru_code-0.25.2}/aru/cache_patch.py +0 -0
  15. {aru_code-0.25.0 → aru_code-0.25.2}/aru/checkpoints.py +0 -0
  16. {aru_code-0.25.0 → aru_code-0.25.2}/aru/cli.py +0 -0
  17. {aru_code-0.25.0 → aru_code-0.25.2}/aru/commands.py +0 -0
  18. {aru_code-0.25.0 → aru_code-0.25.2}/aru/completers.py +0 -0
  19. {aru_code-0.25.0 → aru_code-0.25.2}/aru/config.py +0 -0
  20. {aru_code-0.25.0 → aru_code-0.25.2}/aru/context.py +0 -0
  21. {aru_code-0.25.0 → aru_code-0.25.2}/aru/display.py +0 -0
  22. {aru_code-0.25.0 → aru_code-0.25.2}/aru/history_blocks.py +0 -0
  23. {aru_code-0.25.0 → aru_code-0.25.2}/aru/permissions.py +0 -0
  24. {aru_code-0.25.0 → aru_code-0.25.2}/aru/plugins/__init__.py +0 -0
  25. {aru_code-0.25.0 → aru_code-0.25.2}/aru/plugins/custom_tools.py +0 -0
  26. {aru_code-0.25.0 → aru_code-0.25.2}/aru/plugins/hooks.py +0 -0
  27. {aru_code-0.25.0 → aru_code-0.25.2}/aru/plugins/manager.py +0 -0
  28. {aru_code-0.25.0 → aru_code-0.25.2}/aru/plugins/tool_api.py +0 -0
  29. {aru_code-0.25.0 → aru_code-0.25.2}/aru/providers.py +0 -0
  30. {aru_code-0.25.0 → aru_code-0.25.2}/aru/runner.py +0 -0
  31. {aru_code-0.25.0 → aru_code-0.25.2}/aru/runtime.py +0 -0
  32. {aru_code-0.25.0 → aru_code-0.25.2}/aru/session.py +0 -0
  33. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/__init__.py +0 -0
  34. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/ast_tools.py +0 -0
  35. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/codebase.py +0 -0
  36. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/gitignore.py +0 -0
  37. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/mcp_client.py +0 -0
  38. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/ranker.py +0 -0
  39. {aru_code-0.25.0 → aru_code-0.25.2}/aru/tools/tasklist.py +0 -0
  40. {aru_code-0.25.0 → aru_code-0.25.2}/aru_code.egg-info/SOURCES.txt +0 -0
  41. {aru_code-0.25.0 → aru_code-0.25.2}/aru_code.egg-info/dependency_links.txt +0 -0
  42. {aru_code-0.25.0 → aru_code-0.25.2}/aru_code.egg-info/entry_points.txt +0 -0
  43. {aru_code-0.25.0 → aru_code-0.25.2}/aru_code.egg-info/requires.txt +0 -0
  44. {aru_code-0.25.0 → aru_code-0.25.2}/aru_code.egg-info/top_level.txt +0 -0
  45. {aru_code-0.25.0 → aru_code-0.25.2}/setup.cfg +0 -0
  46. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_agents_base.py +0 -0
  47. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_checkpoints.py +0 -0
  48. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli.py +0 -0
  49. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_advanced.py +0 -0
  50. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_base.py +0 -0
  51. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_completers.py +0 -0
  52. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_new.py +0 -0
  53. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_run_cli.py +0 -0
  54. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_session.py +0 -0
  55. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_cli_shell.py +0 -0
  56. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_codebase.py +0 -0
  57. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_confabulation_regression.py +0 -0
  58. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_config.py +0 -0
  59. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_context.py +0 -0
  60. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_executor.py +0 -0
  61. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_gitignore.py +0 -0
  62. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_guardrails_scenarios.py +0 -0
  63. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_main.py +0 -0
  64. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_mcp_client.py +0 -0
  65. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_permissions.py +0 -0
  66. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_planner.py +0 -0
  67. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_plugins.py +0 -0
  68. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_providers.py +0 -0
  69. {aru_code-0.25.0 → aru_code-0.25.2}/tests/test_ranker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aru-code
3
- Version: 0.25.0
3
+ Version: 0.25.2
4
4
  Summary: A Claude Code clone built with Agno agents
5
5
  Author-email: Estevao <estevaofon@gmail.com>
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ __version__ = "0.25.2"
@@ -182,7 +182,7 @@ def create_general_agent(
182
182
  tools=tools,
183
183
  instructions=instructions,
184
184
  markdown=True,
185
- tool_call_limit=20,
185
+ tool_call_limit=None,
186
186
  )
187
187
 
188
188
 
@@ -216,5 +216,5 @@ def create_custom_agent_instance(agent_def: CustomAgent, session: Session,
216
216
  tools=tools,
217
217
  instructions=instructions,
218
218
  markdown=True,
219
- tool_call_limit=agent_def.max_turns or 20,
219
+ tool_call_limit=agent_def.max_turns,
220
220
  )
@@ -139,13 +139,34 @@ split into subtasks grouped by concern (e.g. "Create model files", "Create route
139
139
  - Read files before editing them
140
140
  - Use edit_file for targeted changes (preferred over rewriting entire files)
141
141
  - Use write_file only for new files or complete rewrites
142
- - Run existing tests after changes when applicable
143
- - **When adding or modifying unit tests, ALWAYS run them to verify they pass before finishing.**
144
142
  - Keep changes minimal and focused on the task
145
143
  - Do not add unnecessary comments, docstrings, or refactoring beyond what was asked
146
144
  - **One ask = one deliverable.** If asked for one function, write one function. \
147
145
  Helper functions are NOT implicit — do not add them unless explicitly requested.
148
146
 
147
+ ## Verification — run it before claiming done
148
+
149
+ Never mark a task done on faith. Prove the change works by running something that \
150
+ exercises it — invoke the function, trigger the code path, fire the test, and read \
151
+ what comes back. Editing a file is not the same as confirming the edit is correct. \
152
+ When running something is genuinely impossible (no runnable harness, sandbox blocks \
153
+ execution, external service unreachable), state that limitation plainly instead of \
154
+ calling the work done.
155
+
156
+ Concrete patterns:
157
+ - **After a bug fix**: reproduce the failing case and confirm it now passes.
158
+ - **After writing a plugin/tool/module**: invoke it inline with a realistic input and \
159
+ inspect the output — don't stop at "it imports". Use `bash` to run a one-shot probe, \
160
+ e.g. `python -c "from mod import fn; print(repr(fn(<realistic input>)))"`, read the \
161
+ `repr()`, and iterate until it matches expectations.
162
+ - **After a refactor**: run the existing test suite — or if none exists, exercise the \
163
+ changed path manually and read the result.
164
+ - **After adding or modifying unit tests**: ALWAYS run them before finishing.
165
+
166
+ A good colleague doesn't stop at "it compiles" — they run it, read the output, and fix \
167
+ the gap between what they wrote and what they meant. Each bug surfaced by a 10-second \
168
+ inline probe is a bug the user never has to report.
169
+
149
170
  ## Reading strategy — read, edit, test
150
171
 
151
172
  1. **Need a specific pattern?** → `grep_search(pattern, file_glob="*.py")` — default 10 lines context. \
@@ -208,7 +229,28 @@ Every tool call accumulates its result in your context window. Use the minimum n
208
229
  **Stop early**: Once you have enough information to act, stop exploring and start working. \
209
230
  Batch what you need upfront, then execute.
210
231
 
211
- **When adding or modifying unit tests, ALWAYS run them to verify they pass before finishing.**
232
+ ## Verification run it before claiming done
233
+
234
+ Never mark a task done on faith. Prove the change works by running something that \
235
+ exercises it — invoke the function, trigger the code path, fire the test, and read \
236
+ what comes back. Editing a file is not the same as confirming the edit is correct. \
237
+ When running something is genuinely impossible (no runnable harness, sandbox blocks \
238
+ execution, external service unreachable), state that limitation plainly instead of \
239
+ calling the work done.
240
+
241
+ Concrete patterns:
242
+ - **After a bug fix**: reproduce the failing case and confirm it now passes.
243
+ - **After writing a plugin/tool/module**: invoke it inline with a realistic input and \
244
+ inspect the output — don't stop at "it imports". Use `bash` to run a one-shot probe, \
245
+ e.g. `python -c "from mod import fn; print(repr(fn(<realistic input>)))"`, read the \
246
+ `repr()`, and iterate until it matches expectations.
247
+ - **After a refactor**: run the existing test suite — or if none exists, exercise the \
248
+ changed path manually and read the result.
249
+ - **After adding or modifying unit tests**: ALWAYS run them before finishing.
250
+
251
+ A good colleague doesn't stop at "it compiles" — they run it, read the output, and fix \
252
+ the gap between what they wrote and what they meant. Each bug surfaced by a 10-second \
253
+ inline probe is a bug the user never has to report.
212
254
 
213
255
  ## Delegation strategy — CRITICAL for context efficiency
214
256
 
@@ -89,5 +89,5 @@ def create_explorer(task: str, context: str = "") -> Agent:
89
89
  tools=EXPLORER_TOOLS,
90
90
  instructions=instructions,
91
91
  markdown=True,
92
- tool_call_limit=15,
92
+ tool_call_limit=None,
93
93
  )
@@ -85,5 +85,5 @@ def create_planner(model_ref: str = "anthropic/claude-sonnet-4-5", extra_instruc
85
85
  compress_tool_results=True,
86
86
  compress_tool_results_limit=25,
87
87
  ),
88
- tool_call_limit=20,
88
+ tool_call_limit=None,
89
89
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aru-code
3
- Version: 0.25.0
3
+ Version: 0.25.2
4
4
  Summary: A Claude Code clone built with Agno agents
5
5
  Author-email: Estevao <estevaofon@gmail.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "aru-code"
7
- version = "0.25.0"
7
+ version = "0.25.2"
8
8
  description = "A Claude Code clone built with Agno agents"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -1 +0,0 @@
1
- __version__ = "0.25.0"
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
File without changes
File without changes
File without changes