nimcode 0.1.14__tar.gz → 0.1.15__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.1.14 → nimcode-0.1.15}/PKG-INFO +1 -1
- {nimcode-0.1.14 → nimcode-0.1.15}/setup.py +1 -1
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/stdio_server.py +29 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/PKG-INFO +1 -1
- {nimcode-0.1.14 → nimcode-0.1.15}/README.md +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/setup.cfg +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/__init__.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/agent.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/analytics.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/cli.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/config.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/lenient_parser.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/mcp_client.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/memory.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/nim_client.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/permissions.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/plugin_manager.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/repl.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/repo_map.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/secret_scanner.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/swarm.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/tools.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/updater.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode/watcher.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/SOURCES.txt +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/dependency_links.txt +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/entry_points.txt +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/requires.txt +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/src/nimcode.egg-info/top_level.txt +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_agent.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_analytics.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_cli.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_config.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_lenient_parser.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_mcp_client.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_memory.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_nim_client.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_nimcoderules.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_permissions.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_plugin_manager.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_repl.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_repl_extra.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_repl_trust.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_repo_map.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_secret_scanner.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_tools.py +0 -0
- {nimcode-0.1.14 → nimcode-0.1.15}/tests/test_updater.py +0 -0
|
@@ -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:
|
|
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
|
|
File without changes
|