agentnova 0.3.2__tar.gz → 0.3.3__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.
- {agentnova-0.3.2 → agentnova-0.3.3}/PKG-INFO +54 -2
- {agentnova-0.3.2 → agentnova-0.3.3}/README.md +321 -269
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/__init__.py +1 -1
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/acp_plugin.py +149 -0
- agentnova-0.3.3/agentnova/agent.py +1020 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/backends/__init__.py +11 -3
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/backends/ollama.py +358 -2
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/cli.py +45 -6
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/config.py +15 -4
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/__init__.py +59 -7
- agentnova-0.3.3/agentnova/core/error_recovery.py +725 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/helpers.py +16 -1
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/memory.py +30 -10
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/models.py +12 -2
- agentnova-0.3.3/agentnova/core/openresponses.py +812 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/prompts.py +54 -166
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/tool_parse.py +118 -212
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/types.py +15 -1
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/00_basic_agent.py +22 -6
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/01_quick_diagnostic.py +16 -4
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/02_tool_test.py +46 -19
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/04_gsm8k_benchmark.py +1 -1
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/__init__.py +16 -2
- agentnova-0.3.3/agentnova/skills/loader.py +1893 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/soul/__init__.py +99 -97
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/soul/loader.py +514 -5
- agentnova-0.3.3/agentnova/souls/nova-helper/IDENTITY.md +14 -0
- agentnova-0.3.3/agentnova/souls/nova-helper/SOUL.md +127 -0
- agentnova-0.3.3/agentnova/souls/nova-helper/STYLE.md +83 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/souls/nova-helper/soul.json +30 -30
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/tools/builtins.py +22 -5
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/PKG-INFO +54 -2
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/SOURCES.txt +2 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/pyproject.toml +1 -1
- agentnova-0.3.2/agentnova/agent.py +0 -981
- agentnova-0.3.2/agentnova/skills/loader.py +0 -445
- agentnova-0.3.2/agentnova/souls/nova-helper/IDENTITY.md +0 -36
- agentnova-0.3.2/agentnova/souls/nova-helper/SOUL.md +0 -51
- agentnova-0.3.2/agentnova/souls/nova-helper/STYLE.md +0 -49
- {agentnova-0.3.2 → agentnova-0.3.3}/LICENSE +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/__main__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/agent_mode.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/backends/base.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/backends/bitnet.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/args_normal.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/math_prompts.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/model_config.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/core/model_family_config.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/03_reasoning_test.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/05_common_sense.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/06_causal_reasoning.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/07_logical_deduction.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/08_reading_comprehension.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/09_general_knowledge.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/10_implicit_reasoning.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/11_analogical_reasoning.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/examples/__init__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/model_discovery.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/orchestrator.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/orchestrator_enhanced.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/py.typed +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/shared_args.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/acp/SKILL.md +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/datetime/SKILL.md +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/SKILL.md +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/__init__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/aggregate_benchmark.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/generate_report.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/improve_description.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/init_skill.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/package_skill.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/quick_validate.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/run_eval.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/run_loop.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/security_scan.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/test_package_skill.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/test_quick_validate.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/utils.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/skill-creator/scripts/validate.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/skills/web-search/SKILL.md +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/soul/types.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/tools/__init__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/tools/registry.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova/tools/sandboxed_repl.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/dependency_links.txt +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/entry_points.txt +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/requires.txt +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/agentnova.egg-info/top_level.txt +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/localclaw/__init__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/localclaw-redirect/localclaw/__init__.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/setup.cfg +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/tests/test_acp_integration.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/tests/test_acp_subagents.py +0 -0
- {agentnova-0.3.2 → agentnova-0.3.3}/tests/test_agent.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentnova
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: ⚛️ AgentNova - A minimal, hackable agentic framework for local LLM inference
|
|
5
5
|
Author-email: VTSTech <veritas@vts-tech.org>
|
|
6
6
|
Maintainer-email: VTSTech <veritas@vts-tech.org>
|
|
@@ -32,7 +32,7 @@ Requires-Dist: black>=23.0; extra == "dev"
|
|
|
32
32
|
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
33
33
|
Dynamic: license-file
|
|
34
34
|
|
|
35
|
-
# ⚛️ AgentNova R03.
|
|
35
|
+
# ⚛️ AgentNova R03.3
|
|
36
36
|
|
|
37
37
|
**Status: Alpha**
|
|
38
38
|
|
|
@@ -63,10 +63,14 @@ Inspired by the architecture of OpenClaw, rebuilt from scratch for local-first o
|
|
|
63
63
|
|
|
64
64
|
- **Zero dependencies** — Uses Python stdlib only (urllib for HTTP)
|
|
65
65
|
- **Ollama + BitNet backends** — Switch with `--backend` flag
|
|
66
|
+
- **Dual API support** — OpenResponses (`--api resp`) and Chat-Completions (`--api comp`)
|
|
66
67
|
- **Three-tier tool support** — Native, ReAct, or none (auto-detected)
|
|
67
68
|
- **Small model optimized** — Fuzzy matching, argument normalization
|
|
68
69
|
- **Built-in security** — Path validation, command blocklist, SSRF protection
|
|
69
70
|
- **Multi-agent orchestration** — Router, pipeline, and parallel modes
|
|
71
|
+
- **Soul Spec v0.5** — Persona packages with progressive disclosure
|
|
72
|
+
- **ACP v1.0.5 integration** — Agent Control Panel for monitoring and control
|
|
73
|
+
- **AgentSkills spec** — Skill loading with SPDX license validation
|
|
70
74
|
|
|
71
75
|
## Installation
|
|
72
76
|
|
|
@@ -94,6 +98,9 @@ agentnova chat -m qwen2.5:0.5b --tools calculator,shell
|
|
|
94
98
|
# Autonomous agent mode
|
|
95
99
|
agentnova agent -m qwen2.5:7b --tools calculator,shell,write_file
|
|
96
100
|
|
|
101
|
+
# Use Chat-Completions API (OpenAI-compatible)
|
|
102
|
+
agentnova chat -m qwen2.5:0.5b --api comp
|
|
103
|
+
|
|
97
104
|
# List available models
|
|
98
105
|
agentnova models
|
|
99
106
|
|
|
@@ -123,6 +130,37 @@ print(result.final_answer)
|
|
|
123
130
|
print(f"Completed in {result.total_ms:.0f}ms")
|
|
124
131
|
```
|
|
125
132
|
|
|
133
|
+
### Chat-Completions Streaming
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
from agentnova.backends import get_backend
|
|
137
|
+
from agentnova.core.types import ApiMode
|
|
138
|
+
|
|
139
|
+
# Use Chat-Completions mode with streaming
|
|
140
|
+
backend = get_backend("ollama", api_mode=ApiMode.COMPLETIONS)
|
|
141
|
+
|
|
142
|
+
for chunk in backend.generate_completions_stream(
|
|
143
|
+
model="qwen2.5:0.5b",
|
|
144
|
+
messages=[{"role": "user", "content": "Hello!"}],
|
|
145
|
+
response_format={"type": "json_object"}
|
|
146
|
+
):
|
|
147
|
+
print(chunk["delta"], end="", flush=True)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Skill License Validation
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
from agentnova.skills import validate_spdx_license, parse_compatibility
|
|
154
|
+
|
|
155
|
+
# Validate SPDX license identifier
|
|
156
|
+
valid, msg = validate_spdx_license("MIT") # (True, "Valid SPDX identifier: MIT")
|
|
157
|
+
valid, msg = validate_spdx_license("Custom") # (False, "Unknown license...")
|
|
158
|
+
|
|
159
|
+
# Parse compatibility requirements
|
|
160
|
+
compat = parse_compatibility("python>=3.8, ollama")
|
|
161
|
+
# Returns: {"python": ">=3.8", "runtimes": ["ollama"], "frameworks": []}
|
|
162
|
+
```
|
|
163
|
+
|
|
126
164
|
### Multi-Agent Orchestration
|
|
127
165
|
|
|
128
166
|
```python
|
|
@@ -218,6 +256,20 @@ agentnova config
|
|
|
218
256
|
agentnova config --urls # Show only URLs
|
|
219
257
|
```
|
|
220
258
|
|
|
259
|
+
### CLI Options (run, chat, agent)
|
|
260
|
+
|
|
261
|
+
| Option | Description |
|
|
262
|
+
|--------|-------------|
|
|
263
|
+
| `--api resp\|comp` | API mode: OpenResponses (default) or Chat-Completions |
|
|
264
|
+
| `--response-format text\|json` | Response format (Chat-Completions mode) |
|
|
265
|
+
| `--truncation auto\|disabled` | Truncation behavior for long responses |
|
|
266
|
+
| `--soul <path>` | Load Soul Spec persona package |
|
|
267
|
+
| `--soul-level 1-3` | Progressive disclosure level |
|
|
268
|
+
| `--num-ctx <tokens>` | Context window size (default: 4096) |
|
|
269
|
+
| `--timeout <seconds>` | Request timeout (default: 120) |
|
|
270
|
+
| `--acp` | Enable ACP (Agent Control Panel) logging |
|
|
271
|
+
| `--acp-url <url>` | ACP server URL |
|
|
272
|
+
|
|
221
273
|
## LocalClaw Redirect
|
|
222
274
|
|
|
223
275
|
The `localclaw` command is provided for backward compatibility:
|