openboot 0.1.3 → 0.1.5

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 (48) hide show
  1. package/README.md +30 -2
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/agent.js +3 -3
  5. package/dist/commands/agent.js.map +1 -1
  6. package/dist/commands/dev.d.ts.map +1 -1
  7. package/dist/commands/dev.js +27 -23
  8. package/dist/commands/dev.js.map +1 -1
  9. package/dist/commands/logs.d.ts.map +1 -1
  10. package/dist/commands/logs.js +15 -4
  11. package/dist/commands/logs.js.map +1 -1
  12. package/dist/commands/setup.js +4 -3
  13. package/dist/commands/setup.js.map +1 -1
  14. package/dist/commands/status.d.ts.map +1 -1
  15. package/dist/commands/status.js +14 -7
  16. package/dist/commands/status.js.map +1 -1
  17. package/dist/commands/team.d.ts +6 -0
  18. package/dist/commands/team.d.ts.map +1 -0
  19. package/dist/commands/team.js +307 -0
  20. package/dist/commands/team.js.map +1 -0
  21. package/dist/commands/up.js +10 -4
  22. package/dist/commands/up.js.map +1 -1
  23. package/dist/lib/agent.d.ts +4 -2
  24. package/dist/lib/agent.d.ts.map +1 -1
  25. package/dist/lib/agent.js +42 -8
  26. package/dist/lib/agent.js.map +1 -1
  27. package/dist/lib/config.d.ts +12 -0
  28. package/dist/lib/config.d.ts.map +1 -1
  29. package/dist/lib/config.js +62 -0
  30. package/dist/lib/config.js.map +1 -1
  31. package/dist/lib/docker.d.ts.map +1 -1
  32. package/dist/lib/docker.js +64 -31
  33. package/dist/lib/docker.js.map +1 -1
  34. package/dist/lib/ports.d.ts +8 -3
  35. package/dist/lib/ports.d.ts.map +1 -1
  36. package/dist/lib/ports.js +19 -6
  37. package/dist/lib/ports.js.map +1 -1
  38. package/dist/lib/process.d.ts +1 -0
  39. package/dist/lib/process.d.ts.map +1 -1
  40. package/dist/lib/process.js +8 -3
  41. package/dist/lib/process.js.map +1 -1
  42. package/dist/lib/team.d.ts +62 -0
  43. package/dist/lib/team.d.ts.map +1 -0
  44. package/dist/lib/team.js +376 -0
  45. package/dist/lib/team.js.map +1 -0
  46. package/dist/types.d.ts +10 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.findConfig = findConfig;
37
37
  exports.loadConfig = loadConfig;
38
+ exports.loadProjectConfig = loadProjectConfig;
39
+ exports.getTeamConfigSeparately = getTeamConfigSeparately;
38
40
  exports.detectPackageManager = detectPackageManager;
39
41
  exports.getPackageManager = getPackageManager;
40
42
  exports.detectPythonTool = detectPythonTool;
@@ -42,6 +44,7 @@ exports.getPyProjectInfo = getPyProjectInfo;
42
44
  const fs = __importStar(require("fs"));
43
45
  const path = __importStar(require("path"));
44
46
  const yaml = __importStar(require("yaml"));
47
+ const team_1 = require("./team");
45
48
  const CONFIG_FILES = ["boot.yaml", "boot.yml", "boot.json"];
46
49
  /**
47
50
  * Find the boot config file in a directory.
@@ -56,6 +59,8 @@ function findConfig(dir = process.cwd()) {
56
59
  }
57
60
  /**
58
61
  * Load and parse the boot config.
62
+ * If the config has a team.url, the team profile is resolved (cloned/pulled)
63
+ * and merged as the base layer under the project config.
59
64
  */
60
65
  function loadConfig(dir = process.cwd()) {
61
66
  const configPath = findConfig(dir);
@@ -70,11 +75,68 @@ function loadConfig(dir = process.cwd()) {
70
75
  else {
71
76
  config = yaml.parse(raw);
72
77
  }
78
+ // Guard against empty files (yaml.parse returns null) or primitive values
79
+ if (!config || typeof config !== "object") {
80
+ config = {};
81
+ }
82
+ if (!config.name) {
83
+ config.name = path.basename(dir);
84
+ }
85
+ // ── Team profile merge ──
86
+ const teamConfig = config.team;
87
+ if (teamConfig?.url) {
88
+ try {
89
+ const resolved = (0, team_1.resolveTeamProfile)(teamConfig);
90
+ if (resolved) {
91
+ config = (0, team_1.mergeConfigs)(resolved.config, config);
92
+ }
93
+ }
94
+ catch (err) {
95
+ if (teamConfig.required) {
96
+ throw err; // Fail hard if team profile is required
97
+ }
98
+ // Non-required: warn and continue with project-only config
99
+ const { log } = require("./log");
100
+ log.warn(`Team profile unavailable: ${err.message}`);
101
+ }
102
+ }
103
+ return config;
104
+ }
105
+ /**
106
+ * Load the raw project config without team merge (for team commands that need
107
+ * to inspect the project config independently).
108
+ */
109
+ function loadProjectConfig(dir = process.cwd()) {
110
+ const configPath = findConfig(dir);
111
+ if (!configPath) {
112
+ throw new Error("No boot.yaml found. Run `boot init` to create one.");
113
+ }
114
+ const raw = fs.readFileSync(configPath, "utf-8");
115
+ let config;
116
+ if (configPath.endsWith(".json")) {
117
+ config = JSON.parse(raw);
118
+ }
119
+ else {
120
+ config = yaml.parse(raw);
121
+ }
122
+ if (!config || typeof config !== "object") {
123
+ config = {};
124
+ }
73
125
  if (!config.name) {
74
126
  config.name = path.basename(dir);
75
127
  }
76
128
  return config;
77
129
  }
130
+ /**
131
+ * Get the team config separately (for agent markdown labeling).
132
+ * Returns null if no team profile is configured or cached.
133
+ */
134
+ function getTeamConfigSeparately(dir = process.cwd()) {
135
+ const projectConfig = loadProjectConfig(dir);
136
+ if (!projectConfig.team?.url)
137
+ return null;
138
+ return (0, team_1.loadTeamConfig)(projectConfig.team.url);
139
+ }
78
140
  /**
79
141
  * Detect the package manager from lockfiles.
80
142
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/lib/docker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAevD,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AA4cD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiBpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiBnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BxD"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/lib/docker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAoBvD,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AA2fD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiBpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiBnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA+BxD"}
@@ -43,19 +43,18 @@ const path = __importStar(require("path"));
43
43
  const yaml = __importStar(require("yaml"));
44
44
  const log_1 = require("./log");
45
45
  const ports_1 = require("./ports");
46
- // ─── Helpers ────────────────────────────────────────────────
47
46
  function getComposeCmd() {
48
47
  try {
49
- (0, child_process_1.execSync)("docker compose version", { stdio: "pipe" });
50
- return "docker compose";
48
+ (0, child_process_1.execFileSync)("docker", ["compose", "version"], { stdio: "pipe" });
49
+ return { bin: "docker", baseArgs: ["compose"] };
51
50
  }
52
51
  catch {
53
- return "docker-compose";
52
+ return { bin: "docker-compose", baseArgs: [] };
54
53
  }
55
54
  }
56
55
  function isDockerAvailable() {
57
56
  try {
58
- (0, child_process_1.execSync)("docker info", { stdio: "pipe" });
57
+ (0, child_process_1.execFileSync)("docker", ["info"], { stdio: "pipe" });
59
58
  return true;
60
59
  }
61
60
  catch {
@@ -64,7 +63,7 @@ function isDockerAvailable() {
64
63
  }
65
64
  function isContainerRunning(container) {
66
65
  try {
67
- const status = (0, child_process_1.execSync)(`docker inspect -f '{{.State.Status}}' ${container}`, { stdio: "pipe" })
66
+ const status = (0, child_process_1.execFileSync)("docker", ["inspect", "-f", "{{.State.Status}}", container], { stdio: "pipe" })
68
67
  .toString()
69
68
  .trim();
70
69
  return status === "running";
@@ -75,7 +74,7 @@ function isContainerRunning(container) {
75
74
  }
76
75
  function containerExists(container) {
77
76
  try {
78
- (0, child_process_1.execSync)(`docker inspect ${container}`, { stdio: "pipe" });
77
+ (0, child_process_1.execFileSync)("docker", ["inspect", container], { stdio: "pipe" });
79
78
  return true;
80
79
  }
81
80
  catch {
@@ -86,7 +85,9 @@ function waitForContainer(container, check, timeout) {
86
85
  log_1.log.info(`Waiting for ${container}...`);
87
86
  for (let i = 0; i < timeout; i++) {
88
87
  try {
89
- (0, child_process_1.execSync)(`docker exec ${container} ${check}`, { stdio: "pipe" });
88
+ (0, child_process_1.execFileSync)("docker", ["exec", container, "sh", "-c", check], {
89
+ stdio: "pipe",
90
+ });
90
91
  log_1.log.success(`${container} is ready`);
91
92
  return;
92
93
  }
@@ -154,7 +155,7 @@ function startContainers(containers) {
154
155
  // Port taken — remove old container and recreate with a free port
155
156
  log_1.log.warn(`Port conflict for ${ct.name} — recreating on a free port...`);
156
157
  try {
157
- (0, child_process_1.execSync)(`docker rm -f ${ct.name}`, { stdio: "pipe" });
158
+ (0, child_process_1.execFileSync)("docker", ["rm", "-f", ct.name], { stdio: "pipe" });
158
159
  }
159
160
  catch {
160
161
  // ignore
@@ -164,14 +165,14 @@ function startContainers(containers) {
164
165
  else {
165
166
  log_1.log.info(`Starting existing container ${ct.name}...`);
166
167
  try {
167
- (0, child_process_1.execSync)(`docker start ${ct.name}`, { stdio: "pipe" });
168
+ (0, child_process_1.execFileSync)("docker", ["start", ct.name], { stdio: "pipe" });
168
169
  log_1.log.success(`${ct.name} started`);
169
170
  }
170
171
  catch (err) {
171
172
  // If start fails for another reason (e.g. stale network), recreate
172
173
  log_1.log.warn(`docker start failed for ${ct.name} — recreating...`);
173
174
  try {
174
- (0, child_process_1.execSync)(`docker rm -f ${ct.name}`, { stdio: "pipe" });
175
+ (0, child_process_1.execFileSync)("docker", ["rm", "-f", ct.name], { stdio: "pipe" });
175
176
  }
176
177
  catch {
177
178
  // ignore
@@ -187,7 +188,7 @@ function startContainers(containers) {
187
188
  }
188
189
  }
189
190
  // Need to create — check port conflicts first
190
- let portFlags = "";
191
+ const portArgs = [];
191
192
  if (ct.ports) {
192
193
  for (const p of ct.ports) {
193
194
  const resolved = resolveHostPort(p);
@@ -195,7 +196,7 @@ function startContainers(containers) {
195
196
  const freePort = findFreePort(resolved.host);
196
197
  if (freePort) {
197
198
  log_1.log.warn(`Port ${resolved.host} in use — using ${freePort} for ${ct.name}`);
198
- portFlags += ` -p ${freePort}:${resolved.container}`;
199
+ portArgs.push("-p", `${freePort}:${resolved.container}`);
199
200
  }
200
201
  else {
201
202
  log_1.log.error(`Port ${resolved.host} in use and no free port found for ${ct.name}`);
@@ -203,27 +204,27 @@ function startContainers(containers) {
203
204
  }
204
205
  }
205
206
  else if (resolved) {
206
- portFlags += ` -p ${resolved.host}:${resolved.container}`;
207
+ portArgs.push("-p", `${resolved.host}:${resolved.container}`);
207
208
  }
208
209
  }
209
210
  }
210
- // Build env flags
211
- let envFlags = "";
211
+ // Build env args
212
+ const envArgs = [];
212
213
  if (ct.env) {
213
214
  for (const [k, v] of Object.entries(ct.env)) {
214
- envFlags += ` -e "${k}=${v}"`;
215
+ envArgs.push("-e", `${k}=${v}`);
215
216
  }
216
217
  }
217
- // Build volume flags
218
- let volFlags = "";
218
+ // Build volume args
219
+ const volArgs = [];
219
220
  if (ct.volumes) {
220
221
  for (const v of ct.volumes) {
221
- volFlags += ` -v ${v}`;
222
+ volArgs.push("-v", v);
222
223
  }
223
224
  }
224
225
  log_1.log.info(`Creating container ${ct.name}...`);
225
226
  try {
226
- (0, child_process_1.execSync)(`docker run -d --name ${ct.name}${portFlags}${envFlags}${volFlags} ${ct.image}`, { stdio: "pipe" });
227
+ (0, child_process_1.execFileSync)("docker", ["run", "-d", "--name", ct.name, ...portArgs, ...envArgs, ...volArgs, ct.image], { stdio: "pipe" });
227
228
  log_1.log.success(`${ct.name} started`);
228
229
  }
229
230
  catch (err) {
@@ -243,7 +244,7 @@ function stopContainers(containers) {
243
244
  if (isContainerRunning(ct.name)) {
244
245
  log_1.log.info(`Stopping ${ct.name}...`);
245
246
  try {
246
- (0, child_process_1.execSync)(`docker stop ${ct.name}`, { stdio: "pipe" });
247
+ (0, child_process_1.execFileSync)("docker", ["stop", ct.name], { stdio: "pipe" });
247
248
  log_1.log.success(`${ct.name} stopped`);
248
249
  }
249
250
  catch {
@@ -264,7 +265,7 @@ function getContainersStatus(containers) {
264
265
  let status = "not found";
265
266
  let ports = "";
266
267
  try {
267
- status = (0, child_process_1.execSync)(`docker inspect -f '{{.State.Status}}' ${ct.name}`, { stdio: "pipe" })
268
+ status = (0, child_process_1.execFileSync)("docker", ["inspect", "-f", "{{.State.Status}}", ct.name], { stdio: "pipe" })
268
269
  .toString()
269
270
  .trim();
270
271
  }
@@ -273,7 +274,7 @@ function getContainersStatus(containers) {
273
274
  }
274
275
  if (status === "running") {
275
276
  try {
276
- const portInfo = (0, child_process_1.execSync)(`docker port ${ct.name}`, { stdio: "pipe" })
277
+ const portInfo = (0, child_process_1.execFileSync)("docker", ["port", ct.name], { stdio: "pipe" })
277
278
  .toString()
278
279
  .trim();
279
280
  ports = portInfo.split("\n").map((l) => l.split("->").pop()?.trim() || "").join(", ");
@@ -310,7 +311,7 @@ function startComposeServices(config) {
310
311
  const container = svc.container || svc.name;
311
312
  if (!isContainerRunning(container)) {
312
313
  try {
313
- (0, child_process_1.execSync)(`docker start ${container}`, { stdio: "pipe" });
314
+ (0, child_process_1.execFileSync)("docker", ["start", container], { stdio: "pipe" });
314
315
  log_1.log.success(`${container} started`);
315
316
  }
316
317
  catch {
@@ -324,6 +325,7 @@ function startComposeServices(config) {
324
325
  // 3. Check for port conflicts before compose
325
326
  const conflicts = getComposePortConflicts(file);
326
327
  if (conflicts.length > 0) {
328
+ const conflictingServiceNames = new Set(conflicts.map((c) => c.service));
327
329
  for (const conflict of conflicts) {
328
330
  const freePort = findFreePort(conflict.hostPort);
329
331
  if (!freePort) {
@@ -336,15 +338,18 @@ function startComposeServices(config) {
336
338
  const svc = services.find((s) => s.name === conflict.service);
337
339
  const container = svc?.container || conflict.service;
338
340
  const envVars = getComposeServiceEnv(file, conflict.service);
339
- const envFlags = envVars.map((e) => `-e "${e}"`).join(" ");
341
+ const envArgs = [];
342
+ for (const e of envVars) {
343
+ envArgs.push("-e", e);
344
+ }
340
345
  try {
341
- (0, child_process_1.execSync)(`docker rm -f ${container} 2>/dev/null`, { stdio: "pipe" });
346
+ (0, child_process_1.execFileSync)("docker", ["rm", "-f", container], { stdio: "pipe" });
342
347
  }
343
348
  catch {
344
349
  // ignore
345
350
  }
346
351
  try {
347
- (0, child_process_1.execSync)(`docker run -d --name ${container} -p ${freePort}:${conflict.containerPort} ${envFlags} ${image}`, { stdio: "pipe" });
352
+ (0, child_process_1.execFileSync)("docker", ["run", "-d", "--name", container, "-p", `${freePort}:${conflict.containerPort}`, ...envArgs, image], { stdio: "pipe" });
348
353
  log_1.log.success(`${conflict.service} started on port ${freePort} (mapped to container:${conflict.containerPort})`);
349
354
  }
350
355
  catch (err) {
@@ -352,13 +357,26 @@ function startComposeServices(config) {
352
357
  return;
353
358
  }
354
359
  }
360
+ // Start remaining non-conflicting services via compose
361
+ const nonConflicting = getComposeServiceNames(file).filter((name) => !conflictingServiceNames.has(name));
362
+ if (nonConflicting.length > 0) {
363
+ log_1.log.info("Starting remaining Docker services...");
364
+ try {
365
+ (0, child_process_1.execFileSync)(compose.bin, [...compose.baseArgs, "-f", file, "up", "-d", ...nonConflicting], { stdio: "inherit" });
366
+ }
367
+ catch {
368
+ log_1.log.error("Failed to start remaining Docker services");
369
+ }
370
+ }
355
371
  waitForAllComposeServices(services);
356
372
  return;
357
373
  }
358
374
  // 4. Normal compose up
359
375
  log_1.log.info("Starting Docker services...");
360
376
  try {
361
- (0, child_process_1.execSync)(`${compose} -f ${file} up -d`, { stdio: "inherit" });
377
+ (0, child_process_1.execFileSync)(compose.bin, [...compose.baseArgs, "-f", file, "up", "-d"], {
378
+ stdio: "inherit",
379
+ });
362
380
  }
363
381
  catch {
364
382
  log_1.log.error("Failed to start Docker services");
@@ -373,7 +391,9 @@ function stopComposeServices(config) {
373
391
  const file = config.docker.composeFile || "docker-compose.yml";
374
392
  log_1.log.info("Stopping Docker services...");
375
393
  try {
376
- (0, child_process_1.execSync)(`${compose} -f ${file} down`, { stdio: "inherit" });
394
+ (0, child_process_1.execFileSync)(compose.bin, [...compose.baseArgs, "-f", file, "down"], {
395
+ stdio: "inherit",
396
+ });
377
397
  log_1.log.success("Docker services stopped");
378
398
  }
379
399
  catch {
@@ -415,6 +435,19 @@ function getComposePortConflicts(composeFile) {
415
435
  }
416
436
  return conflicts;
417
437
  }
438
+ function getComposeServiceNames(composeFile) {
439
+ try {
440
+ const raw = fs.readFileSync(path.resolve(composeFile), "utf-8");
441
+ const compose = yaml.parse(raw);
442
+ if (compose?.services) {
443
+ return Object.keys(compose.services);
444
+ }
445
+ }
446
+ catch {
447
+ // Can't parse
448
+ }
449
+ return [];
450
+ }
418
451
  function getComposeServiceImage(composeFile, serviceName) {
419
452
  try {
420
453
  const raw = fs.readFileSync(path.resolve(composeFile), "utf-8");
@@ -492,7 +525,7 @@ function getDockerStatus(config) {
492
525
  const container = svc.container || svc.name;
493
526
  let status = "unknown";
494
527
  try {
495
- status = (0, child_process_1.execSync)(`docker inspect -f '{{.State.Status}}' ${container}`, { stdio: "pipe" })
528
+ status = (0, child_process_1.execFileSync)("docker", ["inspect", "-f", "{{.State.Status}}", container], { stdio: "pipe" })
496
529
  .toString()
497
530
  .trim();
498
531
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/lib/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/lib/docker.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
1
  /**
2
- * Check if a port is currently in use.
2
+ * Check if a port is currently in use (local LISTEN only).
3
+ * Uses -n (no DNS), -P (no service names), -sTCP:LISTEN to avoid
4
+ * matching outgoing connections to remote servers on the same port.
3
5
  */
4
6
  export declare function isPortInUse(port: number): boolean;
5
7
  /**
6
- * Kill whatever process is using a port.
8
+ * Kill whatever process is listening on a port.
9
+ * Only targets processes in LISTEN state to avoid killing unrelated
10
+ * processes that happen to have outgoing connections on the same port.
7
11
  */
8
12
  export declare function killPort(port: number): void;
9
13
  /**
10
- * Get info about what's using a port.
14
+ * Get info about what's listening on a port.
15
+ * Restricted to LISTEN state to avoid reporting unrelated connections.
11
16
  */
12
17
  export declare function getPortProcess(port: number): string | null;
13
18
  //# sourceMappingURL=ports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/lib/ports.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU1D"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/lib/ports.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWjD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmB3C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc1D"}
package/dist/lib/ports.js CHANGED
@@ -5,11 +5,13 @@ exports.killPort = killPort;
5
5
  exports.getPortProcess = getPortProcess;
6
6
  const child_process_1 = require("child_process");
7
7
  /**
8
- * Check if a port is currently in use.
8
+ * Check if a port is currently in use (local LISTEN only).
9
+ * Uses -n (no DNS), -P (no service names), -sTCP:LISTEN to avoid
10
+ * matching outgoing connections to remote servers on the same port.
9
11
  */
10
12
  function isPortInUse(port) {
11
13
  try {
12
- (0, child_process_1.execSync)(`lsof -ti:${port}`, { stdio: "pipe" });
14
+ (0, child_process_1.execFileSync)("lsof", ["-t", "-n", "-P", `-iTCP:${port}`, "-sTCP:LISTEN"], { stdio: "pipe" });
13
15
  return true;
14
16
  }
15
17
  catch {
@@ -17,22 +19,33 @@ function isPortInUse(port) {
17
19
  }
18
20
  }
19
21
  /**
20
- * Kill whatever process is using a port.
22
+ * Kill whatever process is listening on a port.
23
+ * Only targets processes in LISTEN state to avoid killing unrelated
24
+ * processes that happen to have outgoing connections on the same port.
21
25
  */
22
26
  function killPort(port) {
23
27
  try {
24
- (0, child_process_1.execSync)(`lsof -ti:${port} | xargs kill -9`, { stdio: "pipe" });
28
+ const output = (0, child_process_1.execFileSync)("lsof", ["-t", "-n", "-P", `-iTCP:${port}`, "-sTCP:LISTEN"], { stdio: "pipe" })
29
+ .toString()
30
+ .trim();
31
+ if (!output)
32
+ return;
33
+ const pids = output.split("\n").filter(Boolean);
34
+ if (pids.length > 0) {
35
+ (0, child_process_1.execFileSync)("kill", ["-9", ...pids], { stdio: "pipe" });
36
+ }
25
37
  }
26
38
  catch {
27
39
  // nothing on that port, or already dead
28
40
  }
29
41
  }
30
42
  /**
31
- * Get info about what's using a port.
43
+ * Get info about what's listening on a port.
44
+ * Restricted to LISTEN state to avoid reporting unrelated connections.
32
45
  */
33
46
  function getPortProcess(port) {
34
47
  try {
35
- const result = (0, child_process_1.execSync)(`lsof -i:${port}`, { stdio: "pipe" })
48
+ const result = (0, child_process_1.execFileSync)("lsof", ["-n", "-P", `-iTCP:${port}`, "-sTCP:LISTEN"], { stdio: "pipe" })
36
49
  .toString()
37
50
  .trim();
38
51
  const lines = result.split("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/lib/ports.ts"],"names":[],"mappings":";;AAKA,kCAOC;AAKD,4BAMC;AAKD,wCAUC;AAtCD,iDAAyC;AAEzC;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,YAAY,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,YAAY,IAAI,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,WAAW,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;aAC1D,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/lib/ports.ts"],"names":[],"mappings":";;AAOA,kCAWC;AAOD,4BAmBC;AAMD,wCAcC;AAhED,iDAA6C;AAE7C;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,IAAA,4BAAY,EACV,MAAM,EACN,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,CAAC,EACnD,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,4BAAY,EACzB,MAAM,EACN,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,CAAC,EACnD,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB;aACE,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAA,4BAAY,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,4BAAY,EACzB,MAAM,EACN,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,CAAC,EAC7C,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB;aACE,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -25,6 +25,7 @@ export declare function startApp(app: AppConfig, projectRoot: string): void;
25
25
  export declare function stopApp(app: AppConfig | string): void;
26
26
  /**
27
27
  * Stop all apps. Accepts optional app configs for smarter stopping.
28
+ * Always sweeps PID files to catch orphaned processes not in the current config.
28
29
  */
29
30
  export declare function stopAllApps(apps?: AppConfig[]): void;
30
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/lib/process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAarC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOrD;AASD;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA6ClE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAmFrD;AAkBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAiBpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAIlE"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/lib/process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAarC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOrD;AASD;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA6ClE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAmFrD;AAkBD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAsBpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAIlE"}
@@ -256,22 +256,27 @@ function extractPkillPatterns(command) {
256
256
  }
257
257
  /**
258
258
  * Stop all apps. Accepts optional app configs for smarter stopping.
259
+ * Always sweeps PID files to catch orphaned processes not in the current config.
259
260
  */
260
261
  function stopAllApps(apps) {
262
+ const stoppedNames = new Set();
261
263
  // If we have app configs, use them (enables pkill + port fallback)
262
264
  if (apps) {
263
265
  for (const app of apps) {
264
266
  stopApp(app);
267
+ stoppedNames.add(app.name);
265
268
  }
266
- return;
267
269
  }
268
- // Fallback: just use PID files
270
+ // Always sweep PID files to clean up orphaned processes
271
+ // (e.g. apps removed from config while still running)
269
272
  if (!fs.existsSync(PIDS_DIR))
270
273
  return;
271
274
  const files = fs.readdirSync(PIDS_DIR).filter((f) => f.endsWith(".pid"));
272
275
  for (const f of files) {
273
276
  const name = f.replace(".pid", "");
274
- stopApp(name);
277
+ if (!stoppedNames.has(name)) {
278
+ stopApp(name);
279
+ }
275
280
  }
276
281
  }
277
282
  /**