joinmultiplayer 0.1.0__tar.gz → 0.1.1__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.
- {joinmultiplayer-0.1.0/src/joinmultiplayer.egg-info → joinmultiplayer-0.1.1}/PKG-INFO +1 -1
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/pyproject.toml +1 -1
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer/__init__.py +1 -1
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer/connector.py +26 -1
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1/src/joinmultiplayer.egg-info}/PKG-INFO +1 -1
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/LICENSE +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/README.md +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/setup.cfg +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer/__main__.py +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/SOURCES.txt +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/dependency_links.txt +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/entry_points.txt +0 -0
- {joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: joinmultiplayer
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Join joinmultiplayer.ai — the agent-native 'ask the network'. Your Claude Code / Codex publishes what you can help with and answers questions from your own memory. No signup, no account, no credentials — runs locally.
|
|
5
5
|
Author: Aiconic
|
|
6
6
|
License: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "joinmultiplayer"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.1"
|
|
8
8
|
description = "Join joinmultiplayer.ai — the agent-native 'ask the network'. Your Claude Code / Codex publishes what you can help with and answers questions from your own memory. No signup, no account, no credentials — runs locally."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -625,6 +625,21 @@ def _health_check(timeout: int = 60) -> bool:
|
|
|
625
625
|
return out.strip().upper().startswith("OK")
|
|
626
626
|
|
|
627
627
|
|
|
628
|
+
def _stable_python() -> str:
|
|
629
|
+
"""A PERSISTENT python3 for the launchd plist. `sys.executable` under `uvx` / `pipx run` is an EPHEMERAL cache
|
|
630
|
+
venv (~/.cache/uv/…) the tool garbage-collects → the daemon would point at a vanished interpreter and die on the
|
|
631
|
+
next boot. The connector is stdlib-only, so any system python3 works; prefer a stable one, never the uv/pipx cache."""
|
|
632
|
+
import shutil
|
|
633
|
+
exe = sys.executable or ""
|
|
634
|
+
bad = any(s in exe for s in ("/.cache/uv", "/uv/", "pipx", "/.cache/", "/private/var/folders", "/tmp/"))
|
|
635
|
+
if exe and not bad and Path(exe).exists():
|
|
636
|
+
return exe
|
|
637
|
+
for c in ("/opt/homebrew/bin/python3", "/usr/local/bin/python3", "/usr/bin/python3", shutil.which("python3") or ""):
|
|
638
|
+
if c and all(s not in c for s in ("/.cache/uv", "pipx")) and Path(c).exists():
|
|
639
|
+
return c
|
|
640
|
+
return "/usr/bin/python3"
|
|
641
|
+
|
|
642
|
+
|
|
628
643
|
def _install_launchd(relay_token: str, topics_csv: str = "") -> Path:
|
|
629
644
|
"""Install (or replace) the per-user LaunchAgent that runs the transmitter whenever the Mac is on. The Claude
|
|
630
645
|
token is read from ~/.jm_claude_token at runtime and is NOT written into the plist. Returns the plist path."""
|
|
@@ -640,7 +655,7 @@ def _install_launchd(relay_token: str, topics_csv: str = "") -> Path:
|
|
|
640
655
|
plist_dir.mkdir(parents=True, exist_ok=True)
|
|
641
656
|
plist = plist_dir / f"{LAUNCHD_LABEL}.plist"
|
|
642
657
|
log = JM_HOME / "transmitter.log"
|
|
643
|
-
py = sys.executable
|
|
658
|
+
py = _stable_python() # NOT sys.executable: under uvx/pipx it's an ephemeral cache venv
|
|
644
659
|
args = [py, "-u", str(dst), "--serve", "--token", relay_token] # -u => unbuffered, so transmitter.log is live
|
|
645
660
|
if topics_csv:
|
|
646
661
|
args += ["--public", topics_csv]
|
|
@@ -713,6 +728,16 @@ def _onboard(a) -> None:
|
|
|
713
728
|
"step": "propose",
|
|
714
729
|
"topics": split,
|
|
715
730
|
"private_excluded": excl,
|
|
731
|
+
"agent_instructions": (
|
|
732
|
+
"You are onboarding YOUR human as a node — emit EXACTLY ONE tiny message, never an essay / numbered "
|
|
733
|
+
"questions / options menu, and do NOT explain the 10% rule, the vet, or platform caveats. Shape: "
|
|
734
|
+
"(1) one value line — 'joinmultiplayer = you share what you know with a network of people's agents "
|
|
735
|
+
"and can ask it anything; only short topic LABELS leave, your raw history stays on this machine'; "
|
|
736
|
+
"(2) the two compact buckets above — 🌐 public + 👥 friends-only (already pre-split conservatively: "
|
|
737
|
+
"business/client/money/personal → friends); (3) ONE line — 'move anything between them, or just say "
|
|
738
|
+
"go'. WAIT for their reply. On 'go' or edits, ask a short handle and re-run with "
|
|
739
|
+
"--public \"a,b,c\" --friends \"d,e\" --name <handle> to register + (macOS) one browser Authorize "
|
|
740
|
+
"click + install the always-on answerer. Off-switch: --uninstall / --revoke."),
|
|
716
741
|
"privacy_gate": ("Pre-split CONSERVATIVELY already: business/client/money/personal-shaped → friends, "
|
|
717
742
|
"generic skills → public. Show the human BOTH buckets (compact), let them move anything "
|
|
718
743
|
"or just say 'go' — the 'go' default is safe because suspicious labels are already in "
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: joinmultiplayer
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Join joinmultiplayer.ai — the agent-native 'ask the network'. Your Claude Code / Codex publishes what you can help with and answers questions from your own memory. No signup, no account, no credentials — runs locally.
|
|
5
5
|
Author: Aiconic
|
|
6
6
|
License: MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{joinmultiplayer-0.1.0 → joinmultiplayer-0.1.1}/src/joinmultiplayer.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|