nimcode 0.4.6__tar.gz → 0.4.9__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.4.6 → nimcode-0.4.9}/PKG-INFO +1 -1
- nimcode-0.4.9/src/nimcode/__version__.py +1 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/repl.py +14 -16
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/PKG-INFO +1 -1
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_fixes.py +5 -7
- nimcode-0.4.6/src/nimcode/__version__.py +0 -1
- {nimcode-0.4.6 → nimcode-0.4.9}/README.md +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/setup.cfg +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/setup.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/__init__.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/agent.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/cli.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/config.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/lenient_parser.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/mcp_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/memory.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/model_registry.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/nim_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/permissions.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/plugin_manager.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/rag.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/repo_map.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/tools.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/updater.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/watcher.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/SOURCES.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/dependency_links.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/entry_points.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/requires.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/top_level.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_agent.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_cli.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_config.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_lenient_parser.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_mcp_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_memory.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_model_registry.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_nim_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_permissions.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_plan_injection.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_plugin_manager.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_extra.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_trust.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repo_map.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_tools.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_updater.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_version.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.9"
|
|
@@ -439,22 +439,20 @@ class NimcodeREPL:
|
|
|
439
439
|
console.print("[bold blue]Entering Plan mode.[/bold blue] Read tools are free; mutating tools (Bash/Edit/Write) are restricted.")
|
|
440
440
|
self.messages.append({"role": "system", "content": (
|
|
441
441
|
"You are now in PLANNING MODE.\n"
|
|
442
|
-
"1.
|
|
443
|
-
"2.
|
|
444
|
-
"
|
|
445
|
-
"
|
|
446
|
-
"
|
|
447
|
-
"
|
|
448
|
-
" -
|
|
449
|
-
" -
|
|
450
|
-
" -
|
|
451
|
-
" -
|
|
452
|
-
"
|
|
453
|
-
"
|
|
454
|
-
"
|
|
455
|
-
"
|
|
456
|
-
"7. After writing the plan, you MUST overwrite the file '.nimcode/active_plan.txt' to contain exactly the path "
|
|
457
|
-
"of the plan you just created. This ensures the system tracks the current active plan."
|
|
442
|
+
"1. Identify the task type: Is it a 'Bug Fix / Minor Feature' OR a 'From-Scratch / Major Architecture' task?\n"
|
|
443
|
+
"2. IF it is a 'Bug Fix / Minor Feature':\n"
|
|
444
|
+
" - Write the plan directly to '.nimcode/plans/<name_timestamp>.md'.\n"
|
|
445
|
+
" - Use this strict technical structure: # Title, ## Context, ## Root Cause Analysis, ## Execution Plan (file-by-file with line numbers/snippets), ## Verification.\n"
|
|
446
|
+
"3. IF it is a 'From-Scratch / Major Architecture' task:\n"
|
|
447
|
+
" - Work AUTONOMOUSLY in a loop using your file-writing tools. Do NOT ask the user for approval.\n"
|
|
448
|
+
" - Step A: Explore the project/SDDs.\n"
|
|
449
|
+
" - Step B: Write a 'Master Architecture Document' to '.nimcode/plans/<name>_master.md' (Tech Stack, Repo Structure, DB Schema, High-level Phase list).\n"
|
|
450
|
+
" - Step C: For EACH Phase, autonomously write a SEPARATE, EXTREMELY DETAILED execution plan file (e.g. '.nimcode/plans/<name>_phase1.md'). Each phase plan must include exact file paths, pseudo-code for every function, and strict step-by-step logic. Do this in a continuous tool-use loop.\n"
|
|
451
|
+
" - Step D: After writing all phase files, overwrite '.nimcode/active_plan.txt' with the master plan's path.\n"
|
|
452
|
+
"4. General Rules:\n"
|
|
453
|
+
" - Quote real names, modules, and requirements. Do not invent generic projects.\n"
|
|
454
|
+
" - NEVER output a generic software-lifecycle template (Phase1: MVP / Design / Development) unless instructed. Focus on code, DB schemas, and technical choices.\n"
|
|
455
|
+
" - After writing any plan file, overwrite '.nimcode/active_plan.txt' with the file's path."
|
|
458
456
|
)})
|
|
459
457
|
continue
|
|
460
458
|
elif user_input.strip().startswith("/teleport"):
|
|
@@ -80,13 +80,11 @@ async def test_plan_message_does_not_hardcode_feature_x(agent):
|
|
|
80
80
|
plan_msgs = [m for m in agent.messages if "PLANNING MODE" in m.get("content", "")]
|
|
81
81
|
assert plan_msgs, "/plan did not append a planning system message"
|
|
82
82
|
content = plan_msgs[-1]["content"]
|
|
83
|
-
# The
|
|
84
|
-
assert "
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
# The fixed message must instruct grounding in real document content.
|
|
89
|
-
assert "ACTUAL content" in content or "BASE your plan" in content
|
|
83
|
+
# The prompt now dynamically differentiates between Bug Fix and From-Scratch tasks
|
|
84
|
+
assert "Identify the task type" in content or "Bug Fix / Minor Feature" in content
|
|
85
|
+
assert "<name_timestamp>.md" in content
|
|
86
|
+
# It must enforce autonomous multi-file generation for major tasks
|
|
87
|
+
assert "AUTONOMOUSLY" in content or "SEPARATE" in content
|
|
90
88
|
|
|
91
89
|
|
|
92
90
|
@pytest.mark.asyncio
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.4.6"
|
|
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
|
|
File without changes
|
|
File without changes
|