meshcode 2.9.8__tar.gz → 2.10.0__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.
- {meshcode-2.9.8 → meshcode-2.10.0}/PKG-INFO +1 -1
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/__init__.py +1 -1
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/comms_v4.py +7 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/run_agent.py +11 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.9.8 → meshcode-2.10.0}/pyproject.toml +1 -1
- {meshcode-2.9.8 → meshcode-2.10.0}/README.md +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/ascii_art.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/cli.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/invites.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/launcher.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/launcher_install.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/preferences.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/secrets.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/self_update.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/setup_clients.py +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/setup.cfg +0 -0
- {meshcode-2.9.8 → meshcode-2.10.0}/tests/test_status_enum_coverage.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "2.
|
|
2
|
+
__version__ = "2.10.0"
|
|
@@ -2214,6 +2214,13 @@ if __name__ == "__main__":
|
|
|
2214
2214
|
_agent = tag
|
|
2215
2215
|
_proj = None
|
|
2216
2216
|
print(f"[meshcode] Detected agent: {_agent}" + (f" (project: {_proj})" if _proj else ""))
|
|
2217
|
+
# Drain any unread stdin (e.g. heredoc content that pyperclip made
|
|
2218
|
+
# redundant) so it doesn't leak into the editor as a first message.
|
|
2219
|
+
if not sys.stdin.isatty():
|
|
2220
|
+
try:
|
|
2221
|
+
sys.stdin.read()
|
|
2222
|
+
except Exception:
|
|
2223
|
+
pass
|
|
2217
2224
|
# Auth check
|
|
2218
2225
|
api_key = _load_api_key_for_cli()
|
|
2219
2226
|
if not api_key:
|
|
@@ -465,6 +465,17 @@ def run(agent: str, project: Optional[str] = None, editor_override: Optional[str
|
|
|
465
465
|
else:
|
|
466
466
|
cmd = [editor, str(ws)]
|
|
467
467
|
|
|
468
|
+
# If stdin is not a tty (e.g. heredoc from `meshcode scan <<'ART'`),
|
|
469
|
+
# reopen it as /dev/tty so the editor gets a real interactive terminal
|
|
470
|
+
# instead of the heredoc temp file (which it would re-read as input).
|
|
471
|
+
if not sys.stdin.isatty():
|
|
472
|
+
try:
|
|
473
|
+
tty_fd = os.open("/dev/tty", os.O_RDONLY)
|
|
474
|
+
os.dup2(tty_fd, 0)
|
|
475
|
+
os.close(tty_fd)
|
|
476
|
+
except OSError:
|
|
477
|
+
pass # No tty available (CI, headless) — let the editor handle it
|
|
478
|
+
|
|
468
479
|
try:
|
|
469
480
|
if sys.platform == "win32":
|
|
470
481
|
# Windows: no execvp, use subprocess and wait
|
|
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
|