meshcode 2.10.10__tar.gz → 2.10.12__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.10 → meshcode-2.10.12}/PKG-INFO +1 -1
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/__init__.py +1 -1
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/invites.py +11 -11
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/run_agent.py +6 -2
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.10.10 → meshcode-2.10.12}/pyproject.toml +1 -1
- {meshcode-2.10.10 → meshcode-2.10.12}/README.md +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/cli.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/launcher.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/preferences.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/secrets.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/self_update.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/setup.cfg +0 -0
- {meshcode-2.10.10 → meshcode-2.10.12}/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.12"
|
|
@@ -252,18 +252,18 @@ def cmd_join(token: str, display_name: Optional[str] = None) -> int:
|
|
|
252
252
|
|
|
253
253
|
print()
|
|
254
254
|
print(f"[meshcode] 🎉 You've joined '{project}' as '{agent}'")
|
|
255
|
-
print(f"[meshcode]")
|
|
256
|
-
print(f"[meshcode] To launch your agent now:")
|
|
257
|
-
print(f"[meshcode] meshcode run {agent}")
|
|
258
|
-
print(f"[meshcode]")
|
|
259
|
-
print(f"[meshcode] Your scoped api key is in the OS keychain under profile:")
|
|
260
|
-
print(f"[meshcode] {profile_name}")
|
|
261
|
-
print(f"[meshcode]")
|
|
262
|
-
print(f"[meshcode] This key only works for the '{agent}' agent in '{project}'.")
|
|
263
|
-
print(f"[meshcode] It cannot create new meshworks, see other agents' messages,")
|
|
264
|
-
print(f"[meshcode] or affect the inviter's billing.")
|
|
255
|
+
print(f"[meshcode] Scoped key saved in OS keychain: {profile_name}")
|
|
265
256
|
print()
|
|
266
|
-
|
|
257
|
+
|
|
258
|
+
# Auto-launch: go straight into the agent — no second command needed
|
|
259
|
+
print(f"[meshcode] Launching agent...")
|
|
260
|
+
try:
|
|
261
|
+
from .run_agent import run
|
|
262
|
+
return run(agent, project=project)
|
|
263
|
+
except Exception as e:
|
|
264
|
+
print(f"[meshcode] WARNING: auto-launch failed ({e})", file=sys.stderr)
|
|
265
|
+
print(f"[meshcode] Run manually: meshcode run {agent}", file=sys.stderr)
|
|
266
|
+
return 0
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
# ============================================================
|
|
@@ -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
|