nimcode 0.5.2__tar.gz → 0.5.4__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.
- {nimcode-0.5.2 → nimcode-0.5.4}/PKG-INFO +8 -2
- {nimcode-0.5.2 → nimcode-0.5.4}/README.md +7 -1
- nimcode-0.5.4/src/nimcode/__version__.py +1 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/agent.py +9 -8
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/repl.py +6 -6
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/tools.py +6 -1
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/PKG-INFO +8 -2
- nimcode-0.5.2/src/nimcode/__version__.py +0 -1
- {nimcode-0.5.2 → nimcode-0.5.4}/setup.cfg +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/setup.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/__init__.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/cli.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/config.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/lenient_parser.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/mcp_client.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/memory.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/model_registry.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/nim_client.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/permissions.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/plugin_manager.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/rag.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/repo_map.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/updater.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode/watcher.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/SOURCES.txt +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/dependency_links.txt +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/entry_points.txt +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/requires.txt +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/src/nimcode.egg-info/top_level.txt +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_agent.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_cli.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_config.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_lenient_parser.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_mcp_client.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_memory.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_model_registry.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_nim_client.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_permissions.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_plan_injection.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_plugin_manager.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_repl.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_repl_extra.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_repl_fixes.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_repl_trust.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_repo_map.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_tools.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_updater.py +0 -0
- {nimcode-0.5.2 → nimcode-0.5.4}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nimcode
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.4
|
|
4
4
|
Summary: A standalone, robust coding agent for NVIDIA NIM models.
|
|
5
5
|
Home-page: https://github.com/Batunash/nimcode
|
|
6
6
|
Author: Autonomous Agent
|
|
@@ -193,7 +193,13 @@ NimCode's behavior can be fully customized through `~/.nimcode/settings.json` (g
|
|
|
193
193
|
|
|
194
194
|
## 📋 Changelog
|
|
195
195
|
|
|
196
|
-
### v0.5.
|
|
196
|
+
### v0.5.4 (Latest)
|
|
197
|
+
- 🐛 **Bug Fix**: Fixed a bug where the `Read` tool would crash with a `TypeError` if an LLM provided the `offset` and `limit` arguments as strings (e.g. `'1'`) instead of integers.
|
|
198
|
+
|
|
199
|
+
### v0.5.3
|
|
200
|
+
- 🧭 **Phase/Task Plan Architecture**: `/plan` mode now forces the AI to output plans with meticulous Phase -> Task -> Checklist hierarchy (inspired by Claude Code), fixing superficial plan generation.
|
|
201
|
+
|
|
202
|
+
### v0.5.2
|
|
197
203
|
- 🧠 **Autonomous Marathon Runner**: Capable of running non-stop for 5-6 hours without drifting from the main plan.
|
|
198
204
|
- 🧪 **Native TestRunner**: NimCode can now run your test suites (`pytest`, `npm test`, `go test`) and self-heal its code until the tests pass.
|
|
199
205
|
- 🗺️ **Semantic AST Explorer**: `GetCodeOutline` tool added for instant navigation within large files (functions/classes with line numbers) instead of reading thousands of lines.
|
|
@@ -172,7 +172,13 @@ NimCode's behavior can be fully customized through `~/.nimcode/settings.json` (g
|
|
|
172
172
|
|
|
173
173
|
## 📋 Changelog
|
|
174
174
|
|
|
175
|
-
### v0.5.
|
|
175
|
+
### v0.5.4 (Latest)
|
|
176
|
+
- 🐛 **Bug Fix**: Fixed a bug where the `Read` tool would crash with a `TypeError` if an LLM provided the `offset` and `limit` arguments as strings (e.g. `'1'`) instead of integers.
|
|
177
|
+
|
|
178
|
+
### v0.5.3
|
|
179
|
+
- 🧭 **Phase/Task Plan Architecture**: `/plan` mode now forces the AI to output plans with meticulous Phase -> Task -> Checklist hierarchy (inspired by Claude Code), fixing superficial plan generation.
|
|
180
|
+
|
|
181
|
+
### v0.5.2
|
|
176
182
|
- 🧠 **Autonomous Marathon Runner**: Capable of running non-stop for 5-6 hours without drifting from the main plan.
|
|
177
183
|
- 🧪 **Native TestRunner**: NimCode can now run your test suites (`pytest`, `npm test`, `go test`) and self-heal its code until the tests pass.
|
|
178
184
|
- 🗺️ **Semantic AST Explorer**: `GetCodeOutline` tool added for instant navigation within large files (functions/classes with line numbers) instead of reading thousands of lines.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.4"
|
|
@@ -61,16 +61,17 @@ PLANNING MODE INSTRUCTIONS:
|
|
|
61
61
|
When in /plan mode or asked to create a plan:
|
|
62
62
|
1. FIRST: Read the project structure using Glob and Read tools. Understand what already exists.
|
|
63
63
|
2. SECOND: Analyze the codebase — read key files, understand the architecture, dependencies, and patterns.
|
|
64
|
-
3. THIRD: Write
|
|
65
|
-
4. Your plan
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
3. THIRD: Write an EXTREMELY DETAILED, EXHAUSTIVE, ACTIONABLE plan that references actual files and code in the project.
|
|
65
|
+
4. Your plan MUST be structured into PHASES and TASKS:
|
|
66
|
+
- Break the project down into logical PHASES (e.g., Phase 1: Database Setup, Phase 2: Core API, Phase 3: Frontend).
|
|
67
|
+
- Under EACH Phase, create a massive list of highly specific TASKS.
|
|
68
|
+
- Under EACH Task, create a checklist of micro-steps (`- [ ]`) containing:
|
|
69
|
+
* Specific files to create/modify (with full paths)
|
|
70
|
+
* Actual code snippets, function signatures, or exact DB schemas
|
|
71
|
+
* Testing strategy (exact test file names and commands)
|
|
71
72
|
5. NEVER write generic project management templates (stakeholders, timelines, resources).
|
|
72
73
|
6. NEVER use placeholders like [Insert Date] or [Insert Dependencies].
|
|
73
|
-
7. A good plan is
|
|
74
|
+
7. NEVER be brief. Err on the side of writing too much detail. A good plan is a complete technical specification and a giant task checklist that another developer could blindly follow to implement the feature step-by-step.
|
|
74
75
|
|
|
75
76
|
CODE EXECUTION INSTRUCTIONS:
|
|
76
77
|
When asked to "execute", "implement", or "build" something:
|
|
@@ -444,17 +444,17 @@ class NimcodeREPL:
|
|
|
444
444
|
" - Write the plan directly to '.nimcode/plans/<name_timestamp>.md'.\n"
|
|
445
445
|
" - Use this strict technical structure: # Title, ## Context, ## Root Cause Analysis, ## Execution Plan (file-by-file with line numbers/snippets), ## Verification.\n"
|
|
446
446
|
"3. IF it is a 'From-Scratch / Major Architecture' task:\n"
|
|
447
|
-
" -
|
|
448
|
-
" -
|
|
449
|
-
" -
|
|
450
|
-
" -
|
|
451
|
-
" -
|
|
447
|
+
" - Generate a SINGLE, EXTREMELY DETAILED master plan file (e.g. '.nimcode/plans/<name>.md').\n"
|
|
448
|
+
" - Structure the plan meticulously into PHASES (e.g., Phase 1: Database Setup, Phase 2: Core API).\n"
|
|
449
|
+
" - Under EVERY Phase, create a massive list of highly specific TASKS.\n"
|
|
450
|
+
" - Each Task MUST contain a checklist of micro-steps with exact file paths and logic (e.g., `- [ ] Create src/api/user.py with X, Y, Z functions`).\n"
|
|
451
|
+
" - Write the entire exhaustive plan into the file using your file-writing tools.\n"
|
|
452
452
|
"4. General Rules:\n"
|
|
453
453
|
" - STRICT FIDELITY: You MUST absolutely respect the languages, frameworks, endpoints, tables, and features mentioned in the user's project files or SDD. Do NOT default to Python/Pytest if another language is specified. Do NOT omit database tables. Do NOT generalize specific endpoints into 'REST API'.\n"
|
|
454
454
|
" - BUSINESS LOGIC: Do not ignore 'non-technical' sections like Monetization, ASO, or Affiliate integrations. They MUST be included as explicit tasks.\n"
|
|
455
455
|
" - Quote real names, modules, and requirements. Do not invent generic projects.\n"
|
|
456
456
|
" - NEVER output a generic software-lifecycle template (Phase1: MVP / Design / Development) unless instructed. Focus on code, DB schemas, and technical choices.\n"
|
|
457
|
-
" - After writing any plan file, overwrite '.nimcode/active_plan.txt' with the file's path."
|
|
457
|
+
" - After writing any plan file, ALWAYS overwrite '.nimcode/active_plan.txt' with the file's path."
|
|
458
458
|
)})
|
|
459
459
|
continue
|
|
460
460
|
elif user_input.strip().startswith("/teleport"):
|
|
@@ -399,6 +399,12 @@ class ToolRegistry:
|
|
|
399
399
|
|
|
400
400
|
@staticmethod
|
|
401
401
|
def _execute_read(file_path: str, cwd: str, offset: int = 1, limit: int = 0) -> str:
|
|
402
|
+
try:
|
|
403
|
+
offset = max(1, int(offset))
|
|
404
|
+
limit = max(0, int(limit))
|
|
405
|
+
except ValueError:
|
|
406
|
+
return "Error executing Read: 'offset' and 'limit' must be integers."
|
|
407
|
+
|
|
402
408
|
full_path = os.path.join(cwd, file_path)
|
|
403
409
|
if not os.path.exists(full_path):
|
|
404
410
|
raise ToolError(f"File not found: {file_path}")
|
|
@@ -417,7 +423,6 @@ class ToolRegistry:
|
|
|
417
423
|
all_lines = f.readlines()
|
|
418
424
|
|
|
419
425
|
total = len(all_lines)
|
|
420
|
-
offset = max(1, int(offset))
|
|
421
426
|
|
|
422
427
|
# No limit → whole file (and cache it).
|
|
423
428
|
if limit == 0:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nimcode
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.4
|
|
4
4
|
Summary: A standalone, robust coding agent for NVIDIA NIM models.
|
|
5
5
|
Home-page: https://github.com/Batunash/nimcode
|
|
6
6
|
Author: Autonomous Agent
|
|
@@ -193,7 +193,13 @@ NimCode's behavior can be fully customized through `~/.nimcode/settings.json` (g
|
|
|
193
193
|
|
|
194
194
|
## 📋 Changelog
|
|
195
195
|
|
|
196
|
-
### v0.5.
|
|
196
|
+
### v0.5.4 (Latest)
|
|
197
|
+
- 🐛 **Bug Fix**: Fixed a bug where the `Read` tool would crash with a `TypeError` if an LLM provided the `offset` and `limit` arguments as strings (e.g. `'1'`) instead of integers.
|
|
198
|
+
|
|
199
|
+
### v0.5.3
|
|
200
|
+
- 🧭 **Phase/Task Plan Architecture**: `/plan` mode now forces the AI to output plans with meticulous Phase -> Task -> Checklist hierarchy (inspired by Claude Code), fixing superficial plan generation.
|
|
201
|
+
|
|
202
|
+
### v0.5.2
|
|
197
203
|
- 🧠 **Autonomous Marathon Runner**: Capable of running non-stop for 5-6 hours without drifting from the main plan.
|
|
198
204
|
- 🧪 **Native TestRunner**: NimCode can now run your test suites (`pytest`, `npm test`, `go test`) and self-heal its code until the tests pass.
|
|
199
205
|
- 🗺️ **Semantic AST Explorer**: `GetCodeOutline` tool added for instant navigation within large files (functions/classes with line numbers) instead of reading thousands of lines.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.5.2"
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|