meshcode 2.10.6__tar.gz → 2.10.7__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.10.6 → meshcode-2.10.7}/PKG-INFO +1 -1
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/__init__.py +1 -1
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/comms_v4.py +1 -1
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/invites.py +5 -3
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.10.6 → meshcode-2.10.7}/pyproject.toml +1 -1
- {meshcode-2.10.6 → meshcode-2.10.7}/README.md +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/cli.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/launcher.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/preferences.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/run_agent.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/secrets.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/self_update.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/setup.cfg +0 -0
- {meshcode-2.10.6 → meshcode-2.10.7}/tests/test_status_enum_coverage.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "2.10.
|
|
2
|
+
__version__ = "2.10.7"
|
|
@@ -2249,7 +2249,7 @@ if __name__ == "__main__":
|
|
|
2249
2249
|
elif cmd == "invite":
|
|
2250
2250
|
# meshcode invite <project> <agent> [--role "..."] [--days N]
|
|
2251
2251
|
if len(pos) < 2:
|
|
2252
|
-
print("Usage: meshcode invite <project> <agent> [--role \"...\"] [--days 7]")
|
|
2252
|
+
print("Usage: meshcode invite <project> <agent> [--role \"...\"] [--days 7] (0 = permanent)")
|
|
2253
2253
|
sys.exit(1)
|
|
2254
2254
|
proj = pos[0]
|
|
2255
2255
|
agent = pos[1]
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Lets users:
|
|
4
4
|
meshcode invite <project> <agent> [--role "..."] [--days 7]
|
|
5
5
|
→ owner generates an invite token + share URL for one specific
|
|
6
|
-
agent slot in their meshwork
|
|
6
|
+
agent slot in their meshwork (--days 0 = permanent, never expires)
|
|
7
7
|
|
|
8
8
|
meshcode join <token> [--display-name "alice"]
|
|
9
9
|
→ friend redeems the invite, gets a scoped api key tied to one
|
|
@@ -122,7 +122,8 @@ def cmd_invite(project: str, agent: str, role: str = "", days: int = 7) -> int:
|
|
|
122
122
|
print(f"[meshcode] ✓ Invite created for agent '{agent}' in meshwork '{project}'")
|
|
123
123
|
print(f"[meshcode]")
|
|
124
124
|
print(f"[meshcode] Role: {result.get('role') or '(unset)'}")
|
|
125
|
-
|
|
125
|
+
expires_label = "Never (permanent)" if result.get("permanent") else result.get("expires_at")
|
|
126
|
+
print(f"[meshcode] Expires: {expires_label}")
|
|
126
127
|
print(f"[meshcode]")
|
|
127
128
|
print(f"[meshcode] Share this URL with your teammate:")
|
|
128
129
|
print(f"[meshcode] {result.get('join_url')}")
|
|
@@ -283,7 +284,8 @@ def cmd_list_invites(project: str) -> int:
|
|
|
283
284
|
print()
|
|
284
285
|
for inv in invites:
|
|
285
286
|
status = "REDEEMED" if inv.get("redeemed") else ("REVOKED" if inv.get("revoked") else "OPEN")
|
|
286
|
-
|
|
287
|
+
exp = "never" if inv.get("expires_at") is None else inv.get("expires_at")
|
|
288
|
+
print(f" [{status}] {inv.get('token_prefix')}… agent={inv.get('agent_name')} expires={exp}")
|
|
287
289
|
if inv.get("role"):
|
|
288
290
|
print(f" role: {inv['role']}")
|
|
289
291
|
print()
|
|
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
|