nomoreide 0.1.32 → 0.1.34

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,6 +1,7 @@
1
1
  import type { ConfigStore } from "./config-store.js";
2
2
  import type { LogStore } from "./log-store.js";
3
3
  import { type PortHolder } from "./port-utils.js";
4
+ import { type ServiceRegistry } from "./service-registry.js";
4
5
  import type { TimelineStore } from "./timeline-store.js";
5
6
  import type { ServiceStatus } from "./types.js";
6
7
  interface ProcessManagerOptions {
@@ -8,6 +9,13 @@ interface ProcessManagerOptions {
8
9
  logStore: LogStore;
9
10
  stopTimeoutMs?: number;
10
11
  timelineStore?: TimelineStore;
12
+ /**
13
+ * Shared cross-session view of running services. When provided, the manager
14
+ * adopts services started by other sessions instead of spawning duplicates,
15
+ * and can stop services it did not spawn itself. Omit for an isolated manager
16
+ * (e.g. in tests) — behavior is then identical to a single-session manager.
17
+ */
18
+ registry?: ServiceRegistry;
11
19
  }
12
20
  export interface NoMoreIdeStatus {
13
21
  services: Record<string, ServiceStatus>;
@@ -28,6 +36,7 @@ export declare class ProcessManager {
28
36
  private readonly logStore;
29
37
  private readonly stopTimeoutMs;
30
38
  private readonly timelineStore?;
39
+ private readonly registry?;
31
40
  constructor(options: ProcessManagerOptions);
32
41
  startService(name: string, options?: StartServiceOptions): Promise<ServiceStatus>;
33
42
  stopService(name: string): Promise<ServiceStatus>;
@@ -45,6 +54,12 @@ export declare class ProcessManager {
45
54
  installShutdownHandlers(): () => void;
46
55
  status(): NoMoreIdeStatus;
47
56
  statusWithResources(): Promise<NoMoreIdeStatus>;
57
+ /**
58
+ * Fold in services started by sibling sessions. A registry entry wins only
59
+ * when this session has no running view of that service, so a locally-owned
60
+ * "running" status is never overwritten by the shared snapshot.
61
+ */
62
+ private mergeRegistry;
48
63
  private startDockerComposeService;
49
64
  private stopDockerComposeService;
50
65
  readDockerServiceLogs(name: string, tail?: number): Promise<string>;
@@ -3,6 +3,7 @@ import { readDockerServiceLogs, readDockerServiceStatus, startDockerService, sto
3
3
  import { startHttpInspector, } from "./http-inspector.js";
4
4
  import { getPortHolder, isPortAvailable } from "./port-utils.js";
5
5
  import { readProcessTree } from "./process-tree.js";
6
+ import { isPidAlive, } from "./service-registry.js";
6
7
  import { createSshCommand } from "./ssh-service-runner.js";
7
8
  export class PortConflictError extends Error {
8
9
  code = "PORT_IN_USE";
@@ -24,11 +25,13 @@ export class ProcessManager {
24
25
  logStore;
25
26
  stopTimeoutMs;
26
27
  timelineStore;
28
+ registry;
27
29
  constructor(options) {
28
30
  this.configStore = options.configStore;
29
31
  this.logStore = options.logStore;
30
32
  this.stopTimeoutMs = options.stopTimeoutMs ?? 3000;
31
33
  this.timelineStore = options.timelineStore;
34
+ this.registry = options.registry;
32
35
  }
33
36
  async startService(name, options = {}) {
34
37
  const service = await this.getService(name);
@@ -40,6 +43,13 @@ export class ProcessManager {
40
43
  if (kind === "docker-compose") {
41
44
  return this.startDockerComposeService(name, service);
42
45
  }
46
+ // Another session may already be running this exact service. Adopt its
47
+ // status instead of spawning a duplicate — this also covers portless
48
+ // services, where the port check below cannot detect the conflict.
49
+ const tracked = this.registry?.get(name);
50
+ if (tracked) {
51
+ return registryEntryToStatus(tracked);
52
+ }
43
53
  if (service.port && !(await isPortAvailable(service.port))) {
44
54
  const holder = await getPortHolder(service.port);
45
55
  if (options.killHolder && holder) {
@@ -66,6 +76,18 @@ export class ProcessManager {
66
76
  },
67
77
  };
68
78
  this.runtimes.set(name, runtime);
79
+ if (child.pid) {
80
+ this.registry?.record({
81
+ name,
82
+ pid: child.pid,
83
+ pgid: child.pid, // detached spawn → child.pid is the process-group leader
84
+ port: service.port,
85
+ kind,
86
+ host: kind === "ssh" ? service.host : undefined,
87
+ startedAt: runtime.status.startedAt ?? new Date().toISOString(),
88
+ ownerPid: process.pid,
89
+ });
90
+ }
69
91
  void this.appendTimeline({
70
92
  kind: "service.lifecycle",
71
93
  service: name,
@@ -87,6 +109,7 @@ export class ProcessManager {
87
109
  signal,
88
110
  };
89
111
  runtime.child = undefined;
112
+ this.registry?.remove(name);
90
113
  void this.stopInspector(runtime);
91
114
  void this.appendTimeline({
92
115
  kind: "service.lifecycle",
@@ -107,6 +130,7 @@ export class ProcessManager {
107
130
  exitCode: 1,
108
131
  signal: null,
109
132
  };
133
+ this.registry?.remove(name);
110
134
  void this.logStore.append(name, "stderr", error.message);
111
135
  void this.appendTimeline({
112
136
  kind: "service.lifecycle",
@@ -124,6 +148,13 @@ export class ProcessManager {
124
148
  return this.stopDockerComposeService(name, runtime);
125
149
  }
126
150
  if (!runtime?.child || runtime.status.state !== "running") {
151
+ // No live child in this session — a sibling session may own it. If the
152
+ // registry has a live entry, signal its process group to stop it.
153
+ const tracked = this.registry?.get(name);
154
+ if (tracked) {
155
+ await stopByPid(tracked.pid, tracked.pgid, this.stopTimeoutMs);
156
+ this.registry?.remove(name);
157
+ }
127
158
  const stopped = { name, state: "stopped" };
128
159
  this.runtimes.set(name, { status: stopped, stopping: false });
129
160
  void this.appendTimeline({
@@ -262,6 +293,9 @@ export class ProcessManager {
262
293
  continue;
263
294
  signalProcessTree(runtime.child, signal);
264
295
  }
296
+ // Drop this session's entries synchronously; the async exit handlers above
297
+ // may not run before the host process exits.
298
+ this.registry?.removeOwnedBy(process.pid);
265
299
  }
266
300
  installShutdownHandlers() {
267
301
  let firing = false;
@@ -289,12 +323,12 @@ export class ProcessManager {
289
323
  };
290
324
  }
291
325
  status() {
292
- return {
293
- services: Object.fromEntries([...this.runtimes.entries()].map(([name, runtime]) => [
294
- name,
295
- { ...runtime.status },
296
- ])),
297
- };
326
+ const services = {};
327
+ for (const [name, runtime] of this.runtimes.entries()) {
328
+ services[name] = { ...runtime.status };
329
+ }
330
+ this.mergeRegistry(services);
331
+ return { services };
298
332
  }
299
333
  async statusWithResources() {
300
334
  const services = {};
@@ -306,8 +340,29 @@ export class ProcessManager {
306
340
  status.inspector = this.inspectorStatus(runtime);
307
341
  services[name] = status;
308
342
  }
343
+ this.mergeRegistry(services);
344
+ for (const status of Object.values(services)) {
345
+ if (status.pid && status.state === "running" && !status.processTree) {
346
+ status.processTree = await readProcessTree(status.pid);
347
+ }
348
+ }
309
349
  return { services };
310
350
  }
351
+ /**
352
+ * Fold in services started by sibling sessions. A registry entry wins only
353
+ * when this session has no running view of that service, so a locally-owned
354
+ * "running" status is never overwritten by the shared snapshot.
355
+ */
356
+ mergeRegistry(services) {
357
+ if (!this.registry)
358
+ return;
359
+ for (const entry of this.registry.list()) {
360
+ const local = services[entry.name];
361
+ if (!local || local.state !== "running") {
362
+ services[entry.name] = registryEntryToStatus(entry);
363
+ }
364
+ }
365
+ }
311
366
  async startDockerComposeService(name, service) {
312
367
  const target = toDockerTarget(name, service);
313
368
  const info = await startDockerService(target);
@@ -392,6 +447,7 @@ export class ProcessManager {
392
447
  const runtime = this.runtimes.get(service);
393
448
  if (runtime) {
394
449
  runtime.status = { ...runtime.status, url };
450
+ this.registry?.update(service, { url });
395
451
  void this.maybeStartInspector(service);
396
452
  }
397
453
  void this.appendTimeline({
@@ -422,6 +478,49 @@ export class ProcessManager {
422
478
  function resolveKind(service) {
423
479
  return service.kind ?? "local";
424
480
  }
481
+ function registryEntryToStatus(entry) {
482
+ return {
483
+ name: entry.name,
484
+ state: "running",
485
+ kind: entry.kind,
486
+ pid: entry.pid,
487
+ url: entry.url,
488
+ host: entry.host,
489
+ startedAt: entry.startedAt,
490
+ };
491
+ }
492
+ /**
493
+ * Stop a process by pid when we hold no ChildProcess handle for it (it was
494
+ * spawned by another session). Signals the whole process group, then escalates
495
+ * to SIGKILL if it has not exited within the timeout.
496
+ */
497
+ async function stopByPid(pid, pgid, timeoutMs) {
498
+ signalPid(pid, pgid, "SIGTERM");
499
+ const deadline = Date.now() + timeoutMs;
500
+ while (Date.now() < deadline) {
501
+ if (!isPidAlive(pid))
502
+ return;
503
+ await new Promise((resolve) => setTimeout(resolve, 50));
504
+ }
505
+ signalPid(pid, pgid, "SIGKILL");
506
+ }
507
+ function signalPid(pid, pgid, signal) {
508
+ const group = pgid ?? pid;
509
+ try {
510
+ // Negative pid signals the whole process group (detached spawn → pgid===pid).
511
+ process.kill(-group, signal);
512
+ }
513
+ catch (error) {
514
+ if (error.code === "ESRCH")
515
+ return;
516
+ try {
517
+ process.kill(pid, signal);
518
+ }
519
+ catch {
520
+ // ignore
521
+ }
522
+ }
523
+ }
425
524
  function toDockerTarget(name, service) {
426
525
  if (!service.cwd || !service.composeService) {
427
526
  throw new Error(`Service "${name}" is missing docker-compose cwd or composeService.`);
@@ -1 +1 @@
1
- {"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../src/core/process-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../src/core/process-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { ServiceKind } from "./types.js";
2
+ /**
3
+ * One running service spawned by some session's ProcessManager. Persisted so
4
+ * every session (and the shared web UI process) sees the same set and can
5
+ * adopt/stop a service it did not spawn itself.
6
+ *
7
+ * Only `local`/`ssh` services are tracked here — they are the ones spawned with
8
+ * a real OS pid via `spawn(... detached)`, so liveness can be probed with
9
+ * `process.kill(pid, 0)`. docker-compose services dedupe through compose itself.
10
+ */
11
+ export interface ServiceRegistryEntry {
12
+ name: string;
13
+ /** pid of the spawned process (also the process-group leader: detached spawn). */
14
+ pid: number;
15
+ /** process-group id, equal to `pid` for detached spawns; used for group signals. */
16
+ pgid?: number;
17
+ port?: number;
18
+ url?: string;
19
+ kind: ServiceKind;
20
+ host?: string;
21
+ startedAt: string;
22
+ /** pid of the manager process that spawned it (for owner-scoped cleanup). */
23
+ ownerPid: number;
24
+ }
25
+ /**
26
+ * Shared, project-local view of running services, persisted at
27
+ * `.nomoreide/runtime.json`. Reads never mutate the file; mutations rewrite it
28
+ * atomically (temp + rename) and drop any entries whose pid has died, so stale
29
+ * entries from a crashed session self-heal on the next write.
30
+ */
31
+ export declare class ServiceRegistry {
32
+ private readonly path;
33
+ constructor(path: string);
34
+ list(): ServiceRegistryEntry[];
35
+ get(name: string): ServiceRegistryEntry | null;
36
+ record(entry: ServiceRegistryEntry): void;
37
+ update(name: string, patch: Partial<ServiceRegistryEntry>): void;
38
+ remove(name: string): void;
39
+ removeOwnedBy(ownerPid: number): void;
40
+ private pruned;
41
+ private read;
42
+ private write;
43
+ }
44
+ /**
45
+ * The shared registry lives next to the project logs: `.nomoreide/runtime.json`.
46
+ * `logDir` is `.nomoreide/logs`, so its parent is the `.nomoreide` root.
47
+ */
48
+ export declare function defaultRuntimeRegistryPath(logDir: string): string;
49
+ /** `true` while the pid exists (including when owned by another user — EPERM). */
50
+ export declare function isPidAlive(pid: number): boolean;
@@ -0,0 +1,98 @@
1
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ /**
4
+ * Shared, project-local view of running services, persisted at
5
+ * `.nomoreide/runtime.json`. Reads never mutate the file; mutations rewrite it
6
+ * atomically (temp + rename) and drop any entries whose pid has died, so stale
7
+ * entries from a crashed session self-heal on the next write.
8
+ */
9
+ export class ServiceRegistry {
10
+ path;
11
+ constructor(path) {
12
+ this.path = path;
13
+ }
14
+ list() {
15
+ return Object.values(this.read()).filter((entry) => isPidAlive(entry.pid));
16
+ }
17
+ get(name) {
18
+ const entry = this.read()[name];
19
+ return entry && isPidAlive(entry.pid) ? entry : null;
20
+ }
21
+ record(entry) {
22
+ const all = this.pruned();
23
+ all[entry.name] = entry;
24
+ this.write(all);
25
+ }
26
+ update(name, patch) {
27
+ const all = this.pruned();
28
+ const existing = all[name];
29
+ if (!existing)
30
+ return;
31
+ all[name] = { ...existing, ...patch };
32
+ this.write(all);
33
+ }
34
+ remove(name) {
35
+ const all = this.pruned();
36
+ if (name in all) {
37
+ delete all[name];
38
+ }
39
+ this.write(all);
40
+ }
41
+ removeOwnedBy(ownerPid) {
42
+ const all = this.read();
43
+ let changed = false;
44
+ for (const [name, entry] of Object.entries(all)) {
45
+ if (entry.ownerPid === ownerPid || !isPidAlive(entry.pid)) {
46
+ delete all[name];
47
+ changed = true;
48
+ }
49
+ }
50
+ if (changed)
51
+ this.write(all);
52
+ }
53
+ pruned() {
54
+ const all = this.read();
55
+ for (const [name, entry] of Object.entries(all)) {
56
+ if (!isPidAlive(entry.pid))
57
+ delete all[name];
58
+ }
59
+ return all;
60
+ }
61
+ read() {
62
+ try {
63
+ const parsed = JSON.parse(readFileSync(this.path, "utf8"));
64
+ if (!parsed || typeof parsed !== "object")
65
+ return {};
66
+ return parsed;
67
+ }
68
+ catch {
69
+ return {};
70
+ }
71
+ }
72
+ write(all) {
73
+ mkdirSync(dirname(this.path), { recursive: true });
74
+ const tmp = `${this.path}.${process.pid}.tmp`;
75
+ writeFileSync(tmp, `${JSON.stringify(all, null, 2)}\n`);
76
+ renameSync(tmp, this.path);
77
+ }
78
+ }
79
+ /**
80
+ * The shared registry lives next to the project logs: `.nomoreide/runtime.json`.
81
+ * `logDir` is `.nomoreide/logs`, so its parent is the `.nomoreide` root.
82
+ */
83
+ export function defaultRuntimeRegistryPath(logDir) {
84
+ return resolve(dirname(resolve(logDir)), "runtime.json");
85
+ }
86
+ /** `true` while the pid exists (including when owned by another user — EPERM). */
87
+ export function isPidAlive(pid) {
88
+ if (!pid || pid <= 0)
89
+ return false;
90
+ try {
91
+ process.kill(pid, 0);
92
+ return true;
93
+ }
94
+ catch (error) {
95
+ return error.code === "EPERM";
96
+ }
97
+ }
98
+ //# sourceMappingURL=service-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/core/service-registry.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { DbPeek } from "../core/db-peek.js";
5
5
  import { ErrorInbox } from "../core/error-inbox.js";
6
6
  import { LogStore } from "../core/log-store.js";
7
7
  import { ProcessManager } from "../core/process-manager.js";
8
+ import { defaultRuntimeRegistryPath, ServiceRegistry, } from "../core/service-registry.js";
8
9
  import { TimelineStore } from "../core/timeline-store.js";
9
10
  import { ToolCallStore } from "../core/tool-call-store.js";
10
11
  import { createUiLifecycleManager, } from "../web/ui-lifecycle.js";
@@ -21,7 +22,13 @@ export function createNoMoreIdeMcpServer(options = {}) {
21
22
  baseDir: logDir,
22
23
  timelineStore,
23
24
  });
24
- const manager = new ProcessManager({ configStore, logStore, timelineStore });
25
+ const registry = new ServiceRegistry(defaultRuntimeRegistryPath(logDir));
26
+ const manager = new ProcessManager({
27
+ configStore,
28
+ logStore,
29
+ timelineStore,
30
+ registry,
31
+ });
25
32
  const errorInbox = new ErrorInbox({ logStore, configStore });
26
33
  const dbPeek = new DbPeek({ configStore });
27
34
  const toolCallStore = new ToolCallStore();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}