4runr-os 2.10.30 → 2.10.32

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.
@@ -261,9 +261,9 @@
261
261
  }
262
262
  },
263
263
  "node_modules/@aws-sdk/client-kms": {
264
- "version": "3.1042.0",
265
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1042.0.tgz",
266
- "integrity": "sha512-vYYgVh17NF7q32x5woXPKHybw0fix6s+RCa6nu0grfD9P8iF6Y/PX2NpaCWDs2rH9t3W+5rTHn0YKk0sNcVWCg==",
264
+ "version": "3.1043.0",
265
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1043.0.tgz",
266
+ "integrity": "sha512-LYB6mom4s6CJorv7qmkO6OEEFZ/UOG4WMY7rxc3qovB6xHkrn4EYzb50+PVGoMjVT7xHK9U68iAavkIppgNIsw==",
267
267
  "license": "Apache-2.0",
268
268
  "dependencies": {
269
269
  "@aws-crypto/sha256-browser": "5.2.0",
@@ -311,9 +311,9 @@
311
311
  }
312
312
  },
313
313
  "node_modules/@aws-sdk/client-secrets-manager": {
314
- "version": "3.1042.0",
315
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1042.0.tgz",
316
- "integrity": "sha512-doHP17OwqhcuW3e7fKkFfF4rDFM0hY8IVIwqwvBQRLk6IsZXzpl/YRhQWuIiy9O7BSZgzKKE+XytdElsTd9PWQ==",
314
+ "version": "3.1043.0",
315
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1043.0.tgz",
316
+ "integrity": "sha512-xjxE4CSid16j9yBFuykNinW7z+RwqJGxqCDD+hh99jL6YRmVa6FZOkv96gur5jHfrolbb0e19aS3ztD7UWmcLQ==",
317
317
  "license": "Apache-2.0",
318
318
  "dependencies": {
319
319
  "@aws-crypto/sha256-browser": "5.2.0",
@@ -361,9 +361,9 @@
361
361
  }
362
362
  },
363
363
  "node_modules/@aws-sdk/client-ssm": {
364
- "version": "3.1042.0",
365
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1042.0.tgz",
366
- "integrity": "sha512-FVX73f1jsms0Ay1DSmivV/jN+unUVI/pUjR2FtbbPoj3N9VA6JZd178xN62jLpfSIN+iBuNGD9gvk3uI3AR9nA==",
364
+ "version": "3.1043.0",
365
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1043.0.tgz",
366
+ "integrity": "sha512-cxwWU0MEZxNmOzgDUHfJtgdpaTjPolPk4OZkxtC/n2e4Von7O4dH1outTmow6zJSQEtZPPz0TgkNyQicDHECUA==",
367
367
  "license": "Apache-2.0",
368
368
  "dependencies": {
369
369
  "@aws-crypto/sha256-browser": "5.2.0",
@@ -5397,9 +5397,9 @@
5397
5397
  "license": "MIT"
5398
5398
  },
5399
5399
  "node_modules/fast-json-stringify": {
5400
- "version": "6.3.0",
5401
- "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-6.3.0.tgz",
5402
- "integrity": "sha512-oRCntNDY/329HJPlmdNLIdogNtt6Vyjb1WuT01Soss3slIdyUp8kAcDU3saQTOquEK8KFVfwIIF7FebxUAu+yA==",
5400
+ "version": "6.4.0",
5401
+ "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-6.4.0.tgz",
5402
+ "integrity": "sha512-ibRCQ0GZKJIQ+P3Et1h0LhPgp3PMTYk0MH8O+kW3lNYsvmaQww5Nn3f1jf73Q0jR1Yz3a1CDP4/NZD3vOajWJQ==",
5403
5403
  "funding": [
5404
5404
  {
5405
5405
  "type": "github",
@@ -5459,9 +5459,9 @@
5459
5459
  }
5460
5460
  },
5461
5461
  "node_modules/fast-uri": {
5462
- "version": "3.1.1",
5463
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.1.tgz",
5464
- "integrity": "sha512-h2r7rcm6Ee/J8o0LD5djLuFVcfbZxhvho4vvsbeV0aMvXjUgqv4YpxpkEx0d68l6+IleVfLAdVEfhR7QNMkGHQ==",
5462
+ "version": "3.1.2",
5463
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
5464
+ "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
5465
5465
  "funding": [
5466
5466
  {
5467
5467
  "type": "github",
@@ -5475,9 +5475,9 @@
5475
5475
  "license": "BSD-3-Clause"
5476
5476
  },
5477
5477
  "node_modules/fast-xml-builder": {
5478
- "version": "1.1.7",
5479
- "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.7.tgz",
5480
- "integrity": "sha512-Yh7/7rQuMXICNr0oMYDR2yHP6oUvmQsTToFeOWj/kIDhAwQ+c4Ol/lbcwOmEM5OHYQmh6S6EQSQ1sljCKP36bQ==",
5478
+ "version": "1.1.8",
5479
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.8.tgz",
5480
+ "integrity": "sha512-sDVBc2gg8pSKvcbE8rBmOyjSGQf0AdsbqvHeIOv3D/uYNoV4eCReQXyDF8Pdv8+m1FHazACypSz2hR7O2S1LLw==",
5481
5481
  "funding": [
5482
5482
  {
5483
5483
  "type": "github",
@@ -6243,13 +6243,13 @@
6243
6243
  "license": "MIT"
6244
6244
  },
6245
6245
  "node_modules/is-core-module": {
6246
- "version": "2.16.1",
6247
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
6248
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
6246
+ "version": "2.16.2",
6247
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz",
6248
+ "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==",
6249
6249
  "dev": true,
6250
6250
  "license": "MIT",
6251
6251
  "dependencies": {
6252
- "hasown": "^2.0.2"
6252
+ "hasown": "^2.0.3"
6253
6253
  },
6254
6254
  "engines": {
6255
6255
  "node": ">= 0.4"
@@ -42,7 +42,10 @@ export declare class BootOrchestrator {
42
42
  */
43
43
  private cleanupStaleProcesses;
44
44
  /**
45
- * Step 3: Health check (Gateway bundle, Prisma client)
45
+ * Step 3: Health check (Gateway bundle, Prisma client under vendored gateway)
46
+ *
47
+ * Prefer paths relative to **this running package** (`…/4runr-os/dist/..`). Using only
48
+ * `npm root -g` misses installs where prefix/layout differs from where `node` loaded this CLI.
46
49
  */
47
50
  private checkHealth;
48
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"boot-orchestrator.d.ts","sourceRoot":"","sources":["../src/boot-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;;IAOnC,OAAO,CAAC,eAAe;IAwCvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,UAAU;IAsBlB;;OAEG;YACW,YAAY;IA6B1B;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;YACW,WAAW;IAwBzB;;OAEG;YACW,WAAW;IAezB;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;CAgClC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC,CAGnE"}
1
+ {"version":3,"file":"boot-orchestrator.d.ts","sourceRoot":"","sources":["../src/boot-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;;IAOnC,OAAO,CAAC,eAAe;IAwCvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,UAAU;IAsBlB;;OAEG;YACW,YAAY;IA6B1B;;OAEG;YACW,qBAAqB;IAiBnC;;;;;OAKG;YACW,WAAW;IA4EzB;;OAEG;YACW,WAAW;IAezB;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;CAiClC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC,CAGnE"}
@@ -153,22 +153,64 @@ export class BootOrchestrator {
153
153
  }
154
154
  }
155
155
  /**
156
- * Step 3: Health check (Gateway bundle, Prisma client)
156
+ * Step 3: Health check (Gateway bundle, Prisma client under vendored gateway)
157
+ *
158
+ * Prefer paths relative to **this running package** (`…/4runr-os/dist/..`). Using only
159
+ * `npm root -g` misses installs where prefix/layout differs from where `node` loaded this CLI.
157
160
  */
158
161
  async checkHealth() {
159
162
  this.updateStep('health', 'running');
160
163
  try {
161
- const globalRoot = execSync('npm root -g', { encoding: 'utf-8' }).trim();
162
- const gatewayDist = path.join(globalRoot, '4runr-os', 'apps', 'gateway', 'dist', 'index.js');
163
- const prismaClient = path.join(globalRoot, '4runr-os', 'apps', 'gateway', 'node_modules', '.prisma', 'client');
164
- const gatewayOk = fs.existsSync(gatewayDist);
165
- const prismaOk = fs.existsSync(prismaClient);
166
- if (!gatewayOk || !prismaOk) {
167
- this.updateStep('health', 'error', 'Installation corrupted - run: npm install -g 4runr-os@latest');
168
- return false;
164
+ const packageRoot = path.join(__dirname, '..');
165
+ const execGlobalRoot = () => {
166
+ try {
167
+ return execSync('npm root -g', {
168
+ encoding: 'utf-8',
169
+ ...(process.platform === 'win32' ? { shell: process.env.COMSPEC || 'cmd.exe' } : {}),
170
+ }).trim();
171
+ }
172
+ catch {
173
+ return null;
174
+ }
175
+ };
176
+ const pairs = [
177
+ {
178
+ label: 'installed package',
179
+ gw: path.join(packageRoot, 'apps', 'gateway', 'dist', 'index.js'),
180
+ prisma: path.join(packageRoot, 'apps', 'gateway', 'node_modules', '.prisma', 'client'),
181
+ },
182
+ ];
183
+ const gr = execGlobalRoot();
184
+ if (gr) {
185
+ pairs.push({
186
+ label: `npm root -g (${gr})`,
187
+ gw: path.join(gr, '4runr-os', 'apps', 'gateway', 'dist', 'index.js'),
188
+ prisma: path.join(gr, '4runr-os', 'apps', 'gateway', 'node_modules', '.prisma', 'client'),
189
+ });
169
190
  }
170
- this.updateStep('health', 'complete');
171
- return true;
191
+ if (process.platform === 'win32' && process.env.APPDATA) {
192
+ pairs.push({
193
+ label: '%APPDATA%\\npm\\node_modules',
194
+ gw: path.join(process.env.APPDATA, 'npm', 'node_modules', '4runr-os', 'apps', 'gateway', 'dist', 'index.js'),
195
+ prisma: path.join(process.env.APPDATA, 'npm', 'node_modules', '4runr-os', 'apps', 'gateway', 'node_modules', '.prisma', 'client'),
196
+ });
197
+ }
198
+ for (const p of pairs) {
199
+ if (fs.existsSync(p.gw) && fs.existsSync(p.prisma)) {
200
+ this.updateStep('health', 'complete');
201
+ return true;
202
+ }
203
+ }
204
+ const primary = pairs[0];
205
+ const miss = [];
206
+ if (!fs.existsSync(primary.gw))
207
+ miss.push(`gateway bundle (${primary.gw})`);
208
+ if (!fs.existsSync(primary.prisma))
209
+ miss.push(`Prisma client (${primary.prisma})`);
210
+ const detail = `Incomplete install — missing ${miss.join(' and ')}. Often caused by a failed global npm update (EBUSY). ` +
211
+ `Close every 4r window, stop Node (Get-Process node | Stop-Process -Force), then: npm install -g 4runr-os@latest`;
212
+ this.updateStep('health', 'error', detail);
213
+ return false;
172
214
  }
173
215
  catch {
174
216
  this.updateStep('health', 'error', 'Could not verify installation');
@@ -230,9 +272,10 @@ export class BootOrchestrator {
230
272
  await this.cleanupStaleProcesses();
231
273
  const healthOk = await this.checkHealth();
232
274
  if (!healthOk) {
275
+ const healthStep = this.steps.find((s) => s.id === 'health');
233
276
  return {
234
277
  success: false,
235
- error: 'Installation health check failed',
278
+ error: healthStep?.message || 'Installation health check failed',
236
279
  steps: this.steps,
237
280
  };
238
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"boot-orchestrator.js","sourceRoot":"","sources":["../src/boot-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot-orchestrator.js","sourceRoot":"","sources":["../src/boot-orchestrator.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ import { getState, updateAppState } from './store.js';
23
23
  import { systemStateProvider, getSystemState } from './system-state.js';
24
24
  import { addOperationEvent, eventConnectionEstablished, } from './events.js';
25
25
  import { resolveTuiWsPort } from './tui-port-resolver.js';
26
+ import { DEFAULT_TUI_WS_PORT } from './tui-defaults.js';
26
27
  // Legacy color aliases for backward compatibility during refactor
27
28
  const cyan = C_ACCENT;
28
29
  const green = C_SUCCESS;
@@ -2701,14 +2702,29 @@ else {
2701
2702
  // Handle boot failure
2702
2703
  if (!bootResult.success) {
2703
2704
  process.stderr.write(`\n\n\x1b[31m❌ Boot failed\x1b[0m\n`);
2704
- if (bootResult.error) {
2705
- process.stderr.write(` ${bootResult.error}\n`);
2705
+ const errText = bootResult.error || '';
2706
+ if (errText) {
2707
+ process.stderr.write(` ${errText}\n`);
2706
2708
  }
2707
2709
  if (bootResult.warnings) {
2708
2710
  for (const w of bootResult.warnings) {
2709
2711
  process.stderr.write(` ⚠️ ${w}\n`);
2710
2712
  }
2711
2713
  }
2714
+ // Windows: global install is often half-written after EBUSY; npm cannot fix it while this
2715
+ // Node process is running. Spawn the same visible repair window as the update path (automatic).
2716
+ const noRepair = process.env.FOURRUNR_NO_AUTO_REPAIR === '1' || process.env.NO_AUTO_REPAIR === '1';
2717
+ const looksLikeBrokenGlobal = errText.includes('Incomplete install') ||
2718
+ errText.includes('Prisma client') ||
2719
+ errText.includes('gateway bundle');
2720
+ if (process.platform === 'win32' && !noRepair && looksLikeBrokenGlobal) {
2721
+ process.stderr.write(`\n\x1b[36m🔧 Automatic repair\x1b[0m — opening a window to run \`npm install -g 4runr-os@latest\` and start 4r.\n` +
2722
+ ` (Disable: FOURRUNR_NO_AUTO_REPAIR=1)\n\n`);
2723
+ const { spawnWindowsVisibleGlobalInstall } = await import('./version-check.js');
2724
+ spawnWindowsVisibleGlobalInstall('4runr-os');
2725
+ await new Promise((r) => setTimeout(r, 800));
2726
+ process.exit(0);
2727
+ }
2712
2728
  process.stderr.write(`\n`);
2713
2729
  process.exit(1);
2714
2730
  }
@@ -2722,12 +2738,52 @@ else {
2722
2738
  // === START WATCHDOG: Monitors this process and cleans up Docker on ANY exit ===
2723
2739
  const { startWatchdog } = await import('./watchdog.js');
2724
2740
  startWatchdog(process.pid);
2725
- // Start WebSocket server for TUI communication
2726
- const { startTUIServer } = await import('./tui-server.js');
2741
+ // Start WebSocket server for TUI communication (auto-pick next port if default busy)
2742
+ const { startTUIServer, stopTUIServer } = await import('./tui-server.js');
2727
2743
  const { initializeTUIHandlers } = await import('./tui-handlers.js');
2728
- const tuiServer = await startTUIServer(tuiPort);
2744
+ // Only pin when CLI passes --port or env requests a *non-default* port. Setting TUI_PORT=8081
2745
+ // (same as default) used to pin and blocked fallback when 8081 was busy.
2746
+ const cliPortIdx = args.findIndex((a) => a === '--port' || a === '-p');
2747
+ const hasCliPort = cliPortIdx !== -1 && Boolean(args[cliPortIdx + 1]);
2748
+ const rawEnvTui = String(process.env.TUI_PORT || '').trim();
2749
+ const rawLegacy = String(process.env['4RUNR_PORT'] || '').trim();
2750
+ const envTuiNum = rawEnvTui ? parseInt(rawEnvTui, 10) : NaN;
2751
+ const envLegacyNum = rawLegacy ? parseInt(rawLegacy, 10) : NaN;
2752
+ const tuiPortPinned = hasCliPort ||
2753
+ (rawEnvTui !== '' && Number.isFinite(envTuiNum) && envTuiNum !== DEFAULT_TUI_WS_PORT) ||
2754
+ (rawLegacy !== '' && Number.isFinite(envLegacyNum) && envLegacyNum !== DEFAULT_TUI_WS_PORT);
2755
+ const maxPortTries = tuiPortPinned ? 1 : 32;
2756
+ let listenPort = tuiPort;
2757
+ let tuiServer;
2758
+ for (let i = 0; i < maxPortTries; i++) {
2759
+ const tryPort = tuiPort + i;
2760
+ try {
2761
+ await stopTUIServer();
2762
+ tuiServer = await startTUIServer(tryPort);
2763
+ listenPort = tryPort;
2764
+ if (i > 0) {
2765
+ process.stderr.write(`[4Runr] Port ${tuiPort} in use — TUI WebSocket bound to ${listenPort} (set TUI_PORT=${listenPort} to pin).\n`);
2766
+ }
2767
+ break;
2768
+ }
2769
+ catch (e) {
2770
+ const err = e;
2771
+ await stopTUIServer();
2772
+ const code = err?.code;
2773
+ const fatal = tuiPortPinned || code !== 'EADDRINUSE' || i === maxPortTries - 1;
2774
+ if (fatal) {
2775
+ process.stderr.write(`[4Runr] Error: ${err?.message || String(e)}\n`);
2776
+ process.stderr.write(`[4Runr] Hint: another 4r may still be running — close those terminals or Task Manager → Node.js.\n`);
2777
+ process.exit(1);
2778
+ }
2779
+ }
2780
+ }
2781
+ if (!tuiServer) {
2782
+ process.stderr.write(`[4Runr] Could not start TUI WebSocket server.\n`);
2783
+ process.exit(1);
2784
+ }
2729
2785
  initializeTUIHandlers(tuiServer, client, localMode);
2730
- process.stderr.write(`[4Runr] TUI WebSocket server started on port ${tuiPort}\n`);
2786
+ process.stderr.write(`[4Runr] TUI WebSocket server started on port ${listenPort}\n`);
2731
2787
  // Get __dirname equivalent for ES modules
2732
2788
  const __filename = fileURLToPath(import.meta.url);
2733
2789
  const __dirname = dirname(__filename);
@@ -2915,7 +2971,7 @@ else {
2915
2971
  cwd: process.cwd(),
2916
2972
  env: {
2917
2973
  ...process.env,
2918
- TUI_PORT: tuiPort.toString(),
2974
+ TUI_PORT: listenPort.toString(),
2919
2975
  ['4RUNR_CLI_VERSION']: cliVersion,
2920
2976
  },
2921
2977
  });