meshcode 2.10.11__tar.gz → 2.10.13__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.11 → meshcode-2.10.13}/PKG-INFO +1 -1
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/__init__.py +1 -1
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/invites.py +3 -1
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/run_agent.py +6 -2
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.10.11 → meshcode-2.10.13}/pyproject.toml +1 -1
- {meshcode-2.10.11 → meshcode-2.10.13}/README.md +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/cli.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/launcher.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/preferences.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/secrets.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/self_update.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/setup.cfg +0 -0
- {meshcode-2.10.11 → meshcode-2.10.13}/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.13"
|
|
@@ -165,10 +165,12 @@ def cmd_join(token: str, display_name: Optional[str] = None) -> int:
|
|
|
165
165
|
print(f"[meshcode] Expires: {inspect.get('expires_at')}")
|
|
166
166
|
print()
|
|
167
167
|
|
|
168
|
-
# 2. Redeem
|
|
168
|
+
# 2. Redeem — pass existing API key so backend can link to real user
|
|
169
|
+
existing_key = _get_default_api_key()
|
|
169
170
|
redeem = _rpc("mc_redeem_invite", {
|
|
170
171
|
"p_token": token,
|
|
171
172
|
"p_display_name": display_name or "",
|
|
173
|
+
"p_caller_api_key": existing_key or "",
|
|
172
174
|
})
|
|
173
175
|
if not isinstance(redeem, dict):
|
|
174
176
|
print("[meshcode] ERROR: could not redeem invite", file=sys.stderr)
|
|
@@ -179,8 +179,12 @@ def _check_agent_ownership(agent: str, project: str) -> Optional[str]:
|
|
|
179
179
|
except Exception:
|
|
180
180
|
return None # Can't check — let the RPC catch it later
|
|
181
181
|
|
|
182
|
-
profile
|
|
183
|
-
|
|
182
|
+
# Try scoped profile first (from invite join), then default
|
|
183
|
+
scoped_profile = f"mesh:{project}:{agent}"
|
|
184
|
+
api_key = secrets_mod.get_api_key(profile=scoped_profile)
|
|
185
|
+
if not api_key:
|
|
186
|
+
profile = os.environ.get("MESHCODE_KEYCHAIN_PROFILE") or "default"
|
|
187
|
+
api_key = secrets_mod.get_api_key(profile=profile)
|
|
184
188
|
if not api_key:
|
|
185
189
|
return None # No key — RPC will reject later
|
|
186
190
|
|
|
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
|