seatmesh 1.2.0 → 1.2.2

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.
@@ -1,4 +1,8 @@
1
- import { spawnSync } from "node:child_process";
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { spawn, spawnSync } from "node:child_process";
2
6
  import { readGlobalRegistry } from "@seat-mesh/core";
3
7
  import { ensureMeshInbox, inboxHealthRelaxed, meshInboxPort, meshInboxStatusLine, probeInbox, tmuxHasSession, } from "@seat-mesh/tmux";
4
8
  /** Default operator hub (packages/web). Override: SEATMESH_WEB_URL */
@@ -30,21 +34,139 @@ function openBrowser(url) {
30
34
  const r = spawnSync(opener, args, { encoding: "utf8", stdio: "ignore" });
31
35
  return r.status === 0;
32
36
  }
37
+ function runtimeDir() {
38
+ const home = process.env.HOME || process.env.USERPROFILE || os.tmpdir();
39
+ const dir = path.join(home, ".config", "seatmesh");
40
+ fs.mkdirSync(dir, { recursive: true });
41
+ return dir;
42
+ }
43
+ function webPidPath(port) {
44
+ return path.join(runtimeDir(), `web-${port}.pid`);
45
+ }
46
+ function webLogPath(port) {
47
+ return path.join(runtimeDir(), `web-${port}.log`);
48
+ }
49
+ function readPid(port) {
50
+ try {
51
+ const raw = fs.readFileSync(webPidPath(port), "utf8").trim();
52
+ const n = Number(raw);
53
+ return Number.isFinite(n) && n > 0 ? n : null;
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ function writePid(port, pid) {
60
+ fs.writeFileSync(webPidPath(port), `${pid}\n`, "utf8");
61
+ }
62
+ function clearPid(port) {
63
+ try {
64
+ fs.unlinkSync(webPidPath(port));
65
+ }
66
+ catch {
67
+ /* */
68
+ }
69
+ }
70
+ function processAlive(pid) {
71
+ try {
72
+ process.kill(pid, 0);
73
+ return true;
74
+ }
75
+ catch {
76
+ return false;
77
+ }
78
+ }
79
+ /**
80
+ * Locate packages/web (@seat-mesh/web). Not published to npm — needs a seatmesh checkout.
81
+ * Order: SEATMESH_WEB_ROOT → walk cwd → CLI monorepo neighbor → SEATMESH_ROOT/packages/web
82
+ */
83
+ export function resolveWebRoot() {
84
+ const envRoot = process.env.SEATMESH_WEB_ROOT?.trim();
85
+ if (envRoot && isWebPackage(envRoot))
86
+ return path.resolve(envRoot);
87
+ const seatmeshRoot = process.env.SEATMESH_ROOT?.trim();
88
+ if (seatmeshRoot) {
89
+ const cand = path.join(seatmeshRoot, "packages", "web");
90
+ if (isWebPackage(cand))
91
+ return cand;
92
+ }
93
+ // Walk up from cwd
94
+ let dir = process.cwd();
95
+ for (let i = 0; i < 10; i++) {
96
+ const cand = path.join(dir, "packages", "web");
97
+ if (isWebPackage(cand))
98
+ return cand;
99
+ const parent = path.dirname(dir);
100
+ if (parent === dir)
101
+ break;
102
+ dir = parent;
103
+ }
104
+ // packages/cli/dist/... → packages/web
105
+ try {
106
+ const here = path.dirname(fileURLToPath(import.meta.url));
107
+ const fromCli = path.resolve(here, "..", "..", "..", "web");
108
+ if (isWebPackage(fromCli))
109
+ return fromCli;
110
+ const fromCliAlt = path.resolve(here, "..", "..", "web");
111
+ if (isWebPackage(fromCliAlt))
112
+ return fromCliAlt;
113
+ }
114
+ catch {
115
+ /* */
116
+ }
117
+ return null;
118
+ }
119
+ function isWebPackage(dir) {
120
+ try {
121
+ const pkg = JSON.parse(fs.readFileSync(path.join(dir, "package.json"), "utf8"));
122
+ return pkg.name === "@seat-mesh/web" && fs.existsSync(path.join(dir, "bin"));
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ function killPortListeners(port) {
129
+ const r = spawnSync("sh", [
130
+ "-c",
131
+ `ss -lntp 2>/dev/null | sed -n 's/.*:${port}\\b.*pid=\\([0-9][0-9]*\\).*/\\1/p' | sort -u`,
132
+ ], { encoding: "utf8" });
133
+ const pids = (r.stdout || "")
134
+ .split(/\s+/)
135
+ .map((s) => Number(s.trim()))
136
+ .filter((n) => Number.isFinite(n) && n > 0);
137
+ let killed = 0;
138
+ for (const pid of pids) {
139
+ try {
140
+ process.kill(pid, "SIGTERM");
141
+ killed += 1;
142
+ }
143
+ catch {
144
+ /* */
145
+ }
146
+ }
147
+ return killed;
148
+ }
33
149
  export function printWebHelp() {
34
- console.log(`web — operator hub (packages/web) parity with CLI
150
+ const root = resolveWebRoot();
151
+ console.log(`web — operator hub (packages/web) on :3190
35
152
 
36
- web status [--json] hub URL + sessions + daemon health + restart tips
153
+ web status [--json] hub URL + up/pid + sessions + daemon tips
154
+ web up [--open] start hub (detached) from seatmesh checkout
155
+ web down stop hub (pidfile + port listeners)
156
+ web restart [--open] down then up
37
157
  web open [path] open hub in browser (default /)
38
158
  web url [path] print hub URL only
39
159
 
40
160
  Aliases: open-web → web open
41
161
 
42
162
  Hub default: ${hubBaseUrl()} (SEATMESH_WEB_URL to override)
43
- Start hub: npm run web # from seatmesh repo → :3190
44
- Restart inbox (this mesh): seatmesh inbox restart
45
- All meshes: seatmesh sessions
163
+ Web root: ${root ?? "(not found — clone seatmesh; or set SEATMESH_WEB_ROOT)"}
164
+ Pid/log: ~/.config/seatmesh/web-<port>.{pid,log}
46
165
 
47
- Parity map: docs/patterns/cli-web-parity.md`);
166
+ Requires a seatmesh git checkout (@seat-mesh/web is private — not on npm).
167
+ From repo: npx seatmesh web up · or: npm run web
168
+
169
+ Docs: docs/cli/web.md · docs/patterns/cli-web-parity.md`);
48
170
  }
49
171
  function sessionHref(sessionId, sub = "") {
50
172
  const base = hubBaseUrl();
@@ -60,6 +182,9 @@ export function printWebStatus(loaded, opts) {
60
182
  const health = inboxHealthRelaxed(port);
61
183
  const daemonUp = Boolean(health && health.engine === "@seat-mesh/daemon");
62
184
  const hubUp = hubListening(hubPort);
185
+ const pid = readPid(hubPort);
186
+ const pidAlive = pid != null && processAlive(pid);
187
+ const webRoot = resolveWebRoot();
63
188
  const reg = readGlobalRegistry();
64
189
  const sessions = reg.sessions.length
65
190
  ? reg.sessions.map((s) => ({
@@ -82,6 +207,8 @@ export function printWebStatus(loaded, opts) {
82
207
  console.log(JSON.stringify({
83
208
  hubUrl: base,
84
209
  hubUp,
210
+ hubPid: pidAlive ? pid : null,
211
+ webRoot,
85
212
  profile: loaded.profile.name,
86
213
  session: loaded.sessionName,
87
214
  daemonPort: port,
@@ -96,7 +223,7 @@ export function printWebStatus(loaded, opts) {
96
223
  : null,
97
224
  sessions,
98
225
  restart: {
99
- hub: "npm run web # packages/web → :3190",
226
+ hub: "npx seatmesh web restart # or: web up / web down",
100
227
  inbox: `seatmesh --profile ${loaded.profileDir} inbox restart`,
101
228
  session: "seatmesh session attach|up",
102
229
  },
@@ -116,12 +243,17 @@ export function printWebStatus(loaded, opts) {
116
243
  return daemonUp || hubUp ? 0 : 1;
117
244
  }
118
245
  console.log(`web status hub=${base} up=${hubUp ? "yes" : "no"}`);
246
+ if (pidAlive)
247
+ console.log(` pid=${pid} log=${webLogPath(hubPort)}`);
248
+ else if (hubUp)
249
+ console.log(` pid=(unknown — listening but no pidfile)`);
250
+ console.log(` webRoot=${webRoot ?? "(missing — set SEATMESH_WEB_ROOT or run from seatmesh checkout)"}`);
119
251
  console.log(` profile=${loaded.profile.name} session=${loaded.sessionName}`);
120
252
  console.log(` ${meshInboxStatusLine(loaded, health)}`);
121
253
  if (!daemonUp)
122
254
  console.log(` fix daemon: seatmesh inbox restart`);
123
255
  if (!hubUp)
124
- console.log(` fix hub: npm run web # from seatmesh checkout → ${base}`);
256
+ console.log(` fix hub: npx seatmesh web up`);
125
257
  console.log(` open: seatmesh web open`);
126
258
  console.log(` sessions: seatmesh sessions`);
127
259
  console.log("");
@@ -134,6 +266,7 @@ export function printWebStatus(loaded, opts) {
134
266
  console.log(` config ${sessionHref(loaded.sessionName, "/config")}`);
135
267
  console.log(` notifications ${base}/notifications`);
136
268
  console.log(` tools ${base}/tools`);
269
+ console.log(` mds ${base}/mds`);
137
270
  if (sessions.length) {
138
271
  console.log("");
139
272
  console.log(`registered sessions (${sessions.length}):`);
@@ -150,7 +283,7 @@ export function runWebOpen(pathArg) {
150
283
  const url = p.startsWith("http") ? p : `${base}${p.startsWith("/") ? p : `/${p}`}`;
151
284
  console.log(`hub=${url}`);
152
285
  if (!hubListening(hubPortFromBase(base)) && !p.startsWith("http")) {
153
- console.error(`WARN: nothing listening on hub — start with: npm run web`);
286
+ console.error(`WARN: nothing listening on hub — start with: npx seatmesh web up`);
154
287
  }
155
288
  if (!openBrowser(url)) {
156
289
  console.error(`FAIL: could not open browser — open manually: ${url}`);
@@ -165,8 +298,109 @@ export function runWebUrl(pathArg) {
165
298
  const url = p.startsWith("http") ? p : `${base}${p.startsWith("/") ? p : `/${p}`}`;
166
299
  console.log(url);
167
300
  }
301
+ export function runWebDown() {
302
+ const port = hubPortFromBase(hubBaseUrl());
303
+ const pid = readPid(port);
304
+ let killed = 0;
305
+ if (pid != null && processAlive(pid)) {
306
+ try {
307
+ process.kill(pid, "SIGTERM");
308
+ killed += 1;
309
+ }
310
+ catch {
311
+ /* */
312
+ }
313
+ }
314
+ killed += killPortListeners(port);
315
+ // brief wait then SIGKILL leftovers
316
+ spawnSync("sleep", ["0.4"]);
317
+ if (pid != null && processAlive(pid)) {
318
+ try {
319
+ process.kill(pid, "SIGKILL");
320
+ }
321
+ catch {
322
+ /* */
323
+ }
324
+ }
325
+ killPortListeners(port);
326
+ clearPid(port);
327
+ const still = hubListening(port);
328
+ if (still) {
329
+ console.error(`FAIL: still listening on :${port} after down`);
330
+ return 1;
331
+ }
332
+ console.log(`OK: web down :${port} killed≈${killed}`);
333
+ return 0;
334
+ }
335
+ export function runWebUp(opts) {
336
+ const base = hubBaseUrl();
337
+ const port = hubPortFromBase(base);
338
+ if (hubListening(port)) {
339
+ const pid = readPid(port);
340
+ console.log(`OK: web already up :${port}${pid && processAlive(pid) ? ` pid=${pid}` : ""} hub=${base}`);
341
+ if (opts?.open)
342
+ runWebOpen("/");
343
+ return 0;
344
+ }
345
+ const root = resolveWebRoot();
346
+ if (!root) {
347
+ console.error("FAIL: packages/web not found — @seat-mesh/web is private (not on npm).\n" +
348
+ " Clone seatmesh, cd into it, then: npx seatmesh web up\n" +
349
+ " Or set SEATMESH_WEB_ROOT=/path/to/seatmesh/packages/web");
350
+ return 1;
351
+ }
352
+ const logPath = webLogPath(port);
353
+ const logFd = fs.openSync(logPath, "a");
354
+ fs.writeSync(logFd, `\n=== web up ${new Date().toISOString()} port=${port} root=${root} ===\n`);
355
+ const child = spawn("npm", ["run", "dev"], {
356
+ cwd: root,
357
+ detached: true,
358
+ stdio: ["ignore", logFd, logFd],
359
+ env: {
360
+ ...process.env,
361
+ PORT: String(port),
362
+ HOST: "127.0.0.1",
363
+ APP_URL: base,
364
+ },
365
+ });
366
+ fs.closeSync(logFd);
367
+ if (!child.pid) {
368
+ console.error("FAIL: could not spawn npm run dev for packages/web");
369
+ return 1;
370
+ }
371
+ child.unref();
372
+ writePid(port, child.pid);
373
+ // Wait until listening (ace/vite can take a few seconds)
374
+ const t0 = Date.now();
375
+ let up = false;
376
+ while (Date.now() - t0 < 25_000) {
377
+ if (hubListening(port)) {
378
+ up = true;
379
+ break;
380
+ }
381
+ if (!processAlive(child.pid))
382
+ break;
383
+ spawnSync("sleep", ["0.4"]);
384
+ }
385
+ if (!up) {
386
+ console.error(`FAIL: web did not listen on :${port} within 25s — see ${logPath}`);
387
+ return 1;
388
+ }
389
+ console.log(`OK: web up :${port} pid=${child.pid} hub=${base}`);
390
+ console.log(` root=${root}`);
391
+ console.log(` log=${logPath}`);
392
+ if (opts?.open)
393
+ runWebOpen("/");
394
+ return 0;
395
+ }
396
+ export function runWebRestart(opts) {
397
+ runWebDown();
398
+ spawnSync("sleep", ["0.5"]);
399
+ return runWebUp(opts);
400
+ }
168
401
  export async function runWebCommand(loaded, sub, tail) {
169
402
  const json = tail.includes("--json") || sub === "--json";
403
+ const openFlag = tail.includes("--open");
170
404
  const action = !sub || sub === "--json" ? "help" : sub;
171
405
  if (action === "help" || action === "-h" || action === "--help") {
172
406
  printWebHelp();
@@ -174,6 +408,12 @@ export async function runWebCommand(loaded, sub, tail) {
174
408
  }
175
409
  if (action === "status")
176
410
  return printWebStatus(loaded, { json });
411
+ if (action === "up" || action === "start")
412
+ return runWebUp({ open: openFlag });
413
+ if (action === "down" || action === "stop")
414
+ return runWebDown();
415
+ if (action === "restart")
416
+ return runWebRestart({ open: openFlag });
177
417
  if (action === "open") {
178
418
  return runWebOpen(tail.find((a) => !a.startsWith("-")));
179
419
  }
@@ -181,7 +421,7 @@ export async function runWebCommand(loaded, sub, tail) {
181
421
  runWebUrl(tail.find((a) => !a.startsWith("-")));
182
422
  return 0;
183
423
  }
184
- console.error(`usage: web status|open|url|help`);
424
+ console.error(`usage: web status|up|down|restart|open|url|help`);
185
425
  return 2;
186
426
  }
187
427
  //# sourceMappingURL=web-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-cli.js","sourceRoot":"","sources":["../../src/commands/web-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-cli.js","sourceRoot":"","sources":["../../src/commands/web-cli.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -15,6 +15,7 @@ import { buildLimitCommands } from "./commands/limit-cli.js";
15
15
  import { buildRolesCommands } from "./commands/roles-cli.js";
16
16
  import { buildNotifyCommand } from "./commands/notify-cli.js";
17
17
  import { buildPreviewCommand } from "./commands/preview-cli.js";
18
+ import { runMdsCommand } from "./commands/mds-cli.js";
18
19
  import { buildContractLockCommands } from "./commands/contract-lock-cli.js";
19
20
  import { buildRoomCommands } from "./commands/room-cli.js";
20
21
  import { runInit } from "./setup/init.js";
@@ -100,7 +101,7 @@ Setup (run once per project, by a human)
100
101
  update [--dry-run] [--migrate] [--no-restart-inbox]
101
102
  1) npm i -g seatmesh@latest 2) refresh .sm/_vendor
102
103
  config check | config upgrade validate yaml · how to bump CLI (npm i -g)
103
- web status|open|url | open-web operator hub :3190 (parity with packages/web)
104
+ web up|down|restart|status|open|url operator hub :3190 (npx seatmesh web up)
104
105
  roles status|migrate [--to VER]|steps locked role-pack up/down (1.1.x)
105
106
  version [--json] [--check-registry] CLI vs npm latest vs profile .seatmesh-version
106
107
 
@@ -2183,6 +2184,10 @@ async function main() {
2183
2184
  }
2184
2185
  return;
2185
2186
  }
2187
+ if (cmd === "mds") {
2188
+ const loaded = meshLoaded(profileArg);
2189
+ process.exit(await runMdsCommand(loaded, rest.slice(1)));
2190
+ }
2186
2191
  if (cmd === "preview") {
2187
2192
  const loaded = meshLoaded(profileArg);
2188
2193
  const getLoaded = () => loaded;