vibelet 1.2.192 → 1.2.195
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.
- package/dist/index.cjs +1 -1
- package/dist/inventory-scan-worker.cjs +1 -1
- package/dist/runtime-version.cjs +1 -1
- package/dist/tailcat/vibelet-tailcat-darwin-amd64 +0 -0
- package/dist/tailcat/vibelet-tailcat-darwin-arm64 +0 -0
- package/dist/tailcat/vibelet-tailcat-linux-amd64 +0 -0
- package/dist/tailcat/vibelet-tailcat-linux-arm64 +0 -0
- package/dist/tailcat/vibelet-tailcat-win32-amd64.exe +0 -0
- package/dist/tailcat/vibelet-tailcat-win32-arm64.exe +0 -0
- package/dist/vibelet.mjs +112 -43
- package/package.json +1 -1
package/dist/runtime-version.cjs
CHANGED
|
@@ -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.
|
|
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.195"}var a=l();process.stdout.write(`${a}
|
|
2
2
|
`);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/vibelet.mjs
CHANGED
|
@@ -982,7 +982,7 @@ module.exports = KanjiData
|
|
|
982
982
|
|
|
983
983
|
/***/ }),
|
|
984
984
|
|
|
985
|
-
/***/
|
|
985
|
+
/***/ 2814:
|
|
986
986
|
/***/ ((__unused_webpack_module, exports) => {
|
|
987
987
|
|
|
988
988
|
/**
|
|
@@ -1525,7 +1525,7 @@ const BitBuffer = __nccwpck_require__(5654)
|
|
|
1525
1525
|
const BitMatrix = __nccwpck_require__(7765)
|
|
1526
1526
|
const AlignmentPattern = __nccwpck_require__(3062)
|
|
1527
1527
|
const FinderPattern = __nccwpck_require__(5837)
|
|
1528
|
-
const MaskPattern = __nccwpck_require__(
|
|
1528
|
+
const MaskPattern = __nccwpck_require__(2814)
|
|
1529
1529
|
const ECCode = __nccwpck_require__(9261)
|
|
1530
1530
|
const ReedSolomonEncoder = __nccwpck_require__(4449)
|
|
1531
1531
|
const Version = __nccwpck_require__(1796)
|
|
@@ -7417,7 +7417,7 @@ function inflateOnError(err) {
|
|
|
7417
7417
|
|
|
7418
7418
|
/***/ }),
|
|
7419
7419
|
|
|
7420
|
-
/***/
|
|
7420
|
+
/***/ 433:
|
|
7421
7421
|
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
|
7422
7422
|
|
|
7423
7423
|
|
|
@@ -9780,7 +9780,7 @@ const { Duplex, Readable } = __nccwpck_require__(2203);
|
|
|
9780
9780
|
const { URL } = __nccwpck_require__(7016);
|
|
9781
9781
|
|
|
9782
9782
|
const PerMessageDeflate = __nccwpck_require__(7388);
|
|
9783
|
-
const Receiver = __nccwpck_require__(
|
|
9783
|
+
const Receiver = __nccwpck_require__(433);
|
|
9784
9784
|
const Sender = __nccwpck_require__(5601);
|
|
9785
9785
|
const { isBlob } = __nccwpck_require__(155);
|
|
9786
9786
|
|
|
@@ -12558,7 +12558,7 @@ var extension = __nccwpck_require__(387);
|
|
|
12558
12558
|
// EXTERNAL MODULE: ../../node_modules/ws/lib/permessage-deflate.js
|
|
12559
12559
|
var permessage_deflate = __nccwpck_require__(7388);
|
|
12560
12560
|
// EXTERNAL MODULE: ../../node_modules/ws/lib/receiver.js
|
|
12561
|
-
var receiver = __nccwpck_require__(
|
|
12561
|
+
var receiver = __nccwpck_require__(433);
|
|
12562
12562
|
// EXTERNAL MODULE: ../../node_modules/ws/lib/sender.js
|
|
12563
12563
|
var sender = __nccwpck_require__(5601);
|
|
12564
12564
|
// EXTERNAL MODULE: ../../node_modules/ws/lib/subprotocol.js
|
|
@@ -14260,7 +14260,8 @@ function describeLaunchctlResult(result) {
|
|
|
14260
14260
|
/* harmony export */ YP: () => (/* binding */ createCompactPairingPayload),
|
|
14261
14261
|
/* harmony export */ dE: () => (/* binding */ findUnsafeCleartextHosts),
|
|
14262
14262
|
/* harmony export */ mp: () => (/* binding */ applyRelayUrlToPairingPayload),
|
|
14263
|
-
/* harmony export */ uR: () => (/* binding */ formatConnectionSummary)
|
|
14263
|
+
/* harmony export */ uR: () => (/* binding */ formatConnectionSummary),
|
|
14264
|
+
/* harmony export */ u_: () => (/* binding */ createScannablePairingPayload)
|
|
14264
14265
|
/* harmony export */ });
|
|
14265
14266
|
/* unused harmony exports normalizeHostValue, isIpv4Host, isTailscaleHost, isSharedIpv4Host, isLocalNetworkHost, isLoopbackHost, isPlainLocalHostname, isTrustedCleartextHost, parseCommaSeparatedHosts, isQuickTunnelHost, buildLegacyConnection, formatConnectionSourceLabel, buildConnectionHttpUrl, isPreferredWebUiHost, encodePairingPayloadForUrlFragment */
|
|
14266
14267
|
function normalizeHostValue(host) {
|
|
@@ -14529,6 +14530,43 @@ function createCompactPairingPayload(pairingPayload) {
|
|
|
14529
14530
|
return compactPayload;
|
|
14530
14531
|
}
|
|
14531
14532
|
|
|
14533
|
+
/**
|
|
14534
|
+
* Keep camera-scanned QR codes small enough for reliable terminal capture.
|
|
14535
|
+
* The canonical target is sufficient for the initial /pair/create request;
|
|
14536
|
+
* that response returns the daemon's complete connection list for subsequent
|
|
14537
|
+
* reconnects. Preserve the primary tuple only when h/p cannot represent the
|
|
14538
|
+
* transport capability on its own.
|
|
14539
|
+
*/
|
|
14540
|
+
function createScannablePairingPayload(pairingPayload) {
|
|
14541
|
+
const compactPayload = {
|
|
14542
|
+
t: 'vp',
|
|
14543
|
+
d: pairingPayload.daemonId,
|
|
14544
|
+
n: pairingPayload.displayName,
|
|
14545
|
+
h: pairingPayload.canonicalHost,
|
|
14546
|
+
p: pairingPayload.port,
|
|
14547
|
+
c: pairingPayload.pairNonce,
|
|
14548
|
+
e: pairingPayload.expiresAt,
|
|
14549
|
+
};
|
|
14550
|
+
const [primary] = normalizePairingConnections(pairingPayload);
|
|
14551
|
+
const needsExplicitTransport =
|
|
14552
|
+
primary && (Boolean(primary.tailcat) || (primary.secure === true && primary.port !== 443));
|
|
14553
|
+
if (needsExplicitTransport) {
|
|
14554
|
+
const tuple = [
|
|
14555
|
+
primary.kind,
|
|
14556
|
+
primary.host,
|
|
14557
|
+
primary.port,
|
|
14558
|
+
primary.source,
|
|
14559
|
+
primary.stability,
|
|
14560
|
+
primary.secure === true,
|
|
14561
|
+
];
|
|
14562
|
+
if (primary.tailcat) {
|
|
14563
|
+
tuple.push(primary.tailcat.serverAddress, primary.tailcat.remotePort);
|
|
14564
|
+
}
|
|
14565
|
+
compactPayload.o = [tuple];
|
|
14566
|
+
}
|
|
14567
|
+
return compactPayload;
|
|
14568
|
+
}
|
|
14569
|
+
|
|
14532
14570
|
function formatConnectionSourceLabel(source) {
|
|
14533
14571
|
switch (source) {
|
|
14534
14572
|
case 'configured_relay':
|
|
@@ -14600,6 +14638,47 @@ function buildWebUiUrl(target, pairingPayload) {
|
|
|
14600
14638
|
}
|
|
14601
14639
|
|
|
14602
14640
|
|
|
14641
|
+
/***/ }),
|
|
14642
|
+
|
|
14643
|
+
/***/ 4021:
|
|
14644
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
14645
|
+
|
|
14646
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
14647
|
+
/* harmony export */ p: () => (/* binding */ writePairingOutput)
|
|
14648
|
+
/* harmony export */ });
|
|
14649
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
14650
|
+
/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(7514);
|
|
14651
|
+
/* harmony import */ var _vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(7721);
|
|
14652
|
+
|
|
14653
|
+
|
|
14654
|
+
|
|
14655
|
+
|
|
14656
|
+
async function writePairingOutput(pairingPayload, { directory, pairingCodePath, pairingQrPngPath, stdout }) {
|
|
14657
|
+
const payload = JSON.stringify((0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_2__/* .createCompactPairingPayload */ .YP)(pairingPayload));
|
|
14658
|
+
const qrPayload = JSON.stringify((0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_2__/* .createScannablePairingPayload */ .u_)(pairingPayload));
|
|
14659
|
+
const deepLink = (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_2__/* .buildPairingDeepLink */ .N7)(payload);
|
|
14660
|
+
(0,node_fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync)(directory, { recursive: true });
|
|
14661
|
+
await qrcode__WEBPACK_IMPORTED_MODULE_1__.toFile(pairingQrPngPath, qrPayload, {
|
|
14662
|
+
type: 'png',
|
|
14663
|
+
errorCorrectionLevel: 'M',
|
|
14664
|
+
margin: 4,
|
|
14665
|
+
scale: 8,
|
|
14666
|
+
});
|
|
14667
|
+
const qr = await qrcode__WEBPACK_IMPORTED_MODULE_1__.toString(qrPayload, {
|
|
14668
|
+
type: 'utf8',
|
|
14669
|
+
errorCorrectionLevel: 'M',
|
|
14670
|
+
margin: 4,
|
|
14671
|
+
});
|
|
14672
|
+
(0,node_fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync)(pairingCodePath, `${payload}\n`, 'utf8');
|
|
14673
|
+
stdout.write(`\nScan this QR code with the Vibelet app:\n\n\x1b[47m\x1b[30m${qr}\x1b[0m\n`);
|
|
14674
|
+
stdout.write(`If Vibelet app can't scan the terminal QR, open this PNG instead:\n${pairingQrPngPath}\n`);
|
|
14675
|
+
stdout.write(`This pairing QR expires at: ${pairingPayload.expiresAt}\n`);
|
|
14676
|
+
stdout.write(`If this device can't scan, paste this pairing code in Vibelet:\n${payload}\n`);
|
|
14677
|
+
stdout.write(`Pairing code saved to:\n${pairingCodePath}\n`);
|
|
14678
|
+
stdout.write(`Or open this deep link on a device with Vibelet installed:\n${deepLink}\n`);
|
|
14679
|
+
}
|
|
14680
|
+
|
|
14681
|
+
|
|
14603
14682
|
/***/ }),
|
|
14604
14683
|
|
|
14605
14684
|
/***/ 4:
|
|
@@ -14870,18 +14949,18 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
14870
14949
|
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(8161);
|
|
14871
14950
|
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6760);
|
|
14872
14951
|
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(3136);
|
|
14873
|
-
/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(7514);
|
|
14874
14952
|
/* harmony import */ var _vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_17__ = __nccwpck_require__(6927);
|
|
14875
|
-
/* harmony import */ var
|
|
14876
|
-
/* harmony import */ var
|
|
14953
|
+
/* harmony import */ var _cloudflared_tunnel_manager_mjs__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(2755);
|
|
14954
|
+
/* harmony import */ var _vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(3869);
|
|
14877
14955
|
/* harmony import */ var _vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_13__ = __nccwpck_require__(1010);
|
|
14878
|
-
/* harmony import */ var
|
|
14956
|
+
/* harmony import */ var _linux_systemd_mjs__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(4217);
|
|
14879
14957
|
/* harmony import */ var _vibelet_stop_logic_mjs__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(6274);
|
|
14880
14958
|
/* harmony import */ var _vibelet_help_mjs__WEBPACK_IMPORTED_MODULE_16__ = __nccwpck_require__(4162);
|
|
14881
|
-
/* harmony import */ var
|
|
14959
|
+
/* harmony import */ var _vibelet_tailcat_config_mjs__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(5798);
|
|
14882
14960
|
/* harmony import */ var _vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(4);
|
|
14883
|
-
/* harmony import */ var
|
|
14961
|
+
/* harmony import */ var _terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(1168);
|
|
14884
14962
|
/* harmony import */ var _vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_15__ = __nccwpck_require__(7721);
|
|
14963
|
+
/* harmony import */ var _vibelet_pairing_output_mjs__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(4021);
|
|
14885
14964
|
|
|
14886
14965
|
|
|
14887
14966
|
|
|
@@ -14916,12 +14995,12 @@ const runtimeDir = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, '
|
|
|
14916
14995
|
const runtimeCurrentDir = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(runtimeDir, 'current');
|
|
14917
14996
|
const runtimeMetadataPath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(runtimeCurrentDir, 'runtime.json');
|
|
14918
14997
|
const runtimeDaemonEntryPath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(runtimeCurrentDir, 'dist', 'index.cjs');
|
|
14919
|
-
const runtimeTerminalControlTokenPath =
|
|
14998
|
+
const runtimeTerminalControlTokenPath = _terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_10__/* .terminalControlTokenPath */ .gJ;
|
|
14920
14999
|
const stdoutLogPath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(logDir, 'daemon.stdout.log');
|
|
14921
15000
|
const stderrLogPath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(logDir, 'daemon.stderr.log');
|
|
14922
15001
|
const pidFilePath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'daemon.pid');
|
|
14923
|
-
const relayConfig = (0,
|
|
14924
|
-
const tailcatConfig = (0,
|
|
15002
|
+
const relayConfig = (0,_vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__/* .createRelayConfigStore */ .T7)((0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'relay.json'));
|
|
15003
|
+
const tailcatConfig = (0,_vibelet_tailcat_config_mjs__WEBPACK_IMPORTED_MODULE_9__/* .createTailcatConfigStore */ .S)((0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'tailcat.json'), vibeletDir);
|
|
14925
15004
|
const tunnelStatePath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'tunnel.json');
|
|
14926
15005
|
const cloudflaredUpdateStatePath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'cloudflared-update.json');
|
|
14927
15006
|
const updateCheckPath = (0,node_path__WEBPACK_IMPORTED_MODULE_4__.join)(vibeletDir, 'update-check.json');
|
|
@@ -15409,10 +15488,10 @@ function createLinuxBackend() {
|
|
|
15409
15488
|
return [result?.stderr, result?.stdout].filter(Boolean).join('\n').trim();
|
|
15410
15489
|
}
|
|
15411
15490
|
|
|
15412
|
-
let useSystemd = (0,
|
|
15491
|
+
let useSystemd = (0,_linux_systemd_mjs__WEBPACK_IMPORTED_MODULE_8__/* .canUseSystemdUserManager */ .X)();
|
|
15413
15492
|
|
|
15414
15493
|
function demoteToDetachedIfSystemdUnavailable(result) {
|
|
15415
|
-
if (!(0,
|
|
15494
|
+
if (!(0,_linux_systemd_mjs__WEBPACK_IMPORTED_MODULE_8__/* .isSystemdUserManagerUnavailable */ .a)(resultOutput(result))) {
|
|
15416
15495
|
return false;
|
|
15417
15496
|
}
|
|
15418
15497
|
useSystemd = false;
|
|
@@ -15711,7 +15790,7 @@ function isDaemonStartCommand(command) {
|
|
|
15711
15790
|
}
|
|
15712
15791
|
|
|
15713
15792
|
function retireTrackedQuickTunnel({ required = false } = {}) {
|
|
15714
|
-
return (0,
|
|
15793
|
+
return (0,_vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__/* .retireTrackedQuickTunnel */ .zj)({
|
|
15715
15794
|
tunnelStatePath,
|
|
15716
15795
|
isAlive: isProcessAlive,
|
|
15717
15796
|
required,
|
|
@@ -15764,26 +15843,12 @@ function validateExplicitCleartextHosts({ hostArg, fallbackHostsArg }) {
|
|
|
15764
15843
|
}
|
|
15765
15844
|
|
|
15766
15845
|
async function printPairingQr(pairingPayload) {
|
|
15767
|
-
|
|
15768
|
-
|
|
15769
|
-
|
|
15770
|
-
|
|
15771
|
-
|
|
15772
|
-
errorCorrectionLevel: 'M',
|
|
15773
|
-
margin: 1,
|
|
15774
|
-
scale: 4,
|
|
15775
|
-
});
|
|
15776
|
-
const qr = await qrcode__WEBPACK_IMPORTED_MODULE_6__.toString(payload, {
|
|
15777
|
-
type: 'terminal',
|
|
15778
|
-
small: true,
|
|
15779
|
-
errorCorrectionLevel: 'M',
|
|
15846
|
+
await (0,_vibelet_pairing_output_mjs__WEBPACK_IMPORTED_MODULE_11__/* .writePairingOutput */ .p)(pairingPayload, {
|
|
15847
|
+
directory: vibeletDir,
|
|
15848
|
+
pairingCodePath,
|
|
15849
|
+
pairingQrPngPath,
|
|
15850
|
+
stdout: process.stdout,
|
|
15780
15851
|
});
|
|
15781
|
-
(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync)(pairingCodePath, `${payload}\n`, 'utf8');
|
|
15782
|
-
process.stdout.write(`\nScan this QR code with the Vibelet app:\n\n${qr}\n`);
|
|
15783
|
-
process.stdout.write(`If Vibelet app can't scan the terminal QR, open this PNG instead:\n${pairingQrPngPath}\n`);
|
|
15784
|
-
process.stdout.write(`If this device can't scan, paste this pairing code in Vibelet:\n${payload}\n`);
|
|
15785
|
-
process.stdout.write(`Pairing code saved to:\n${pairingCodePath}\n`);
|
|
15786
|
-
process.stdout.write(`Or open this deep link on a device with Vibelet installed:\n${deepLink}\n`);
|
|
15787
15852
|
}
|
|
15788
15853
|
|
|
15789
15854
|
// ─── Commands ───────────────────────────────────────────────────────────────────
|
|
@@ -15892,7 +15957,7 @@ function parseCommandArg(argv) {
|
|
|
15892
15957
|
}
|
|
15893
15958
|
|
|
15894
15959
|
async function tryUpdateRunningDaemonRelay(relayUrl) {
|
|
15895
|
-
return await (0,
|
|
15960
|
+
return await (0,_vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__/* .tryUpdateRunningDaemonRelay */ .BT)({ port, relayUrl, probeHealth });
|
|
15896
15961
|
}
|
|
15897
15962
|
|
|
15898
15963
|
async function main() {
|
|
@@ -15924,10 +15989,10 @@ async function main() {
|
|
|
15924
15989
|
return;
|
|
15925
15990
|
}
|
|
15926
15991
|
|
|
15927
|
-
if ((0,
|
|
15992
|
+
if ((0,_terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_10__/* .isTerminalAgentCommand */ .$c)(command)) {
|
|
15928
15993
|
const backend = resolveBackend();
|
|
15929
15994
|
await ensureDaemonForTerminalControl(backend);
|
|
15930
|
-
process.exitCode = await (0,
|
|
15995
|
+
process.exitCode = await (0,_terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_10__/* .runManagedNativeTerminal */ .WA)({
|
|
15931
15996
|
agent: command,
|
|
15932
15997
|
args: process.argv.slice(3),
|
|
15933
15998
|
port,
|
|
@@ -16030,7 +16095,7 @@ async function main() {
|
|
|
16030
16095
|
}
|
|
16031
16096
|
|
|
16032
16097
|
if (shouldManageTunnel) {
|
|
16033
|
-
const managedTunnel = await (0,
|
|
16098
|
+
const managedTunnel = await (0,_vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__/* .prepareManagedQuickTunnel */ .kS)({
|
|
16034
16099
|
force: forceFlag,
|
|
16035
16100
|
port,
|
|
16036
16101
|
logDir,
|
|
@@ -16093,7 +16158,7 @@ async function main() {
|
|
|
16093
16158
|
if (command === 'status') {
|
|
16094
16159
|
process.stdout.write(`Service (${backend.name}): ${backend.statusLabel()}\n`);
|
|
16095
16160
|
process.stdout.write(`Runtime: ${(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(runtimeDaemonEntryPath) ? runtimeDaemonEntryPath : 'not installed'}\n`);
|
|
16096
|
-
const tunnelState = await (0,
|
|
16161
|
+
const tunnelState = await (0,_cloudflared_tunnel_manager_mjs__WEBPACK_IMPORTED_MODULE_6__/* .getAliveManagedQuickTunnel */ .M)({
|
|
16097
16162
|
tunnelStatePath,
|
|
16098
16163
|
isAlive: isProcessAlive,
|
|
16099
16164
|
managerId: 'vibelet-cli',
|
|
@@ -16245,7 +16310,11 @@ async function main() {
|
|
|
16245
16310
|
const runningDriver = normalizeDriver(existingHealth.claudeDriverMode);
|
|
16246
16311
|
const driverMismatch = requestedDriver !== null && runningDriver !== requestedDriver;
|
|
16247
16312
|
const needsRestart = Boolean(isOutdated) || driverMismatch;
|
|
16248
|
-
|
|
16313
|
+
// A relay refresh is only safe when it is applied by the daemon that will
|
|
16314
|
+
// actually serve the new pairing QR. If the installed runtime is older,
|
|
16315
|
+
// restart it before printing the QR; otherwise the QR can advertise a new
|
|
16316
|
+
// relay while the running daemon remains bound to the old one.
|
|
16317
|
+
if (needsRestart && activeSessions === 0) {
|
|
16249
16318
|
process.stdout.write(
|
|
16250
16319
|
isOutdated
|
|
16251
16320
|
? `Daemon is running v${runningVersion}, CLI is v${packageJson.version}. Restarting daemon to upgrade...\n`
|