agentnova 0.2.4__tar.gz → 0.2.6__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 (81) hide show
  1. {agentnova-0.2.4 → agentnova-0.2.6}/PKG-INFO +24 -29
  2. {agentnova-0.2.4 → agentnova-0.2.6}/README.md +23 -28
  3. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/__init__.py +13 -12
  4. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/__main__.py +2 -2
  5. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/acp_plugin.py +2 -2
  6. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/agent_mode.py +2 -2
  7. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/bitnet_client.py +3 -3
  8. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/bitnet_setup.py +2 -2
  9. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/cli.py +15 -12
  10. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/config.py +2 -2
  11. agentnova-0.2.6/agentnova/core/agent.py +1342 -0
  12. agentnova-0.2.6/agentnova/core/args_normal.py +324 -0
  13. agentnova-0.2.6/agentnova/core/helpers.py +337 -0
  14. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/math_prompts.py +2 -2
  15. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/memory.py +2 -2
  16. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/model_family_config.py +35 -28
  17. agentnova-0.2.6/agentnova/core/models.py +47 -0
  18. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/ollama_client.py +3 -3
  19. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/orchestrator.py +3 -3
  20. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/orchestrator_enhanced.py +2 -2
  21. agentnova-0.2.6/agentnova/core/prompts.py +193 -0
  22. agentnova-0.2.6/agentnova/core/tool_parse.py +434 -0
  23. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/tools.py +3 -3
  24. agentnova-0.2.6/agentnova/core/types.py +11 -0
  25. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/00_backend_demo.py +3 -3
  26. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/01_basic_agent.py +1 -1
  27. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/02_tool_agent.py +1 -1
  28. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/03_orchestrator.py +1 -1
  29. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/04_comprehensive_test.py +1 -1
  30. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/05_tool_tests.py +1 -1
  31. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/06_interactive_chat.py +1 -1
  32. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/07_model_comparison.py +2 -2
  33. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/08_robust_comparison.py +1 -1
  34. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/09_expanded_benchmark.py +1 -1
  35. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/10_skills_demo.py +2 -2
  36. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/11_skill_creator_test.py +2 -2
  37. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/12_batch_operations.py +2 -2
  38. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/13_shutdown_demo.py +2 -2
  39. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/14_gsm8k_benchmark.py +1 -1
  40. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/15_quick_diagnostic.py +8 -8
  41. agentnova-0.2.6/agentnova/examples/16_agent_mode_test.py +582 -0
  42. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/model_discovery.py +2 -2
  43. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/shared_args.py +1 -1
  44. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/__init__.py +2 -2
  45. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/loader.py +3 -3
  46. agentnova-0.2.6/agentnova/skills/skill-creator/scripts/__init__.py +1 -0
  47. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/aggregate_benchmark.py +1 -1
  48. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/generate_report.py +1 -1
  49. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/improve_description.py +1 -1
  50. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/init_skill.py +1 -1
  51. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/package_skill.py +1 -1
  52. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/quick_validate.py +1 -1
  53. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/run_eval.py +1 -1
  54. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/run_loop.py +1 -1
  55. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/security_scan.py +1 -1
  56. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/test_package_skill.py +1 -1
  57. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/test_quick_validate.py +1 -1
  58. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/utils.py +1 -1
  59. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/validate.py +1 -1
  60. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/tools/builtins.py +16 -5
  61. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/tools/sandboxed_repl.py +2 -2
  62. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/PKG-INFO +24 -29
  63. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/SOURCES.txt +7 -0
  64. {agentnova-0.2.4 → agentnova-0.2.6}/localclaw/__init__.py +1 -1
  65. {agentnova-0.2.4 → agentnova-0.2.6}/localclaw/__main__.py +1 -1
  66. {agentnova-0.2.4 → agentnova-0.2.6}/pyproject.toml +1 -1
  67. {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_acp_integration.py +4 -4
  68. {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_acp_subagents.py +3 -3
  69. {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_agent.py +1 -1
  70. agentnova-0.2.4/agentnova/core/agent.py +0 -2770
  71. agentnova-0.2.4/agentnova/skills/skill-creator/scripts/__init__.py +0 -0
  72. {agentnova-0.2.4 → agentnova-0.2.6}/LICENSE +0 -0
  73. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/acp/SKILL.md +0 -0
  74. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/datetime/SKILL.md +0 -0
  75. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/SKILL.md +0 -0
  76. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/web_search/SKILL.md +0 -0
  77. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/dependency_links.txt +0 -0
  78. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/entry_points.txt +0 -0
  79. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/requires.txt +0 -0
  80. {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/top_level.txt +0 -0
  81. {agentnova-0.2.4 → agentnova-0.2.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentnova
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: A minimal, hackable agentic framework for Ollama and BitNet - local-first AI agent toolkit
5
5
  Author-email: VTSTech <veritas@vts-tech.org>
6
6
  Maintainer-email: VTSTech <veritas@vts-tech.org>
@@ -34,7 +34,7 @@ Requires-Dist: black>=23.0; extra == "dev"
34
34
  Requires-Dist: ruff>=0.1.0; extra == "dev"
35
35
  Dynamic: license-file
36
36
 
37
- # ⚛️ AgentNova R02.4
37
+ # ⚛️ AgentNova R02.6
38
38
 
39
39
  A minimal, hackable agentic framework engineered to run **entirely locally** with [Ollama](https://ollama.com) or [BitNet](https://github.com/microsoft/BitNet).
40
40
 
@@ -45,7 +45,7 @@ Inspired by the architecture of OpenClaw, rebuilt from scratch for local-first o
45
45
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/VTSTech/AgentNova/blob/main/AgentNova.ipynb)
46
46
  [![GitHub commits](https://badgen.net/github/commits/VTSTech/AgentNova)](https://GitHub.com/VTSTech/AgentNova/commit/) [![GitHub latest commit](https://badgen.net/github/last-commit/VTSTech/AgentNova)](https://GitHub.com/VTSTech/AgentNova/commit/)
47
47
 
48
- [![pip - agentnova](https://img.shields.io/badge/pip-agentnova-2ea44f?logo=PyPi)](https://pypi.org/project/agentnova/) [![PyPI version fury.io](https://badge.fury.io/py/agentnova.svg)](https://pypi.python.org/pypi/agentnova/) [![PyPI download month](https://img.shields.io/pypi/dm/agentnova.svg)](https://pypi.python.org/pypi/agentnova/) [![PyPI download day](https://img.shields.io/pypi/dd/agentnova.svg)](https://pypi.python.org/pypi/agentnova/)
48
+ [![pip - agentnova](https://img.shields.io/badge/pip-agentnova-2ea44f?logo=PyPi)](https://pypi.org/project/agentnova/) [![PyPI version fury.io](https://badge.fury.io/py/agentnova.svg)](https://pypi.org/project/agentnova/) [![PyPI download month](https://img.shields.io/pypi/dm/agentnova.svg)](https://pypi.org/project/agentnova/) [![PyPI download day](https://img.shields.io/pypi/dd/agentnova.svg)](https://pypi.org/project/agentnova/)
49
49
 
50
50
  [![License](https://img.shields.io/badge/License-MIT-blue)](#license) [![Go to Python website](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2FVTSTech%2FAgentNova%2Frefs%2Fheads%2Fmain%2Fpyproject.toml&query=project.requires-python&label=python&logo=python&logoColor=white)](https://python.org)
51
51
 
@@ -201,31 +201,26 @@ agentnova models --tool_support
201
201
 
202
202
  ### Performance by Tool Support
203
203
 
204
- R02.3 benchmark results (15-test suite):
205
-
206
- | Model | Params | Tool Support | Score | Time |
207
- |-------|--------|--------------|-------|------|
208
- | **`granite3.1-moe:1b`** | 1B MoE | react | **93% (14/15)** | 87.8s |
209
- | **`llama3.2:1b`** | 1.2B | native | **87% (13/15)** | 150.2s |
210
- | `dolphin3.0-qwen2.5:0.5b` | 500M | none | 73% (11/15) | 27.2s |
211
- | `qwen3:0.6b` | 600M | react | 67% (10/15) | 189.3s |
212
- | `qwen2.5-coder:0.5b` | 494M | react | 60% (9/15) | 133.1s |
213
-
214
- **Quick Diagnostic (Test 15 - 5 questions, ~30s/model):**
215
-
216
- | Model | Score | Tool Support |
217
- |-------|-------|--------------|
218
- | **`qwen3.5:0.8b`** | **100%** | native |
219
- | **`qwen2.5:0.5b`** | **100%** | react |
220
- | `functiongemma:270m` | 80% | native |
221
- | `granite4:350m` | 80% | native |
222
- | `qwen3:0.6b` | 60% | react |
223
-
224
- **Key improvements in R02.3**:
225
- - **+13%** for granite3.1-moe:1b (80% → 93%) from few-shot fix
226
- - **+20%** for llama3.2:1b (67% → 87%) from observation role fix
227
- - **qwen3:0.6b restored** from 0% (broken) with `think=False` API fix
228
- - **qwen3.5:0.8b** new sub-1B champion with 100% on quick diagnostic
204
+ R02.6 Quick Diagnostic results (5 questions, ~30-120s/model):
205
+
206
+ | Model | Score | Time | Tool Support |
207
+ |-------|-------|------|--------------|
208
+ | **`functiongemma:270m`** | **100%** | 19.6s | native |
209
+ | **`granite4:350m`** | **100%** | 49.4s | native |
210
+ | **`qwen2.5:0.5b`** | **100%** | 66.3s | native |
211
+ | **`qwen2.5-coder:0.5b`** | **100%** | 116.5s | react |
212
+ | **`qwen3:0.6b`** | **100%** | 122.8s | react |
213
+ | `gemma3:270m` | 80% | 14.3s | none |
214
+ | `dolphin3.0-qwen2.5:0.5b` | 80% | 26.6s | none |
215
+ | `qwen:0.5b` | 20% | 27.0s | none |
216
+
217
+ **Key improvements in R02.6**:
218
+ - **5 models achieve 100%** - All tool-calling models now perfect!
219
+ - **functiongemma:270m fastest** at 19.6s (native tools + 270M params)
220
+ - **Multi-step expression extraction** - Handles `8 times 7 minus 5`, word problems, time calculations
221
+ - **ReAct JSON parsing fixed** - Clean extraction even with trailing text
222
+ - **Verbose response fallback** - Uses numeric result when model gives long explanation
223
+ - **Tool-calling outperforms pure reasoning** - ALL native/react models score 100% vs max 80% for no-tool models
229
224
 
230
225
  ---
231
226
 
@@ -276,7 +271,7 @@ Output shows:
276
271
  - **Tool Support** - `✓ native`, `ReAct`, `○ none`, or `untested`
277
272
 
278
273
  ```
279
- ⚛️ AgentNova R02.3 Models
274
+ ⚛️ AgentNova R02.6 Models
280
275
  Model Family Context Tool Support
281
276
  ──────────────────────────────────────────────────────────────────────────────
282
277
  gemma3:270m gemma3 32K ○ none
@@ -1,4 +1,4 @@
1
- # ⚛️ AgentNova R02.4
1
+ # ⚛️ AgentNova R02.6
2
2
 
3
3
  A minimal, hackable agentic framework engineered to run **entirely locally** with [Ollama](https://ollama.com) or [BitNet](https://github.com/microsoft/BitNet).
4
4
 
@@ -9,7 +9,7 @@ Inspired by the architecture of OpenClaw, rebuilt from scratch for local-first o
9
9
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/VTSTech/AgentNova/blob/main/AgentNova.ipynb)
10
10
  [![GitHub commits](https://badgen.net/github/commits/VTSTech/AgentNova)](https://GitHub.com/VTSTech/AgentNova/commit/) [![GitHub latest commit](https://badgen.net/github/last-commit/VTSTech/AgentNova)](https://GitHub.com/VTSTech/AgentNova/commit/)
11
11
 
12
- [![pip - agentnova](https://img.shields.io/badge/pip-agentnova-2ea44f?logo=PyPi)](https://pypi.org/project/agentnova/) [![PyPI version fury.io](https://badge.fury.io/py/agentnova.svg)](https://pypi.python.org/pypi/agentnova/) [![PyPI download month](https://img.shields.io/pypi/dm/agentnova.svg)](https://pypi.python.org/pypi/agentnova/) [![PyPI download day](https://img.shields.io/pypi/dd/agentnova.svg)](https://pypi.python.org/pypi/agentnova/)
12
+ [![pip - agentnova](https://img.shields.io/badge/pip-agentnova-2ea44f?logo=PyPi)](https://pypi.org/project/agentnova/) [![PyPI version fury.io](https://badge.fury.io/py/agentnova.svg)](https://pypi.org/project/agentnova/) [![PyPI download month](https://img.shields.io/pypi/dm/agentnova.svg)](https://pypi.org/project/agentnova/) [![PyPI download day](https://img.shields.io/pypi/dd/agentnova.svg)](https://pypi.org/project/agentnova/)
13
13
 
14
14
  [![License](https://img.shields.io/badge/License-MIT-blue)](#license) [![Go to Python website](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2FVTSTech%2FAgentNova%2Frefs%2Fheads%2Fmain%2Fpyproject.toml&query=project.requires-python&label=python&logo=python&logoColor=white)](https://python.org)
15
15
 
@@ -165,31 +165,26 @@ agentnova models --tool_support
165
165
 
166
166
  ### Performance by Tool Support
167
167
 
168
- R02.3 benchmark results (15-test suite):
169
-
170
- | Model | Params | Tool Support | Score | Time |
171
- |-------|--------|--------------|-------|------|
172
- | **`granite3.1-moe:1b`** | 1B MoE | react | **93% (14/15)** | 87.8s |
173
- | **`llama3.2:1b`** | 1.2B | native | **87% (13/15)** | 150.2s |
174
- | `dolphin3.0-qwen2.5:0.5b` | 500M | none | 73% (11/15) | 27.2s |
175
- | `qwen3:0.6b` | 600M | react | 67% (10/15) | 189.3s |
176
- | `qwen2.5-coder:0.5b` | 494M | react | 60% (9/15) | 133.1s |
177
-
178
- **Quick Diagnostic (Test 15 - 5 questions, ~30s/model):**
179
-
180
- | Model | Score | Tool Support |
181
- |-------|-------|--------------|
182
- | **`qwen3.5:0.8b`** | **100%** | native |
183
- | **`qwen2.5:0.5b`** | **100%** | react |
184
- | `functiongemma:270m` | 80% | native |
185
- | `granite4:350m` | 80% | native |
186
- | `qwen3:0.6b` | 60% | react |
187
-
188
- **Key improvements in R02.3**:
189
- - **+13%** for granite3.1-moe:1b (80% → 93%) from few-shot fix
190
- - **+20%** for llama3.2:1b (67% → 87%) from observation role fix
191
- - **qwen3:0.6b restored** from 0% (broken) with `think=False` API fix
192
- - **qwen3.5:0.8b** new sub-1B champion with 100% on quick diagnostic
168
+ R02.6 Quick Diagnostic results (5 questions, ~30-120s/model):
169
+
170
+ | Model | Score | Time | Tool Support |
171
+ |-------|-------|------|--------------|
172
+ | **`functiongemma:270m`** | **100%** | 19.6s | native |
173
+ | **`granite4:350m`** | **100%** | 49.4s | native |
174
+ | **`qwen2.5:0.5b`** | **100%** | 66.3s | native |
175
+ | **`qwen2.5-coder:0.5b`** | **100%** | 116.5s | react |
176
+ | **`qwen3:0.6b`** | **100%** | 122.8s | react |
177
+ | `gemma3:270m` | 80% | 14.3s | none |
178
+ | `dolphin3.0-qwen2.5:0.5b` | 80% | 26.6s | none |
179
+ | `qwen:0.5b` | 20% | 27.0s | none |
180
+
181
+ **Key improvements in R02.6**:
182
+ - **5 models achieve 100%** - All tool-calling models now perfect!
183
+ - **functiongemma:270m fastest** at 19.6s (native tools + 270M params)
184
+ - **Multi-step expression extraction** - Handles `8 times 7 minus 5`, word problems, time calculations
185
+ - **ReAct JSON parsing fixed** - Clean extraction even with trailing text
186
+ - **Verbose response fallback** - Uses numeric result when model gives long explanation
187
+ - **Tool-calling outperforms pure reasoning** - ALL native/react models score 100% vs max 80% for no-tool models
193
188
 
194
189
  ---
195
190
 
@@ -240,7 +235,7 @@ Output shows:
240
235
  - **Tool Support** - `✓ native`, `ReAct`, `○ none`, or `untested`
241
236
 
242
237
  ```
243
- ⚛️ AgentNova R02.3 Models
238
+ ⚛️ AgentNova R02.6 Models
244
239
  Model Family Context Tool Support
245
240
  ──────────────────────────────────────────────────────────────────────────────
246
241
  gemma3:270m gemma3 32K ○ none
@@ -1,5 +1,5 @@
1
- """
2
- ⚛️ AgentNova R02.3 - A minimal, hackable agentic framework for Ollama and BitNet
1
+ """
2
+ ⚛️ AgentNova R02.6 - A minimal, hackable agentic framework for Ollama and BitNet
3
3
 
4
4
  Written by VTSTech
5
5
  https://www.vts-tech.org
@@ -8,7 +8,8 @@ https://github.com/VTSTech/AgentNova
8
8
 
9
9
  import os
10
10
 
11
- from .core.agent import Agent, AgentRun, StepResult
11
+ from .core.agent import Agent
12
+ from .core.models import AgentRun, StepResult
12
13
  from .core.memory import Memory
13
14
  from .core.tools import Tool, ToolRegistry, ToolParam
14
15
  from .core.ollama_client import OllamaClient
@@ -34,7 +35,7 @@ from .config import (
34
35
  AGENTNOVA_BACKEND,
35
36
  )
36
37
 
37
- # R00: BitNet backend support
38
+ # R02: BitNet backend support
38
39
  try:
39
40
  from .bitnet_client import BitnetClient, KNOWN_MODELS
40
41
  _BITNET_AVAILABLE = True
@@ -143,7 +144,7 @@ def get_system_prompt(model: str, client=None, default_prompt: str = None):
143
144
 
144
145
  return default_prompt
145
146
 
146
- # R00 Enhancements
147
+ # R02 Enhancements
147
148
  from .core.orchestrator_enhanced import Orchestrator as EnhancedOrchestrator, AgentCard as EnhancedAgentCard
148
149
 
149
150
  # Tool support detection
@@ -152,7 +153,7 @@ from .cli import get_tool_support
152
153
  # Shared args for test scripts
153
154
  from .shared_args import add_shared_args, parse_shared_args, SharedConfig
154
155
 
155
- # R00: Agent Mode
156
+ # R02: Agent Mode
156
157
  from .agent_mode import (
157
158
  AgentMode, AgentState, TaskPlan, Step, Action,
158
159
  create_file_write_action, create_file_delete_action,
@@ -167,10 +168,10 @@ __all__ = [
167
168
  "OllamaClient", "Orchestrator", "AgentCard",
168
169
  # Skills
169
170
  "SkillLoader", "Skill", "SkillRegistry",
170
- # R00 Enhancements
171
+ # R02 Enhancements
171
172
  "EnhancedOrchestrator", "EnhancedAgentCard",
172
173
  "ACPPlugin",
173
- # R00: Backend-agnostic helpers
174
+ # R02: Backend-agnostic helpers
174
175
  "get_default_client",
175
176
  "get_available_models",
176
177
  "get_system_prompt",
@@ -179,12 +180,12 @@ __all__ = [
179
180
  "add_shared_args", # Shared CLI args for test scripts
180
181
  "parse_shared_args",
181
182
  "SharedConfig",
182
- # R00: Agent Mode
183
+ # R02: Agent Mode
183
184
  "AgentMode", "AgentState", "TaskPlan", "Step", "Action",
184
185
  "create_file_write_action", "create_file_delete_action",
185
186
  "create_mkdir_action", "create_shell_action",
186
187
  "format_status", "format_progress",
187
- # R02.3: Model Family Configuration
188
+ # R02.6: Model Family Configuration
188
189
  "ModelFamilyConfig", "FAMILY_CONFIGS",
189
190
  "get_family_config", "get_stop_tokens", "supports_tools",
190
191
  "get_tool_format", "get_preferred_temperature", "should_use_few_shot",
@@ -204,8 +205,8 @@ __all__ = [
204
205
  if _BITNET_AVAILABLE:
205
206
  __all__.extend(["BitnetClient", "KNOWN_MODELS"])
206
207
 
207
- __version__ = "0.2.4"
208
+ __version__ = "0.2.6"
208
209
  __author__ = "VTSTech"
209
210
  __author_email__ = "veritas@vts-tech.org"
210
211
  __url__ = "https://github.com/VTSTech/AgentNova"
211
- __website__ = "https://www.vts-tech.org"
212
+ __website__ = "https://www.vts-tech.org"
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env python3
1
+ #!/usr/bin/env python3
2
2
  """
3
- ⚛️ AgentNova R00 — Command Line Interface
3
+ ⚛️ AgentNova R02 — Command Line Interface
4
4
 
5
5
  Entry point for: python -m agentnova [command] [options]
6
6
 
@@ -1,4 +1,4 @@
1
- """
1
+ """
2
2
  ⚛️ AgentNova ACP Plugin - Bridge to Agent Control Panel
3
3
 
4
4
  This plugin connects AgentNova agents to an ACP (Agent Control Panel) server,
@@ -2350,4 +2350,4 @@ def create_acp_agent(
2350
2350
  on_step=plugin.on_step,
2351
2351
  **agent_kwargs,
2352
2352
  )
2353
- return agent, plugin
2353
+ return agent, plugin
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env python3
1
+ #!/usr/bin/env python3
2
2
  """
3
- ⚛️ AgentNova R00 — Agent Mode
3
+ ⚛️ AgentNova R02 — Agent Mode
4
4
 
5
5
  A goal-driven execution mode where the agent autonomously works through tasks.
6
6
  Unlike chat mode (which is user-driven), agent mode:
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env python3
1
+ #!/usr/bin/env python3
2
2
  """
3
- ⚛️ AgentNova R00 — BitnetClient
3
+ ⚛️ AgentNova R02 — BitnetClient
4
4
  Drop-in replacement for OllamaClient that uses Microsoft's bitnet.cpp
5
5
  (llama-server) as the inference backend instead of Ollama.
6
6
 
@@ -148,4 +148,4 @@ class BitnetClient:
148
148
 
149
149
  def supports_streaming(self) -> bool:
150
150
  """Return True if this client supports streaming."""
151
- return True
151
+ return True
@@ -1,4 +1,4 @@
1
- import os
1
+ import os
2
2
  import subprocess
3
3
  import logging
4
4
 
@@ -27,4 +27,4 @@ def setup_bitnet(directory, model_name):
27
27
 
28
28
  if __name__ == "__main__":
29
29
  # Example usage
30
- setup_bitnet("F:/Tools/bitnet-llama", "BitNet-b1.58-2B-4T")
30
+ setup_bitnet("F:/Tools/bitnet-llama", "BitNet-b1.58-2B-4T")
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env python3
1
+ #!/usr/bin/env python3
2
2
  """
3
- ⚛️ AgentNova R02.3 — CLI
3
+ ⚛️ AgentNova R02.6 — CLI
4
4
  Entry point: agentnova <command> [options]
5
5
 
6
6
  Commands:
@@ -924,7 +924,7 @@ def cmd_models(args):
924
924
  print(red("✗ bitnet_client.py not found. Copy it into agentnova/."))
925
925
  sys.exit(1)
926
926
 
927
- print(bold("\n⚛️ AgentNova R02.3 BitNet Model (Remote)"))
927
+ print(bold("\n⚛️ AgentNova R02.6 BitNet Model (Remote)"))
928
928
 
929
929
  # We use the client logic to see what is actually running at the URL
930
930
  try:
@@ -952,7 +952,7 @@ def cmd_models(args):
952
952
  print(yellow("No models found. Pull one with: ollama pull llama3.2:3b"))
953
953
  return
954
954
 
955
- print(bold("\n⚛️ AgentNova R02.3 Models") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
955
+ print(bold("\n⚛️ AgentNova R02.6 Models") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
956
956
 
957
957
  # Load tested models from storage
958
958
  tested_models = _load_tested_models()
@@ -1091,7 +1091,7 @@ def cmd_models(args):
1091
1091
 
1092
1092
  def cmd_tools(args):
1093
1093
  tools = BUILTIN_REGISTRY.all()
1094
- print(bold("\n⚛️ AgentNova R02.3 Tools") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1094
+ print(bold("\n⚛️ AgentNova R02.6 Tools") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1095
1095
  print(bold(f"{'Tool':<20} Description"))
1096
1096
  print(dim("─" * 70))
1097
1097
  for t in tools:
@@ -1116,7 +1116,7 @@ def cmd_modelfile(args):
1116
1116
  sys.exit(1)
1117
1117
 
1118
1118
  model = args.model
1119
- print(bold(f"\n⚛️ AgentNova R02.3 Modelfile") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1119
+ print(bold(f"\n⚛️ AgentNova R02.6 Modelfile") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1120
1120
  print()
1121
1121
 
1122
1122
  try:
@@ -1181,7 +1181,7 @@ def cmd_skills(args):
1181
1181
  loader = SkillLoader()
1182
1182
  skills = loader.list_skills()
1183
1183
 
1184
- print(bold("\n⚛️ AgentNova R02.3 Skills") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1184
+ print(bold("\n⚛️ AgentNova R02.6 Skills") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1185
1185
 
1186
1186
  if not skills:
1187
1187
  print(yellow(" No skills found."))
@@ -1266,7 +1266,7 @@ def cmd_run(args):
1266
1266
  if acp_plugin:
1267
1267
  bootstrap_result = acp_plugin.bootstrap(claim_primary=False) # AgentNova is secondary
1268
1268
 
1269
- print(bold("⚛️ AgentNova R02.3") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1269
+ print(bold("⚛️ AgentNova R02.6") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1270
1270
  print(f"Prompt: {args.prompt}")
1271
1271
 
1272
1272
  # Log user message to ACP
@@ -1359,7 +1359,7 @@ def cmd_chat(args):
1359
1359
  parts.append("]")
1360
1360
  status = " ".join(parts)
1361
1361
 
1362
- print(bold(f"\n⚛️ AgentNova R02.3 chat") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1362
+ print(bold(f"\n⚛️ AgentNova R02.6 chat") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1363
1363
  print(dim(" Type 'exit', 'quit', or Ctrl+C to quit."))
1364
1364
  print(dim(" Type '/help' to see all available commands."))
1365
1365
  print(dim(" Type '/ollama' to manage Ollama models (works with remote Ollama)."))
@@ -1909,7 +1909,7 @@ def cmd_agent(args):
1909
1909
  parts.append("]")
1910
1910
  status = " ".join(parts)
1911
1911
 
1912
- print(bold(f"\n⚛️ AgentNova R02.3 agent mode") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1912
+ print(bold(f"\n⚛️ AgentNova R02.6 agent mode") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
1913
1913
  print(dim(" Agent mode: Give tasks and the agent will work autonomously."))
1914
1914
  print(dim(" Type '/help' to see available commands."))
1915
1915
  print(dim(" ─────────────────────────────────────"))
@@ -2291,11 +2291,14 @@ def cmd_test(args):
2291
2291
  "14": "GSM8K benchmark - 50 math questions",
2292
2292
  "14_acp": "GSM8K benchmark with ACP tracking",
2293
2293
  "15": "Quick diagnostic - 5 questions, ~30s/model",
2294
+ "15_acp": "Quick diagnostic with ACP tracking",
2295
+ "16": "Agent Mode test - 7 autonomous task tests",
2296
+ "16_acp": "Agent Mode test with ACP tracking",
2294
2297
  "backend": "Backend demo - Ollama/BitNet switching",
2295
2298
  }
2296
2299
 
2297
2300
  # Quick test set (skips long-running benchmarks)
2298
- QUICK_TESTS = ["01", "02", "03", "04", "05", "10", "11", "15"]
2301
+ QUICK_TESTS = ["01", "02", "03", "04", "05", "10", "11", "15", "16"]
2299
2302
 
2300
2303
  if args.list:
2301
2304
  print(bold("\n⚛️ AgentNova Test Examples"))
@@ -2457,7 +2460,7 @@ def build_parser() -> argparse.ArgumentParser:
2457
2460
 
2458
2461
  parser = argparse.ArgumentParser(
2459
2462
  prog="agentnova",
2460
- description="⚛️ AgentNova R02.3 - local agentic AI powered by Ollama",
2463
+ description="⚛️ AgentNova R02.6 - local agentic AI powered by Ollama",
2461
2464
  )
2462
2465
 
2463
2466
  sub = parser.add_subparsers(dest="command", metavar="command")
@@ -1,5 +1,5 @@
1
- """
2
- ⚛️ AgentNova R00 — Central Configuration
1
+ """
2
+ ⚛️ AgentNova R02 — Central Configuration
3
3
 
4
4
  Single source of truth for Ollama and ACP server URLs.
5
5
  Change these values once to update all tests and examples.