meshcode 2.9.3__tar.gz → 2.9.5__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.3 → meshcode-2.9.5}/PKG-INFO +1 -1
  2. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/__init__.py +1 -1
  3. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/run_agent.py +18 -5
  4. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.9.3 → meshcode-2.9.5}/pyproject.toml +1 -1
  6. {meshcode-2.9.3 → meshcode-2.9.5}/README.md +0 -0
  7. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/ascii_art.py +0 -0
  8. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/cli.py +0 -0
  9. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/comms_v4.py +0 -0
  10. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/invites.py +0 -0
  11. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/launcher.py +0 -0
  12. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/launcher_install.py +0 -0
  13. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/__init__.py +0 -0
  14. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/__main__.py +0 -0
  15. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/backend.py +0 -0
  16. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/realtime.py +0 -0
  17. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/server.py +0 -0
  18. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/test_backend.py +0 -0
  19. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  20. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  21. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/preferences.py +0 -0
  22. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/protocol_v2.py +0 -0
  23. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/secrets.py +0 -0
  24. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/self_update.py +0 -0
  25. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode/setup_clients.py +0 -0
  26. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/SOURCES.txt +0 -0
  27. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/dependency_links.txt +0 -0
  28. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/entry_points.txt +0 -0
  29. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/requires.txt +0 -0
  30. {meshcode-2.9.3 → meshcode-2.9.5}/meshcode.egg-info/top_level.txt +0 -0
  31. {meshcode-2.9.3 → meshcode-2.9.5}/setup.cfg +0 -0
  32. {meshcode-2.9.3 → meshcode-2.9.5}/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.3
3
+ Version: 2.9.5
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.3"
2
+ __version__ = "2.9.5"
@@ -53,20 +53,24 @@ def _fetch_or_generate_art(agent: str, project: str) -> tuple:
53
53
  try:
54
54
  from urllib.request import Request, urlopen
55
55
  import urllib.parse
56
- # Step 1: resolve project_id
56
+ # Step 1: resolve project_id via RPC (bypasses RLS on mc_projects)
57
+ resolve_body = json.dumps({"p_api_key": api_key, "p_project_name": project})
57
58
  proj_req = Request(
58
- f"{sb['SUPABASE_URL']}/rest/v1/mc_projects?select=id&name=eq.{urllib.parse.quote(project)}",
59
+ f"{sb['SUPABASE_URL']}/rest/v1/rpc/mc_resolve_project",
60
+ data=resolve_body.encode(),
61
+ method="POST",
59
62
  headers={
60
63
  "apikey": sb["SUPABASE_KEY"],
61
64
  "Authorization": f"Bearer {sb['SUPABASE_KEY']}",
62
- "Accept-Profile": "meshcode",
65
+ "Content-Type": "application/json",
66
+ "Content-Profile": "meshcode",
63
67
  },
64
68
  )
65
69
  with urlopen(proj_req, timeout=5) as resp:
66
70
  proj_data = json.loads(resp.read().decode())
67
- if not proj_data:
71
+ if not proj_data or not proj_data.get("project_id"):
68
72
  return generate_art(agent), agent, None
69
- project_id = proj_data[0]["id"]
73
+ project_id = proj_data["project_id"]
70
74
  # Step 2: fetch existing art + role
71
75
  req = Request(
72
76
  f"{sb['SUPABASE_URL']}/rest/v1/mc_agents?select=ascii_art,role,id&name=eq.{urllib.parse.quote(agent)}&project_id=eq.{project_id}",
@@ -422,9 +426,18 @@ def run(agent: str, project: Optional[str] = None, editor_override: Optional[str
422
426
  # Claude Code: pass --mcp-config to point at the workspace's .mcp.json
423
427
  # and --strict-mcp-config so it ignores ~/.claude.json's mcpServers.
424
428
  mode = resolve_permission_mode(permission_override)
429
+ # Minimal boot prompt — identity only, no ASCII art.
430
+ # The MCP server's _build_instructions() already provides full context;
431
+ # this just triggers the session-start sequence without wasting tokens
432
+ # on the decorative identicon.
433
+ boot_prompt = (
434
+ f"\u27E8 {agent} \u27E9\n"
435
+ f"\u27E8 {resolved_project}/{agent} \u27E9"
436
+ )
425
437
  cmd = [
426
438
  editor,
427
439
  "--mcp-config", str(ws / ".mcp.json"),
440
+ "-p", boot_prompt,
428
441
  ]
429
442
  if mode == "bypass":
430
443
  cmd.append("--dangerously-skip-permissions")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.9.3
3
+ Version: 2.9.5
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.3"
7
+ version = "2.9.5"
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
File without changes
File without changes