nimcode 0.4.6__tar.gz → 0.4.8__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.8}/PKG-INFO +1 -1
- nimcode-0.4.8/src/nimcode/__version__.py +1 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/repl.py +14 -16
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/PKG-INFO +1 -1
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_repl_fixes.py +5 -7
- nimcode-0.4.6/src/nimcode/__version__.py +0 -1
- {nimcode-0.4.6 → nimcode-0.4.8}/README.md +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/setup.cfg +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/setup.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/__init__.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/agent.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/cli.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/config.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/lenient_parser.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/mcp_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/memory.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/model_registry.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/nim_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/permissions.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/plugin_manager.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/rag.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/repo_map.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/tools.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/updater.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode/watcher.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/SOURCES.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/dependency_links.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/entry_points.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/requires.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/src/nimcode.egg-info/top_level.txt +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_agent.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_cli.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_config.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_lenient_parser.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_mcp_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_memory.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_model_registry.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_nim_client.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_permissions.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_plan_injection.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_plugin_manager.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_repl.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_repl_extra.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_repl_trust.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_repo_map.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_tools.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_updater.py +0 -0
- {nimcode-0.4.6 → nimcode-0.4.8}/tests/test_version.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.8"
|
|
@@ -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
|
+
" - DO NOT write the final plan file immediately. This must be an ITERATIVE process.\n"
|
|
448
|
+
" - Step A: Explore the project/SDDs.\n"
|
|
449
|
+
" - Step B: Propose an architectural outline to the user in chat (Tech Stack, Repo Structure, DB Schema, Phased Implementation). Ask the user for their approval or feedback on this outline.\n"
|
|
450
|
+
" - Step C: ONLY after the user explicitly approves the outline, write the detailed execution plan to '.nimcode/plans/<name_timestamp>.md'.\n"
|
|
451
|
+
" - The final plan must be extremely detailed, phased (Phase 0, Phase 1, etc.), and file-based, similar to the approved outline.\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 iterativity for major tasks
|
|
87
|
+
assert "ITERATIVE process" 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
|