@vibelet/cli 1.2.186 → 1.2.190

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 (30) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/inventory-scan-worker.cjs +1 -1
  3. package/dist/runtime-version.cjs +1 -1
  4. package/dist/tailcat/vibelet-tailcat-darwin-amd64 +0 -0
  5. package/dist/tailcat/vibelet-tailcat-darwin-arm64 +0 -0
  6. package/dist/tailcat/vibelet-tailcat-linux-amd64 +0 -0
  7. package/dist/tailcat/vibelet-tailcat-linux-arm64 +0 -0
  8. package/dist/tailcat/vibelet-tailcat-win32-amd64.exe +0 -0
  9. package/dist/tailcat/vibelet-tailcat-win32-arm64.exe +0 -0
  10. package/dist/vibelet.mjs +168 -142
  11. package/dist/web/assets/App-DASv9GGS.js +12 -0
  12. package/dist/web/assets/{ArchiveSyncPanel-BmuZbCNC.js → ArchiveSyncPanel-BcKfVT49.js} +1 -1
  13. package/dist/web/assets/{ConnectionSettingsPanel-CBCsJpl3.js → ConnectionSettingsPanel-DQBEBng6.js} +1 -1
  14. package/dist/web/assets/{DaemonSettingsPanel-BvwnLOlI.js → DaemonSettingsPanel-BBVWzRl3.js} +1 -1
  15. package/dist/web/assets/{DiffDrawer-D1KuAQR4.js → DiffDrawer-CdTSA2mo.js} +1 -1
  16. package/dist/web/assets/{FilesControlPanel-zSRq3nW9.js → FilesControlPanel-HIuHTgVJ.js} +2 -2
  17. package/dist/web/assets/LanguageSettingsPanel-jIZ0c8Pt.js +1 -0
  18. package/dist/web/assets/{NotificationSettingsPanel-B1B7EVaN.js → NotificationSettingsPanel-DcZxLYYl.js} +1 -1
  19. package/dist/web/assets/{SavedTargetsPanel-rIXNVgWc.js → SavedTargetsPanel-DWDhYuUH.js} +1 -1
  20. package/dist/web/assets/{ThemeSettingsPanel-qeXJXo6p.js → ThemeSettingsPanel-na6n39Ea.js} +1 -1
  21. package/dist/web/assets/{file-text-BvyZLKIE.js → file-text-D0U66V5d.js} +1 -1
  22. package/dist/web/assets/{highlighted-body-TPN3WLV5-BpBsGeHz.js → highlighted-body-TPN3WLV5-WUXG77Uc.js} +1 -1
  23. package/dist/web/assets/{index-C912jm0R.js → index-9EF9r07v.js} +1 -1
  24. package/dist/web/assets/index-Bh-D235e.css +1 -0
  25. package/dist/web/assets/{mermaid-O7DHMXV3-B2G14y_6.js → mermaid-O7DHMXV3-C6asakbE.js} +3 -3
  26. package/dist/web/index.html +2 -2
  27. package/package.json +1 -1
  28. package/dist/web/assets/App-CnoeNagf.js +0 -11
  29. package/dist/web/assets/LanguageSettingsPanel-BynXGit2.js +0 -1
  30. package/dist/web/assets/index-CscvgG9H.css +0 -1
@@ -1,2 +1,2 @@
1
- var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.186"}var a=l();process.stdout.write(`${a}
1
+ var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.190"}var a=l();process.stdout.write(`${a}
2
2
  `);
package/dist/vibelet.mjs CHANGED
@@ -12369,7 +12369,7 @@ function canUseSystemdUserManager({ spawnSyncImpl = node_child_process__WEBPACK_
12369
12369
 
12370
12370
  /***/ }),
12371
12371
 
12372
- /***/ 636:
12372
+ /***/ 1168:
12373
12373
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
12374
12374
 
12375
12375
 
@@ -12384,6 +12384,165 @@ __nccwpck_require__.d(__webpack_exports__, {
12384
12384
 
12385
12385
  // EXTERNAL MODULE: external "node:child_process"
12386
12386
  var external_node_child_process_ = __nccwpck_require__(1421);
12387
+ ;// CONCATENATED MODULE: ./bin/terminal-process-tree.mjs
12388
+
12389
+
12390
+ const TAKEOVER_STOP_TIMEOUT_MS = 3000;
12391
+
12392
+ function sendSignal(child, signal) {
12393
+ if (!child.pid || child.exitCode !== null || child.signalCode !== null) return;
12394
+ try {
12395
+ process.kill(child.pid, signal);
12396
+ } catch {
12397
+ // Already exited.
12398
+ }
12399
+ }
12400
+
12401
+ function isPidAlive(pid) {
12402
+ if (!pid) return false;
12403
+ try {
12404
+ process.kill(pid, 0);
12405
+ return true;
12406
+ } catch {
12407
+ return false;
12408
+ }
12409
+ }
12410
+
12411
+ function collectProcessTreePids(rootPid) {
12412
+ if (!rootPid) return [];
12413
+ let rows;
12414
+ try {
12415
+ rows = (0,external_node_child_process_.execFileSync)('ps', ['-axo', 'pid=,ppid='], {
12416
+ encoding: 'utf8',
12417
+ stdio: ['ignore', 'pipe', 'ignore'],
12418
+ });
12419
+ } catch {
12420
+ return [rootPid];
12421
+ }
12422
+ const childrenByParent = new Map();
12423
+ for (const line of rows.split('\n')) {
12424
+ const [pidText, ppidText] = line.trim().split(/\s+/);
12425
+ const pid = Number(pidText);
12426
+ const ppid = Number(ppidText);
12427
+ if (!Number.isFinite(pid) || !Number.isFinite(ppid)) continue;
12428
+ const children = childrenByParent.get(ppid) ?? [];
12429
+ children.push(pid);
12430
+ childrenByParent.set(ppid, children);
12431
+ }
12432
+ const out = [];
12433
+ const visit = (pid) => {
12434
+ out.push(pid);
12435
+ for (const childPid of childrenByParent.get(pid) ?? []) {
12436
+ visit(childPid);
12437
+ }
12438
+ };
12439
+ visit(rootPid);
12440
+ return out;
12441
+ }
12442
+
12443
+ function sendSignalToPids(pids, signal) {
12444
+ for (const pid of [...pids].reverse()) {
12445
+ try {
12446
+ process.kill(pid, signal);
12447
+ } catch {
12448
+ // Already exited.
12449
+ }
12450
+ }
12451
+ }
12452
+
12453
+ async function waitForProcessTreeExit(pids, timeoutMs) {
12454
+ const deadline = Date.now() + timeoutMs;
12455
+ while ([...pids].some(isPidAlive)) {
12456
+ const remainingMs = deadline - Date.now();
12457
+ if (remainingMs <= 0) return false;
12458
+ await new Promise((resolve) => setTimeout(resolve, Math.min(remainingMs, 10)));
12459
+ }
12460
+ return true;
12461
+ }
12462
+
12463
+ async function waitForExitOrTimeout(childExit, timeoutMs) {
12464
+ let timer;
12465
+ const timeout = new Promise((resolve) => {
12466
+ timer = setTimeout(() => resolve(null), timeoutMs);
12467
+ });
12468
+ const result = await Promise.race([childExit, timeout]);
12469
+ clearTimeout(timer);
12470
+ return result;
12471
+ }
12472
+
12473
+ async function stopNativeChild(
12474
+ child,
12475
+ childExit,
12476
+ { interruptTimeoutMs = TAKEOVER_STOP_TIMEOUT_MS, terminateTimeoutMs = 1000, killTimeoutMs = 1000 } = {},
12477
+ ) {
12478
+ if (child.exitCode !== null || child.signalCode !== null) return true;
12479
+ const trackedPids = new Set(collectProcessTreePids(child.pid));
12480
+ sendSignal(child, 'SIGINT');
12481
+ await waitForExitOrTimeout(childExit, interruptTimeoutMs);
12482
+ if (await waitForProcessTreeExit(trackedPids, 0)) return true;
12483
+
12484
+ for (const pid of collectProcessTreePids(child.pid)) trackedPids.add(pid);
12485
+ sendSignalToPids(trackedPids, 'SIGTERM');
12486
+ if (await waitForProcessTreeExit(trackedPids, terminateTimeoutMs)) return true;
12487
+
12488
+ for (const pid of collectProcessTreePids(child.pid)) trackedPids.add(pid);
12489
+ sendSignalToPids(trackedPids, 'SIGKILL');
12490
+ return waitForProcessTreeExit(trackedPids, killTimeoutMs);
12491
+ }
12492
+
12493
+ ;// CONCATENATED MODULE: ./bin/terminal-signals.mjs
12494
+
12495
+
12496
+ function installTerminalSignalHandlers(
12497
+ getChild,
12498
+ getMode,
12499
+ { processObj = process, sendChildSignal = sendSignal } = {},
12500
+ ) {
12501
+ const previous = {
12502
+ SIGINT: processObj.listeners('SIGINT'),
12503
+ SIGTERM: processObj.listeners('SIGTERM'),
12504
+ };
12505
+ let resolveSignalExit;
12506
+ const signalExit = new Promise((resolve) => {
12507
+ resolveSignalExit = resolve;
12508
+ });
12509
+
12510
+ processObj.removeAllListeners('SIGINT');
12511
+ processObj.removeAllListeners('SIGTERM');
12512
+
12513
+ function handleSignal(signal) {
12514
+ if (getMode() === 'remoteDaemon') {
12515
+ resolveSignalExit(signal === 'SIGINT' ? 130 : 143);
12516
+ return;
12517
+ }
12518
+ const child = getChild();
12519
+ if (!child?.pid || child.exitCode !== null || child.signalCode !== null) {
12520
+ resolveSignalExit(signal === 'SIGINT' ? 130 : 143);
12521
+ return;
12522
+ }
12523
+ if (signal === 'SIGINT') {
12524
+ // The inherited native TUI shares this foreground terminal/console and
12525
+ // receives keyboard Ctrl-C directly. Forwarding it here would deliver
12526
+ // the same interrupt twice.
12527
+ return;
12528
+ }
12529
+ sendChildSignal(child, signal);
12530
+ }
12531
+
12532
+ processObj.on('SIGINT', () => handleSignal('SIGINT'));
12533
+ processObj.on('SIGTERM', () => handleSignal('SIGTERM'));
12534
+
12535
+ return {
12536
+ signalExit,
12537
+ restore() {
12538
+ processObj.removeAllListeners('SIGINT');
12539
+ processObj.removeAllListeners('SIGTERM');
12540
+ for (const listener of previous.SIGINT) processObj.on('SIGINT', listener);
12541
+ for (const listener of previous.SIGTERM) processObj.on('SIGTERM', listener);
12542
+ },
12543
+ };
12544
+ }
12545
+
12387
12546
  ;// CONCATENATED MODULE: external "node:crypto"
12388
12547
  const external_node_crypto_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:crypto");
12389
12548
  // EXTERNAL MODULE: external "node:fs"
@@ -12430,10 +12589,15 @@ var websocket_server = __nccwpck_require__(3261);
12430
12589
 
12431
12590
 
12432
12591
 
12592
+
12593
+
12594
+
12595
+
12596
+
12433
12597
  const terminalControlTokenPath = (0,external_node_path_.join)((0,external_node_os_.homedir)(), '.vibelet', 'runtime', 'terminal-control-token');
12434
12598
 
12435
- const TAKEOVER_STOP_TIMEOUT_MS = 3000;
12436
- const TAKEOVER_MODE_SETTLE_TIMEOUT_MS = TAKEOVER_STOP_TIMEOUT_MS + 2000;
12599
+ const terminal_wrapper_TAKEOVER_STOP_TIMEOUT_MS = 3000;
12600
+ const TAKEOVER_MODE_SETTLE_TIMEOUT_MS = terminal_wrapper_TAKEOVER_STOP_TIMEOUT_MS + 2000;
12437
12601
  const SWITCHBACK_RESTORE_NOTICE_MS = 1200;
12438
12602
  const SWITCHBACK_BUSY_RETRY_DELAY_MS = 750;
12439
12603
  const TERMINAL_CONTROL_RECONNECT_DELAY_MS = 1000;
@@ -12765,94 +12929,6 @@ function waitForChildExit(child) {
12765
12929
  });
12766
12930
  }
12767
12931
 
12768
- function sendSignal(child, signal) {
12769
- if (!child.pid || child.exitCode !== null || child.signalCode !== null) return;
12770
- try {
12771
- process.kill(child.pid, signal);
12772
- } catch {
12773
- // Already exited.
12774
- }
12775
- }
12776
-
12777
- function isPidAlive(pid) {
12778
- if (!pid) return false;
12779
- try {
12780
- process.kill(pid, 0);
12781
- return true;
12782
- } catch {
12783
- return false;
12784
- }
12785
- }
12786
-
12787
- function collectProcessTreePids(rootPid) {
12788
- if (!rootPid) return [];
12789
- let rows;
12790
- try {
12791
- rows = (0,external_node_child_process_.execFileSync)('ps', ['-axo', 'pid=,ppid='], {
12792
- encoding: 'utf8',
12793
- stdio: ['ignore', 'pipe', 'ignore'],
12794
- });
12795
- } catch {
12796
- return [rootPid];
12797
- }
12798
- const childrenByParent = new Map();
12799
- for (const line of rows.split('\n')) {
12800
- const [pidText, ppidText] = line.trim().split(/\s+/);
12801
- const pid = Number(pidText);
12802
- const ppid = Number(ppidText);
12803
- if (!Number.isFinite(pid) || !Number.isFinite(ppid)) continue;
12804
- const children = childrenByParent.get(ppid) ?? [];
12805
- children.push(pid);
12806
- childrenByParent.set(ppid, children);
12807
- }
12808
- const out = [];
12809
- const visit = (pid) => {
12810
- out.push(pid);
12811
- for (const childPid of childrenByParent.get(pid) ?? []) {
12812
- visit(childPid);
12813
- }
12814
- };
12815
- visit(rootPid);
12816
- return out;
12817
- }
12818
-
12819
- function sendSignalToProcessTree(child, signal) {
12820
- if (!child.pid || child.exitCode !== null || child.signalCode !== null) return;
12821
- const pids = collectProcessTreePids(child.pid);
12822
- for (const pid of pids.reverse()) {
12823
- try {
12824
- process.kill(pid, signal);
12825
- } catch {
12826
- // Already exited.
12827
- }
12828
- }
12829
- }
12830
-
12831
- async function waitForExitOrTimeout(childExit, timeoutMs) {
12832
- let timer;
12833
- const timeout = new Promise((resolve) => {
12834
- timer = setTimeout(() => resolve(null), timeoutMs);
12835
- });
12836
- const result = await Promise.race([childExit, timeout]);
12837
- clearTimeout(timer);
12838
- return result;
12839
- }
12840
-
12841
- async function stopNativeChild(
12842
- child,
12843
- childExit,
12844
- { interruptTimeoutMs = TAKEOVER_STOP_TIMEOUT_MS, terminateTimeoutMs = 1000, killTimeoutMs = 1000 } = {},
12845
- ) {
12846
- if (child.exitCode !== null || child.signalCode !== null) return true;
12847
- sendSignal(child, 'SIGINT');
12848
- if (await waitForExitOrTimeout(childExit, interruptTimeoutMs)) return true;
12849
- sendSignalToProcessTree(child, 'SIGTERM');
12850
- if (await waitForExitOrTimeout(childExit, terminateTimeoutMs)) return true;
12851
- sendSignalToProcessTree(child, 'SIGKILL');
12852
- if (await waitForExitOrTimeout(childExit, killTimeoutMs)) return true;
12853
- return !isPidAlive(child.pid);
12854
- }
12855
-
12856
12932
  function waitMs(ms) {
12857
12933
  return new Promise((resolve) => {
12858
12934
  setTimeout(resolve, ms);
@@ -13071,56 +13147,6 @@ function restoreTerminalCursor(stream) {
13071
13147
  if (stream?.isTTY) stream.write(`${ANSI_SHOW_CURSOR}${ANSI_RESET}`);
13072
13148
  }
13073
13149
 
13074
- function installTerminalSignalHandlers(
13075
- getChild,
13076
- getMode,
13077
- { processObj = process, sendChildSignal = sendSignal } = {},
13078
- ) {
13079
- const previous = {
13080
- SIGINT: processObj.listeners('SIGINT'),
13081
- SIGTERM: processObj.listeners('SIGTERM'),
13082
- };
13083
- let resolveSignalExit;
13084
- const signalExit = new Promise((resolve) => {
13085
- resolveSignalExit = resolve;
13086
- });
13087
-
13088
- processObj.removeAllListeners('SIGINT');
13089
- processObj.removeAllListeners('SIGTERM');
13090
-
13091
- function handleSignal(signal) {
13092
- if (getMode() === 'remoteDaemon') {
13093
- resolveSignalExit(signal === 'SIGINT' ? 130 : 143);
13094
- return;
13095
- }
13096
- const child = getChild();
13097
- if (!child?.pid || child.exitCode !== null || child.signalCode !== null) {
13098
- resolveSignalExit(signal === 'SIGINT' ? 130 : 143);
13099
- return;
13100
- }
13101
- if (signal === 'SIGINT') {
13102
- // The inherited native TUI shares this foreground terminal/console and
13103
- // receives keyboard Ctrl-C directly. Forwarding it here would deliver
13104
- // the same interrupt twice.
13105
- return;
13106
- }
13107
- sendChildSignal(child, signal);
13108
- }
13109
-
13110
- processObj.on('SIGINT', () => handleSignal('SIGINT'));
13111
- processObj.on('SIGTERM', () => handleSignal('SIGTERM'));
13112
-
13113
- return {
13114
- signalExit,
13115
- restore() {
13116
- processObj.removeAllListeners('SIGINT');
13117
- processObj.removeAllListeners('SIGTERM');
13118
- for (const listener of previous.SIGINT) processObj.on('SIGINT', listener);
13119
- for (const listener of previous.SIGTERM) processObj.on('SIGTERM', listener);
13120
- },
13121
- };
13122
- }
13123
-
13124
13150
  function installRemoteMonitorSignalListeners(processObj, finish) {
13125
13151
  if (!processObj || typeof processObj.once !== 'function') return () => {};
13126
13152
  const off =
@@ -14845,7 +14871,7 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
14845
14871
  /* harmony import */ var _vibelet_help_mjs__WEBPACK_IMPORTED_MODULE_16__ = __nccwpck_require__(4162);
14846
14872
  /* harmony import */ var _vibelet_tailcat_config_mjs__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(5798);
14847
14873
  /* harmony import */ var _vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(4);
14848
- /* harmony import */ var _terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(636);
14874
+ /* harmony import */ var _terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(1168);
14849
14875
  /* harmony import */ var _vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_15__ = __nccwpck_require__(7721);
14850
14876
 
14851
14877