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.
Files changed (48) hide show
  1. {nimcode-0.4.6 → nimcode-0.4.9}/PKG-INFO +1 -1
  2. nimcode-0.4.9/src/nimcode/__version__.py +1 -0
  3. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/repl.py +14 -16
  4. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/PKG-INFO +1 -1
  5. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_fixes.py +5 -7
  6. nimcode-0.4.6/src/nimcode/__version__.py +0 -1
  7. {nimcode-0.4.6 → nimcode-0.4.9}/README.md +0 -0
  8. {nimcode-0.4.6 → nimcode-0.4.9}/setup.cfg +0 -0
  9. {nimcode-0.4.6 → nimcode-0.4.9}/setup.py +0 -0
  10. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/__init__.py +0 -0
  11. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/agent.py +0 -0
  12. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/cli.py +0 -0
  13. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/config.py +0 -0
  14. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/lenient_parser.py +0 -0
  15. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/mcp_client.py +0 -0
  16. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/memory.py +0 -0
  17. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/model_registry.py +0 -0
  18. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/nim_client.py +0 -0
  19. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/permissions.py +0 -0
  20. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/plugin_manager.py +0 -0
  21. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/rag.py +0 -0
  22. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/repo_map.py +0 -0
  23. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/tools.py +0 -0
  24. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/updater.py +0 -0
  25. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode/watcher.py +0 -0
  26. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/SOURCES.txt +0 -0
  27. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/dependency_links.txt +0 -0
  28. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/entry_points.txt +0 -0
  29. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/requires.txt +0 -0
  30. {nimcode-0.4.6 → nimcode-0.4.9}/src/nimcode.egg-info/top_level.txt +0 -0
  31. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_agent.py +0 -0
  32. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_cli.py +0 -0
  33. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_config.py +0 -0
  34. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_lenient_parser.py +0 -0
  35. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_mcp_client.py +0 -0
  36. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_memory.py +0 -0
  37. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_model_registry.py +0 -0
  38. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_nim_client.py +0 -0
  39. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_permissions.py +0 -0
  40. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_plan_injection.py +0 -0
  41. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_plugin_manager.py +0 -0
  42. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl.py +0 -0
  43. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_extra.py +0 -0
  44. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repl_trust.py +0 -0
  45. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_repo_map.py +0 -0
  46. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_tools.py +0 -0
  47. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_updater.py +0 -0
  48. {nimcode-0.4.6 → nimcode-0.4.9}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nimcode
3
- Version: 0.4.6
3
+ Version: 0.4.9
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
@@ -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. Use Glob/Grep/Read to explore the user's project OR the documents they named (e.g. 'sdd.md').\n"
443
- "2. BASE your plan on the ACTUAL content of those documents/files. Quote real names, real modules, "
444
- "real requirements found during exploration. Do NOT invent a generic project.\n"
445
- "3. Write the plan to a file inside '.nimcode/plans/'. CHOOSE a descriptive name derived from the task "
446
- "or document AND append a timestamp to prevent naming collisions (e.g. 'imagease_pro_plan_20260730_1430.md').\n"
447
- "4. The plan MUST follow this strict technical structure:\n"
448
- " - # [Descriptive Plan Title]\n"
449
- " - ## Context: Brief summary of the current state based on actual files.\n"
450
- " - ## Analysis / Root Cause: Detailed technical analysis of the problem or feature.\n"
451
- " - ## Execution Plan (dosya-bazlı, sıralı): Step-by-step file modifications. MUST include specific files to create/modify (with full paths), and actual code snippets or pseudocode for each change. Format as: '### Task #1 - Update auth.py line 45'.\n"
452
- " - ## Verification: Terminal commands to run to test the changes.\n"
453
- "5. NEVER output a generic software-lifecycle template (Phase1: MVP / Design / Development / "
454
- "Testing / Scale / Deployment). NEVER use placeholders like [Insert Date]. Focus strictly on code and files.\n"
455
- "6. A good plan is one that another developer could follow to implement the feature without asking questions.\n"
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"):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nimcode
3
- Version: 0.4.6
3
+ Version: 0.4.9
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
@@ -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 fix PRESCRIBES a document-derived example name...
84
- assert "imagease_pro_implementation_plan" in content or "derived from the task" in content
85
- # ...and only mentions feature_x_plan as an explicit anti-example, never as the one to follow.
86
- if "feature_x_plan" in content:
87
- assert "NOT 'feature_x_plan.md'" in content or "not 'feature_x_plan" in content
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