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.
Files changed (32) hide show
  1. {meshcode-2.9.8 → meshcode-2.10.0}/PKG-INFO +1 -1
  2. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/__init__.py +1 -1
  3. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/comms_v4.py +7 -0
  4. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/run_agent.py +11 -0
  5. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/PKG-INFO +1 -1
  6. {meshcode-2.9.8 → meshcode-2.10.0}/pyproject.toml +1 -1
  7. {meshcode-2.9.8 → meshcode-2.10.0}/README.md +0 -0
  8. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/ascii_art.py +0 -0
  9. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/cli.py +0 -0
  10. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/invites.py +0 -0
  11. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/launcher.py +0 -0
  12. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/launcher_install.py +0 -0
  13. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/__init__.py +0 -0
  14. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/__main__.py +0 -0
  15. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/backend.py +0 -0
  16. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/realtime.py +0 -0
  17. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/server.py +0 -0
  18. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_backend.py +0 -0
  19. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  20. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  21. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/preferences.py +0 -0
  22. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/protocol_v2.py +0 -0
  23. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/secrets.py +0 -0
  24. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/self_update.py +0 -0
  25. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode/setup_clients.py +0 -0
  26. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/SOURCES.txt +0 -0
  27. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/dependency_links.txt +0 -0
  28. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/entry_points.txt +0 -0
  29. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/requires.txt +0 -0
  30. {meshcode-2.9.8 → meshcode-2.10.0}/meshcode.egg-info/top_level.txt +0 -0
  31. {meshcode-2.9.8 → meshcode-2.10.0}/setup.cfg +0 -0
  32. {meshcode-2.9.8 → meshcode-2.10.0}/tests/test_status_enum_coverage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.9.8
3
+ Version: 2.10.0
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -1,2 +1,2 @@
1
1
  """MeshCode — Real-time communication between AI agents."""
2
- __version__ = "2.9.8"
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.9.8
3
+ Version: 2.10.0
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meshcode"
7
- version = "2.9.8"
7
+ version = "2.10.0"
8
8
  description = "Real-time communication between AI agents — Supabase-backed CLI"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes