omnius 1.0.682 → 1.0.684

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 CHANGED
@@ -76076,12 +76076,12 @@ var init_config2 = __esm({
76076
76076
  this.config.minSavingsThreshold = Math.max(0, Math.min(1, threshold));
76077
76077
  this.save();
76078
76078
  }
76079
- setAutoCompress(enabled2) {
76080
- this.config.autoCompress = enabled2;
76079
+ setAutoCompress(enabled3) {
76080
+ this.config.autoCompress = enabled3;
76081
76081
  this.save();
76082
76082
  }
76083
- setKeepOriginal(enabled2) {
76084
- this.config.keepOriginal = enabled2;
76083
+ setKeepOriginal(enabled3) {
76084
+ this.config.keepOriginal = enabled3;
76085
76085
  this.save();
76086
76086
  }
76087
76087
  setCompressionBatchSize(size) {
@@ -92313,13 +92313,13 @@ ${earlyError ? "\n" + earlyError : ""}${earlyOutput ? "\n" + earlyOutput : ""}`;
92313
92313
  if (status.networkStack) {
92314
92314
  const ns = status.networkStack;
92315
92315
  const disc = ns.discovery || {};
92316
- const enabled2 = Object.entries(disc).filter(([, value2]) => value2 === true).map(([key2]) => key2).join(", ");
92316
+ const enabled3 = Object.entries(disc).filter(([, value2]) => value2 === true).map(([key2]) => key2).join(", ");
92317
92317
  lines.push(` Network role: ${ns.role || "light"}`);
92318
92318
  lines.push(` Profile: ${ns.publicMesh === true ? "public mesh (explicit)" : "local LAN"}`);
92319
92319
  if (Number.isFinite(Number(ns.maxPeers))) {
92320
92320
  lines.push(` Peer budget: ${ns.maxPeers} (dropped: ${ns.droppedPeers || 0})`);
92321
92321
  }
92322
- lines.push(` Discovery: ${enabled2 || "none"}`);
92322
+ lines.push(` Discovery: ${enabled3 || "none"}`);
92323
92323
  lines.push(` Signaling: ${ns.signalingServer || "n/a"}`);
92324
92324
  if (Array.isArray(ns.manifestUrls) && ns.manifestUrls.length > 0) {
92325
92325
  lines.push(` Bootstrap manifests: ${ns.manifestUrls.length}`);
@@ -118577,7 +118577,7 @@ function setup(env2) {
118577
118577
  createDebug.coerce = coerce2;
118578
118578
  createDebug.disable = disable;
118579
118579
  createDebug.enable = enable;
118580
- createDebug.enabled = enabled2;
118580
+ createDebug.enabled = enabled3;
118581
118581
  createDebug.humanize = c2;
118582
118582
  createDebug.destroy = destroy;
118583
118583
  Object.keys(env2).forEach((key2) => {
@@ -118697,7 +118697,7 @@ function setup(env2) {
118697
118697
  createDebug.enable("");
118698
118698
  return namespaces;
118699
118699
  }
118700
- function enabled2(name10) {
118700
+ function enabled3(name10) {
118701
118701
  if (name10[name10.length - 1] === "*") {
118702
118702
  return true;
118703
118703
  }
@@ -160293,7 +160293,7 @@ var require_common = __commonJS({
160293
160293
  createDebug.coerce = coerce2;
160294
160294
  createDebug.disable = disable;
160295
160295
  createDebug.enable = enable;
160296
- createDebug.enabled = enabled2;
160296
+ createDebug.enabled = enabled3;
160297
160297
  createDebug.humanize = require_ms();
160298
160298
  createDebug.destroy = destroy;
160299
160299
  Object.keys(env2).forEach((key2) => {
@@ -160432,7 +160432,7 @@ var require_common = __commonJS({
160432
160432
  createDebug.enable("");
160433
160433
  return namespaces;
160434
160434
  }
160435
- function enabled2(name10) {
160435
+ function enabled3(name10) {
160436
160436
  for (const skip of createDebug.skips) {
160437
160437
  if (matchesTemplate(name10, skip)) {
160438
160438
  return false;
@@ -366891,13 +366891,13 @@ ${lanes.join("\n")}
366891
366891
  }
366892
366892
  }
366893
366893
  var nullTimer = { enter: noop2, exit: noop2 };
366894
- var enabled2 = false;
366894
+ var enabled3 = false;
366895
366895
  var timeorigin = timestamp2();
366896
366896
  var marks = /* @__PURE__ */ new Map();
366897
366897
  var counts = /* @__PURE__ */ new Map();
366898
366898
  var durations = /* @__PURE__ */ new Map();
366899
366899
  function mark(markName) {
366900
- if (enabled2) {
366900
+ if (enabled3) {
366901
366901
  const count = counts.get(markName) ?? 0;
366902
366902
  counts.set(markName, count + 1);
366903
366903
  marks.set(markName, timestamp2());
@@ -366908,7 +366908,7 @@ ${lanes.join("\n")}
366908
366908
  }
366909
366909
  }
366910
366910
  function measure(measureName, startMarkName, endMarkName) {
366911
- if (enabled2) {
366911
+ if (enabled3) {
366912
366912
  const end = (endMarkName !== void 0 ? marks.get(endMarkName) : void 0) ?? timestamp2();
366913
366913
  const start2 = (startMarkName !== void 0 ? marks.get(startMarkName) : void 0) ?? timeorigin;
366914
366914
  const previousDuration = durations.get(measureName) || 0;
@@ -366944,12 +366944,12 @@ ${lanes.join("\n")}
366944
366944
  performanceImpl == null ? void 0 : performanceImpl.clearMarks(name10);
366945
366945
  }
366946
366946
  function isEnabled() {
366947
- return enabled2;
366947
+ return enabled3;
366948
366948
  }
366949
366949
  function enable(system = sys) {
366950
366950
  var _a2;
366951
- if (!enabled2) {
366952
- enabled2 = true;
366951
+ if (!enabled3) {
366952
+ enabled3 = true;
366953
366953
  perfHooks || (perfHooks = tryGetNativePerformanceHooks());
366954
366954
  if (perfHooks == null ? void 0 : perfHooks.performance) {
366955
366955
  timeorigin = perfHooks.performance.timeOrigin;
@@ -366961,12 +366961,12 @@ ${lanes.join("\n")}
366961
366961
  return true;
366962
366962
  }
366963
366963
  function disable() {
366964
- if (enabled2) {
366964
+ if (enabled3) {
366965
366965
  marks.clear();
366966
366966
  counts.clear();
366967
366967
  durations.clear();
366968
366968
  performanceImpl = void 0;
366969
- enabled2 = false;
366969
+ enabled3 = false;
366970
366970
  }
366971
366971
  }
366972
366972
  var tracing;
@@ -582982,8 +582982,8 @@ var require_ts_morph = __commonJS({
582982
582982
  }
582983
582983
  var EnableableLogger = class {
582984
582984
  #enabled = false;
582985
- setEnabled(enabled2) {
582986
- this.#enabled = enabled2;
582985
+ setEnabled(enabled3) {
582986
+ this.#enabled = enabled3;
582987
582987
  }
582988
582988
  log(text3) {
582989
582989
  if (this.#enabled)
@@ -602567,8 +602567,8 @@ Node text: ${this.#forgottenText}`;
602567
602567
  for (const file of this.#getUnsavedSourceFiles())
602568
602568
  file.saveSync();
602569
602569
  }
602570
- enableLogging(enabled2 = true) {
602571
- this._context.logger.setEnabled(enabled2);
602570
+ enableLogging(enabled3 = true) {
602571
+ this._context.logger.setEnabled(enabled3);
602572
602572
  }
602573
602573
  #getUnsavedSourceFiles() {
602574
602574
  return Array.from(getUnsavedIterator(this._context.compilerFactory.getSourceFilesByDirectoryDepth()));
@@ -624464,15 +624464,15 @@ var init_registry3 = __esm({
624464
624464
  const existing = this._plugins.get(manifest.name);
624465
624465
  if (existing)
624466
624466
  return existing;
624467
- const enabled2 = !this._disabledPlugins.has(manifest.name);
624467
+ const enabled3 = !this._disabledPlugins.has(manifest.name);
624468
624468
  const hookHandlers = [];
624469
624469
  const plugin = {
624470
624470
  manifest,
624471
624471
  hookHandlers,
624472
- enabled: enabled2
624472
+ enabled: enabled3
624473
624473
  };
624474
624474
  this._plugins.set(manifest.name, plugin);
624475
- if (enabled2) {
624475
+ if (enabled3) {
624476
624476
  this._loadPluginModule(plugin);
624477
624477
  }
624478
624478
  return plugin;
@@ -695449,8 +695449,8 @@ async function readUserSystemctl(args, timeout2 = 5e3) {
695449
695449
  }
695450
695450
  }
695451
695451
  async function hasManagedDaemonService() {
695452
- const enabled2 = await runUserSystemctl(["is-enabled", "omnius-daemon.service"], 5e3);
695453
- if (enabled2.ok) return true;
695452
+ const enabled3 = await runUserSystemctl(["is-enabled", "omnius-daemon.service"], 5e3);
695453
+ if (enabled3.ok) return true;
695454
695454
  const active = await runUserSystemctl(["is-active", "omnius-daemon.service"], 5e3);
695455
695455
  return active.ok;
695456
695456
  }
@@ -704267,8 +704267,8 @@ var init_live_sensors = __esm({
704267
704267
  setLiveSpeechSink(sink) {
704268
704268
  this.liveSpeechSink = sink ?? null;
704269
704269
  }
704270
- setLiveSpeechEnabled(enabled2) {
704271
- this.liveSpeechEnabled = enabled2;
704270
+ setLiveSpeechEnabled(enabled3) {
704271
+ this.liveSpeechEnabled = enabled3;
704272
704272
  }
704273
704273
  setLiveTtsSpeakingSource(source) {
704274
704274
  this.liveTtsSpeaking = source ?? null;
@@ -704419,18 +704419,18 @@ var init_live_sensors = __esm({
704419
704419
  const target = device2 || this.config.selectedCamera;
704420
704420
  return target ? normalizeLiveCameraFps(this.config.cameraStreams?.[target]?.fps ?? DEFAULT_CAMERA_FPS) : DEFAULT_CAMERA_FPS;
704421
704421
  }
704422
- setCameraStreamEnabled(device2, enabled2) {
704422
+ setCameraStreamEnabled(device2, enabled3) {
704423
704423
  const target = device2 || this.config.selectedCamera;
704424
704424
  if (!target) return null;
704425
704425
  const current = this.config.cameraStreams?.[target];
704426
704426
  const next = {
704427
- enabled: enabled2,
704427
+ enabled: enabled3,
704428
704428
  resolution: current?.resolution ?? DEFAULT_CAMERA_RESOLUTION,
704429
704429
  fps: current?.fps ?? DEFAULT_CAMERA_FPS
704430
704430
  };
704431
704431
  this.config = {
704432
704432
  ...this.config,
704433
- selectedCamera: enabled2 ? target : this.config.selectedCamera,
704433
+ selectedCamera: enabled3 ? target : this.config.selectedCamera,
704434
704434
  cameraStreams: {
704435
704435
  ...this.config.cameraStreams ?? {},
704436
704436
  [target]: next
@@ -710625,7 +710625,7 @@ function getAgentToolCommandPolicy(command) {
710625
710625
  };
710626
710626
  }
710627
710627
  if (!cmd.surfaces.agentTool) {
710628
- const flags = Object.entries(cmd.safety).filter(([, enabled2]) => enabled2).map(([flag]) => flag).join(", ");
710628
+ const flags = Object.entries(cmd.safety).filter(([, enabled3]) => enabled3).map(([flag]) => flag).join(", ");
710629
710629
  return {
710630
710630
  allowed: false,
710631
710631
  name: cmd.name,
@@ -714230,14 +714230,14 @@ function ansi2(code8, text3) {
714230
714230
  function fg256(code8, text3) {
714231
714231
  return stdoutIsTTY() ? `\x1B[38;5;${code8}m${text3}\x1B[0m` : text3;
714232
714232
  }
714233
- function setEmojisEnabled(enabled2) {
714234
- _emojisEnabled = enabled2;
714233
+ function setEmojisEnabled(enabled3) {
714234
+ _emojisEnabled = enabled3;
714235
714235
  }
714236
714236
  function getEmojisEnabled() {
714237
714237
  return _emojisEnabled;
714238
714238
  }
714239
- function setColorsEnabled(enabled2) {
714240
- _colorsEnabled = enabled2;
714239
+ function setColorsEnabled(enabled3) {
714240
+ _colorsEnabled = enabled3;
714241
714241
  }
714242
714242
  function getColorsEnabled() {
714243
714243
  return _colorsEnabled;
@@ -724847,6 +724847,42 @@ var init_dist9 = __esm({
724847
724847
  }
724848
724848
  });
724849
724849
 
724850
+ // packages/cli/src/tui/terminal-capabilities.ts
724851
+ function enabled2(value2) {
724852
+ return /^(?:1|true|yes|on)$/i.test(value2?.trim() ?? "");
724853
+ }
724854
+ function isLimitedTerminal(env2) {
724855
+ const term = (env2["TERM"] ?? "").trim().toLowerCase();
724856
+ return /^(?:dumb|linux|cons25|vt100|ansi|unknown)$/.test(term);
724857
+ }
724858
+ function requestsCompatibleChrome(env2) {
724859
+ const profile = (env2["OMNIUS_TUI_PROFILE"] ?? "").trim().toLowerCase();
724860
+ const client = (env2["OMNIUS_TUI_CLIENT_PLATFORM"] ?? "").trim().toLowerCase();
724861
+ return profile === "compatible" || profile === "static" || enabled2(env2["OMNIUS_TUI_STATIC_CHROME"]) || client === "darwin" || client === "macos" || client === "win32" || client === "windows";
724862
+ }
724863
+ function prefersStaticTuiChrome(options2 = {}) {
724864
+ const platform13 = options2.platform ?? process.platform;
724865
+ const env2 = options2.env ?? process.env;
724866
+ if (platform13 === "darwin" || platform13 === "win32") return true;
724867
+ if (requestsCompatibleChrome(env2)) return true;
724868
+ if (enabled2(env2["OMNIUS_TUI_ANIMATED_CHROME"])) return false;
724869
+ if (isLimitedTerminal(env2)) return true;
724870
+ return false;
724871
+ }
724872
+ function supportsOrnamentalTuiButtonEdges(options2 = {}) {
724873
+ const platform13 = options2.platform ?? process.platform;
724874
+ const env2 = options2.env ?? process.env;
724875
+ if (platform13 === "darwin" || platform13 === "win32") return false;
724876
+ if (requestsCompatibleChrome(env2) || isLimitedTerminal(env2)) return false;
724877
+ const locale = (env2["LC_ALL"] || env2["LC_CTYPE"] || env2["LANG"] || "").trim();
724878
+ if (locale && !/utf-?8/i.test(locale)) return false;
724879
+ return true;
724880
+ }
724881
+ var init_terminal_capabilities = __esm({
724882
+ "packages/cli/src/tui/terminal-capabilities.ts"() {
724883
+ }
724884
+ });
724885
+
724850
724886
  // packages/cli/src/tui/stageIndicator.ts
724851
724887
  function stageForToolName(toolName) {
724852
724888
  const name10 = String(toolName ?? "").trim().toLowerCase();
@@ -724926,6 +724962,9 @@ function supportsTruecolor() {
724926
724962
  term
724927
724963
  );
724928
724964
  }
724965
+ function supportsAnimatedTuiChrome() {
724966
+ return supportsTruecolor() && !prefersStaticTuiChrome();
724967
+ }
724929
724968
  function isSweepingStage(stage2) {
724930
724969
  return SWEEPING_STAGES.has(stage2);
724931
724970
  }
@@ -725033,6 +725072,7 @@ function onStageChange(cb) {
725033
725072
  var STAGE_META, SWEEPING_STAGES, MAX_GRADIENT_COLS, STAGE_HUE_SPAN, HUE_LUT, _currentStage, _currentDetail, _subscribers;
725034
725073
  var init_stageIndicator = __esm({
725035
725074
  "packages/cli/src/tui/stageIndicator.ts"() {
725075
+ init_terminal_capabilities();
725036
725076
  STAGE_META = {
725037
725077
  idle: { label: "idle", weight: "neutral", baseHue: 210 },
725038
725078
  planning: { label: "planning", weight: "active", baseHue: 265 },
@@ -725113,7 +725153,7 @@ function appendSubAgentActivity(entry, value2, maxLines = 3) {
725113
725153
  }
725114
725154
  entry.updatedAt = Date.now();
725115
725155
  }
725116
- function buildSubAgentLiveBlockLines(sourceEntries, width, phase, truecolor = supportsTruecolor()) {
725156
+ function buildSubAgentLiveBlockLines(sourceEntries, width, phase, truecolor = supportsAnimatedTuiChrome()) {
725117
725157
  const entries2 = Array.from(sourceEntries).slice(-MAX_PREVIEW_AGENTS);
725118
725158
  if (entries2.length === 0) return [];
725119
725159
  const w = Math.max(48, Math.floor(width));
@@ -725218,7 +725258,7 @@ function trajectoryStage(checkpoint) {
725218
725258
  return "planning";
725219
725259
  }
725220
725260
  }
725221
- function buildTrajectoryLiveBlockLines(checkpoint, width, phase, truecolor = supportsTruecolor()) {
725261
+ function buildTrajectoryLiveBlockLines(checkpoint, width, phase, truecolor = supportsAnimatedTuiChrome()) {
725222
725262
  if (!checkpoint) return [];
725223
725263
  const w = Math.max(48, Math.floor(width));
725224
725264
  const inner = Math.max(1, w - 4);
@@ -725284,7 +725324,7 @@ function buildTrajectoryLiveBlockLines(checkpoint, width, phase, truecolor = sup
725284
725324
  lines.push(paintBlockBorder(bottom, stage2, phase, truecolor));
725285
725325
  return lines;
725286
725326
  }
725287
- function buildTrajectoryLiveBlockCollapsedLine(checkpoint, width, phase, truecolor = supportsTruecolor()) {
725327
+ function buildTrajectoryLiveBlockCollapsedLine(checkpoint, width, phase, truecolor = supportsAnimatedTuiChrome()) {
725288
725328
  if (!checkpoint) return [];
725289
725329
  const stage2 = trajectoryStage(checkpoint);
725290
725330
  const w = Math.max(24, Math.floor(width));
@@ -725348,7 +725388,7 @@ function expandedRowCap() {
725348
725388
  }
725349
725389
  function paintActiveRowGradient(text3) {
725350
725390
  const { stage: stage2 } = getStage();
725351
- if (!supportsTruecolor() || !isSweepingStage(stage2)) return null;
725391
+ if (!supportsAnimatedTuiChrome() || !isSweepingStage(stage2)) return null;
725352
725392
  let out = "";
725353
725393
  const SEG = 2;
725354
725394
  for (let i2 = 0; i2 < text3.length; i2 += SEG) {
@@ -725389,8 +725429,8 @@ function setTuiTasksSession(sessionId) {
725389
725429
  function onTuiTasksHeightChange(cb) {
725390
725430
  _onResizeChange = cb;
725391
725431
  }
725392
- function setTuiTasksEnabled(enabled2) {
725393
- _enabled = enabled2;
725432
+ function setTuiTasksEnabled(enabled3) {
725433
+ _enabled = enabled3;
725394
725434
  scheduleRedraw();
725395
725435
  }
725396
725436
  function setTuiTasksScope(scope) {
@@ -728072,7 +728112,7 @@ function setTerminalTitle(task, version5) {
728072
728112
  process.stdout.write(data);
728073
728113
  }
728074
728114
  }
728075
- 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_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, BOX_BJ, BOX_TJ, ENHANCE_SEG_INNER, ENHANCE_SPIN_FRAMES, _globalFooterLock, RESET4, CURSOR_BLINK_BLOCK, _isWindows, HEADER_BUTTON_LEFT, HEADER_BUTTON_RIGHT, SPONSOR_HEADER_LABEL_MAX, _termTitleWriter, StatusBar;
728115
+ 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_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, BOX_BJ, BOX_TJ, ENHANCE_SEG_INNER, ENHANCE_SPIN_FRAMES, _globalFooterLock, RESET4, CURSOR_BLINK_BLOCK, HEADER_BUTTON_LEFT, HEADER_BUTTON_RIGHT, HEADER_BUTTON_SQUARE_PAD, SPONSOR_HEADER_LABEL_MAX, _termTitleWriter, StatusBar;
728076
728116
  var init_status_bar = __esm({
728077
728117
  "packages/cli/src/tui/status-bar.ts"() {
728078
728118
  init_render();
@@ -728087,6 +728127,7 @@ var init_status_bar = __esm({
728087
728127
  init_text_selection();
728088
728128
  init_overlay_lock();
728089
728129
  init_dist5();
728130
+ init_terminal_capabilities();
728090
728131
  init_theme();
728091
728132
  init_tool_collapse_store();
728092
728133
  init_layout2();
@@ -728275,9 +728316,9 @@ var init_status_bar = __esm({
728275
728316
  _globalFooterLock = false;
728276
728317
  RESET4 = "\x1B[0m";
728277
728318
  CURSOR_BLINK_BLOCK = "\x1B[1 q";
728278
- _isWindows = process.platform === "win32";
728279
- HEADER_BUTTON_LEFT = _isWindows ? "[" : "🭁";
728280
- HEADER_BUTTON_RIGHT = _isWindows ? "]" : "🭝";
728319
+ HEADER_BUTTON_LEFT = "🭁";
728320
+ HEADER_BUTTON_RIGHT = "🭝";
728321
+ HEADER_BUTTON_SQUARE_PAD = " ";
728281
728322
  SPONSOR_HEADER_LABEL_MAX = 48;
728282
728323
  _termTitleWriter = null;
728283
728324
  StatusBar = class _StatusBar {
@@ -729029,8 +729070,11 @@ var init_status_bar = __esm({
729029
729070
  * Each category paginates independently across N pages. */
729030
729071
  /** Filled header button whose hue band follows the child agent's current action. */
729031
729072
  paintAgentButton(content, stage2, active) {
729032
- const useTruecolor = supportsTruecolor();
729033
- const chars = Array.from(content);
729073
+ const useTruecolor = supportsAnimatedTuiChrome();
729074
+ const ornamentalEdges = supportsOrnamentalTuiButtonEdges();
729075
+ const chars = Array.from(
729076
+ ornamentalEdges ? content : `${HEADER_BUTTON_SQUARE_PAD}${content}${HEADER_BUTTON_SQUARE_PAD}`
729077
+ );
729034
729078
  let body = "";
729035
729079
  for (let i2 = 0; i2 < chars.length; i2++) {
729036
729080
  const char = chars[i2];
@@ -729044,6 +729088,7 @@ var init_status_bar = __esm({
729044
729088
  body += `${active ? "\x1B[1m" : ""}\x1B[38;5;${contrastTextColor(fallback)}m\x1B[48;5;${fallback}m${char}\x1B[0m`;
729045
729089
  }
729046
729090
  }
729091
+ if (!ornamentalEdges) return `${body}${RESET4}${PANEL_BG_SEQ}`;
729047
729092
  const [lr, lg, lb] = stageGradientRgb(stage2, 0, this._stagePhase);
729048
729093
  const leftBorder = useTruecolor ? `\x1B[38;2;${lr};${lg};${lb}m` : `\x1B[38;5;${stageFallbackColor(stage2)}m`;
729049
729094
  const [rr, rg, rb] = stageGradientRgb(
@@ -729058,7 +729103,7 @@ var init_status_bar = __esm({
729058
729103
  const chars = Array.from(value2);
729059
729104
  let out = "";
729060
729105
  for (let i2 = 0; i2 < chars.length; i2++) {
729061
- if (supportsTruecolor()) {
729106
+ if (supportsAnimatedTuiChrome()) {
729062
729107
  const [r2, g, b] = stageGradientRgb(stage2, i2 + offset, this._stagePhase);
729063
729108
  out += `\x1B[38;2;${r2};${g};${b}m${chars[i2]}`;
729064
729109
  } else {
@@ -729076,6 +729121,9 @@ var init_status_bar = __esm({
729076
729121
  return `\x1B]8;;${cmdPrefix}\x07${label}\x1B]8;;\x07`;
729077
729122
  };
729078
729123
  const decorateMenuButton = (cmd, label) => {
729124
+ if (!supportsOrnamentalTuiButtonEdges()) {
729125
+ return `${HEADER_BUTTON_BG}${HEADER_BUTTON_FG}${HEADER_BUTTON_SQUARE_PAD}${label}${HEADER_BUTTON_SQUARE_PAD}\x1B[0m${PANEL_BG_SEQ}`;
729126
+ }
729079
729127
  return `${HEADER_BUTTON_GLYPH_FG}${HEADER_BUTTON_LEFT}\x1B[0m${HEADER_BUTTON_BG}${HEADER_BUTTON_FG}${label}\x1B[0m${PANEL_BG_SEQ}${HEADER_BUTTON_GLYPH_FG}${HEADER_BUTTON_RIGHT}\x1B[0m${PANEL_BG_SEQ}`;
729080
729128
  };
729081
729129
  const renderBtn = (cmd, label) => {
@@ -729575,7 +729623,7 @@ var init_status_bar = __esm({
729575
729623
  this.advanceStagePhase();
729576
729624
  this.renderFooterPreserveCursor();
729577
729625
  refreshTuiTasksAnimationFrame();
729578
- if ((this._trajectoryLiveBlockAppended || this._subAgentLiveBlockAppended) && this._activeViewId === "main" && supportsTruecolor() && (this.stageBorderActive() || this.hasRunningChildAgentView())) {
729626
+ if ((this._trajectoryLiveBlockAppended || this._subAgentLiveBlockAppended) && this._activeViewId === "main" && supportsAnimatedTuiChrome() && (this.stageBorderActive() || this.hasRunningChildAgentView())) {
729579
729627
  this.refreshDynamicBlocks();
729580
729628
  }
729581
729629
  if (this._agentViews.size > 1 && (String(this.currentHeaderPanel).startsWith("sys-") || this._headerExpanded)) {
@@ -732466,7 +732514,7 @@ ${CONTENT_BG_SEQ}`);
732466
732514
  /** True when the input-box border should flow with the stage gradient:
732467
732515
  * a run is active (sweeping stage) and the terminal supports truecolor. */
732468
732516
  stageBorderActive() {
732469
- return supportsTruecolor() && isSweepingStage(getStage().stage);
732517
+ return supportsAnimatedTuiChrome() && isSweepingStage(getStage().stage);
732470
732518
  }
732471
732519
  /** Paint a raw run of border glyphs with the current stage's gradient band
732472
732520
  * (same hue range as the stage indicator block, so the box edges match
@@ -741288,14 +741336,14 @@ var require_templates = __commonJS({
741288
741336
  return results;
741289
741337
  }
741290
741338
  function buildStyle(chalk, styles) {
741291
- const enabled2 = {};
741339
+ const enabled3 = {};
741292
741340
  for (const layer of styles) {
741293
741341
  for (const style of layer.styles) {
741294
- enabled2[style[0]] = layer.inverse ? null : style.slice(1);
741342
+ enabled3[style[0]] = layer.inverse ? null : style.slice(1);
741295
741343
  }
741296
741344
  }
741297
741345
  let current = chalk;
741298
- for (const [styleName, styles2] of Object.entries(enabled2)) {
741346
+ for (const [styleName, styles2] of Object.entries(enabled3)) {
741299
741347
  if (!Array.isArray(styles2)) {
741300
741348
  continue;
741301
741349
  }
@@ -744635,15 +744683,15 @@ function endpointModelCountLabel(ep) {
744635
744683
  return `all ${ep.models.length} models`;
744636
744684
  }
744637
744685
  async function stepModelSelection(config, rl, availableRows) {
744638
- const enabled2 = config.endpoints.filter((ep) => ep.enabled);
744639
- const totalKnownModels = enabled2.reduce((sum2, ep) => sum2 + ep.models.length, 0);
744686
+ const enabled3 = config.endpoints.filter((ep) => ep.enabled);
744687
+ const totalKnownModels = enabled3.reduce((sum2, ep) => sum2 + ep.models.length, 0);
744640
744688
  if (totalKnownModels === 0) {
744641
744689
  renderWarning("No model lists were returned; sponsorship will expose each enabled endpoint's full model set.");
744642
744690
  return true;
744643
744691
  }
744644
744692
  const modelSizesByUrl = /* @__PURE__ */ new Map();
744645
744693
  await Promise.all(
744646
- enabled2.filter((ep) => ep.kind === "ollama" && ep.models.length > 0).map(async (ep) => {
744694
+ enabled3.filter((ep) => ep.kind === "ollama" && ep.models.length > 0).map(async (ep) => {
744647
744695
  const modelSizes = {};
744648
744696
  try {
744649
744697
  const resp = await fetch(`${ep.url}/api/tags`, { signal: AbortSignal.timeout(5e3) });
@@ -744661,14 +744709,14 @@ async function stepModelSelection(config, rl, availableRows) {
744661
744709
  })
744662
744710
  );
744663
744711
  const selectedByUrl = new Map(
744664
- enabled2.map((ep) => [ep.url, new Set(selectedModelsForEndpoint(ep))])
744712
+ enabled3.map((ep) => [ep.url, new Set(selectedModelsForEndpoint(ep))])
744665
744713
  );
744666
744714
  const renderModelLabel = (item) => {
744667
744715
  const size = modelSizesByUrl.get(item.endpoint?.url || "")?.[item.modelName];
744668
744716
  return `${item.selected ? "[x]" : "[ ]"} ${item.modelName}${size ? ` (${size})` : ""}`;
744669
744717
  };
744670
744718
  const items = [{ key: "hdr", label: "Select Models to Sponsor", modelName: "", selected: false }];
744671
- for (const ep of enabled2) {
744719
+ for (const ep of enabled3) {
744672
744720
  items.push({
744673
744721
  key: `endpoint:${ep.url}`,
744674
744722
  label: `${ep.label}`,
@@ -744694,7 +744742,7 @@ async function stepModelSelection(config, rl, availableRows) {
744694
744742
  items.push({ key: "all", label: " [A] Select all", modelName: "", selected: false });
744695
744743
  items.push({ key: "none", label: " [N] Select none", modelName: "", selected: false });
744696
744744
  items.push({ key: "done", label: selectColors.green(" Done →"), modelName: "", selected: false });
744697
- const endpointSkipKeys = enabled2.map((ep) => `endpoint:${ep.url}`);
744745
+ const endpointSkipKeys = enabled3.map((ep) => `endpoint:${ep.url}`);
744698
744746
  const result = await tuiSelect({
744699
744747
  items,
744700
744748
  title: "Step 2/6 — Model Selection",
@@ -744754,7 +744802,7 @@ async function stepModelSelection(config, rl, availableRows) {
744754
744802
  renderWarning("Select at least one model before continuing.");
744755
744803
  return stepModelSelection(config, rl, availableRows);
744756
744804
  }
744757
- for (const ep of enabled2) {
744805
+ for (const ep of enabled3) {
744758
744806
  if (ep.models.length === 0) {
744759
744807
  ep.selectedModels = void 0;
744760
744808
  continue;
@@ -751814,11 +751862,11 @@ function writeDirectTerminal(data) {
751814
751862
  }
751815
751863
  }
751816
751864
  }
751817
- function setRawInputMode(enabled2) {
751865
+ function setRawInputMode(enabled3) {
751818
751866
  const stdinAny = process.stdin;
751819
751867
  try {
751820
751868
  if (stdinAny && stdinAny.isTTY && typeof stdinAny.setRawMode === "function") {
751821
- stdinAny.setRawMode(enabled2);
751869
+ stdinAny.setRawMode(enabled3);
751822
751870
  }
751823
751871
  } catch {
751824
751872
  }
@@ -762299,7 +762347,7 @@ async function chooseLiveCameraFps(ctx3, manager, deviceId) {
762299
762347
  async function showLiveCameraMenu(ctx3, manager, device2) {
762300
762348
  while (true) {
762301
762349
  const selected = manager.getConfig().selectedCamera === device2.id;
762302
- const enabled2 = manager.isCameraStreamEnabled(device2.id);
762350
+ const enabled3 = manager.isCameraStreamEnabled(device2.id);
762303
762351
  const resolution = manager.getCameraStreamResolution(device2.id);
762304
762352
  const fps = manager.getCameraStreamFps(device2.id);
762305
762353
  const items = [
@@ -762315,7 +762363,7 @@ async function showLiveCameraMenu(ctx3, manager, device2) {
762315
762363
  },
762316
762364
  {
762317
762365
  key: "toggle",
762318
- label: enabled2 ? "Disable This Camera Stream" : "Enable This Camera Stream",
762366
+ label: enabled3 ? "Disable This Camera Stream" : "Enable This Camera Stream",
762319
762367
  detail: "disabled cameras stay available but do not consume ffmpeg/vision resources"
762320
762368
  },
762321
762369
  {
@@ -762356,7 +762404,7 @@ async function showLiveCameraMenu(ctx3, manager, device2) {
762356
762404
  const result = await tuiSelect({
762357
762405
  items,
762358
762406
  title: `Live Camera — ${device2.id}`,
762359
- activeKey: selected ? "select" : enabled2 ? "toggle" : void 0,
762407
+ activeKey: selected ? "select" : enabled3 ? "toggle" : void 0,
762360
762408
  rl: ctx3.rl,
762361
762409
  availableRows: ctx3.availableContentRows?.(),
762362
762410
  skipKeys: liveSkipKeys(items)
@@ -762369,8 +762417,8 @@ async function showLiveCameraMenu(ctx3, manager, device2) {
762369
762417
  renderInfo(`Selected camera ${device2.id}.`);
762370
762418
  continue;
762371
762419
  case "toggle":
762372
- manager.setCameraStreamEnabled(device2.id, !enabled2);
762373
- renderInfo(`${!enabled2 ? "Enabled" : "Disabled"} camera stream ${device2.id}.`);
762420
+ manager.setCameraStreamEnabled(device2.id, !enabled3);
762421
+ renderInfo(`${!enabled3 ? "Enabled" : "Disabled"} camera stream ${device2.id}.`);
762374
762422
  continue;
762375
762423
  case "resolution": {
762376
762424
  const next = await chooseLiveCameraResolution(ctx3, manager, device2.id);
@@ -762542,9 +762590,9 @@ async function handleLiveCommand(ctx3, arg) {
762542
762590
  renderWarning("No camera selected. Use /live camera <device> first.");
762543
762591
  return;
762544
762592
  }
762545
- const enabled2 = sub2 === "camera-on" || sub2 === "camera-enable";
762546
- manager.setCameraStreamEnabled(device2, enabled2);
762547
- renderInfo(`${enabled2 ? "Enabled" : "Disabled"} camera stream ${device2}.`);
762593
+ const enabled3 = sub2 === "camera-on" || sub2 === "camera-enable";
762594
+ manager.setCameraStreamEnabled(device2, enabled3);
762595
+ renderInfo(`${enabled3 ? "Enabled" : "Disabled"} camera stream ${device2}.`);
762548
762596
  return;
762549
762597
  }
762550
762598
  if (sub2 === "video") {
@@ -762561,8 +762609,8 @@ async function handleLiveCommand(ctx3, arg) {
762561
762609
  }
762562
762610
  if (sub2 === "asr") {
762563
762611
  const cfg = manager.getConfig();
762564
- const enabled2 = setBool(value2, !cfg.asrEnabled);
762565
- if (enabled2) {
762612
+ const enabled3 = setBool(value2, !cfg.asrEnabled);
762613
+ if (enabled3) {
762566
762614
  manager.configure({ audioEnabled: true, asrEnabled: false });
762567
762615
  const asrStarted = await ensureLiveStreamingAsr(ctx3, manager, true);
762568
762616
  manager.configure({ asrEnabled: asrStarted });
@@ -762782,9 +762830,9 @@ async function handleCameraCommand(ctx3, arg) {
762782
762830
  renderWarning("No camera selected. Use /camera select <device> first.");
762783
762831
  return;
762784
762832
  }
762785
- const enabled2 = sub2 === "on" || sub2 === "enable";
762786
- manager.setCameraStreamEnabled(device2, enabled2);
762787
- renderInfo(`${enabled2 ? "Enabled" : "Disabled"} camera stream ${device2}.`);
762833
+ const enabled3 = sub2 === "on" || sub2 === "enable";
762834
+ manager.setCameraStreamEnabled(device2, enabled3);
762835
+ renderInfo(`${enabled3 ? "Enabled" : "Disabled"} camera stream ${device2}.`);
762788
762836
  return;
762789
762837
  }
762790
762838
  if (sub2 === "resolution" || sub2 === "res" || sub2 === "size") {
@@ -778904,9 +778952,9 @@ function setInferenceThinkingVisible(state5, visible) {
778904
778952
  state5.showThinking = visible;
778905
778953
  state5.version++;
778906
778954
  }
778907
- function setInferenceReadMode(state5, enabled2) {
778908
- if (state5.readMode === enabled2) return;
778909
- state5.readMode = enabled2;
778955
+ function setInferenceReadMode(state5, enabled3) {
778956
+ if (state5.readMode === enabled3) return;
778957
+ state5.readMode = enabled3;
778910
778958
  state5.version++;
778911
778959
  }
778912
778960
  function setInferenceReportedCompletionTokens(state5, completionTokens) {
@@ -809932,7 +809980,7 @@ ${this.quoteTelegramContextBlock(msg.text, 800)}`,
809932
809980
  telegramToolPolicy: this.cloneTelegramToolPolicy(this.telegramToolPolicy)
809933
809981
  });
809934
809982
  }
809935
- setTelegramToolGroupPolicy(args, enabled2, targetChatId) {
809983
+ setTelegramToolGroupPolicy(args, enabled3, targetChatId) {
809936
809984
  const group = String(args["group"] || "").trim().toLowerCase();
809937
809985
  if (!TELEGRAM_TOOL_ACTION_GROUPS.includes(group))
809938
809986
  throw new Error(`Unknown Telegram action group: ${group || "(missing)"}`);
@@ -809943,26 +809991,26 @@ ${this.quoteTelegramContextBlock(msg.text, 800)}`,
809943
809991
  const override = this.telegramToolPolicy.chatOverrides[key2] ?? {};
809944
809992
  override.enabledActionGroups = {
809945
809993
  ...override.enabledActionGroups ?? {},
809946
- [group]: enabled2
809994
+ [group]: enabled3
809947
809995
  };
809948
809996
  this.telegramToolPolicy.chatOverrides[key2] = override;
809949
809997
  } else {
809950
809998
  this.telegramToolPolicy.enabledActionGroups = {
809951
809999
  ...this.telegramToolPolicy.enabledActionGroups ?? {},
809952
- [group]: enabled2
810000
+ [group]: enabled3
809953
810001
  };
809954
810002
  }
809955
810003
  this.persistTelegramToolPolicy();
809956
810004
  return {
809957
810005
  ok: true,
809958
- action: enabled2 ? "enable_group" : "disable_group",
810006
+ action: enabled3 ? "enable_group" : "disable_group",
809959
810007
  group,
809960
810008
  scope: target.scope,
809961
810009
  chat_id: target.chatId,
809962
- enabled: enabled2
810010
+ enabled: enabled3
809963
810011
  };
809964
810012
  }
809965
- setTelegramToolActionPolicy(args, enabled2, targetChatId) {
810013
+ setTelegramToolActionPolicy(args, enabled3, targetChatId) {
809966
810014
  const toolAction = String(
809967
810015
  args["tool_action"] ?? args["telegram_action"] ?? ""
809968
810016
  ).trim().toLowerCase();
@@ -809975,23 +810023,23 @@ ${this.quoteTelegramContextBlock(msg.text, 800)}`,
809975
810023
  const override = this.telegramToolPolicy.chatOverrides[key2] ?? {};
809976
810024
  override.enabledActions = {
809977
810025
  ...override.enabledActions ?? {},
809978
- [toolAction]: enabled2
810026
+ [toolAction]: enabled3
809979
810027
  };
809980
810028
  this.telegramToolPolicy.chatOverrides[key2] = override;
809981
810029
  } else {
809982
810030
  this.telegramToolPolicy.enabledActions = {
809983
810031
  ...this.telegramToolPolicy.enabledActions ?? {},
809984
- [toolAction]: enabled2
810032
+ [toolAction]: enabled3
809985
810033
  };
809986
810034
  }
809987
810035
  this.persistTelegramToolPolicy();
809988
810036
  return {
809989
810037
  ok: true,
809990
- action: enabled2 ? "enable_action" : "disable_action",
810038
+ action: enabled3 ? "enable_action" : "disable_action",
809991
810039
  tool_action: toolAction,
809992
810040
  scope: target.scope,
809993
810041
  chat_id: target.chatId,
809994
- enabled: enabled2
810042
+ enabled: enabled3
809995
810043
  };
809996
810044
  }
809997
810045
  telegramToolButtonPath(nonce) {
@@ -810021,9 +810069,9 @@ ${this.quoteTelegramContextBlock(msg.text, 800)}`,
810021
810069
  const policyChatId = state5.policyScope === "chat" ? state5.policyChatId : void 0;
810022
810070
  const effective = this.effectiveTelegramToolPolicy(policyChatId);
810023
810071
  const rows = TELEGRAM_TOOL_ACTION_GROUPS.map((group) => {
810024
- const enabled2 = effective.enabledActionGroups?.[group] ?? DEFAULT_TELEGRAM_TOOL_GROUP_POLICY[group];
810072
+ const enabled3 = effective.enabledActionGroups?.[group] ?? DEFAULT_TELEGRAM_TOOL_GROUP_POLICY[group];
810025
810073
  return {
810026
- text: `${enabled2 ? "[x]" : "[ ]"} ${TELEGRAM_TOOL_BUTTON_LABELS[group]}`,
810074
+ text: `${enabled3 ? "[x]" : "[ ]"} ${TELEGRAM_TOOL_BUTTON_LABELS[group]}`,
810027
810075
  callback_data: `omni:v1:tgtool:${state5.nonce}:group:${group}`
810028
810076
  };
810029
810077
  });
@@ -810480,17 +810528,17 @@ ${this.quoteTelegramContextBlock(msg.text, 800)}`,
810480
810528
  if (!TELEGRAM_TOOL_ACTION_GROUPS.includes(group))
810481
810529
  throw new Error(`Unknown group: ${value2}`);
810482
810530
  const policy = this.effectiveTelegramToolPolicy(state5.policyChatId);
810483
- const enabled2 = !(policy.enabledActionGroups?.[group] ?? DEFAULT_TELEGRAM_TOOL_GROUP_POLICY[group]);
810531
+ const enabled3 = !(policy.enabledActionGroups?.[group] ?? DEFAULT_TELEGRAM_TOOL_GROUP_POLICY[group]);
810484
810532
  this.setTelegramToolGroupPolicy(
810485
810533
  {
810486
810534
  group,
810487
810535
  scope: state5.policyScope,
810488
810536
  ...state5.policyChatId !== void 0 ? { target: String(state5.policyChatId) } : {}
810489
810537
  },
810490
- enabled2,
810538
+ enabled3,
810491
810539
  state5.policyChatId
810492
810540
  );
810493
- answerText = `${TELEGRAM_TOOL_BUTTON_LABELS[group]} ${enabled2 ? "enabled" : "disabled"}.`;
810541
+ answerText = `${TELEGRAM_TOOL_BUTTON_LABELS[group]} ${enabled3 ? "enabled" : "disabled"}.`;
810494
810542
  } else if (kind === "flag" && value2 === "dryrun") {
810495
810543
  this.setTelegramToolBooleanPolicy(
810496
810544
  state5,
@@ -815120,12 +815168,12 @@ function buildSyntheticContext(config, repoRoot) {
815120
815168
  return mode === "auto" ? "Auto mode: transcriptions auto-submit after 3s silence" : "Manual mode: press Enter to submit transcriptions (auto-submit off)";
815121
815169
  },
815122
815170
  getColors: () => colorsEnabled,
815123
- setColors: (enabled2) => {
815124
- colorsEnabled = enabled2;
815171
+ setColors: (enabled3) => {
815172
+ colorsEnabled = enabled3;
815125
815173
  },
815126
815174
  getSelfModify: () => selfModifyEnabled,
815127
- setSelfModify: (enabled2) => {
815128
- selfModifyEnabled = enabled2;
815175
+ setSelfModify: (enabled3) => {
815176
+ selfModifyEnabled = enabled3;
815129
815177
  },
815130
815178
  saveSettings: (settings) => {
815131
815179
  saveProjectSettings(root, settings);
@@ -823948,8 +823996,8 @@ The user pasted a clipboard image saved at ${relPath}. Use the OCR, vision analy
823948
823996
  getRealtime() {
823949
823997
  return realtimeEnabled;
823950
823998
  },
823951
- setRealtime(enabled2) {
823952
- realtimeEnabled = enabled2;
823999
+ setRealtime(enabled3) {
824000
+ realtimeEnabled = enabled3;
823953
824001
  },
823954
824002
  thinkToggle() {
823955
824003
  thinkingEnabled = !thinkingEnabled;
@@ -824023,8 +824071,8 @@ The user pasted a clipboard image saved at ${relPath}. Use the OCR, vision analy
824023
824071
  getSelfModify() {
824024
824072
  return selfModifyEnabled;
824025
824073
  },
824026
- setSelfModify(enabled2) {
824027
- selfModifyEnabled = enabled2;
824074
+ setSelfModify(enabled3) {
824075
+ selfModifyEnabled = enabled3;
824028
824076
  },
824029
824077
  setStyle(preset) {
824030
824078
  currentStyle = preset;
@@ -825669,9 +825717,9 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
825669
825717
  }
825670
825718
  },
825671
825719
  getEmojis: () => getEmojisEnabled(),
825672
- setEmojis: (enabled2) => setEmojisEnabled(enabled2),
825720
+ setEmojis: (enabled3) => setEmojisEnabled(enabled3),
825673
825721
  getColors: () => getColorsEnabled(),
825674
- setColors: (enabled2) => setColorsEnabled(enabled2),
825722
+ setColors: (enabled3) => setColorsEnabled(enabled3),
825675
825723
  setContextWindowSize: (size) => {
825676
825724
  resolvedContextWindowSize = size;
825677
825725
  statusBar.setContextWindowSize(size);
@@ -861936,22 +861984,22 @@ data: ${JSON.stringify(data)}
861936
861984
  const parts = pathname.split("/");
861937
861985
  const id2 = parts[3] ?? "";
861938
861986
  const body = await parseJsonBody(req3);
861939
- const enabled2 = typeof body?.enabled === "boolean" ? body.enabled : void 0;
861940
- if (!id2 || typeof enabled2 === "undefined") {
861987
+ const enabled3 = typeof body?.enabled === "boolean" ? body.enabled : void 0;
861988
+ if (!id2 || typeof enabled3 === "undefined") {
861941
861989
  jsonResponse(res, 400, { error: "Missing id or enabled flag" });
861942
861990
  return;
861943
861991
  }
861944
861992
  let ok3 = false;
861945
861993
  if (id2.startsWith("timer:")) {
861946
861994
  const name10 = id2.slice("timer:".length);
861947
- ok3 = setTimerEnabled(name10, enabled2);
861995
+ ok3 = setTimerEnabled(name10, enabled3);
861948
861996
  } else {
861949
- ok3 = setScheduledEnabled(id2, enabled2);
861997
+ ok3 = setScheduledEnabled(id2, enabled3);
861950
861998
  }
861951
861999
  jsonResponse(
861952
862000
  res,
861953
862001
  ok3 ? 200 : 404,
861954
- ok3 ? { id: id2, enabled: enabled2 } : { error: "Not found" }
862002
+ ok3 ? { id: id2, enabled: enabled3 } : { error: "Not found" }
861955
862003
  );
861956
862004
  return;
861957
862005
  }
@@ -863759,7 +863807,7 @@ function listScheduledTasks() {
863759
863807
  const schedule = String(
863760
863808
  t2?.schedule || t2?.cron || t2?.when || ""
863761
863809
  );
863762
- const enabled2 = typeof t2?.enabled === "boolean" ? t2.enabled : true;
863810
+ const enabled3 = typeof t2?.enabled === "boolean" ? t2.enabled : true;
863763
863811
  const realId = typeof t2?.id === "string" && t2.id ? t2.id : null;
863764
863812
  const fallbackId = createHash86("sha1").update(`${file}#${i2}`).digest("hex").slice(0, 16);
863765
863813
  const uid = realId || fallbackId;
@@ -863772,7 +863820,7 @@ function listScheduledTasks() {
863772
863820
  index: i2,
863773
863821
  name: name10,
863774
863822
  schedule,
863775
- enabled: enabled2
863823
+ enabled: enabled3
863776
863824
  });
863777
863825
  });
863778
863826
  } catch {
@@ -863842,7 +863890,7 @@ function walk(dir, depth, onDir, maxDepth) {
863842
863890
  walk(child2, depth + 1, onDir, maxDepth);
863843
863891
  }
863844
863892
  }
863845
- function setScheduledEnabled(id2, enabled2) {
863893
+ function setScheduledEnabled(id2, enabled3) {
863846
863894
  const tasks = listScheduledTasks();
863847
863895
  const target = tasks.find((t2) => t2.id === id2);
863848
863896
  if (!target) return false;
@@ -863851,7 +863899,7 @@ function setScheduledEnabled(id2, enabled2) {
863851
863899
  const json2 = JSON.parse(raw);
863852
863900
  const arr = Array.isArray(json2?.tasks) ? json2.tasks : Array.isArray(json2) ? json2 : [];
863853
863901
  if (!arr[target.index]) return false;
863854
- arr[target.index].enabled = enabled2;
863902
+ arr[target.index].enabled = enabled3;
863855
863903
  if (Array.isArray(json2?.tasks)) {
863856
863904
  json2.tasks = arr;
863857
863905
  writeFileSync114(target.file, JSON.stringify(json2, null, 2));
@@ -863860,7 +863908,7 @@ function setScheduledEnabled(id2, enabled2) {
863860
863908
  } else {
863861
863909
  writeFileSync114(target.file, JSON.stringify({ tasks: arr }, null, 2));
863862
863910
  }
863863
- if (!enabled2) {
863911
+ if (!enabled3) {
863864
863912
  try {
863865
863913
  removeCronByMarker(id2);
863866
863914
  } catch {
@@ -865937,11 +865985,11 @@ function disableUserTimerById(id2) {
865937
865985
  } catch {
865938
865986
  }
865939
865987
  }
865940
- function setTimerEnabled(name10, enabled2) {
865988
+ function setTimerEnabled(name10, enabled3) {
865941
865989
  try {
865942
865990
  const unit = `${name10}.timer`;
865943
865991
  const { execSync: es } = require4("node:child_process");
865944
- if (enabled2) es(`systemctl --user enable --now ${unit}`, { stdio: "pipe" });
865992
+ if (enabled3) es(`systemctl --user enable --now ${unit}`, { stdio: "pipe" });
865945
865993
  else es(`systemctl --user disable --now ${unit}`, { stdio: "pipe" });
865946
865994
  return true;
865947
865995
  } catch {
@@ -25,6 +25,12 @@ Shift+Enter inserts a newline in the prompt box and expands the input area. Ente
25
25
 
26
26
  The input box should preserve Unicode line boundaries and avoid overwriting previous lower entries.
27
27
 
28
+ ## Terminal Compatibility
29
+
30
+ Header controls retain ornamental Unicode edges on capable Linux terminals. macOS, Windows, limited terminals, and compatible-profile sessions use background-filled square padding so missing Symbols for Legacy Computing glyphs cannot become replacement boxes.
31
+
32
+ Animated border colors are disabled on macOS, Windows, limited terminals, and explicit compatible-profile sessions. SSH alone does not disable Linux rendering because the host cannot reliably infer the client system or font. Set `OMNIUS_TUI_PROFILE=compatible` or `OMNIUS_TUI_STATIC_CHROME=1` for a limited SSH client. An SSH launcher can instead forward `OMNIUS_TUI_CLIENT_PLATFORM=macos` or `windows`.
33
+
28
34
  ## Shell Output
29
35
 
30
36
  Shell command output is rendered inside bounded Unicode cards. Dynamic installer output should update inside the shell block with a mini-scroll effect instead of corrupting adjacent UI.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.682",
3
+ "version": "1.0.684",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.682",
9
+ "version": "1.0.684",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
@@ -2327,9 +2327,9 @@
2327
2327
  }
2328
2328
  },
2329
2329
  "node_modules/@types/node": {
2330
- "version": "26.4.0",
2331
- "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz",
2332
- "integrity": "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==",
2330
+ "version": "26.4.1",
2331
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz",
2332
+ "integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==",
2333
2333
  "license": "MIT",
2334
2334
  "dependencies": {
2335
2335
  "undici-types": "~8.3.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.682",
3
+ "version": "1.0.684",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/library.js",