nimcode 0.1.14__tar.gz → 0.1.16__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 (47) hide show
  1. {nimcode-0.1.14 → nimcode-0.1.16}/PKG-INFO +1 -1
  2. {nimcode-0.1.14 → nimcode-0.1.16}/setup.py +1 -1
  3. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/repo_map.py +16 -2
  4. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/stdio_server.py +29 -0
  5. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/PKG-INFO +1 -1
  6. {nimcode-0.1.14 → nimcode-0.1.16}/README.md +0 -0
  7. {nimcode-0.1.14 → nimcode-0.1.16}/setup.cfg +0 -0
  8. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/__init__.py +0 -0
  9. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/agent.py +0 -0
  10. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/analytics.py +0 -0
  11. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/cli.py +0 -0
  12. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/config.py +0 -0
  13. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/lenient_parser.py +0 -0
  14. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/mcp_client.py +0 -0
  15. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/memory.py +0 -0
  16. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/nim_client.py +0 -0
  17. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/permissions.py +0 -0
  18. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/plugin_manager.py +0 -0
  19. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/repl.py +0 -0
  20. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/secret_scanner.py +0 -0
  21. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/swarm.py +0 -0
  22. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/tools.py +0 -0
  23. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/updater.py +0 -0
  24. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode/watcher.py +0 -0
  25. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/SOURCES.txt +0 -0
  26. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/dependency_links.txt +0 -0
  27. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/entry_points.txt +0 -0
  28. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/requires.txt +0 -0
  29. {nimcode-0.1.14 → nimcode-0.1.16}/src/nimcode.egg-info/top_level.txt +0 -0
  30. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_agent.py +0 -0
  31. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_analytics.py +0 -0
  32. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_cli.py +0 -0
  33. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_config.py +0 -0
  34. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_lenient_parser.py +0 -0
  35. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_mcp_client.py +0 -0
  36. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_memory.py +0 -0
  37. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_nim_client.py +0 -0
  38. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_nimcoderules.py +0 -0
  39. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_permissions.py +0 -0
  40. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_plugin_manager.py +0 -0
  41. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_repl.py +0 -0
  42. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_repl_extra.py +0 -0
  43. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_repl_trust.py +0 -0
  44. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_repo_map.py +0 -0
  45. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_secret_scanner.py +0 -0
  46. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_tools.py +0 -0
  47. {nimcode-0.1.14 → nimcode-0.1.16}/tests/test_updater.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nimcode
3
- Version: 0.1.14
3
+ Version: 0.1.16
4
4
  Summary: A standalone, robust coding agent for NVIDIA NIM models.
5
5
  Author: Autonomous Agent
6
6
  Requires-Dist: httpx>=0.27.0
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="nimcode",
5
- version="0.1.14",
5
+ version="0.1.16",
6
6
  packages=find_packages(where="src"),
7
7
  package_dir={"": "src"},
8
8
  install_requires=[
@@ -13,7 +13,7 @@ class RepoMapper:
13
13
  try:
14
14
  with open(filepath, "r", encoding="utf-8") as f:
15
15
  content = f.read()
16
- tree = ast.parse(content)
16
+ tree = ast.parse(content, filename=filepath)
17
17
 
18
18
  lines = []
19
19
  for node in tree.body:
@@ -37,11 +37,24 @@ class RepoMapper:
37
37
  map_lines = []
38
38
  map_lines.append(f"Repository Map for: {self.root_dir}\n")
39
39
 
40
+ file_count = 0
41
+ max_files = 1000
42
+
40
43
  for root, dirs, files in os.walk(self.root_dir):
41
- dirs[:] = [d for d in dirs if d not in self.exclude_dirs]
44
+ # Exclude specific dirs, hidden dirs, and common system folders
45
+ dirs[:] = [
46
+ d for d in dirs
47
+ if d not in self.exclude_dirs
48
+ and not d.startswith('.')
49
+ and d.lower() not in ('appdata', 'windows', 'program files', 'program files (x86)', 'temp')
50
+ ]
42
51
 
43
52
  for file in files:
44
53
  if file.endswith(".py"):
54
+ if file_count >= max_files:
55
+ map_lines.append("... (Repository Map Truncated: Too many Python files) ...\n")
56
+ return "\n".join(map_lines)
57
+
45
58
  full_path = os.path.join(root, file)
46
59
  rel_path = os.path.relpath(full_path, self.root_dir)
47
60
  map_lines.append(f"FILE: {rel_path}")
@@ -49,5 +62,6 @@ class RepoMapper:
49
62
  file_map = self._parse_python_file(full_path)
50
63
  map_lines.append(file_map)
51
64
  map_lines.append("")
65
+ file_count += 1
52
66
 
53
67
  return "\n".join(map_lines)
@@ -59,6 +59,35 @@ class StdioServer:
59
59
 
60
60
  self.agent._stream_response = stdio_stream_response
61
61
 
62
+ # Override rich.console.Console.print to capture slash command outputs and general prints
63
+ from rich.console import Console
64
+ original_print = Console.print
65
+
66
+ def patched_print(console_self, *objects, **kwargs):
67
+ # Try to extract raw string from objects
68
+ text_parts = []
69
+ for obj in objects:
70
+ if isinstance(obj, str):
71
+ text_parts.append(obj)
72
+ elif hasattr(obj, "__rich_console__") or hasattr(obj, "__rich_measure__"):
73
+ # For complex rich objects (like Markdown), we could render it to text
74
+ try:
75
+ with console_self.capture() as capture:
76
+ original_print(console_self, obj, **kwargs)
77
+ text_parts.append(capture.get())
78
+ except Exception:
79
+ text_parts.append(str(obj))
80
+ else:
81
+ text_parts.append(str(obj))
82
+
83
+ if text_parts:
84
+ content = " ".join(text_parts)
85
+ # Strip excessive ANSI codes if capture includes them, but we want plain text or markdown
86
+ # For simplicity, just send it to the UI
87
+ self.send_message({"type": "info", "content": content})
88
+
89
+ Console.print = patched_print
90
+
62
91
  def send_message(self, message: dict):
63
92
  """Send a JSON message to original stdout."""
64
93
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nimcode
3
- Version: 0.1.14
3
+ Version: 0.1.16
4
4
  Summary: A standalone, robust coding agent for NVIDIA NIM models.
5
5
  Author: Autonomous Agent
6
6
  Requires-Dist: httpx>=0.27.0
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