omnius 1.0.706 → 1.0.707
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.js +267 -97
- package/dist/launcher.cjs +7 -2
- package/dist/update-worker.js +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1083,20 +1083,38 @@ async function fetchLatestVersion() {
|
|
|
1083
1083
|
return null;
|
|
1084
1084
|
}
|
|
1085
1085
|
}
|
|
1086
|
-
async function
|
|
1086
|
+
async function queryUpdateStatus(currentVersion, forceCheck = false) {
|
|
1087
1087
|
const cache8 = loadCache();
|
|
1088
1088
|
const now2 = Date.now();
|
|
1089
1089
|
let latest = cache8.latestVersion;
|
|
1090
|
-
if (forceCheck || now2 - cache8.lastCheck
|
|
1091
|
-
|
|
1092
|
-
|
|
1090
|
+
if (forceCheck || now2 - cache8.lastCheck >= UPDATE_CHECK_INTERVAL_MS) {
|
|
1091
|
+
const fetched = await fetchLatestVersion();
|
|
1092
|
+
if (fetched) {
|
|
1093
|
+
latest = fetched;
|
|
1094
|
+
saveCache({ lastCheck: now2, latestVersion: fetched });
|
|
1095
|
+
} else if (!latest || !isNewer(latest, currentVersion)) {
|
|
1096
|
+
return {
|
|
1097
|
+
status: "unavailable",
|
|
1098
|
+
currentVersion,
|
|
1099
|
+
latestVersion: latest
|
|
1100
|
+
};
|
|
1101
|
+
}
|
|
1093
1102
|
}
|
|
1094
|
-
if (!latest)
|
|
1095
|
-
|
|
1103
|
+
if (!latest) {
|
|
1104
|
+
return { status: "unavailable", currentVersion, latestVersion: null };
|
|
1105
|
+
}
|
|
1106
|
+
if (!isNewer(latest, currentVersion)) {
|
|
1107
|
+
return { status: "current", currentVersion, latestVersion: latest };
|
|
1108
|
+
}
|
|
1109
|
+
return { status: "available", currentVersion, latestVersion: latest };
|
|
1110
|
+
}
|
|
1111
|
+
async function checkForUpdate(currentVersion, forceCheck = false) {
|
|
1112
|
+
const result = await queryUpdateStatus(currentVersion, forceCheck);
|
|
1113
|
+
if (result.status !== "available" || !result.latestVersion) return null;
|
|
1096
1114
|
return {
|
|
1097
1115
|
updateAvailable: true,
|
|
1098
1116
|
currentVersion,
|
|
1099
|
-
latestVersion:
|
|
1117
|
+
latestVersion: result.latestVersion
|
|
1100
1118
|
};
|
|
1101
1119
|
}
|
|
1102
1120
|
function formatUpdateBanner(info) {
|
|
@@ -1105,13 +1123,13 @@ function formatUpdateBanner(info) {
|
|
|
1105
1123
|
Run: npm i -g ${PACKAGE_NAME}@${info.latestVersion} or use /update in the REPL
|
|
1106
1124
|
`;
|
|
1107
1125
|
}
|
|
1108
|
-
var PACKAGE_NAME,
|
|
1126
|
+
var PACKAGE_NAME, UPDATE_CHECK_INTERVAL_MS, CACHE_DIR, CACHE_FILE;
|
|
1109
1127
|
var init_updater = __esm({
|
|
1110
1128
|
"packages/cli/src/updater.ts"() {
|
|
1111
1129
|
init_service_version();
|
|
1112
1130
|
init_update_service();
|
|
1113
1131
|
PACKAGE_NAME = "omnius";
|
|
1114
|
-
|
|
1132
|
+
UPDATE_CHECK_INTERVAL_MS = 60 * 1e3;
|
|
1115
1133
|
CACHE_DIR = resolveUpdatePaths().stateDir;
|
|
1116
1134
|
CACHE_FILE = join3(CACHE_DIR, "registry-check.json");
|
|
1117
1135
|
}
|
|
@@ -745688,10 +745706,10 @@ function contrastTextColor(colorIndex) {
|
|
|
745688
745706
|
return luma >= 140 ? 16 : 231;
|
|
745689
745707
|
}
|
|
745690
745708
|
function lockFooterRedraws() {
|
|
745691
|
-
|
|
745709
|
+
_globalFooterLockDepth += 1;
|
|
745692
745710
|
}
|
|
745693
745711
|
function unlockFooterRedraws() {
|
|
745694
|
-
|
|
745712
|
+
_globalFooterLockDepth = Math.max(0, _globalFooterLockDepth - 1);
|
|
745695
745713
|
}
|
|
745696
745714
|
function refreshThemeVars() {
|
|
745697
745715
|
PANEL_BG_SEQ = tuiBgSeq();
|
|
@@ -745738,7 +745756,7 @@ function setTerminalTitle(task, version5) {
|
|
|
745738
745756
|
process.stdout.write(data);
|
|
745739
745757
|
}
|
|
745740
745758
|
}
|
|
745741
|
-
var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_FG, TEXT_PRIMARY, TEXT_DIM, NO_SUB_AGENTS_HEADER_LABEL, HEADER_BUTTON_GLYPH_FG, HEADER_BUTTON_BG, HEADER_BUTTON_FG, HEADER_ACCENT_BOLD_FG, HEADER_BUTTON_HOVER_BG, HEADER_BUTTON_HOVER_FG, HEADER_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, BOX_BJ, BOX_TJ, ENHANCE_SEG_INNER, ENHANCE_SPIN_FRAMES,
|
|
745759
|
+
var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_FG, TEXT_PRIMARY, TEXT_DIM, NO_SUB_AGENTS_HEADER_LABEL, HEADER_BUTTON_GLYPH_FG, HEADER_BUTTON_BG, HEADER_BUTTON_FG, HEADER_ACCENT_BOLD_FG, HEADER_BUTTON_HOVER_BG, HEADER_BUTTON_HOVER_FG, HEADER_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, BOX_BJ, BOX_TJ, ENHANCE_SEG_INNER, ENHANCE_SPIN_FRAMES, _globalFooterLockDepth, RESET4, CURSOR_BLINK_BLOCK, HEADER_BUTTON_LEFT, HEADER_BUTTON_RIGHT, HEADER_BUTTON_SQUARE_PAD, SPONSOR_HEADER_LABEL_MAX, _termTitleWriter, StatusBar;
|
|
745742
745760
|
var init_status_bar = __esm({
|
|
745743
745761
|
"packages/cli/src/tui/status-bar.ts"() {
|
|
745744
745762
|
init_render();
|
|
@@ -745942,7 +745960,7 @@ var init_status_bar = __esm({
|
|
|
745942
745960
|
BOX_TJ = "┬";
|
|
745943
745961
|
ENHANCE_SEG_INNER = 11;
|
|
745944
745962
|
ENHANCE_SPIN_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
745945
|
-
|
|
745963
|
+
_globalFooterLockDepth = 0;
|
|
745946
745964
|
RESET4 = "\x1B[0m";
|
|
745947
745965
|
CURSOR_BLINK_BLOCK = "\x1B[1 q";
|
|
745948
745966
|
HEADER_BUTTON_LEFT = "🭁";
|
|
@@ -746084,6 +746102,8 @@ var init_status_bar = __esm({
|
|
|
746084
746102
|
_mouseTrackingEnabled = false;
|
|
746085
746103
|
/** Enabled automatically once MouseFilterStream is installed; /mouse off is an emergency escape hatch. */
|
|
746086
746104
|
_mouseTrackingPreferred = false;
|
|
746105
|
+
/** Prevent every redraw/activity path from re-enabling mouse reports while an inherited child owns the TTY. */
|
|
746106
|
+
_terminalPassthroughDepth = 0;
|
|
746087
746107
|
/** Legacy keyboard-selection guard; mouse drag selection is terminal-native. */
|
|
746088
746108
|
_mouseSelecting = false;
|
|
746089
746109
|
/** Text selection state for keyboard/explicit copy paths; mouse drag is not owned by the TUI. */
|
|
@@ -746205,13 +746225,16 @@ var init_status_bar = __esm({
|
|
|
746205
746225
|
_inputRedrawScheduled = false;
|
|
746206
746226
|
/** Suppress hookStdin redraws during Enter processing or overlay operations */
|
|
746207
746227
|
_suppressStdinRedraw = false;
|
|
746228
|
+
_footerLockDepth = 0;
|
|
746208
746229
|
/** Lock footer redraws entirely (during install overlay, loading screens, etc.) */
|
|
746209
746230
|
lockFooter() {
|
|
746231
|
+
this._footerLockDepth += 1;
|
|
746210
746232
|
this._suppressStdinRedraw = true;
|
|
746211
746233
|
}
|
|
746212
746234
|
/** Unlock footer redraws */
|
|
746213
746235
|
unlockFooter() {
|
|
746214
|
-
this.
|
|
746236
|
+
this._footerLockDepth = Math.max(0, this._footerLockDepth - 1);
|
|
746237
|
+
this._suppressStdinRedraw = this._footerLockDepth > 0;
|
|
746215
746238
|
}
|
|
746216
746239
|
/** Begin DEC 2026 synchronized output — terminal buffers all writes */
|
|
746217
746240
|
syncBegin() {
|
|
@@ -747341,7 +747364,7 @@ var init_status_bar = __esm({
|
|
|
747341
747364
|
if (this._footerAnimationTimer) return;
|
|
747342
747365
|
const intervalMs = this._pacing.remote ? this._pacing.footerAnimationIntervalMs : _StatusBar.FOOTER_ANIMATION_INTERVAL_MS;
|
|
747343
747366
|
this._footerAnimationTimer = setInterval(() => {
|
|
747344
|
-
if (!this.active || this._resizing ||
|
|
747367
|
+
if (!this.active || this._resizing || _globalFooterLockDepth > 0 || isOverlayActive()) {
|
|
747345
747368
|
this._footerPaintCache = null;
|
|
747346
747369
|
return;
|
|
747347
747370
|
}
|
|
@@ -748366,19 +748389,47 @@ var init_status_bar = __esm({
|
|
|
748366
748389
|
this._mouseTrackingPreferred = true;
|
|
748367
748390
|
this.restoreMouseTracking();
|
|
748368
748391
|
}
|
|
748392
|
+
/** Unconditionally disable every terminal mouse protocol Omnius may inherit or enable. */
|
|
748393
|
+
writeMouseTrackingOff() {
|
|
748394
|
+
this._mouseTrackingEnabled = false;
|
|
748395
|
+
if (!process.stdout.isTTY) return;
|
|
748396
|
+
this._trueStdoutWrite.call(
|
|
748397
|
+
process.stdout,
|
|
748398
|
+
"\x1B[?9l\x1B[?1000l\x1B[?1001l\x1B[?1002l\x1B[?1003l\x1B[?1005l\x1B[?1006l\x1B[?1015l\x1B[?1016l"
|
|
748399
|
+
);
|
|
748400
|
+
}
|
|
748369
748401
|
/** Temporarily turn off terminal mouse reporting without changing user preference. */
|
|
748370
748402
|
suspendMouseTracking() {
|
|
748371
748403
|
if (!this._mouseTrackingEnabled) return;
|
|
748372
|
-
this.
|
|
748373
|
-
|
|
748374
|
-
|
|
748375
|
-
|
|
748376
|
-
|
|
748404
|
+
this.writeMouseTrackingOff();
|
|
748405
|
+
}
|
|
748406
|
+
/**
|
|
748407
|
+
* Give an inherited terminal process exclusive ownership of the TTY.
|
|
748408
|
+
* The lease is idempotent and nestable; no redraw, overlay, or queued mouse
|
|
748409
|
+
* activity can restore reporting until the outermost owner releases it.
|
|
748410
|
+
*/
|
|
748411
|
+
acquireTerminalPassthrough() {
|
|
748412
|
+
this._terminalPassthroughDepth += 1;
|
|
748413
|
+
this.writeMouseTrackingOff();
|
|
748414
|
+
let released = false;
|
|
748415
|
+
return () => {
|
|
748416
|
+
if (released) return;
|
|
748417
|
+
released = true;
|
|
748418
|
+
this._terminalPassthroughDepth = Math.max(
|
|
748419
|
+
0,
|
|
748420
|
+
this._terminalPassthroughDepth - 1
|
|
748377
748421
|
);
|
|
748378
|
-
|
|
748422
|
+
if (this._terminalPassthroughDepth > 0) return;
|
|
748423
|
+
this.writeMouseTrackingOff();
|
|
748424
|
+
this.restoreMouseTracking();
|
|
748425
|
+
};
|
|
748379
748426
|
}
|
|
748380
748427
|
/** Re-apply the current mouse preference after overlays, password prompts, or redraws. */
|
|
748381
748428
|
restoreMouseTracking() {
|
|
748429
|
+
if (this._terminalPassthroughDepth > 0) {
|
|
748430
|
+
this._mouseTrackingEnabled = false;
|
|
748431
|
+
return;
|
|
748432
|
+
}
|
|
748382
748433
|
if (!this._mouseTrackingPreferred) {
|
|
748383
748434
|
this.suspendMouseTracking();
|
|
748384
748435
|
return;
|
|
@@ -751340,13 +751391,13 @@ ${CONTENT_BG_SEQ}`);
|
|
|
751340
751391
|
}
|
|
751341
751392
|
scheduleInputRedraw() {
|
|
751342
751393
|
if (!this.active || this._resizing) return;
|
|
751343
|
-
if (this._suppressStdinRedraw ||
|
|
751394
|
+
if (this._suppressStdinRedraw || _globalFooterLockDepth > 0) return;
|
|
751344
751395
|
if (this._inputRedrawScheduled) return;
|
|
751345
751396
|
this._inputRedrawScheduled = true;
|
|
751346
751397
|
setImmediate(() => {
|
|
751347
751398
|
this._inputRedrawScheduled = false;
|
|
751348
751399
|
if (!this.active || this._resizing) return;
|
|
751349
|
-
if (this._suppressStdinRedraw ||
|
|
751400
|
+
if (this._suppressStdinRedraw || _globalFooterLockDepth > 0) return;
|
|
751350
751401
|
if (this.writeDepth > 0) {
|
|
751351
751402
|
this.renderInputRowDuringStream();
|
|
751352
751403
|
} else {
|
|
@@ -753852,19 +753903,36 @@ function runShellCommandAsync(command, opts = {}) {
|
|
|
753852
753903
|
if (opts.input !== void 0) {
|
|
753853
753904
|
child2.stdin?.end(opts.input);
|
|
753854
753905
|
}
|
|
753855
|
-
|
|
753906
|
+
let timedOut = false;
|
|
753907
|
+
let killTimer = null;
|
|
753908
|
+
const killChild = (signal) => {
|
|
753856
753909
|
try {
|
|
753857
|
-
child2.kill(
|
|
753910
|
+
child2.kill(signal);
|
|
753858
753911
|
} catch {
|
|
753859
753912
|
}
|
|
753860
|
-
|
|
753913
|
+
};
|
|
753914
|
+
const timer = setTimeout(() => {
|
|
753915
|
+
timedOut = true;
|
|
753916
|
+
killChild("SIGTERM");
|
|
753917
|
+
killTimer = setTimeout(() => killChild("SIGKILL"), 2e3);
|
|
753918
|
+
killTimer.unref?.();
|
|
753861
753919
|
}, opts.timeoutMs ?? 6e4);
|
|
753862
753920
|
child2.on("error", (err) => {
|
|
753863
753921
|
clearTimeout(timer);
|
|
753922
|
+
if (killTimer) clearTimeout(killTimer);
|
|
753864
753923
|
reject(err);
|
|
753865
753924
|
});
|
|
753866
753925
|
child2.on("close", (code8, signal) => {
|
|
753867
753926
|
clearTimeout(timer);
|
|
753927
|
+
if (killTimer) clearTimeout(killTimer);
|
|
753928
|
+
if (timedOut) {
|
|
753929
|
+
reject(
|
|
753930
|
+
new Error(
|
|
753931
|
+
`Command timed out after ${opts.timeoutMs ?? 6e4}ms: ${command}`
|
|
753932
|
+
)
|
|
753933
|
+
);
|
|
753934
|
+
return;
|
|
753935
|
+
}
|
|
753868
753936
|
if (code8 === 0) {
|
|
753869
753937
|
resolve110();
|
|
753870
753938
|
return;
|
|
@@ -760338,7 +760406,12 @@ async function startNeovimMode(opts) {
|
|
|
760338
760406
|
nvimPath = (await execFileText5("sh", ["-lc", "command -v nvim"], { timeout: 3e3 })).trim();
|
|
760339
760407
|
if (!nvimPath) throw new Error();
|
|
760340
760408
|
} catch {
|
|
760341
|
-
const
|
|
760409
|
+
const install = () => ensureNeovim();
|
|
760410
|
+
const installed = opts.withTerminalPassthrough ? await opts.withTerminalPassthrough(
|
|
760411
|
+
"Neovim setup",
|
|
760412
|
+
"The system package manager needs terminal access.",
|
|
760413
|
+
install
|
|
760414
|
+
) : await install();
|
|
760342
760415
|
if (!installed) {
|
|
760343
760416
|
return "nvim not found and auto-install failed. Install Neovim: https://neovim.io";
|
|
760344
760417
|
}
|
|
@@ -760765,6 +760838,10 @@ function doCleanup(state5) {
|
|
|
760765
760838
|
stdin.removeListener(event, fn);
|
|
760766
760839
|
}
|
|
760767
760840
|
state5.installedFilteredListeners = [];
|
|
760841
|
+
process.stdout.write(
|
|
760842
|
+
`\x1B[?9l\x1B[?1000l\x1B[?1001l\x1B[?1002l\x1B[?1003l\x1B[?1005l\x1B[?1006l\x1B[?1015l\x1B[?1016l\x1B[?1004l\x1B[?2004l\x1B[1;${termRows()}r`
|
|
760843
|
+
// reset scroll region to full terminal
|
|
760844
|
+
);
|
|
760768
760845
|
if (typeof stdin.setRawMode === "function") {
|
|
760769
760846
|
try {
|
|
760770
760847
|
stdin.setRawMode(false);
|
|
@@ -760782,10 +760859,6 @@ function doCleanup(state5) {
|
|
|
760782
760859
|
}
|
|
760783
760860
|
}
|
|
760784
760861
|
_state2 = null;
|
|
760785
|
-
process.stdout.write(
|
|
760786
|
-
`\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l\x1B[?1015l\x1B[?1004l\x1B[?2004l\x1B[1;${termRows()}r`
|
|
760787
|
-
// reset scroll region to full terminal
|
|
760788
|
-
);
|
|
760789
760862
|
try {
|
|
760790
760863
|
stdin.resume();
|
|
760791
760864
|
stdin.read();
|
|
@@ -769985,7 +770058,7 @@ function setRawInputMode(enabled3) {
|
|
|
769985
770058
|
} catch {
|
|
769986
770059
|
}
|
|
769987
770060
|
}
|
|
769988
|
-
async function
|
|
770061
|
+
async function withTransientTerminalSession(ctx3, heading, reason, terminalElevation, run4) {
|
|
769989
770062
|
const hasInteractiveTty = Boolean(
|
|
769990
770063
|
process.stdin.isTTY && process.stdout.isTTY
|
|
769991
770064
|
);
|
|
@@ -769998,6 +770071,7 @@ async function withTransientTerminalPrivilegePrompt(ctx3, reason, run4) {
|
|
|
769998
770071
|
"OMNIUS_ELEVATION_MODE"
|
|
769999
770072
|
);
|
|
770000
770073
|
const previousElevationMode = process.env["OMNIUS_ELEVATION_MODE"];
|
|
770074
|
+
let releaseTerminal = null;
|
|
770001
770075
|
try {
|
|
770002
770076
|
ctx3.lockFooter?.();
|
|
770003
770077
|
} catch {
|
|
@@ -770007,30 +770081,51 @@ async function withTransientTerminalPrivilegePrompt(ctx3, reason, run4) {
|
|
|
770007
770081
|
} catch {
|
|
770008
770082
|
}
|
|
770009
770083
|
try {
|
|
770010
|
-
ctx3.
|
|
770084
|
+
releaseTerminal = ctx3.acquireTerminalPassthrough?.() ?? null;
|
|
770011
770085
|
} catch {
|
|
770086
|
+
releaseTerminal = null;
|
|
770087
|
+
}
|
|
770088
|
+
if (!releaseTerminal) {
|
|
770089
|
+
try {
|
|
770090
|
+
ctx3.disableMouse?.();
|
|
770091
|
+
} catch {
|
|
770092
|
+
}
|
|
770012
770093
|
}
|
|
770013
|
-
setRawInputMode(false);
|
|
770014
|
-
process.env["OMNIUS_ELEVATION_MODE"] = "terminal";
|
|
770015
770094
|
writeDirectTerminal(
|
|
770016
|
-
|
|
770095
|
+
`\x1B[?2026l\x1B[?25h${TERMINAL_MOUSE_OFF}\x1B[r\x1B[0m\x1B[2J\x1B[H`
|
|
770017
770096
|
);
|
|
770018
|
-
|
|
770019
|
-
|
|
770097
|
+
setRawInputMode(false);
|
|
770098
|
+
if (terminalElevation) {
|
|
770099
|
+
process.env["OMNIUS_ELEVATION_MODE"] = "terminal";
|
|
770100
|
+
}
|
|
770101
|
+
writeDirectTerminal(`${c3.bold(heading)}
|
|
770020
770102
|
${reason}
|
|
770021
770103
|
|
|
770022
|
-
`
|
|
770023
|
-
);
|
|
770104
|
+
`);
|
|
770024
770105
|
try {
|
|
770025
770106
|
return await run4();
|
|
770026
770107
|
} finally {
|
|
770027
|
-
if (
|
|
770028
|
-
|
|
770029
|
-
|
|
770030
|
-
|
|
770108
|
+
if (terminalElevation) {
|
|
770109
|
+
if (hadElevationMode) {
|
|
770110
|
+
process.env["OMNIUS_ELEVATION_MODE"] = previousElevationMode;
|
|
770111
|
+
} else {
|
|
770112
|
+
delete process.env["OMNIUS_ELEVATION_MODE"];
|
|
770113
|
+
}
|
|
770031
770114
|
}
|
|
770115
|
+
writeDirectTerminal(TERMINAL_MOUSE_OFF);
|
|
770032
770116
|
setRawInputMode(hadRaw);
|
|
770033
770117
|
writeDirectTerminal("\x1B[?2026l\x1B[?25h\x1B[r\x1B[0m\x1B[2J\x1B[H");
|
|
770118
|
+
if (releaseTerminal) {
|
|
770119
|
+
try {
|
|
770120
|
+
releaseTerminal();
|
|
770121
|
+
} catch {
|
|
770122
|
+
}
|
|
770123
|
+
} else if (hadMouse) {
|
|
770124
|
+
try {
|
|
770125
|
+
ctx3.enableMouse?.();
|
|
770126
|
+
} catch {
|
|
770127
|
+
}
|
|
770128
|
+
}
|
|
770034
770129
|
try {
|
|
770035
770130
|
ctx3.unlockFooter?.();
|
|
770036
770131
|
} catch {
|
|
@@ -770043,21 +770138,21 @@ ${reason}
|
|
|
770043
770138
|
ctx3.refreshDisplay?.();
|
|
770044
770139
|
} catch {
|
|
770045
770140
|
}
|
|
770046
|
-
try {
|
|
770047
|
-
if (hadMouse) {
|
|
770048
|
-
ctx3.enableMouse?.();
|
|
770049
|
-
writeDirectTerminal("\x1B[?1000h\x1B[?1006h");
|
|
770050
|
-
} else {
|
|
770051
|
-
writeDirectTerminal("\x1B[?1000l\x1B[?1002l\x1B[?1006l");
|
|
770052
|
-
}
|
|
770053
|
-
} catch {
|
|
770054
|
-
}
|
|
770055
770141
|
try {
|
|
770056
770142
|
ctx3.showPrompt?.();
|
|
770057
770143
|
} catch {
|
|
770058
770144
|
}
|
|
770059
770145
|
}
|
|
770060
770146
|
}
|
|
770147
|
+
async function withTransientTerminalPrivilegePrompt(ctx3, reason, run4) {
|
|
770148
|
+
return await withTransientTerminalSession(
|
|
770149
|
+
ctx3,
|
|
770150
|
+
"Omnius needs administrator privileges",
|
|
770151
|
+
reason,
|
|
770152
|
+
true,
|
|
770153
|
+
run4
|
|
770154
|
+
);
|
|
770155
|
+
}
|
|
770061
770156
|
async function acquireSudoCredentials(ctx3, reason) {
|
|
770062
770157
|
const isRoot = typeof process.getuid === "function" && process.getuid() === 0;
|
|
770063
770158
|
if (isRoot) return true;
|
|
@@ -770073,19 +770168,28 @@ async function acquireSudoCredentials(ctx3, reason) {
|
|
|
770073
770168
|
stdio: hasInteractiveTty ? "inherit" : "pipe"
|
|
770074
770169
|
}
|
|
770075
770170
|
);
|
|
770171
|
+
let forceTimer = null;
|
|
770076
770172
|
const timer = setTimeout(() => {
|
|
770077
770173
|
try {
|
|
770078
770174
|
child2.kill("SIGTERM");
|
|
770079
770175
|
} catch {
|
|
770080
770176
|
}
|
|
770081
|
-
|
|
770177
|
+
forceTimer = setTimeout(() => {
|
|
770178
|
+
try {
|
|
770179
|
+
child2.kill("SIGKILL");
|
|
770180
|
+
} catch {
|
|
770181
|
+
}
|
|
770182
|
+
}, 2e3);
|
|
770183
|
+
forceTimer.unref?.();
|
|
770082
770184
|
}, 6e4);
|
|
770083
770185
|
onChildExit(child2, (code8) => {
|
|
770084
770186
|
clearTimeout(timer);
|
|
770187
|
+
if (forceTimer) clearTimeout(forceTimer);
|
|
770085
770188
|
resolve110(code8 === 0);
|
|
770086
770189
|
});
|
|
770087
770190
|
onChildError(child2, () => {
|
|
770088
770191
|
clearTimeout(timer);
|
|
770192
|
+
if (forceTimer) clearTimeout(forceTimer);
|
|
770089
770193
|
resolve110(false);
|
|
770090
770194
|
});
|
|
770091
770195
|
});
|
|
@@ -774031,7 +774135,8 @@ Clone a new voice: /voice clone <wav-file> [name]`);
|
|
|
774031
774135
|
onExit: () => {
|
|
774032
774136
|
renderInfo("Neovim mode exited.");
|
|
774033
774137
|
},
|
|
774034
|
-
onFocusToTUI: ctx3.showPrompt
|
|
774138
|
+
onFocusToTUI: ctx3.showPrompt,
|
|
774139
|
+
withTerminalPassthrough: (heading, reason, run4) => withTransientTerminalSession(ctx3, heading, reason, true, run4)
|
|
774035
774140
|
});
|
|
774036
774141
|
if (err) {
|
|
774037
774142
|
renderError(err);
|
|
@@ -774203,12 +774308,22 @@ systemctl --user enable --now omnius-daemon.service || true
|
|
|
774203
774308
|
sleep 1
|
|
774204
774309
|
`;
|
|
774205
774310
|
const { spawn: spawn48 } = await import("node:child_process");
|
|
774206
|
-
await
|
|
774207
|
-
|
|
774208
|
-
|
|
774209
|
-
|
|
774210
|
-
|
|
774211
|
-
|
|
774311
|
+
await withTransientTerminalSession(
|
|
774312
|
+
ctx3,
|
|
774313
|
+
"Daemon ownership migration",
|
|
774314
|
+
"The migration may request administrator privileges.",
|
|
774315
|
+
true,
|
|
774316
|
+
() => new Promise((resolve110, reject) => {
|
|
774317
|
+
const child2 = spawn48("bash", ["-lc", takeover], {
|
|
774318
|
+
stdio: "inherit"
|
|
774319
|
+
});
|
|
774320
|
+
onChildExit(child2, (code8) => {
|
|
774321
|
+
if (code8 === 0) resolve110();
|
|
774322
|
+
else reject(new Error(`migration exited with ${code8}`));
|
|
774323
|
+
});
|
|
774324
|
+
onChildError(child2, reject);
|
|
774325
|
+
})
|
|
774326
|
+
);
|
|
774212
774327
|
renderInfo("Daemon takeover complete.");
|
|
774213
774328
|
} catch (e2) {
|
|
774214
774329
|
renderError(`Takeover failed: ${e2?.message || e2}`);
|
|
@@ -783088,7 +783203,13 @@ async function handleEndpoint(arg, ctx3, local = false) {
|
|
|
783088
783203
|
process.stdout.write(`${c3.yellow("⚠")} Could not verify
|
|
783089
783204
|
`);
|
|
783090
783205
|
if (provider.id === "ollama" && ctx3.rl) {
|
|
783091
|
-
const running = await
|
|
783206
|
+
const running = await withTransientTerminalSession(
|
|
783207
|
+
ctx3,
|
|
783208
|
+
"Ollama setup",
|
|
783209
|
+
"Installing or starting Ollama may need terminal access.",
|
|
783210
|
+
true,
|
|
783211
|
+
() => ensureOllamaRunning(normalizedUrl, ctx3.rl)
|
|
783212
|
+
);
|
|
783092
783213
|
if (running) {
|
|
783093
783214
|
try {
|
|
783094
783215
|
const retryResp = await fetch(providerUrl(transport, "models"), {
|
|
@@ -785522,8 +785643,8 @@ async function handleUpdate(subcommand, ctx3) {
|
|
|
785522
785643
|
)
|
|
785523
785644
|
);
|
|
785524
785645
|
renderInfo("Checking for updates...");
|
|
785525
|
-
const [
|
|
785526
|
-
|
|
785646
|
+
const [updateCheck, sudoInfo] = await Promise.all([
|
|
785647
|
+
queryUpdateStatus(currentVersion, true),
|
|
785527
785648
|
(async () => {
|
|
785528
785649
|
try {
|
|
785529
785650
|
const prefix = await execA("npm prefix -g", { timeout: 5e3 });
|
|
@@ -785539,10 +785660,23 @@ async function handleUpdate(subcommand, ctx3) {
|
|
|
785539
785660
|
}
|
|
785540
785661
|
})()
|
|
785541
785662
|
]);
|
|
785663
|
+
const info = updateCheck.status === "available" && updateCheck.latestVersion ? {
|
|
785664
|
+
updateAvailable: true,
|
|
785665
|
+
currentVersion,
|
|
785666
|
+
latestVersion: updateCheck.latestVersion
|
|
785667
|
+
} : null;
|
|
785542
785668
|
const needsSudo = sudoInfo;
|
|
785543
|
-
|
|
785544
|
-
`v${currentVersion} —
|
|
785545
|
-
)
|
|
785669
|
+
if (info) {
|
|
785670
|
+
renderInfo(`v${currentVersion} — update available → v${info.latestVersion}`);
|
|
785671
|
+
} else if (updateCheck.status === "current") {
|
|
785672
|
+
renderInfo(
|
|
785673
|
+
`v${currentVersion} — npm registry latest is v${updateCheck.latestVersion ?? currentVersion} (no newer release visible yet)`
|
|
785674
|
+
);
|
|
785675
|
+
} else {
|
|
785676
|
+
renderWarning(
|
|
785677
|
+
`v${currentVersion} — npm registry check unavailable; Quick Update status is unknown`
|
|
785678
|
+
);
|
|
785679
|
+
}
|
|
785546
785680
|
let ollamaUpdate = null;
|
|
785547
785681
|
try {
|
|
785548
785682
|
const { checkOllamaUpdate: checkOllamaUpdate2 } = await Promise.resolve().then(() => (init_setup(), setup_exports));
|
|
@@ -785596,7 +785730,9 @@ async function handleUpdate(subcommand, ctx3) {
|
|
|
785596
785730
|
} else {
|
|
785597
785731
|
items.push({
|
|
785598
785732
|
key: "info_avail",
|
|
785599
|
-
label: c3.dim(
|
|
785733
|
+
label: c3.dim(
|
|
785734
|
+
updateCheck.status === "unavailable" ? "Primary package registry status unavailable" : `Registry latest: v${updateCheck.latestVersion ?? currentVersion} (no newer release visible yet)`
|
|
785735
|
+
),
|
|
785600
785736
|
kind: "info"
|
|
785601
785737
|
});
|
|
785602
785738
|
}
|
|
@@ -785836,7 +785972,13 @@ async function handleUpdate(subcommand, ctx3) {
|
|
|
785836
785972
|
}
|
|
785837
785973
|
if (menuResult.key === "quick") {
|
|
785838
785974
|
if (!info) {
|
|
785839
|
-
|
|
785975
|
+
if (updateCheck.status === "unavailable") {
|
|
785976
|
+
renderWarning("Quick Update cannot verify npm right now; retry /update quick.");
|
|
785977
|
+
} else {
|
|
785978
|
+
renderInfo(
|
|
785979
|
+
`No newer release is visible on npm yet (registry latest: v${updateCheck.latestVersion ?? currentVersion}).`
|
|
785980
|
+
);
|
|
785981
|
+
}
|
|
785840
785982
|
return;
|
|
785841
785983
|
}
|
|
785842
785984
|
const updateOverlay = startInstallOverlay(info.latestVersion);
|
|
@@ -786526,7 +786668,13 @@ async function switchModel(query, ctx3, local = false) {
|
|
|
786526
786668
|
`Model "${query}" not found locally. Pulling from Ollama registry...`
|
|
786527
786669
|
);
|
|
786528
786670
|
try {
|
|
786529
|
-
await
|
|
786671
|
+
await withTransientTerminalSession(
|
|
786672
|
+
ctx3,
|
|
786673
|
+
"Ollama model download",
|
|
786674
|
+
`Pulling ${query}; an older Ollama installation may need an update first.`,
|
|
786675
|
+
true,
|
|
786676
|
+
() => pullModelWithAutoUpdate(query)
|
|
786677
|
+
);
|
|
786530
786678
|
const refreshedModels = await fetchModels(
|
|
786531
786679
|
ctx3.config.backendUrl,
|
|
786532
786680
|
ctx3.config.apiKey
|
|
@@ -786914,6 +787062,8 @@ async function showExposeDashboard(gateway, rl, ctx3) {
|
|
|
786914
787062
|
process.stdin.setRawMode(true);
|
|
786915
787063
|
}
|
|
786916
787064
|
process.stdin.resume();
|
|
787065
|
+
ctx3?.suspendMouse?.();
|
|
787066
|
+
writeDirectTerminal(TERMINAL_MOUSE_OFF);
|
|
786917
787067
|
enterOverlay();
|
|
786918
787068
|
overlayWrite("\x1B[?1049h\x1B[?25l");
|
|
786919
787069
|
renderDashboard();
|
|
@@ -786952,16 +787102,10 @@ async function showExposeDashboard(gateway, rl, ctx3) {
|
|
|
786952
787102
|
}
|
|
786953
787103
|
}
|
|
786954
787104
|
};
|
|
786955
|
-
if (process.stdout.isTTY) {
|
|
786956
|
-
process.stdout.write("\x1B[?1000l\x1B[?1002l\x1B[?1006l");
|
|
786957
|
-
}
|
|
786958
787105
|
process.stdin.on("data", onData);
|
|
786959
787106
|
const cleanup = () => {
|
|
786960
787107
|
stopped = true;
|
|
786961
787108
|
process.stdin.removeListener("data", onData);
|
|
786962
|
-
if (process.stdout.isTTY) {
|
|
786963
|
-
process.stdout.write("\x1B[?1000h\x1B[?1006h");
|
|
786964
|
-
}
|
|
786965
787109
|
};
|
|
786966
787110
|
const origResolve = resolve110;
|
|
786967
787111
|
resolve110 = (() => {
|
|
@@ -786995,7 +787139,7 @@ async function showExposeDashboard(gateway, rl, ctx3) {
|
|
|
786995
787139
|
renderInfo("Expose gateway stopped.");
|
|
786996
787140
|
}
|
|
786997
787141
|
}
|
|
786998
|
-
var OMNIUS_PINNED_DEPENDENCY_SPECS, NEXUS_DIRECTORY_ORIGIN, NEXUS_SPONSORS_URL, _sponsorHeartbeatTimer, _lastRegisteredSponsorPayload, __COMMAND_REGISTRY, liveDashboardBlocks, DASH_INTERNAL, localGpuMetricsCache, localGpuMetricsProbeAt, localGpuMetricsProbeInFlight;
|
|
787142
|
+
var OMNIUS_PINNED_DEPENDENCY_SPECS, NEXUS_DIRECTORY_ORIGIN, NEXUS_SPONSORS_URL, _sponsorHeartbeatTimer, _lastRegisteredSponsorPayload, __COMMAND_REGISTRY, TERMINAL_MOUSE_OFF, liveDashboardBlocks, DASH_INTERNAL, localGpuMetricsCache, localGpuMetricsProbeAt, localGpuMetricsProbeInFlight;
|
|
786999
787143
|
var init_commands = __esm({
|
|
787000
787144
|
"packages/cli/src/tui/commands.ts"() {
|
|
787001
787145
|
init_model_picker();
|
|
@@ -787045,6 +787189,7 @@ var init_commands = __esm({
|
|
|
787045
787189
|
_sponsorHeartbeatTimer = null;
|
|
787046
787190
|
_lastRegisteredSponsorPayload = null;
|
|
787047
787191
|
__COMMAND_REGISTRY = /* @__PURE__ */ new Map();
|
|
787192
|
+
TERMINAL_MOUSE_OFF = "\x1B[?9l\x1B[?1000l\x1B[?1001l\x1B[?1002l\x1B[?1003l\x1B[?1005l\x1B[?1006l\x1B[?1015l\x1B[?1016l";
|
|
787048
787193
|
(function registerNetworkCommandsOnce() {
|
|
787049
787194
|
if (findSlashCommand("access")) return;
|
|
787050
787195
|
registerSlashCommand({
|
|
@@ -845275,8 +845420,7 @@ ${result.summary}`
|
|
|
845275
845420
|
statusBar.suspendContentLayer();
|
|
845276
845421
|
banner.renderCurrentFrame();
|
|
845277
845422
|
statusBar.resumeContentLayer();
|
|
845278
|
-
statusBar.
|
|
845279
|
-
statusBar.enableMouseTracking();
|
|
845423
|
+
statusBar.restoreMouseTracking();
|
|
845280
845424
|
if (statusBar.isActive) {
|
|
845281
845425
|
statusBar.refreshDisplay();
|
|
845282
845426
|
}
|
|
@@ -845441,11 +845585,12 @@ ${result.summary}`
|
|
|
845441
845585
|
let setupReady = false;
|
|
845442
845586
|
const setupTasks = [];
|
|
845443
845587
|
let updateNotified = false;
|
|
845444
|
-
|
|
845445
|
-
if (
|
|
845446
|
-
|
|
845588
|
+
queryUpdateStatus(version5).then((updateCheck) => {
|
|
845589
|
+
if (updateCheck.status === "available" && updateCheck.latestVersion) {
|
|
845590
|
+
const latestVersion = updateCheck.latestVersion;
|
|
845591
|
+
banner.setUpdateAvailable(latestVersion);
|
|
845447
845592
|
try {
|
|
845448
|
-
statusBar.setUpdateAvailable(
|
|
845593
|
+
statusBar.setUpdateAvailable(latestVersion);
|
|
845449
845594
|
} catch {
|
|
845450
845595
|
}
|
|
845451
845596
|
const vTextLen = ` Omnius v${version5}`.length;
|
|
@@ -845460,12 +845605,12 @@ ${result.summary}`
|
|
|
845460
845605
|
updateNotified = true;
|
|
845461
845606
|
if (statusBar?.isActive) statusBar.beginContentWrite();
|
|
845462
845607
|
renderInfo(
|
|
845463
|
-
`Update available: v${
|
|
845608
|
+
`Update available: v${updateCheck.currentVersion} → v${c3.bold(c3.green(latestVersion))}. Click version ↑ or run /update.`
|
|
845464
845609
|
);
|
|
845465
845610
|
if (statusBar?.isActive) statusBar.endContentWrite();
|
|
845466
845611
|
};
|
|
845467
845612
|
if (!isResumed) writeMsg();
|
|
845468
|
-
} else {
|
|
845613
|
+
} else if (updateCheck.status === "current") {
|
|
845469
845614
|
try {
|
|
845470
845615
|
statusBar.setUpdateAvailable(null);
|
|
845471
845616
|
} catch {
|
|
@@ -845473,26 +845618,27 @@ ${result.summary}`
|
|
|
845473
845618
|
}
|
|
845474
845619
|
}).catch(() => {
|
|
845475
845620
|
});
|
|
845476
|
-
const AUTO_UPDATE_INTERVAL_MS =
|
|
845621
|
+
const AUTO_UPDATE_INTERVAL_MS = UPDATE_CHECK_INTERVAL_MS;
|
|
845477
845622
|
const autoUpdateTimer = setInterval(() => {
|
|
845478
845623
|
const updateMode = savedSettings.updateMode ?? "auto";
|
|
845479
845624
|
if (updateMode === "manual") return;
|
|
845480
|
-
|
|
845481
|
-
if (
|
|
845625
|
+
queryUpdateStatus(version5).then((updateCheck) => {
|
|
845626
|
+
if (updateCheck.status === "available" && updateCheck.latestVersion) {
|
|
845627
|
+
const latestVersion = updateCheck.latestVersion;
|
|
845482
845628
|
try {
|
|
845483
|
-
statusBar.setUpdateAvailable(
|
|
845629
|
+
statusBar.setUpdateAvailable(latestVersion);
|
|
845484
845630
|
} catch {
|
|
845485
845631
|
}
|
|
845486
|
-
banner.setUpdateAvailable(
|
|
845632
|
+
banner.setUpdateAvailable(latestVersion);
|
|
845487
845633
|
if (statusBar?.isActive && !statusBar.isStreaming && !updateNotified) {
|
|
845488
845634
|
updateNotified = true;
|
|
845489
845635
|
statusBar.beginContentWrite();
|
|
845490
845636
|
renderInfo(
|
|
845491
|
-
`Update available: v${version5} → v${
|
|
845637
|
+
`Update available: v${version5} → v${latestVersion}. Run /update to install.`
|
|
845492
845638
|
);
|
|
845493
845639
|
statusBar.endContentWrite();
|
|
845494
845640
|
}
|
|
845495
|
-
} else {
|
|
845641
|
+
} else if (updateCheck.status === "current") {
|
|
845496
845642
|
try {
|
|
845497
845643
|
statusBar.setUpdateAvailable(null);
|
|
845498
845644
|
} catch {
|
|
@@ -846209,7 +846355,7 @@ This is an independent background session started from /background.`
|
|
|
846209
846355
|
},
|
|
846210
846356
|
() => {
|
|
846211
846357
|
statusBar.cancelMouseIdle();
|
|
846212
|
-
statusBar.
|
|
846358
|
+
statusBar.restoreMouseTracking();
|
|
846213
846359
|
},
|
|
846214
846360
|
(type, col, row2) => {
|
|
846215
846361
|
statusBar.handlePointerEvent(type, col, row2);
|
|
@@ -846269,7 +846415,7 @@ This is an independent background session started from /background.`
|
|
|
846269
846415
|
statusBar.endContentWrite();
|
|
846270
846416
|
}
|
|
846271
846417
|
statusBar.cancelMouseIdle();
|
|
846272
|
-
statusBar.
|
|
846418
|
+
statusBar.restoreMouseTracking();
|
|
846273
846419
|
statusBar.refreshHeaderContent();
|
|
846274
846420
|
}
|
|
846275
846421
|
},
|
|
@@ -846327,8 +846473,7 @@ This is an independent background session started from /background.`
|
|
|
846327
846473
|
}
|
|
846328
846474
|
headerBtnActive = null;
|
|
846329
846475
|
if (statusBar.isActive) {
|
|
846330
|
-
statusBar.
|
|
846331
|
-
statusBar.enableMouseTracking();
|
|
846476
|
+
statusBar.restoreMouseTracking();
|
|
846332
846477
|
banner.renderCurrentFrame();
|
|
846333
846478
|
statusBar.refreshDisplay();
|
|
846334
846479
|
}
|
|
@@ -847238,12 +847383,37 @@ This is an independent background session started from /background.`
|
|
|
847238
847383
|
disableMouse() {
|
|
847239
847384
|
statusBar.disableMouseTracking();
|
|
847240
847385
|
},
|
|
847386
|
+
suspendMouse() {
|
|
847387
|
+
statusBar.suspendMouseTracking();
|
|
847388
|
+
},
|
|
847241
847389
|
enableMouse() {
|
|
847242
847390
|
statusBar.enableMouseTracking();
|
|
847243
847391
|
},
|
|
847244
847392
|
isMouseEnabled() {
|
|
847245
847393
|
return statusBar.isMouseTrackingEnabled?.() ?? true;
|
|
847246
847394
|
},
|
|
847395
|
+
acquireTerminalPassthrough() {
|
|
847396
|
+
const stdinWasPaused = process.stdin.isPaused();
|
|
847397
|
+
const releaseMouse = statusBar.acquireTerminalPassthrough();
|
|
847398
|
+
try {
|
|
847399
|
+
rl.pause?.();
|
|
847400
|
+
process.stdin.pause();
|
|
847401
|
+
} catch {
|
|
847402
|
+
}
|
|
847403
|
+
let released = false;
|
|
847404
|
+
return () => {
|
|
847405
|
+
if (released) return;
|
|
847406
|
+
released = true;
|
|
847407
|
+
releaseMouse();
|
|
847408
|
+
if (!stdinWasPaused) {
|
|
847409
|
+
try {
|
|
847410
|
+
rl.resume?.();
|
|
847411
|
+
process.stdin.resume();
|
|
847412
|
+
} catch {
|
|
847413
|
+
}
|
|
847414
|
+
}
|
|
847415
|
+
};
|
|
847416
|
+
},
|
|
847247
847417
|
stopBanner() {
|
|
847248
847418
|
banner.stop();
|
|
847249
847419
|
if (carousel.isRunning) carousel.stop();
|
|
@@ -849897,7 +850067,7 @@ ${result.content.slice(0, 2e3)}${result.content.length > 2e3 ? "\n[truncated]" :
|
|
|
849897
850067
|
passwordShowPlain = false;
|
|
849898
850068
|
sessionSudoPassword = input;
|
|
849899
850069
|
activeTask.runner.setSudoPassword(input);
|
|
849900
|
-
statusBar.
|
|
850070
|
+
statusBar.restoreMouseTracking();
|
|
849901
850071
|
statusBar.setInputStateProvider(() => ({
|
|
849902
850072
|
line: rl.line ?? "",
|
|
849903
850073
|
cursor: rl.cursor ?? 0
|
package/dist/launcher.cjs
CHANGED
|
@@ -8,22 +8,27 @@ const { spawn, spawnSync } = require('node:child_process');
|
|
|
8
8
|
const { resolve } = require('node:path');
|
|
9
9
|
|
|
10
10
|
function resetTerminal() {
|
|
11
|
-
|
|
12
|
-
//
|
|
11
|
+
// Disable reporting before canonical/ECHO mode returns. Reversing this order
|
|
12
|
+
// lets buffered pointer reports appear as literal ESC[<35;x;yM text.
|
|
13
13
|
const ESC = '\x1B';
|
|
14
14
|
try {
|
|
15
15
|
process.stdout.write(
|
|
16
16
|
ESC + '[?25h' + // show cursor
|
|
17
|
+
ESC + '[?9l' + // legacy X10 mouse off
|
|
17
18
|
ESC + '[?1000l' + // X10 mouse off
|
|
19
|
+
ESC + '[?1001l' + // highlight tracking off
|
|
18
20
|
ESC + '[?1002l' + // button-event mouse off
|
|
19
21
|
ESC + '[?1003l' + // any-event mouse off
|
|
22
|
+
ESC + '[?1005l' + // UTF-8 mouse encoding off
|
|
20
23
|
ESC + '[?1006l' + // SGR mouse off
|
|
21
24
|
ESC + '[?1015l' + // urxvt mouse off
|
|
25
|
+
ESC + '[?1016l' + // SGR pixel mouse off
|
|
22
26
|
ESC + '[?2004l' + // bracketed paste off
|
|
23
27
|
ESC + '[?1049l' + // exit alt screen
|
|
24
28
|
ESC + '[0m' // reset attributes
|
|
25
29
|
);
|
|
26
30
|
} catch {}
|
|
31
|
+
try { if (process.stdin.isTTY && typeof process.stdin.setRawMode === 'function') process.stdin.setRawMode(false); } catch {}
|
|
27
32
|
// stty sane (POSIX)
|
|
28
33
|
if (process.platform !== 'win32' && process.stdin.isTTY) {
|
|
29
34
|
try { spawnSync('stty', ['sane'], { stdio: 'inherit' }); } catch {}
|
package/dist/update-worker.js
CHANGED
|
@@ -296726,7 +296726,7 @@ import { basename as basename8, dirname as dirname9, join as join17 } from "node
|
|
|
296726
296726
|
|
|
296727
296727
|
// packages/cli/src/updater.ts
|
|
296728
296728
|
import { join as join16 } from "node:path";
|
|
296729
|
-
var
|
|
296729
|
+
var UPDATE_CHECK_INTERVAL_MS = 60 * 1e3;
|
|
296730
296730
|
var CACHE_DIR = resolveUpdatePaths().stateDir;
|
|
296731
296731
|
var CACHE_FILE = join16(CACHE_DIR, "registry-check.json");
|
|
296732
296732
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.707",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.707",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED