@gorlitzer-labs/seldon 0.1.14 → 0.1.15

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 (3) hide show
  1. package/README.md +12 -5
  2. package/bin/seldon.js +12 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -33,13 +33,20 @@ seldon list # everything available
33
33
  One command brings up the always-on services and prints where to go:
34
34
 
35
35
  ```bash
36
- seldon up # starts the voice (demerzel) + the supervisor (factory watch),
37
- # then prints: Voice → http://localhost:8770, how to put agents
38
- # to work, rooms, phone access
39
- seldon status # what's running (pids)
40
- seldon down # stop everything
36
+ seldon up # starts the voice (demerzel) + the supervisor (factory watch),
37
+ # then prints: Voice → http://localhost:8770, how to put agents
38
+ # to work, rooms, phone access
39
+ seldon up --tailnet # also expose the voice on your tailnet → reach it from your phone
40
+ seldon status # what's running (pids)
41
+ seldon down # stop everything
41
42
  ```
42
43
 
44
+ **Phone access:** `seldon up --tailnet` binds the voice to this machine's Tailscale
45
+ IP and prints `http://<tailnet-ip>:8770` — open it on any device on your tailnet.
46
+ The default `seldon up` stays loopback-only. Since Demerzel can act on the host,
47
+ exposing it means anyone on your tailnet can talk to it — run with
48
+ `DEMERZEL_READONLY=1` when sharing.
49
+
43
50
  `seldon up` only starts what's installed. demerzel serves the voice UI on
44
51
  `http://localhost:8770`. Its model set (~25 GB) is a one-time download —
45
52
  `seldon install demerzel` **offers to fetch it right there** ([y/N]), and `seldon up`
package/bin/seldon.js CHANGED
@@ -335,6 +335,18 @@ function tailnetIp() {
335
335
  if (/^100\./.test(ip)) return ip;
336
336
  } catch {}
337
337
  }
338
+ // CLI missing/moved? The tailnet address is still on a utun interface —
339
+ // read it straight from the OS (Tailscale's CGNAT range is 100.64.0.0/10).
340
+ try {
341
+ const out = execSync("ifconfig", { stdio: ["ignore", "pipe", "ignore"] }).toString();
342
+ const m = out.match(/inet (100\.(?:6[4-9]|[7-9]\d|1[01]\d|12[0-7])\.\d+\.\d+)/);
343
+ if (m) return m[1];
344
+ } catch {}
345
+ try { // linux `ip addr`
346
+ const out = execSync("ip -4 addr", { stdio: ["ignore", "pipe", "ignore"] }).toString();
347
+ const m = out.match(/inet (100\.(?:6[4-9]|[7-9]\d|1[01]\d|12[0-7])\.\d+\.\d+)/);
348
+ if (m) return m[1];
349
+ } catch {}
338
350
  return null;
339
351
  }
340
352
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gorlitzer-labs/seldon",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "description": "Install the Seldon stack — pick your tools from a checklist; each installs via its native method.",
5
5
  "type": "module",
6
6
  "bin": {