vibelet 1.2.229 → 1.2.231
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/remoteDirect/vibelet-remote-direct-darwin-amd64 +0 -0
- package/dist/remoteDirect/vibelet-remote-direct-darwin-arm64 +0 -0
- package/dist/remoteDirect/vibelet-remote-direct-linux-amd64 +0 -0
- package/dist/remoteDirect/vibelet-remote-direct-linux-arm64 +0 -0
- package/dist/remoteDirect/vibelet-remote-direct-win32-amd64.exe +0 -0
- package/dist/remoteDirect/vibelet-remote-direct-win32-arm64.exe +0 -0
- package/dist/runtime-version.cjs +1 -1
- package/dist/vibelet.mjs +123 -98
- package/dist/web/assets/App-BbkHX6Hv.css +1 -0
- package/dist/web/assets/App-TtlYNy7O.js +20 -0
- package/dist/web/assets/{BrowserControlPanel-Cxs5WG6_.js → BrowserControlPanel-DzDyeCam.js} +1 -1
- package/dist/web/assets/{ChipGroup-BVP2S5VF.js → ChipGroup-Do4YgaVh.js} +1 -1
- package/dist/web/assets/FilesControlPanel-Dy08iN_7.js +1 -0
- package/dist/web/assets/GlobalPendingDialog-BokEX_Go.js +1 -0
- package/dist/web/assets/{ImageViewer-Cu953aPv.js → ImageViewer-BAycGfGo.js} +1 -1
- package/dist/web/assets/{LanguageSettingsPanel-BQcBduA3.js → LanguageSettingsPanel-db264JO3.js} +1 -1
- package/dist/web/assets/NewSessionDialog-BTZlw3Gl.js +1 -0
- package/dist/web/assets/{NotificationSettingsPanel-CAR-3hg5.js → NotificationSettingsPanel-BYr3-NRw.js} +1 -1
- package/dist/web/assets/{TerminalControlPanel-BeAaO_xN.js → TerminalControlPanel-16KT-TCS.js} +1 -1
- package/dist/web/assets/{ThemeSettingsPanel-CehjZMem.js → ThemeSettingsPanel-D3-WUp4t.js} +1 -1
- package/dist/web/assets/{arrow-right-DfOPiOAm.js → arrow-right-mMC7Zi8G.js} +1 -1
- package/dist/web/assets/{collectMessageImages-D5nmo9r7.js → collectMessageImages-F_MsAk3D.js} +2 -2
- package/dist/web/assets/{file-editor-FileCodeEditor-DnxVv451.js → file-editor-FileCodeEditor-CInvSSQe.js} +3 -3
- package/dist/web/assets/{file-editor-MarkdownLivePreview-DUOOwTFo.js → file-editor-MarkdownLivePreview-CRJo_RMu.js} +1 -1
- package/dist/web/assets/{file-editor-index-sNXn6Dlj.js → file-editor-index-Cbe_0mr3.js} +1 -1
- package/dist/web/assets/{file-editor-index-hO37u8iH.js → file-editor-index-DXLgqR7Z.js} +1 -1
- package/dist/web/assets/{file-editor-index-6CjSO29S.js → file-editor-index-Gu3GlV9m.js} +1 -1
- package/dist/web/assets/{file-editor-index-ByUvpdPB.js → file-editor-index-R2lTkg6K.js} +1 -1
- package/dist/web/assets/{file-editor-index-PzETHMIH.js → file-editor-index-VN_2L1I4.js} +1 -1
- package/dist/web/assets/{file-editor-index-BWFONDrO.js → file-editor-index-awBV_67q.js} +1 -1
- package/dist/web/assets/{file-editor-index-CSZztQo5.js → file-editor-index-hdpS6VVW.js} +1 -1
- package/dist/web/assets/{file-editor-index-B9HLkvhU.js → file-editor-index-ixbyM_m4.js} +1 -1
- package/dist/web/assets/{folder-plus-ByEha8BZ.js → folder-plus-DbDHVXck.js} +1 -1
- package/dist/web/assets/{highlighted-body-TPN3WLV5-DBlbFIPA.js → highlighted-body-TPN3WLV5-F1GioA6X.js} +1 -1
- package/dist/web/assets/index-DJLpIsPI.js +71 -0
- package/dist/web/assets/{index-CTHbgfqq.css → index-XET9GutV.css} +1 -1
- package/dist/web/assets/{mermaid-O7DHMXV3-DkoqfAOM.js → mermaid-O7DHMXV3-H7_sz6Xo.js} +3 -3
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/App-BPS30HWl.css +0 -1
- package/dist/web/assets/App-DcLmCQZc.js +0 -12
- package/dist/web/assets/DiffDrawer-BWx4QFFg.js +0 -2
- package/dist/web/assets/FilesControlPanel-CmG4pm47.js +0 -1
- package/dist/web/assets/GlobalPendingDialog-DpTYtgOQ.js +0 -1
- package/dist/web/assets/NewSessionDialog-tL5HWBLl.js +0 -1
- package/dist/web/assets/index-BH_ibxBN.js +0 -71
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
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.231"}var a=l();process.stdout.write(`${a}
|
|
2
2
|
`);
|
package/dist/vibelet.mjs
CHANGED
|
@@ -14129,6 +14129,54 @@ function parseAccessTargetArg(argv, fail, env = process.env) {
|
|
|
14129
14129
|
}
|
|
14130
14130
|
|
|
14131
14131
|
|
|
14132
|
+
/***/ }),
|
|
14133
|
+
|
|
14134
|
+
/***/ 2484:
|
|
14135
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
14136
|
+
|
|
14137
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
14138
|
+
/* harmony export */ fJ: () => (/* binding */ fail),
|
|
14139
|
+
/* harmony export */ jU: () => (/* binding */ printDaemonLogs)
|
|
14140
|
+
/* harmony export */ });
|
|
14141
|
+
/* unused harmony export presentConnectionText */
|
|
14142
|
+
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(1421);
|
|
14143
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(3024);
|
|
14144
|
+
|
|
14145
|
+
|
|
14146
|
+
|
|
14147
|
+
// Presentation only: preserve stored logs and transport configuration verbatim.
|
|
14148
|
+
function presentConnectionText(message) {
|
|
14149
|
+
return String(message)
|
|
14150
|
+
.replace(/tailcat/gi, 'Remote Direct')
|
|
14151
|
+
.replace(/(?:https?:\/\/|wss?:\/\/)?\b127\.0\.0\.1\b(?::\d+)?/gi, 'Local connection');
|
|
14152
|
+
}
|
|
14153
|
+
|
|
14154
|
+
function fail(message, details) {
|
|
14155
|
+
process.stderr.write(`${presentConnectionText(message)}\n`);
|
|
14156
|
+
if (details) process.stderr.write(`${presentConnectionText(details)}\n`);
|
|
14157
|
+
process.exit(1);
|
|
14158
|
+
}
|
|
14159
|
+
|
|
14160
|
+
function printDaemonLogs(stdoutLogPath, stderrLogPath) {
|
|
14161
|
+
process.stdout.write(`Stdout: ${stdoutLogPath}\nStderr: ${stderrLogPath}\n\n`);
|
|
14162
|
+
const files = [stdoutLogPath, stderrLogPath].filter((file) => (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(file));
|
|
14163
|
+
if (!files.length) {
|
|
14164
|
+
process.stdout.write('No daemon logs have been written yet.\n');
|
|
14165
|
+
return;
|
|
14166
|
+
}
|
|
14167
|
+
if (process.platform !== 'win32') {
|
|
14168
|
+
const result = (0,node_child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync)('tail', ['-n', '80', ...files], { encoding: 'utf8' });
|
|
14169
|
+
if (result.stdout) process.stdout.write(presentConnectionText(result.stdout));
|
|
14170
|
+
if (result.stderr) process.stderr.write(presentConnectionText(result.stderr));
|
|
14171
|
+
return;
|
|
14172
|
+
}
|
|
14173
|
+
for (const file of files) {
|
|
14174
|
+
const lines = (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync)(file, 'utf8').trimEnd().split('\n').slice(-80).join('\n');
|
|
14175
|
+
process.stdout.write(`==> ${file} <==\n${presentConnectionText(lines)}\n`);
|
|
14176
|
+
}
|
|
14177
|
+
}
|
|
14178
|
+
|
|
14179
|
+
|
|
14132
14180
|
/***/ }),
|
|
14133
14181
|
|
|
14134
14182
|
/***/ 3869:
|
|
@@ -14772,7 +14820,7 @@ function formatConnectionSummary(target) {
|
|
|
14772
14820
|
}
|
|
14773
14821
|
|
|
14774
14822
|
function buildPairingDeepLink(pairingPayloadText) {
|
|
14775
|
-
return `vibelet://pair?data=${
|
|
14823
|
+
return `vibelet://pair?data=${Buffer.from(pairingPayloadText, 'utf8').toString('base64url')}`;
|
|
14776
14824
|
}
|
|
14777
14825
|
|
|
14778
14826
|
function formatUrlHost(host) {
|
|
@@ -15758,7 +15806,7 @@ async function presentPairingQr(
|
|
|
15758
15806
|
|
|
15759
15807
|
async function writePairingOutput(pairingPayload, { directory, pairingCodePath, pairingQrPngPath, stdout }) {
|
|
15760
15808
|
const payload = JSON.stringify((0,vibelet_pairing_connections/* createCompactPairingPayload */.YP)(pairingPayload));
|
|
15761
|
-
const qrPayload = JSON.stringify((0,vibelet_pairing_connections/* createScannablePairingPayload */.u_)(pairingPayload));
|
|
15809
|
+
const qrPayload = (0,vibelet_pairing_connections/* buildPairingDeepLink */.N7)(JSON.stringify((0,vibelet_pairing_connections/* createScannablePairingPayload */.u_)(pairingPayload)));
|
|
15762
15810
|
const deepLink = (0,vibelet_pairing_connections/* buildPairingDeepLink */.N7)(payload);
|
|
15763
15811
|
(0,external_node_fs_.mkdirSync)(directory, { recursive: true });
|
|
15764
15812
|
await lib.toFile(pairingQrPngPath, qrPayload, {
|
|
@@ -15768,7 +15816,7 @@ async function writePairingOutput(pairingPayload, { directory, pairingCodePath,
|
|
|
15768
15816
|
scale: 8,
|
|
15769
15817
|
});
|
|
15770
15818
|
const qr = await renderTerminalQr(qrPayload, stdout.columns);
|
|
15771
|
-
(0,external_node_fs_.writeFileSync)(pairingCodePath, `${
|
|
15819
|
+
(0,external_node_fs_.writeFileSync)(pairingCodePath, `${deepLink}\n`, 'utf8');
|
|
15772
15820
|
stdout.write('\nScan this QR code with the Vibelet app:\n\n');
|
|
15773
15821
|
const presentation = await presentPairingQr(pairingQrPngPath, qrPayload, { stdout });
|
|
15774
15822
|
if (presentation === 'opened') {
|
|
@@ -15778,7 +15826,7 @@ async function writePairingOutput(pairingPayload, { directory, pairingCodePath,
|
|
|
15778
15826
|
}
|
|
15779
15827
|
stdout.write(`Pairing QR image saved to:\n${pairingQrPngPath}\n`);
|
|
15780
15828
|
stdout.write(`This pairing QR expires at: ${pairingPayload.expiresAt}\n`);
|
|
15781
|
-
stdout.write(`If this device can't scan, paste this pairing
|
|
15829
|
+
stdout.write(`If this device can't scan, paste this pairing link in Vibelet:\n${deepLink}\n`);
|
|
15782
15830
|
stdout.write(`Pairing code saved to:\n${pairingCodePath}\n`);
|
|
15783
15831
|
stdout.write(`Or open this deep link on a device with Vibelet installed:\n${deepLink}\n`);
|
|
15784
15832
|
}
|
|
@@ -16208,25 +16256,27 @@ function compareVersions(a, b) {
|
|
|
16208
16256
|
|
|
16209
16257
|
__nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
16210
16258
|
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(1421);
|
|
16211
|
-
/* harmony import */ var
|
|
16259
|
+
/* harmony import */ var _vibelet_value_validation_mjs__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(50);
|
|
16212
16260
|
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(3024);
|
|
16213
16261
|
/* harmony import */ var node_module__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(8995);
|
|
16214
16262
|
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(8161);
|
|
16215
16263
|
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6760);
|
|
16216
16264
|
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(3136);
|
|
16217
|
-
/* harmony import */ var
|
|
16265
|
+
/* harmony import */ var _vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__ = __nccwpck_require__(6927);
|
|
16218
16266
|
/* harmony import */ var _cloudflared_tunnel_manager_mjs__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(1484);
|
|
16219
16267
|
/* harmony import */ var _vibelet_cloudflare_runtime_mjs__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(3869);
|
|
16220
|
-
/* harmony import */ var
|
|
16268
|
+
/* harmony import */ var _vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_16__ = __nccwpck_require__(1010);
|
|
16221
16269
|
/* harmony import */ var _linux_systemd_mjs__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(4217);
|
|
16222
|
-
/* harmony import */ var
|
|
16270
|
+
/* harmony import */ var _vibelet_stop_logic_mjs__WEBPACK_IMPORTED_MODULE_17__ = __nccwpck_require__(6274);
|
|
16223
16271
|
/* harmony import */ var _vibelet_update_check_mjs__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(7775);
|
|
16224
|
-
/* harmony import */ var
|
|
16272
|
+
/* harmony import */ var _vibelet_help_mjs__WEBPACK_IMPORTED_MODULE_19__ = __nccwpck_require__(4162);
|
|
16225
16273
|
/* harmony import */ var _vibelet_remote_direct_config_mjs__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(6736);
|
|
16226
|
-
/* harmony import */ var
|
|
16274
|
+
/* harmony import */ var _vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__ = __nccwpck_require__(4);
|
|
16227
16275
|
/* harmony import */ var _terminal_wrapper_mjs__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(5028);
|
|
16228
|
-
/* harmony import */ var
|
|
16276
|
+
/* harmony import */ var _vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__ = __nccwpck_require__(7721);
|
|
16229
16277
|
/* harmony import */ var _vibelet_pairing_output_mjs__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(9485);
|
|
16278
|
+
/* harmony import */ var _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__ = __nccwpck_require__(2484);
|
|
16279
|
+
|
|
16230
16280
|
|
|
16231
16281
|
|
|
16232
16282
|
|
|
@@ -16276,7 +16326,7 @@ const OFFICIAL_SITE_URL = 'https://vibelet.icu';
|
|
|
16276
16326
|
|
|
16277
16327
|
let officialSitePrinted = false;
|
|
16278
16328
|
let updateMessage = '';
|
|
16279
|
-
let port = (0,
|
|
16329
|
+
let port = (0,_vibelet_value_validation_mjs__WEBPACK_IMPORTED_MODULE_14__/* .normalizePortValue */ .Q)(process.env.VIBE_PORT) ?? 9876;
|
|
16280
16330
|
|
|
16281
16331
|
function printOfficialSite() {
|
|
16282
16332
|
if (officialSitePrinted) return;
|
|
@@ -16298,14 +16348,6 @@ const { checkForUpdateFromCache, fetchLatestVersionInBackground } = (0,_vibelet_
|
|
|
16298
16348
|
|
|
16299
16349
|
// ─── Helpers ────────────────────────────────────────────────────────────────────
|
|
16300
16350
|
|
|
16301
|
-
function fail(message, details) {
|
|
16302
|
-
process.stderr.write(`${message}\n`);
|
|
16303
|
-
if (details) {
|
|
16304
|
-
process.stderr.write(`${details}\n`);
|
|
16305
|
-
}
|
|
16306
|
-
process.exit(1);
|
|
16307
|
-
}
|
|
16308
|
-
|
|
16309
16351
|
function readRuntimeMetadata() {
|
|
16310
16352
|
if (!(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(runtimeMetadataPath)) return null;
|
|
16311
16353
|
try {
|
|
@@ -16317,7 +16359,7 @@ function readRuntimeMetadata() {
|
|
|
16317
16359
|
|
|
16318
16360
|
function ensureRuntimeInstalled() {
|
|
16319
16361
|
if (!(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(daemonEntryPath)) {
|
|
16320
|
-
fail(
|
|
16362
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(
|
|
16321
16363
|
'The compiled daemon runtime is missing.',
|
|
16322
16364
|
'Run `pnpm build:release` before invoking `npx @vibelet/cli` from a source checkout.',
|
|
16323
16365
|
);
|
|
@@ -16327,13 +16369,13 @@ function ensureRuntimeInstalled() {
|
|
|
16327
16369
|
const runtimeMetadata = readRuntimeMetadata();
|
|
16328
16370
|
|
|
16329
16371
|
if (
|
|
16330
|
-
(0,
|
|
16372
|
+
(0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .shouldRefuseRuntimeDowngrade */ .Ne)({
|
|
16331
16373
|
cliVersion: packageJson.version,
|
|
16332
16374
|
runtimeVersion: runtimeMetadata?.version,
|
|
16333
16375
|
runtimeEntryExists: (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(runtimeDaemonEntryPath),
|
|
16334
16376
|
})
|
|
16335
16377
|
) {
|
|
16336
|
-
fail(
|
|
16378
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(
|
|
16337
16379
|
`Refusing to downgrade vibelet runtime from v${runtimeMetadata.version} to v${packageJson.version}.`,
|
|
16338
16380
|
`An older daemon can silently drop on-disk state (sessions, archives) it doesn't know about.\n` +
|
|
16339
16381
|
`Run \`npx -y vibelet@latest\` to use the newest CLI, or remove \`${runtimeCurrentDir}\` if you really need to roll back.`,
|
|
@@ -16531,7 +16573,7 @@ function createDarwinBackend() {
|
|
|
16531
16573
|
}
|
|
16532
16574
|
|
|
16533
16575
|
function bootoutService() {
|
|
16534
|
-
return (0,
|
|
16576
|
+
return (0,_vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_16__/* .bootoutLaunchdService */ .B)({
|
|
16535
16577
|
launchctl,
|
|
16536
16578
|
launchDomain,
|
|
16537
16579
|
label,
|
|
@@ -16619,9 +16661,9 @@ ${envSection}
|
|
|
16619
16661
|
const bootoutResult = bootoutService();
|
|
16620
16662
|
const result = launchctl(['bootstrap', launchDomain, plistPath]);
|
|
16621
16663
|
if (result.status !== 0) {
|
|
16622
|
-
fail(
|
|
16664
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(
|
|
16623
16665
|
'Failed to bootstrap vibelet launch agent.',
|
|
16624
|
-
[(0,
|
|
16666
|
+
[(0,_vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_16__/* .describeLaunchctlResult */ .N)(bootoutResult.result), (0,_vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_16__/* .describeLaunchctlResult */ .N)(result)].filter(Boolean).join('\n'),
|
|
16625
16667
|
);
|
|
16626
16668
|
}
|
|
16627
16669
|
}
|
|
@@ -16630,14 +16672,14 @@ ${envSection}
|
|
|
16630
16672
|
start() {
|
|
16631
16673
|
const result = launchctl(['kickstart', `${launchDomain}/${label}`]);
|
|
16632
16674
|
if (result.status !== 0 && !this.isServiceInstalled()) {
|
|
16633
|
-
fail('Failed to start vibelet daemon.', result.stderr || result.stdout);
|
|
16675
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Failed to start vibelet daemon.', result.stderr || result.stdout);
|
|
16634
16676
|
}
|
|
16635
16677
|
},
|
|
16636
16678
|
|
|
16637
16679
|
stop() {
|
|
16638
16680
|
const bootoutResult = bootoutService();
|
|
16639
16681
|
if (!bootoutResult.ok) {
|
|
16640
|
-
fail('Failed to unload vibelet launch agent.', (0,
|
|
16682
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Failed to unload vibelet launch agent.', (0,_vibelet_launchd_mjs__WEBPACK_IMPORTED_MODULE_16__/* .describeLaunchctlResult */ .N)(bootoutResult.result));
|
|
16641
16683
|
}
|
|
16642
16684
|
// bootout returns before launchd actually finishes unloading. Poll
|
|
16643
16685
|
// until the service is gone so a follow-up install() doesn't see a
|
|
@@ -16738,7 +16780,7 @@ WantedBy=default.target
|
|
|
16738
16780
|
fallback.install();
|
|
16739
16781
|
return;
|
|
16740
16782
|
}
|
|
16741
|
-
fail('Failed to reload vibelet systemd user units.', resultOutput(reloadResult));
|
|
16783
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Failed to reload vibelet systemd user units.', resultOutput(reloadResult));
|
|
16742
16784
|
}
|
|
16743
16785
|
}
|
|
16744
16786
|
const enableResult = systemctl(['enable', unitName]);
|
|
@@ -16747,7 +16789,7 @@ WantedBy=default.target
|
|
|
16747
16789
|
fallback.install();
|
|
16748
16790
|
return;
|
|
16749
16791
|
}
|
|
16750
|
-
fail('Failed to enable vibelet daemon.', resultOutput(enableResult));
|
|
16792
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Failed to enable vibelet daemon.', resultOutput(enableResult));
|
|
16751
16793
|
}
|
|
16752
16794
|
},
|
|
16753
16795
|
|
|
@@ -16763,7 +16805,7 @@ WantedBy=default.target
|
|
|
16763
16805
|
fallback.start();
|
|
16764
16806
|
return;
|
|
16765
16807
|
}
|
|
16766
|
-
fail('Failed to start vibelet daemon.', result.stderr || result.stdout);
|
|
16808
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Failed to start vibelet daemon.', result.stderr || result.stdout);
|
|
16767
16809
|
}
|
|
16768
16810
|
},
|
|
16769
16811
|
|
|
@@ -16937,7 +16979,7 @@ async function waitForHealth(timeoutMs = 30_000) {
|
|
|
16937
16979
|
if (health) {
|
|
16938
16980
|
return health;
|
|
16939
16981
|
}
|
|
16940
|
-
fail(`Timed out waiting for vibelet daemon on port ${port}.`);
|
|
16982
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(`Timed out waiting for vibelet daemon on port ${port}.`);
|
|
16941
16983
|
}
|
|
16942
16984
|
|
|
16943
16985
|
async function postJson(pathname, body = undefined) {
|
|
@@ -16948,7 +16990,7 @@ async function postJson(pathname, body = undefined) {
|
|
|
16948
16990
|
});
|
|
16949
16991
|
const payload = await response.json().catch(() => ({}));
|
|
16950
16992
|
if (!response.ok) {
|
|
16951
|
-
fail(`Request to ${pathname} failed.`, JSON.stringify(payload, null, 2));
|
|
16993
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(`Request to ${pathname} failed.`, JSON.stringify(payload, null, 2));
|
|
16952
16994
|
}
|
|
16953
16995
|
return payload;
|
|
16954
16996
|
}
|
|
@@ -16974,32 +17016,32 @@ function retireTrackedQuickTunnel({ required = false } = {}) {
|
|
|
16974
17016
|
tunnelStatePath,
|
|
16975
17017
|
isAlive: isProcessAlive,
|
|
16976
17018
|
required,
|
|
16977
|
-
fail,
|
|
17019
|
+
fail: _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ,
|
|
16978
17020
|
});
|
|
16979
17021
|
}
|
|
16980
17022
|
|
|
16981
17023
|
async function stopRunningDaemon(backend) {
|
|
16982
17024
|
try {
|
|
16983
|
-
await (0,
|
|
17025
|
+
await (0,_vibelet_stop_logic_mjs__WEBPACK_IMPORTED_MODULE_17__/* .stopDaemonWithHooks */ .v)({
|
|
16984
17026
|
requestShutdown,
|
|
16985
17027
|
backendStop: () => backend.stop(),
|
|
16986
17028
|
waitForDaemonExit,
|
|
16987
17029
|
});
|
|
16988
17030
|
} catch (error) {
|
|
16989
|
-
fail(error instanceof Error ? error.message : String(error));
|
|
17031
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(error instanceof Error ? error.message : String(error));
|
|
16990
17032
|
}
|
|
16991
17033
|
}
|
|
16992
17034
|
|
|
16993
17035
|
async function ensureDaemonForTerminalControl(backend) {
|
|
16994
17036
|
const healthyDaemon = await probeHealth(1_500);
|
|
16995
17037
|
const tokenReady = (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(runtimeTerminalControlTokenPath);
|
|
16996
|
-
const terminalControlReady = healthyDaemon && tokenReady && (0,
|
|
17038
|
+
const terminalControlReady = healthyDaemon && tokenReady && (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .doesHealthSupportTerminalControl */ .iX)(healthyDaemon);
|
|
16997
17039
|
if (terminalControlReady) return healthyDaemon;
|
|
16998
17040
|
|
|
16999
17041
|
if (healthyDaemon && !terminalControlReady) {
|
|
17000
17042
|
const activeSessions = typeof healthyDaemon.activeSessions === 'number' ? healthyDaemon.activeSessions : 0;
|
|
17001
17043
|
if (activeSessions > 0) {
|
|
17002
|
-
const reason = (0,
|
|
17044
|
+
const reason = (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .doesHealthSupportTerminalControl */ .iX)(healthyDaemon)
|
|
17003
17045
|
? 'terminal-control token is missing'
|
|
17004
17046
|
: 'the running daemon does not advertise terminal-control support';
|
|
17005
17047
|
process.stderr.write(
|
|
@@ -17018,8 +17060,8 @@ async function ensureDaemonForTerminalControl(backend) {
|
|
|
17018
17060
|
}
|
|
17019
17061
|
|
|
17020
17062
|
function validateExplicitCleartextHosts({ hostArg, fallbackHostsArg }) {
|
|
17021
|
-
const [unsafeHost] = (0,
|
|
17022
|
-
if (unsafeHost) fail(`Refusing public cleartext host ${unsafeHost}. Use HTTPS, Tailscale, LAN, or local access.`);
|
|
17063
|
+
const [unsafeHost] = (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .findUnsafeCleartextHosts */ .dE)({ hostArg, fallbackHostsArg });
|
|
17064
|
+
if (unsafeHost) (0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(`Refusing public cleartext host ${unsafeHost}. Use HTTPS, Tailscale, LAN, or local access.`);
|
|
17023
17065
|
}
|
|
17024
17066
|
|
|
17025
17067
|
async function printPairingQr(pairingPayload) {
|
|
@@ -17039,11 +17081,11 @@ async function printPairingSummary(existingHealth = null, { relayUrlOverride = n
|
|
|
17039
17081
|
const pairingPayload =
|
|
17040
17082
|
relayUrlOverride === null
|
|
17041
17083
|
? daemonPairingPayload
|
|
17042
|
-
: (0,
|
|
17043
|
-
const connections = (0,
|
|
17084
|
+
: (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .applyRelayUrlToPairingPayload */ .mp)(daemonPairingPayload, relayUrlOverride);
|
|
17085
|
+
const connections = (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .normalizePairingConnections */ .No)(pairingPayload);
|
|
17044
17086
|
const [preferredConnection, ...otherConnections] = connections;
|
|
17045
|
-
const webUiConnection = (0,
|
|
17046
|
-
const compactPairingPayload = (0,
|
|
17087
|
+
const webUiConnection = (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .selectWebUiConnectionTarget */ .SF)(connections);
|
|
17088
|
+
const compactPairingPayload = (0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .createCompactPairingPayload */ .YP)(pairingPayload);
|
|
17047
17089
|
|
|
17048
17090
|
process.stdout.write(`Vibelet daemon is ready.\n\n`);
|
|
17049
17091
|
process.stdout.write(`Device: ${health.displayName}\n`);
|
|
@@ -17051,26 +17093,26 @@ async function printPairingSummary(existingHealth = null, { relayUrlOverride = n
|
|
|
17051
17093
|
process.stdout.write(`Host: ${pairingPayload.canonicalHost}\n`);
|
|
17052
17094
|
process.stdout.write(`Port: ${pairingPayload.port}\n`);
|
|
17053
17095
|
if (preferredConnection) {
|
|
17054
|
-
process.stdout.write(`Preferred path: ${(0,
|
|
17096
|
+
process.stdout.write(`Preferred path: ${(0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .formatConnectionSummary */ .uR)(preferredConnection)}\n`);
|
|
17055
17097
|
}
|
|
17056
17098
|
if (otherConnections.length > 0) {
|
|
17057
17099
|
process.stdout.write(`Other paths:\n`);
|
|
17058
17100
|
otherConnections.forEach((target) => {
|
|
17059
|
-
process.stdout.write(` - ${(0,
|
|
17101
|
+
process.stdout.write(` - ${(0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .formatConnectionSummary */ .uR)(target)}\n`);
|
|
17060
17102
|
});
|
|
17061
17103
|
}
|
|
17062
|
-
process.stdout.write(`Web UI: ${(0,
|
|
17104
|
+
process.stdout.write(`Web UI: ${(0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .buildWebUiUrl */ .Gv)({ host: 'localhost', port }, compactPairingPayload)}\n`);
|
|
17063
17105
|
if (webUiConnection && webUiConnection.host !== 'localhost') {
|
|
17064
|
-
process.stdout.write(`Web UI (other devices): ${(0,
|
|
17106
|
+
process.stdout.write(`Web UI (other devices): ${(0,_vibelet_pairing_connections_mjs__WEBPACK_IMPORTED_MODULE_18__/* .buildWebUiUrl */ .Gv)(webUiConnection, compactPairingPayload)}\n`);
|
|
17065
17107
|
}
|
|
17066
17108
|
process.stdout.write(`Paired devices: ${health.pairedDevices}\n`);
|
|
17067
17109
|
await printPairingQr(pairingPayload);
|
|
17068
17110
|
}
|
|
17069
17111
|
|
|
17070
|
-
const printHelp = () => (0,
|
|
17112
|
+
const printHelp = () => (0,_vibelet_help_mjs__WEBPACK_IMPORTED_MODULE_19__/* .printCliHelp */ .n)({ packageJson, port });
|
|
17071
17113
|
|
|
17072
17114
|
function parseNamedArg(name, errorHint) {
|
|
17073
|
-
return (0,
|
|
17115
|
+
return (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .parseNamedArg */ .nE)(process.argv, name, errorHint, _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ);
|
|
17074
17116
|
}
|
|
17075
17117
|
|
|
17076
17118
|
function parseRelayArg() {
|
|
@@ -17080,9 +17122,9 @@ function parseRelayArg() {
|
|
|
17080
17122
|
function parsePortArg() {
|
|
17081
17123
|
const rawValue = parseNamedArg('port', '9876');
|
|
17082
17124
|
if (rawValue === null) return null;
|
|
17083
|
-
const parsed = (0,
|
|
17125
|
+
const parsed = (0,_vibelet_value_validation_mjs__WEBPACK_IMPORTED_MODULE_14__/* .normalizePortValue */ .Q)(rawValue);
|
|
17084
17126
|
if (parsed === null) {
|
|
17085
|
-
fail('--port must be an integer between 1 and 65535');
|
|
17127
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('--port must be an integer between 1 and 65535');
|
|
17086
17128
|
}
|
|
17087
17129
|
return parsed;
|
|
17088
17130
|
}
|
|
@@ -17182,37 +17224,37 @@ async function main() {
|
|
|
17182
17224
|
return;
|
|
17183
17225
|
}
|
|
17184
17226
|
|
|
17185
|
-
let accessTarget = (0,
|
|
17186
|
-
const cloudflareFlag = (0,
|
|
17227
|
+
let accessTarget = (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .parseAccessTargetArg */ .tY)(process.argv, _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ);
|
|
17228
|
+
const cloudflareFlag = (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'cloudflare') || (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('cloudflare');
|
|
17187
17229
|
if (cloudflareFlag && accessTarget && accessTarget.kind !== 'remote')
|
|
17188
|
-
fail('Do not combine --cloudflare with another --access mode.');
|
|
17230
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)('Do not combine --cloudflare with another --access mode.');
|
|
17189
17231
|
if (cloudflareFlag) accessTarget = { kind: 'remote' };
|
|
17190
|
-
if (accessTarget && (0,
|
|
17191
|
-
fail(
|
|
17232
|
+
if (accessTarget && (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .hasLegacyAccessArgs */ .NT)(process.argv, process.env)) {
|
|
17233
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(
|
|
17192
17234
|
'Do not combine --access with legacy access flags.',
|
|
17193
17235
|
'Use one form, for example `--access=local`, `--access=remote`, `--access=https://...`, or `--access=<host>`.',
|
|
17194
17236
|
);
|
|
17195
17237
|
}
|
|
17196
17238
|
if (!accessTarget) {
|
|
17197
17239
|
const legacyRemote =
|
|
17198
|
-
(0,
|
|
17199
|
-
(0,
|
|
17200
|
-
(0,
|
|
17201
|
-
(0,
|
|
17240
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'remote') ||
|
|
17241
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'tunnel') ||
|
|
17242
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('remote') ||
|
|
17243
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('tunnel');
|
|
17202
17244
|
if (legacyRemote) accessTarget = { kind: 'remote' };
|
|
17203
17245
|
}
|
|
17204
17246
|
const localFlag =
|
|
17205
17247
|
accessTarget?.kind === 'local' ||
|
|
17206
17248
|
(!accessTarget &&
|
|
17207
|
-
((0,
|
|
17208
|
-
(0,
|
|
17209
|
-
(0,
|
|
17210
|
-
const forceFlag = (0,
|
|
17249
|
+
((0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'local') ||
|
|
17250
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('local') ||
|
|
17251
|
+
(0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .isTruthyEnvFlag */ .ap)(process.env.VIBELET_LOCAL_ONLY)));
|
|
17252
|
+
const forceFlag = (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'force') || (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('force');
|
|
17211
17253
|
// App-triggered upgrades keep the currently working connection intact.
|
|
17212
|
-
const preserveAccess = (0,
|
|
17254
|
+
const preserveAccess = (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, 'preserve-access') || (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)('preserve-access');
|
|
17213
17255
|
const { enabled: remoteDirectEnabled, explicitChoice: explicitRemoteDirectChoice } = (0,_vibelet_remote_direct_config_mjs__WEBPACK_IMPORTED_MODULE_10__/* .configureRemoteDirectMode */ .FN)({
|
|
17214
|
-
readFlag: (name) => (0,
|
|
17215
|
-
fail,
|
|
17256
|
+
readFlag: (name) => (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .consumeFlag */ .PC)(process.argv, name) || (0,_vibelet_cli_args_mjs__WEBPACK_IMPORTED_MODULE_20__/* .readNpmConfigFlag */ .AW)(name),
|
|
17257
|
+
fail: _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ,
|
|
17216
17258
|
config: remoteDirectConfig,
|
|
17217
17259
|
localMode: localFlag,
|
|
17218
17260
|
cloudflareRequested: accessTarget?.kind === 'remote',
|
|
@@ -17241,7 +17283,7 @@ async function main() {
|
|
|
17241
17283
|
command = parseCommandArg(process.argv);
|
|
17242
17284
|
const startCommand = isDaemonStartCommand(command);
|
|
17243
17285
|
const savedRelayUrl = relayConfig.load();
|
|
17244
|
-
const shouldManageTunnel = (0,
|
|
17286
|
+
const shouldManageTunnel = (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .shouldManageQuickTunnel */ .gm)({
|
|
17245
17287
|
startCommand,
|
|
17246
17288
|
localMode: localFlag,
|
|
17247
17289
|
relayArg,
|
|
@@ -17255,11 +17297,11 @@ async function main() {
|
|
|
17255
17297
|
});
|
|
17256
17298
|
const cloudflaredProtocol = process.env.VIBELET_CLOUDFLARED_PROTOCOL?.trim() || 'http2';
|
|
17257
17299
|
if (shouldManageTunnel && !['auto', 'quic', 'http2'].includes(cloudflaredProtocol)) {
|
|
17258
|
-
fail(`Unsupported VIBELET_CLOUDFLARED_PROTOCOL: ${cloudflaredProtocol}. Use auto, quic, or http2.`);
|
|
17300
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(`Unsupported VIBELET_CLOUDFLARED_PROTOCOL: ${cloudflaredProtocol}. Use auto, quic, or http2.`);
|
|
17259
17301
|
}
|
|
17260
17302
|
|
|
17261
17303
|
if (
|
|
17262
|
-
(0,
|
|
17304
|
+
(0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .shouldRetireManagedQuickTunnel */ .Pg)({
|
|
17263
17305
|
startCommand,
|
|
17264
17306
|
manageQuickTunnel: shouldManageTunnel,
|
|
17265
17307
|
preserveAccess,
|
|
@@ -17283,7 +17325,7 @@ async function main() {
|
|
|
17283
17325
|
protocol: cloudflaredProtocol,
|
|
17284
17326
|
updateStatePath: cloudflaredUpdateStatePath,
|
|
17285
17327
|
isAlive: isProcessAlive,
|
|
17286
|
-
fail,
|
|
17328
|
+
fail: _vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ,
|
|
17287
17329
|
});
|
|
17288
17330
|
managedTunnelFailed = managedTunnel.failed;
|
|
17289
17331
|
if (managedTunnel.relayUrl) {
|
|
@@ -17367,24 +17409,7 @@ async function main() {
|
|
|
17367
17409
|
}
|
|
17368
17410
|
|
|
17369
17411
|
if (command === 'logs') {
|
|
17370
|
-
|
|
17371
|
-
process.stdout.write(`Stderr: ${stderrLogPath}\n\n`);
|
|
17372
|
-
const logFiles = [stdoutLogPath, stderrLogPath].filter((filePath) => (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(filePath));
|
|
17373
|
-
if (logFiles.length === 0) {
|
|
17374
|
-
process.stdout.write('No daemon logs have been written yet.\n');
|
|
17375
|
-
return;
|
|
17376
|
-
}
|
|
17377
|
-
if (process.platform === 'win32') {
|
|
17378
|
-
for (const logFile of logFiles) {
|
|
17379
|
-
const content = (0,node_fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync)(logFile, 'utf8');
|
|
17380
|
-
const lines = content.split('\n').slice(-80).join('\n');
|
|
17381
|
-
process.stdout.write(`==> ${logFile} <==\n${lines}\n`);
|
|
17382
|
-
}
|
|
17383
|
-
} else {
|
|
17384
|
-
const result = (0,node_child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync)('tail', ['-n', '80', ...logFiles], { encoding: 'utf8' });
|
|
17385
|
-
if (result.stdout) process.stdout.write(result.stdout);
|
|
17386
|
-
if (result.stderr) process.stderr.write(result.stderr);
|
|
17387
|
-
}
|
|
17412
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .printDaemonLogs */ .jU)(stdoutLogPath, stderrLogPath);
|
|
17388
17413
|
return;
|
|
17389
17414
|
}
|
|
17390
17415
|
|
|
@@ -17402,7 +17427,7 @@ async function main() {
|
|
|
17402
17427
|
if (command === 'reset') {
|
|
17403
17428
|
const healthyDaemon = await probeHealth(1_500);
|
|
17404
17429
|
const hasExplicitConfigOverrides =
|
|
17405
|
-
!(0,
|
|
17430
|
+
!(0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .doesHealthMatchRequestedConnectionConfig */ .nW)({
|
|
17406
17431
|
health: healthyDaemon,
|
|
17407
17432
|
relayUrl,
|
|
17408
17433
|
canonicalHost: hostArg || '',
|
|
@@ -17434,13 +17459,13 @@ async function main() {
|
|
|
17434
17459
|
|
|
17435
17460
|
if (command !== 'default' && command !== 'start') {
|
|
17436
17461
|
printHelp();
|
|
17437
|
-
fail(`Unknown command: ${command}`);
|
|
17462
|
+
(0,_vibelet_cli_presentation_mjs__WEBPACK_IMPORTED_MODULE_13__/* .fail */ .fJ)(`Unknown command: ${command}`);
|
|
17438
17463
|
}
|
|
17439
17464
|
|
|
17440
17465
|
let healthyDaemon = await probeHealth(1_500);
|
|
17441
|
-
let remoteDirectMismatch = (0,
|
|
17466
|
+
let remoteDirectMismatch = (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .isRemoteDirectConfigurationMismatch */ ._4)({ health: healthyDaemon, remoteDirectEnabled });
|
|
17442
17467
|
let hasExplicitConfigOverrides =
|
|
17443
|
-
!(0,
|
|
17468
|
+
!(0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .doesHealthMatchRequestedConnectionConfig */ .nW)({
|
|
17444
17469
|
health: healthyDaemon,
|
|
17445
17470
|
relayUrl,
|
|
17446
17471
|
canonicalHost: hostArg || '',
|
|
@@ -17466,7 +17491,7 @@ async function main() {
|
|
|
17466
17491
|
const refreshedHealth = await tryUpdateRunningDaemonRelay(relayUrl);
|
|
17467
17492
|
if (refreshedHealth) {
|
|
17468
17493
|
healthyDaemon = refreshedHealth;
|
|
17469
|
-
hasExplicitConfigOverrides = !(0,
|
|
17494
|
+
hasExplicitConfigOverrides = !(0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .doesHealthMatchRequestedConnectionConfig */ .nW)({
|
|
17470
17495
|
health: healthyDaemon,
|
|
17471
17496
|
relayUrl,
|
|
17472
17497
|
canonicalHost: '',
|
|
@@ -17474,10 +17499,10 @@ async function main() {
|
|
|
17474
17499
|
localMode: false,
|
|
17475
17500
|
remoteDirectEnabled,
|
|
17476
17501
|
});
|
|
17477
|
-
remoteDirectMismatch = (0,
|
|
17502
|
+
remoteDirectMismatch = (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .isRemoteDirectConfigurationMismatch */ ._4)({ health: healthyDaemon, remoteDirectEnabled });
|
|
17478
17503
|
}
|
|
17479
17504
|
}
|
|
17480
|
-
const existingHealth = (0,
|
|
17505
|
+
const existingHealth = (0,_vibelet_runtime_policy_mjs__WEBPACK_IMPORTED_MODULE_15__/* .shouldReuseHealthyDaemon */ .ZN)({
|
|
17481
17506
|
command,
|
|
17482
17507
|
daemonHealthy: Boolean(healthyDaemon),
|
|
17483
17508
|
hasExplicitConfigOverrides,
|
|
@@ -17489,7 +17514,7 @@ async function main() {
|
|
|
17489
17514
|
if (existingHealth) {
|
|
17490
17515
|
const runningVersion = typeof existingHealth.version === 'string' ? existingHealth.version : '';
|
|
17491
17516
|
const activeSessions = typeof existingHealth.activeSessions === 'number' ? existingHealth.activeSessions : 0;
|
|
17492
|
-
const isOutdated = runningVersion && (0,
|
|
17517
|
+
const isOutdated = runningVersion && (0,_vibelet_value_validation_mjs__WEBPACK_IMPORTED_MODULE_14__/* .compareVersions */ .Z)(runningVersion, packageJson.version) < 0;
|
|
17493
17518
|
// Only force a driver switch when the user explicitly requested one (flag/env).
|
|
17494
17519
|
const requestedDriver = process.env.VIBE_CLAUDE_DRIVER ? normalizeDriver(process.env.VIBE_CLAUDE_DRIVER) : null;
|
|
17495
17520
|
const runningDriver = normalizeDriver(existingHealth.claudeDriverMode);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.skill-suggestion-list button[aria-selected=true]{background:var(--card-alt);box-shadow:inset 2px 0 var(--accent)}.composer .send-button{position:relative}.composer .send-button[data-state=sending]:disabled{background:var(--text);color:var(--bg);opacity:1}.composer-send-spinner{animation:composer-send-spin 1s linear infinite}.composer-send-progress{position:absolute;inset:3px;border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;border-radius:50%;animation:composer-send-spin 1.8s linear infinite;pointer-events:none}.composer .send-button .composer-send-stop{width:10px;height:10px;fill:currentColor;stroke-width:0}.composer-send-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@keyframes composer-send-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.composer-send-spinner,.composer-send-progress{animation:none}}.message>.message-actions{justify-content:flex-start;margin-top:8px}.message>.message-markdown-source{padding:0;border:0;background:transparent;box-shadow:none;border-radius:0;font-family:var(--font-mono);font-size:13px;line-height:1.65;-webkit-user-select:text;user-select:text}.message-delivery{color:inherit;font-size:11px;white-space:nowrap}.replying-placeholder{padding:10px 14px}.message-replying-indicator{display:inline-flex;align-items:center;gap:7px;margin-top:7px;color:var(--text-secondary);font-size:12px;line-height:1.3;white-space:nowrap}.replying-placeholder .message-replying-indicator{margin-top:0}.message-replying-dots{display:inline-flex;align-items:center;gap:3px;height:12px;color:var(--accent-foreground)}.message-replying-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.4;animation:message-replying-pulse 1.2s ease-in-out infinite}.message-replying-dots i:nth-child(2){animation-delay:.15s}.message-replying-dots i:nth-child(3){animation-delay:.3s}@keyframes message-replying-pulse{50%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.message-replying-dots i{animation:none;opacity:.8}}.message-image-attachments{display:flex;align-items:flex-start;flex-direction:column;gap:8px;margin-top:12px}.message-image-preview{display:flex;width:fit-content;align-items:center;justify-content:center;max-width:100%;padding:0;margin:6px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--card-alt);color:var(--text-secondary);vertical-align:middle;cursor:zoom-in}.message-image-preview img{display:block;max-width:min(100%,480px);max-height:320px;width:auto;height:auto;object-fit:contain}.message-markdown td .message-image-preview img{max-width:160px;max-height:120px}.message-image-placeholder{display:inline-flex;align-items:center;gap:8px;padding:16px;font-size:12px}.message-image-placeholder svg{width:16px;height:16px}.session-item{position:relative;flex-shrink:0;min-width:0;border:1px solid color-mix(in srgb,var(--border) 65%,transparent);border-radius:7px;overflow:hidden}.session-title-tooltip{position:fixed;z-index:2000;max-width:min(360px,calc(100vw - 24px));box-sizing:border-box;padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);box-shadow:0 10px 30px -16px var(--shadow);font-size:12px;line-height:1.45;white-space:normal;text-overflow:clip;overflow-wrap:anywhere;pointer-events:none}.session-item:hover,.session-item:focus-within{background:var(--sidebar-selection)}.session-item[data-multi-selected]{border-color:var(--accent-soft-strong);background:var(--accent-soft)}.session-item[data-multi-selected]>.session-row{background:transparent}.session-item>.session-row{min-height:46px;gap:4px}.session-item .session-row-head{display:grid;grid-template-columns:minmax(0,1fr) 66px 6px;gap:6px}.session-item .session-row-metadata{display:block;margin:0;width:66px;white-space:nowrap;text-align:right}.session-item .session-row-metadata>span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-variant-numeric:tabular-nums}.session-item .session-row-footer{padding-right:12px}.session-item .session-row-footer .session-row-agent{flex:0 0 auto;margin-left:auto;font-size:11px;text-align:right}.session-quick-actions{position:absolute;top:5px;right:16px;z-index:1;display:flex;gap:2px;padding:1px;border-radius:5px;background:var(--sidebar-selection);opacity:0;pointer-events:none}.session-quick-actions button{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer}.session-quick-actions button svg{width:13px;height:13px}.session-quick-actions button:hover,.session-quick-actions button:focus-visible{background:var(--accent-soft);color:var(--accent-action);outline:none}.session-quick-actions button.is-pinned,.session-quick-actions button.is-archived{color:var(--accent-action)}.session-quick-actions button:disabled{opacity:.4;cursor:default}.session-item:hover .session-quick-actions,.session-item:focus-within .session-quick-actions{opacity:1;pointer-events:auto}.session-item:hover .session-row-metadata,.session-item:focus-within .session-row-metadata{visibility:hidden}.session-item[data-active]:hover .session-row-metadata,.session-item[data-active]:focus-within .session-row-metadata{visibility:visible}.session-item[data-active] .session-quick-actions{right:89px}.session-item[data-active]:hover .session-row-head strong,.session-item[data-active]:focus-within .session-row-head strong{padding-right:50px}@media(hover:none){.session-item .session-quick-actions{opacity:1;pointer-events:auto}.session-item .session-row-metadata{visibility:hidden}.session-item[data-active] .session-row-metadata{visibility:visible}}.session-item .session-row-footer{display:flex;min-height:14px;gap:6px}.session-git-links{position:absolute;left:8px;right:72px;bottom:6px;display:flex;align-items:center;gap:8px;min-width:0;pointer-events:none;font-size:11px;color:var(--text-secondary)}.session-git-links a{pointer-events:auto}.session-item[data-statuses="1"] .session-git-links{right:128px}.session-item[data-statuses="2"] .session-git-links{right:184px}.session-git-folder{max-width:25%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-git-links .session-branch-link{display:block;min-width:0;max-width:160px;color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-git-links .session-pr-link{flex:0 0 auto;white-space:nowrap;color:inherit;text-decoration:none}.session-git-links a:hover{color:var(--accent-action);text-decoration:underline}.right-sidebar-icon-hint{position:fixed;z-index:2000;width:max-content;max-width:min(280px,calc(100vw - 24px));padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);box-shadow:0 8px 24px -12px var(--shadow);font-size:11px;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:anywhere;pointer-events:none}
|