@wrongstack/tui 1.0.35 → 1.0.37

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
@@ -48,9 +48,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
48
48
  mod
49
49
  ));
50
50
 
51
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react.production.js
51
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react.production.js
52
52
  var require_react_production = __commonJS({
53
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react.production.js"(exports) {
53
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react.production.js"(exports) {
54
54
  "use strict";
55
55
  var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
56
56
  var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
@@ -500,9 +500,9 @@ var require_react_production = __commonJS({
500
500
  }
501
501
  });
502
502
 
503
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react.development.js
503
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react.development.js
504
504
  var require_react_development = __commonJS({
505
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react.development.js"(exports, module) {
505
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react.development.js"(exports, module) {
506
506
  "use strict";
507
507
  "production" !== process.env.NODE_ENV && (function() {
508
508
  function defineDeprecationWarning(methodName, info) {
@@ -1497,9 +1497,9 @@ var require_react_development = __commonJS({
1497
1497
  }
1498
1498
  });
1499
1499
 
1500
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/index.js
1500
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/index.js
1501
1501
  var require_react = __commonJS({
1502
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/index.js"(exports, module) {
1502
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/index.js"(exports, module) {
1503
1503
  "use strict";
1504
1504
  if (process.env.NODE_ENV === "production") {
1505
1505
  module.exports = require_react_production();
@@ -1509,9 +1509,9 @@ var require_react = __commonJS({
1509
1509
  }
1510
1510
  });
1511
1511
 
1512
- // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js
1512
+ // ../../node_modules/.bun/signal-exit@3.0.7/node_modules/signal-exit/signals.js
1513
1513
  var require_signals = __commonJS({
1514
- "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module) {
1514
+ "../../node_modules/.bun/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module) {
1515
1515
  module.exports = [
1516
1516
  "SIGABRT",
1517
1517
  "SIGALRM",
@@ -1546,9 +1546,9 @@ var require_signals = __commonJS({
1546
1546
  }
1547
1547
  });
1548
1548
 
1549
- // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js
1549
+ // ../../node_modules/.bun/signal-exit@3.0.7/node_modules/signal-exit/index.js
1550
1550
  var require_signal_exit = __commonJS({
1551
- "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module) {
1551
+ "../../node_modules/.bun/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module) {
1552
1552
  var process14 = global.process;
1553
1553
  var processOk = function(process15) {
1554
1554
  return process15 && typeof process15 === "object" && typeof process15.removeListener === "function" && typeof process15.emit === "function" && typeof process15.reallyExit === "function" && typeof process15.listeners === "function" && typeof process15.kill === "function" && typeof process15.pid === "number" && typeof process15.on === "function";
@@ -1705,9 +1705,9 @@ var require_signal_exit = __commonJS({
1705
1705
  }
1706
1706
  });
1707
1707
 
1708
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler-constants.production.js
1708
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler-constants.production.js
1709
1709
  var require_react_reconciler_constants_production = __commonJS({
1710
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler-constants.production.js"(exports) {
1710
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler-constants.production.js"(exports) {
1711
1711
  "use strict";
1712
1712
  exports.ConcurrentRoot = 1;
1713
1713
  exports.ContinuousEventPriority = 8;
@@ -1719,17 +1719,17 @@ var require_react_reconciler_constants_production = __commonJS({
1719
1719
  }
1720
1720
  });
1721
1721
 
1722
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler-constants.development.js
1722
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler-constants.development.js
1723
1723
  var require_react_reconciler_constants_development = __commonJS({
1724
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler-constants.development.js"(exports) {
1724
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler-constants.development.js"(exports) {
1725
1725
  "use strict";
1726
1726
  "production" !== process.env.NODE_ENV && (exports.ConcurrentRoot = 1, exports.ContinuousEventPriority = 8, exports.DefaultEventPriority = 32, exports.DiscreteEventPriority = 2, exports.IdleEventPriority = 268435456, exports.LegacyRoot = 0, exports.NoEventPriority = 0);
1727
1727
  }
1728
1728
  });
1729
1729
 
1730
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/constants.js
1730
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/constants.js
1731
1731
  var require_constants = __commonJS({
1732
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/constants.js"(exports, module) {
1732
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/constants.js"(exports, module) {
1733
1733
  "use strict";
1734
1734
  if (process.env.NODE_ENV === "production") {
1735
1735
  module.exports = require_react_reconciler_constants_production();
@@ -1739,9 +1739,9 @@ var require_constants = __commonJS({
1739
1739
  }
1740
1740
  });
1741
1741
 
1742
- // ../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js
1742
+ // ../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js
1743
1743
  var require_scheduler_production = __commonJS({
1744
- "../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js"(exports) {
1744
+ "../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js"(exports) {
1745
1745
  "use strict";
1746
1746
  function push(heap, node) {
1747
1747
  var index = heap.length;
@@ -2012,9 +2012,9 @@ var require_scheduler_production = __commonJS({
2012
2012
  }
2013
2013
  });
2014
2014
 
2015
- // ../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js
2015
+ // ../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js
2016
2016
  var require_scheduler_development = __commonJS({
2017
- "../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js"(exports) {
2017
+ "../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js"(exports) {
2018
2018
  "use strict";
2019
2019
  "production" !== process.env.NODE_ENV && (function() {
2020
2020
  function performWorkUntilDeadline() {
@@ -2271,9 +2271,9 @@ var require_scheduler_development = __commonJS({
2271
2271
  }
2272
2272
  });
2273
2273
 
2274
- // ../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js
2274
+ // ../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/index.js
2275
2275
  var require_scheduler = __commonJS({
2276
- "../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js"(exports, module) {
2276
+ "../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/index.js"(exports, module) {
2277
2277
  "use strict";
2278
2278
  if (process.env.NODE_ENV === "production") {
2279
2279
  module.exports = require_scheduler_production();
@@ -2283,9 +2283,9 @@ var require_scheduler = __commonJS({
2283
2283
  }
2284
2284
  });
2285
2285
 
2286
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler.production.js
2286
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler.production.js
2287
2287
  var require_react_reconciler_production = __commonJS({
2288
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler.production.js"(exports, module) {
2288
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler.production.js"(exports, module) {
2289
2289
  "use strict";
2290
2290
  module.exports = function($$$config) {
2291
2291
  function createFiber(tag, pendingProps, key2, mode) {
@@ -10462,9 +10462,9 @@ var require_react_reconciler_production = __commonJS({
10462
10462
  }
10463
10463
  });
10464
10464
 
10465
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler.development.js
10465
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler.development.js
10466
10466
  var require_react_reconciler_development = __commonJS({
10467
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/cjs/react-reconciler.development.js"(exports, module) {
10467
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/cjs/react-reconciler.development.js"(exports, module) {
10468
10468
  "use strict";
10469
10469
  "production" !== process.env.NODE_ENV && (module.exports = function($$$config) {
10470
10470
  function findHook(fiber, id) {
@@ -24235,9 +24235,9 @@ var require_react_reconciler_development = __commonJS({
24235
24235
  }
24236
24236
  });
24237
24237
 
24238
- // ../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/index.js
24238
+ // ../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/index.js
24239
24239
  var require_react_reconciler = __commonJS({
24240
- "../../node_modules/.pnpm/react-reconciler@0.33.0_react@19.3.0/node_modules/react-reconciler/index.js"(exports, module) {
24240
+ "../../node_modules/.bun/react-reconciler@0.33.0+62547eec5a2188e3/node_modules/react-reconciler/index.js"(exports, module) {
24241
24241
  "use strict";
24242
24242
  if (process.env.NODE_ENV === "production") {
24243
24243
  module.exports = require_react_reconciler_production();
@@ -24254,9 +24254,9 @@ var init_ink_devtools = __esm({
24254
24254
  }
24255
24255
  });
24256
24256
 
24257
- // ../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js
24257
+ // ../../node_modules/.bun/mimic-fn@2.1.0/node_modules/mimic-fn/index.js
24258
24258
  var require_mimic_fn = __commonJS({
24259
- "../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js"(exports, module) {
24259
+ "../../node_modules/.bun/mimic-fn@2.1.0/node_modules/mimic-fn/index.js"(exports, module) {
24260
24260
  "use strict";
24261
24261
  var mimicFn = (to, from) => {
24262
24262
  for (const prop of Reflect.ownKeys(from)) {
@@ -24269,9 +24269,9 @@ var require_mimic_fn = __commonJS({
24269
24269
  }
24270
24270
  });
24271
24271
 
24272
- // ../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js
24272
+ // ../../node_modules/.bun/onetime@5.1.2/node_modules/onetime/index.js
24273
24273
  var require_onetime = __commonJS({
24274
- "../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js"(exports, module) {
24274
+ "../../node_modules/.bun/onetime@5.1.2/node_modules/onetime/index.js"(exports, module) {
24275
24275
  "use strict";
24276
24276
  var mimicFn = require_mimic_fn();
24277
24277
  var calledFunctions = /* @__PURE__ */ new WeakMap();
@@ -24307,9 +24307,9 @@ var require_onetime = __commonJS({
24307
24307
  }
24308
24308
  });
24309
24309
 
24310
- // ../../node_modules/.pnpm/escape-string-regexp@2.0.0/node_modules/escape-string-regexp/index.js
24310
+ // ../../node_modules/.bun/escape-string-regexp@2.0.0/node_modules/escape-string-regexp/index.js
24311
24311
  var require_escape_string_regexp = __commonJS({
24312
- "../../node_modules/.pnpm/escape-string-regexp@2.0.0/node_modules/escape-string-regexp/index.js"(exports, module) {
24312
+ "../../node_modules/.bun/escape-string-regexp@2.0.0/node_modules/escape-string-regexp/index.js"(exports, module) {
24313
24313
  "use strict";
24314
24314
  var matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g;
24315
24315
  module.exports = (string) => {
@@ -24321,9 +24321,9 @@ var require_escape_string_regexp = __commonJS({
24321
24321
  }
24322
24322
  });
24323
24323
 
24324
- // ../../node_modules/.pnpm/stack-utils@2.0.6/node_modules/stack-utils/index.js
24324
+ // ../../node_modules/.bun/stack-utils@2.0.6/node_modules/stack-utils/index.js
24325
24325
  var require_stack_utils = __commonJS({
24326
- "../../node_modules/.pnpm/stack-utils@2.0.6/node_modules/stack-utils/index.js"(exports, module) {
24326
+ "../../node_modules/.bun/stack-utils@2.0.6/node_modules/stack-utils/index.js"(exports, module) {
24327
24327
  "use strict";
24328
24328
  var escapeStringRegexp = require_escape_string_regexp();
24329
24329
  var cwd2 = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
@@ -24574,9 +24574,9 @@ var require_stack_utils = __commonJS({
24574
24574
  }
24575
24575
  });
24576
24576
 
24577
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.production.js
24577
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.production.js
24578
24578
  var require_react_jsx_runtime_production = __commonJS({
24579
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
24579
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
24580
24580
  "use strict";
24581
24581
  var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
24582
24582
  var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
@@ -24604,9 +24604,9 @@ var require_react_jsx_runtime_production = __commonJS({
24604
24604
  }
24605
24605
  });
24606
24606
 
24607
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.development.js
24607
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.development.js
24608
24608
  var require_react_jsx_runtime_development = __commonJS({
24609
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
24609
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
24610
24610
  "use strict";
24611
24611
  "production" !== process.env.NODE_ENV && (function() {
24612
24612
  function getComponentNameFromType(type) {
@@ -24875,9 +24875,9 @@ var require_react_jsx_runtime_development = __commonJS({
24875
24875
  }
24876
24876
  });
24877
24877
 
24878
- // ../../node_modules/.pnpm/react@19.3.0/node_modules/react/jsx-runtime.js
24878
+ // ../../node_modules/.bun/react@19.3.0/node_modules/react/jsx-runtime.js
24879
24879
  var require_jsx_runtime = __commonJS({
24880
- "../../node_modules/.pnpm/react@19.3.0/node_modules/react/jsx-runtime.js"(exports, module) {
24880
+ "../../node_modules/.bun/react@19.3.0/node_modules/react/jsx-runtime.js"(exports, module) {
24881
24881
  "use strict";
24882
24882
  if (process.env.NODE_ENV === "production") {
24883
24883
  module.exports = require_react_jsx_runtime_production();
@@ -25940,15 +25940,15 @@ var import_react92 = __toESM(require_react(), 1);
25940
25940
  // src/ink.tsx
25941
25941
  import { isAsciiMode, toAscii } from "@wrongstack/core/utils";
25942
25942
 
25943
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render.js
25943
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render.js
25944
25944
  import { Stream } from "node:stream";
25945
25945
  import process13 from "node:process";
25946
25946
 
25947
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ink.js
25947
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ink.js
25948
25948
  var import_react16 = __toESM(require_react(), 1);
25949
25949
  import process12 from "node:process";
25950
25950
 
25951
- // ../../node_modules/.pnpm/es-toolkit@1.52.0/node_modules/es-toolkit/dist/function/debounce.mjs
25951
+ // ../../node_modules/.bun/es-toolkit@1.52.0/node_modules/es-toolkit/dist/function/debounce.mjs
25952
25952
  function debounce(func, debounceMs, { signal, edges } = {}) {
25953
25953
  let pendingThis = void 0;
25954
25954
  let pendingArgs = null;
@@ -26002,7 +26002,7 @@ function debounce(func, debounceMs, { signal, edges } = {}) {
26002
26002
  return debounced;
26003
26003
  }
26004
26004
 
26005
- // ../../node_modules/.pnpm/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/function/debounce.mjs
26005
+ // ../../node_modules/.bun/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/function/debounce.mjs
26006
26006
  function debounce2(func, debounceMs = 0, options = {}) {
26007
26007
  if (typeof options !== "object") options = {};
26008
26008
  const { leading = false, trailing = true, maxWait } = options;
@@ -26038,7 +26038,7 @@ function debounce2(func, debounceMs = 0, options = {}) {
26038
26038
  return debounced;
26039
26039
  }
26040
26040
 
26041
- // ../../node_modules/.pnpm/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/function/throttle.mjs
26041
+ // ../../node_modules/.bun/es-toolkit@1.52.0/node_modules/es-toolkit/dist/compat/function/throttle.mjs
26042
26042
  function throttle(func, throttleMs = 0, options = {}) {
26043
26043
  const { leading = true, trailing = true } = options;
26044
26044
  return debounce2(func, throttleMs, {
@@ -26048,7 +26048,7 @@ function throttle(func, throttleMs = 0, options = {}) {
26048
26048
  });
26049
26049
  }
26050
26050
 
26051
- // ../../node_modules/.pnpm/ansi-escapes@7.3.0/node_modules/ansi-escapes/base.js
26051
+ // ../../node_modules/.bun/ansi-escapes@7.3.0/node_modules/ansi-escapes/base.js
26052
26052
  var base_exports = {};
26053
26053
  __export(base_exports, {
26054
26054
  ConEmu: () => ConEmu,
@@ -26092,7 +26092,7 @@ __export(base_exports, {
26092
26092
  import process2 from "node:process";
26093
26093
  import os from "node:os";
26094
26094
 
26095
- // ../../node_modules/.pnpm/environment@1.1.0/node_modules/environment/index.js
26095
+ // ../../node_modules/.bun/environment@1.1.0/node_modules/environment/index.js
26096
26096
  var isBrowser = globalThis.window?.document !== void 0;
26097
26097
  var isNode = globalThis.process?.versions?.node !== void 0;
26098
26098
  var isBun = globalThis.process?.versions?.bun !== void 0;
@@ -26110,7 +26110,7 @@ var isLinux = platform === "Linux" || globalThis.navigator?.platform?.startsWith
26110
26110
  var isIos = platform === "iOS" || globalThis.navigator?.platform === "MacIntel" && globalThis.navigator?.maxTouchPoints > 1 || /iPad|iPhone|iPod/.test(globalThis.navigator?.platform);
26111
26111
  var isAndroid = platform === "Android" || globalThis.navigator?.platform === "Android" || globalThis.navigator?.userAgent?.includes(" Android ") === true || globalThis.process?.platform === "android";
26112
26112
 
26113
- // ../../node_modules/.pnpm/ansi-escapes@7.3.0/node_modules/ansi-escapes/base.js
26113
+ // ../../node_modules/.bun/ansi-escapes@7.3.0/node_modules/ansi-escapes/base.js
26114
26114
  var ESC = "\x1B[";
26115
26115
  var OSC = "\x1B]";
26116
26116
  var BEL = "\x07";
@@ -26250,13 +26250,13 @@ var ConEmu = {
26250
26250
  };
26251
26251
  var setCwd = (cwd2 = cwdFunction()) => iTerm.setCwd(cwd2) + ConEmu.setCwd(cwd2);
26252
26252
 
26253
- // ../../node_modules/.pnpm/is-in-ci@2.0.0/node_modules/is-in-ci/index.js
26253
+ // ../../node_modules/.bun/is-in-ci@2.0.0/node_modules/is-in-ci/index.js
26254
26254
  import { env } from "node:process";
26255
26255
  var check = (key2) => key2 in env && env[key2] !== "0" && env[key2] !== "false";
26256
26256
  var isInCi = check("CI") || check("CONTINUOUS_INTEGRATION");
26257
26257
  var is_in_ci_default = isInCi;
26258
26258
 
26259
- // ../../node_modules/.pnpm/auto-bind@5.0.1/node_modules/auto-bind/index.js
26259
+ // ../../node_modules/.bun/auto-bind@5.0.1/node_modules/auto-bind/index.js
26260
26260
  var getAllProperties = (object) => {
26261
26261
  const properties = /* @__PURE__ */ new Set();
26262
26262
  do {
@@ -26289,10 +26289,10 @@ function autoBind(self, { include, exclude } = {}) {
26289
26289
  return self;
26290
26290
  }
26291
26291
 
26292
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ink.js
26292
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ink.js
26293
26293
  var import_signal_exit2 = __toESM(require_signal_exit(), 1);
26294
26294
 
26295
- // ../../node_modules/.pnpm/patch-console@2.0.0/node_modules/patch-console/dist/index.js
26295
+ // ../../node_modules/.bun/patch-console@2.0.0/node_modules/patch-console/dist/index.js
26296
26296
  import { PassThrough } from "node:stream";
26297
26297
  var consoleMethods = [
26298
26298
  "assert",
@@ -26338,10 +26338,10 @@ var patchConsole = (callback) => {
26338
26338
  };
26339
26339
  var dist_default = patchConsole;
26340
26340
 
26341
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ink.js
26341
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ink.js
26342
26342
  var import_constants2 = __toESM(require_constants(), 1);
26343
26343
 
26344
- // ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
26344
+ // ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
26345
26345
  var loadYoga = (() => {
26346
26346
  var _scriptDir = import.meta.url;
26347
26347
  return (function(loadYoga2) {
@@ -27572,7 +27572,7 @@ var loadYoga = (() => {
27572
27572
  })();
27573
27573
  var yoga_wasm_base64_esm_default = loadYoga;
27574
27574
 
27575
- // ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/generated/YGEnums.js
27575
+ // ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/generated/YGEnums.js
27576
27576
  var Align = /* @__PURE__ */ (function(Align2) {
27577
27577
  Align2[Align2["Auto"] = 0] = "Auto";
27578
27578
  Align2[Align2["FlexStart"] = 1] = "FlexStart";
@@ -27775,7 +27775,7 @@ var constants = {
27775
27775
  };
27776
27776
  var YGEnums_default = constants;
27777
27777
 
27778
- // ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/wrapAssembly.js
27778
+ // ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/wrapAssembly.js
27779
27779
  function wrapAssembly(lib) {
27780
27780
  function patch(prototype, name, fn) {
27781
27781
  const original = prototype[name];
@@ -27876,14 +27876,14 @@ function wrapAssembly(lib) {
27876
27876
  };
27877
27877
  }
27878
27878
 
27879
- // ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/index.js
27879
+ // ../../node_modules/.bun/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/index.js
27880
27880
  var Yoga = wrapAssembly(await yoga_wasm_base64_esm_default());
27881
27881
  var src_default = Yoga;
27882
27882
 
27883
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ink.js
27883
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ink.js
27884
27884
  import wrapAnsi2 from "wrap-ansi";
27885
27885
 
27886
- // ../../node_modules/.pnpm/terminal-size@4.0.1/node_modules/terminal-size/index.js
27886
+ // ../../node_modules/.bun/terminal-size@4.0.1/node_modules/terminal-size/index.js
27887
27887
  import process3 from "node:process";
27888
27888
  import { execFileSync } from "node:child_process";
27889
27889
  import fs from "node:fs";
@@ -27989,7 +27989,7 @@ var resize = () => {
27989
27989
  }
27990
27990
  };
27991
27991
 
27992
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/utils.js
27992
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/utils.js
27993
27993
  var getWindowSize = (stdout) => {
27994
27994
  const { columns, rows } = stdout;
27995
27995
  if (columns && rows) {
@@ -28002,14 +28002,14 @@ var getWindowSize = (stdout) => {
28002
28002
  };
28003
28003
  };
28004
28004
 
28005
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/reconciler.js
28005
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/reconciler.js
28006
28006
  var import_react_reconciler = __toESM(require_react_reconciler(), 1);
28007
28007
  var import_constants = __toESM(require_constants(), 1);
28008
28008
  var Scheduler = __toESM(require_scheduler(), 1);
28009
28009
  import process4 from "node:process";
28010
28010
  var import_react = __toESM(require_react(), 1);
28011
28011
 
28012
- // ../../node_modules/.pnpm/widest-line@6.0.0/node_modules/widest-line/index.js
28012
+ // ../../node_modules/.bun/widest-line@6.0.0/node_modules/widest-line/index.js
28013
28013
  import stringWidth from "string-width";
28014
28014
  function widestLine(string) {
28015
28015
  let lineWidth = 0;
@@ -28019,7 +28019,7 @@ function widestLine(string) {
28019
28019
  return lineWidth;
28020
28020
  }
28021
28021
 
28022
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/measure-text.js
28022
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/measure-text.js
28023
28023
  var CACHE_MAX = 1e3;
28024
28024
  var cache = /* @__PURE__ */ new Map();
28025
28025
  var measureText = (text) => {
@@ -28047,10 +28047,10 @@ var measureText = (text) => {
28047
28047
  };
28048
28048
  var measure_text_default = measureText;
28049
28049
 
28050
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/wrap-text.js
28050
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/wrap-text.js
28051
28051
  import wrapAnsi from "wrap-ansi";
28052
28052
 
28053
- // ../../node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.js
28053
+ // ../../node_modules/.bun/ansi-styles@6.2.3/node_modules/ansi-styles/index.js
28054
28054
  var ANSI_BACKGROUND_OFFSET = 10;
28055
28055
  var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
28056
28056
  var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -28236,7 +28236,7 @@ function assembleStyles() {
28236
28236
  var ansiStyles = assembleStyles();
28237
28237
  var ansi_styles_default = ansiStyles;
28238
28238
 
28239
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
28239
+ // ../../node_modules/.bun/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
28240
28240
  var fullwidthMinimalCodePoint = 12288;
28241
28241
  var fullwidthMaximumCodePoint = 65510;
28242
28242
  var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
@@ -28244,7 +28244,7 @@ var wideMinimalCodePoint = 4352;
28244
28244
  var wideMaximumCodePoint = 262141;
28245
28245
  var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
28246
28246
 
28247
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
28247
+ // ../../node_modules/.bun/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
28248
28248
  var isInRange = (ranges, codePoint) => {
28249
28249
  let low = 0;
28250
28250
  let high = Math.floor(ranges.length / 2) - 1;
@@ -28262,7 +28262,7 @@ var isInRange = (ranges, codePoint) => {
28262
28262
  return false;
28263
28263
  };
28264
28264
 
28265
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
28265
+ // ../../node_modules/.bun/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
28266
28266
  var commonCjkCodePoint = 19968;
28267
28267
  var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
28268
28268
  function findWideFastPathRange(ranges) {
@@ -28297,7 +28297,7 @@ var isWide = (codePoint) => {
28297
28297
  return isInRange(wideRanges, codePoint);
28298
28298
  };
28299
28299
 
28300
- // ../../node_modules/.pnpm/is-fullwidth-code-point@5.1.0/node_modules/is-fullwidth-code-point/index.js
28300
+ // ../../node_modules/.bun/is-fullwidth-code-point@5.1.0/node_modules/is-fullwidth-code-point/index.js
28301
28301
  function isFullwidthCodePoint(codePoint) {
28302
28302
  if (!Number.isInteger(codePoint)) {
28303
28303
  return false;
@@ -28305,7 +28305,7 @@ function isFullwidthCodePoint(codePoint) {
28305
28305
  return isFullWidth(codePoint) || isWide(codePoint);
28306
28306
  }
28307
28307
 
28308
- // ../../node_modules/.pnpm/slice-ansi@9.0.0/node_modules/slice-ansi/tokenize-ansi.js
28308
+ // ../../node_modules/.bun/slice-ansi@9.0.0/node_modules/slice-ansi/tokenize-ansi.js
28309
28309
  var ESCAPE_CODE_POINT = 27;
28310
28310
  var C1_DCS_CODE_POINT = 144;
28311
28311
  var C1_SOS_CODE_POINT = 152;
@@ -28911,7 +28911,7 @@ function tokenizeAnsi(string, { endCharacter = Number.POSITIVE_INFINITY } = {})
28911
28911
  return tokens;
28912
28912
  }
28913
28913
 
28914
- // ../../node_modules/.pnpm/slice-ansi@9.0.0/node_modules/slice-ansi/index.js
28914
+ // ../../node_modules/.bun/slice-ansi@9.0.0/node_modules/slice-ansi/index.js
28915
28915
  function applySgrFragments(activeStyles, fragments) {
28916
28916
  for (const fragment of fragments) {
28917
28917
  switch (fragment.type) {
@@ -29141,7 +29141,7 @@ function sliceAnsi(string, start, end) {
29141
29141
  return returnValue;
29142
29142
  }
29143
29143
 
29144
- // ../../node_modules/.pnpm/cli-truncate@6.1.1/node_modules/cli-truncate/index.js
29144
+ // ../../node_modules/.bun/cli-truncate@6.1.1/node_modules/cli-truncate/index.js
29145
29145
  import stringWidth2 from "string-width";
29146
29146
  var validPositions = /* @__PURE__ */ new Set(["start", "middle", "end"]);
29147
29147
  function getIndexOfNearestSpace(string, wantedIndex, shouldSearchRight) {
@@ -29284,7 +29284,7 @@ function cliTruncate(text, columns, options = {}) {
29284
29284
  }
29285
29285
  }
29286
29286
 
29287
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/wrap-text.js
29287
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/wrap-text.js
29288
29288
  var CACHE_MAX2 = 1e3;
29289
29289
  var cache2 = /* @__PURE__ */ new Map();
29290
29290
  var wrapText = (text, maxWidth, wrapType) => {
@@ -29328,7 +29328,7 @@ var wrapText = (text, maxWidth, wrapType) => {
29328
29328
  };
29329
29329
  var wrap_text_default = wrapText;
29330
29330
 
29331
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ansi-tokenizer.js
29331
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ansi-tokenizer.js
29332
29332
  var bellCharacter = "\x07";
29333
29333
  var escapeCharacter = "\x1B";
29334
29334
  var stringTerminatorCharacter = "\x9C";
@@ -29635,7 +29635,7 @@ var tokenizeAnsi2 = (text) => {
29635
29635
  return tokens;
29636
29636
  };
29637
29637
 
29638
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/sanitize-ansi.js
29638
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/sanitize-ansi.js
29639
29639
  var sgrParametersRegex = /^[\d:;]*$/;
29640
29640
  var sanitizeAnsi = (text) => {
29641
29641
  if (!hasAnsiControlCharacters(text)) {
@@ -29655,7 +29655,7 @@ var sanitizeAnsi = (text) => {
29655
29655
  };
29656
29656
  var sanitize_ansi_default = sanitizeAnsi;
29657
29657
 
29658
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/squash-text-nodes.js
29658
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/squash-text-nodes.js
29659
29659
  var squashTextNodes = (node) => {
29660
29660
  let text = "";
29661
29661
  for (let index = 0; index < node.childNodes.length; index++) {
@@ -29680,7 +29680,7 @@ var squashTextNodes = (node) => {
29680
29680
  };
29681
29681
  var squash_text_nodes_default = squashTextNodes;
29682
29682
 
29683
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/dom.js
29683
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/dom.js
29684
29684
  var createNode = (nodeName) => {
29685
29685
  const node = {
29686
29686
  nodeName,
@@ -29804,7 +29804,7 @@ var emitLayoutListeners = (rootNode) => {
29804
29804
  }
29805
29805
  };
29806
29806
 
29807
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/styles.js
29807
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/styles.js
29808
29808
  var positionEdges = [
29809
29809
  ["top", src_default.EDGE_TOP],
29810
29810
  ["right", src_default.EDGE_RIGHT],
@@ -30091,7 +30091,7 @@ var styles2 = (node, style = {}, currentStyle = style) => {
30091
30091
  };
30092
30092
  var styles_default = styles2;
30093
30093
 
30094
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/reconciler.js
30094
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/reconciler.js
30095
30095
  if (process4.env["DEV"] === "true") {
30096
30096
  let isDevtoolsInstalled = false;
30097
30097
  try {
@@ -30378,7 +30378,7 @@ var reconciler_default = (0, import_react_reconciler.default)({
30378
30378
  rendererVersion: packageInfo.version
30379
30379
  });
30380
30380
 
30381
- // ../../node_modules/.pnpm/indent-string@5.0.0/node_modules/indent-string/index.js
30381
+ // ../../node_modules/.bun/indent-string@5.0.0/node_modules/indent-string/index.js
30382
30382
  function indentString(string, count = 1, options = {}) {
30383
30383
  const {
30384
30384
  indent = " ",
@@ -30411,13 +30411,13 @@ function indentString(string, count = 1, options = {}) {
30411
30411
  return string.replace(regex, indent.repeat(count));
30412
30412
  }
30413
30413
 
30414
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/get-max-width.js
30414
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/get-max-width.js
30415
30415
  var getMaxWidth = (yogaNode) => {
30416
30416
  return yogaNode.getComputedWidth() - yogaNode.getComputedPadding(src_default.EDGE_LEFT) - yogaNode.getComputedPadding(src_default.EDGE_RIGHT) - yogaNode.getComputedBorder(src_default.EDGE_LEFT) - yogaNode.getComputedBorder(src_default.EDGE_RIGHT);
30417
30417
  };
30418
30418
  var get_max_width_default = getMaxWidth;
30419
30419
 
30420
- // ../../node_modules/.pnpm/cli-boxes@4.0.1/node_modules/cli-boxes/boxes.json
30420
+ // ../../node_modules/.bun/cli-boxes@4.0.1/node_modules/cli-boxes/boxes.json
30421
30421
  var boxes_default = {
30422
30422
  single: {
30423
30423
  topLeft: "\u250C",
@@ -30501,10 +30501,10 @@ var boxes_default = {
30501
30501
  }
30502
30502
  };
30503
30503
 
30504
- // ../../node_modules/.pnpm/cli-boxes@4.0.1/node_modules/cli-boxes/index.js
30504
+ // ../../node_modules/.bun/cli-boxes@4.0.1/node_modules/cli-boxes/index.js
30505
30505
  var cli_boxes_default = boxes_default;
30506
30506
 
30507
- // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
30507
+ // ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
30508
30508
  var ANSI_BACKGROUND_OFFSET2 = 10;
30509
30509
  var wrapAnsi162 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
30510
30510
  var wrapAnsi2562 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -30690,7 +30690,7 @@ function assembleStyles2() {
30690
30690
  var ansiStyles2 = assembleStyles2();
30691
30691
  var ansi_styles_default2 = ansiStyles2;
30692
30692
 
30693
- // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
30693
+ // ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
30694
30694
  import process5 from "node:process";
30695
30695
  import os2 from "node:os";
30696
30696
  import tty2 from "node:tty";
@@ -30822,7 +30822,7 @@ var supportsColor = {
30822
30822
  };
30823
30823
  var supports_color_default = supportsColor;
30824
30824
 
30825
- // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js
30825
+ // ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js
30826
30826
  function stringReplaceAll(string, substring, replacer) {
30827
30827
  let index = string.indexOf(substring);
30828
30828
  if (index === -1) {
@@ -30852,7 +30852,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
30852
30852
  return returnValue;
30853
30853
  }
30854
30854
 
30855
- // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
30855
+ // ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js
30856
30856
  var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
30857
30857
  var GENERATOR = /* @__PURE__ */ Symbol("GENERATOR");
30858
30858
  var STYLER = /* @__PURE__ */ Symbol("STYLER");
@@ -30999,7 +30999,7 @@ var chalk = createChalk();
30999
30999
  var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
31000
31000
  var source_default = chalk;
31001
31001
 
31002
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/colorize.js
31002
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/colorize.js
31003
31003
  var rgbRegex = /^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/;
31004
31004
  var ansiRegex = /^ansi256\(\s?(\d+)\s?\)$/;
31005
31005
  var isNamedColor = (color) => {
@@ -31041,7 +31041,7 @@ var colorize = (str, color, type) => {
31041
31041
  };
31042
31042
  var colorize_default = colorize;
31043
31043
 
31044
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render-border.js
31044
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render-border.js
31045
31045
  var stylePiece = (segment, fg, bg, dim) => {
31046
31046
  let styled = colorize_default(segment, fg, "foreground");
31047
31047
  styled = colorize_default(styled, bg, "background");
@@ -31112,7 +31112,7 @@ var renderBorder = (x, y, node, output) => {
31112
31112
  };
31113
31113
  var render_border_default = renderBorder;
31114
31114
 
31115
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render-background.js
31115
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render-background.js
31116
31116
  var renderBackground = (x, y, node, output) => {
31117
31117
  if (!node.style.backgroundColor) {
31118
31118
  return;
@@ -31135,7 +31135,7 @@ var renderBackground = (x, y, node, output) => {
31135
31135
  };
31136
31136
  var render_background_default = renderBackground;
31137
31137
 
31138
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render-node-to-output.js
31138
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render-node-to-output.js
31139
31139
  var applyPaddingToText = (node, text) => {
31140
31140
  const yogaNode = node.childNodes[0]?.yogaNode;
31141
31141
  if (yogaNode) {
@@ -31243,10 +31243,10 @@ var renderNodeToOutput = (node, output, options) => {
31243
31243
  };
31244
31244
  var render_node_to_output_default = renderNodeToOutput;
31245
31245
 
31246
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/output.js
31246
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/output.js
31247
31247
  import stringWidth3 from "string-width";
31248
31248
 
31249
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/consts.js
31249
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/consts.js
31250
31250
  var BEL2 = "\x07";
31251
31251
  var ESC2 = "\x1B";
31252
31252
  var BACKSLASH = "\\";
@@ -31270,7 +31270,7 @@ var linkEndCode = `${ESC2}${OSC2}8;;${BEL2}`;
31270
31270
  var linkEndCodeST = `${ESC2}${OSC2}8;;${ESC2}${BACKSLASH}`;
31271
31271
  var linkEndCodeC1ST = `${ESC2}${OSC2}8;;${C1_ST}`;
31272
31272
 
31273
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js
31273
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js
31274
31274
  var endCodesSet = /* @__PURE__ */ new Set();
31275
31275
  var endCodesMap = /* @__PURE__ */ new Map();
31276
31276
  for (const [start, end] of ansi_styles_default.codes) {
@@ -31310,7 +31310,7 @@ function isIntensityCode(code) {
31310
31310
  return code.code === ansi_styles_default.bold.open || code.code === ansi_styles_default.dim.open;
31311
31311
  }
31312
31312
 
31313
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/reduce.js
31313
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/reduce.js
31314
31314
  function reduceAnsiCodes(codes) {
31315
31315
  return reduceAnsiCodesIncremental([], codes);
31316
31316
  }
@@ -31335,7 +31335,7 @@ function reduceAnsiCodesIncremental(codes, newCodes) {
31335
31335
  return ret;
31336
31336
  }
31337
31337
 
31338
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/undo.js
31338
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/undo.js
31339
31339
  function undoAnsiCodes2(codes) {
31340
31340
  return reduceAnsiCodes(codes).reverse().map((code) => ({
31341
31341
  ...code,
@@ -31343,7 +31343,7 @@ function undoAnsiCodes2(codes) {
31343
31343
  }));
31344
31344
  }
31345
31345
 
31346
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/diff.js
31346
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/diff.js
31347
31347
  function diffAnsiCodes(from, to) {
31348
31348
  const endCodesInTo = new Set(to.map((code) => code.endCode));
31349
31349
  const startCodesInTo = new Set(to.map((code) => code.code));
@@ -31362,7 +31362,7 @@ function diffAnsiCodes(from, to) {
31362
31362
  ];
31363
31363
  }
31364
31364
 
31365
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js
31365
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js
31366
31366
  function styledCharsFromTokens(tokens) {
31367
31367
  let codes = [];
31368
31368
  const ret = [];
@@ -31395,7 +31395,7 @@ function styledCharsToString(chars) {
31395
31395
  return ret;
31396
31396
  }
31397
31397
 
31398
- // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js
31398
+ // ../../node_modules/.bun/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js
31399
31399
  var segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
31400
31400
  function isFullwidthGrapheme(grapheme, baseCodePoint) {
31401
31401
  if (isFullwidthCodePoint(baseCodePoint))
@@ -31544,7 +31544,7 @@ function tokenize(str, endChar = Number.POSITIVE_INFINITY) {
31544
31544
  return ret;
31545
31545
  }
31546
31546
 
31547
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/output.js
31547
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/output.js
31548
31548
  var OutputCaches = class {
31549
31549
  widths = /* @__PURE__ */ new Map();
31550
31550
  blockWidths = /* @__PURE__ */ new Map();
@@ -31732,7 +31732,7 @@ var Output = class {
31732
31732
  }
31733
31733
  };
31734
31734
 
31735
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/renderer.js
31735
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/renderer.js
31736
31736
  var renderer = (node, isScreenReaderEnabled) => {
31737
31737
  if (node.yogaNode) {
31738
31738
  if (isScreenReaderEnabled) {
@@ -31788,7 +31788,7 @@ var renderer = (node, isScreenReaderEnabled) => {
31788
31788
  };
31789
31789
  var renderer_default = renderer;
31790
31790
 
31791
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/cursor-helpers.js
31791
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/cursor-helpers.js
31792
31792
  var showCursorEscape = "\x1B[?25h";
31793
31793
  var hideCursorEscape = "\x1B[?25l";
31794
31794
  var cursorPositionChanged = (a, b) => a?.x !== b?.x || a?.y !== b?.y;
@@ -31819,10 +31819,10 @@ var buildReturnToBottomPrefix = (cursorWasShown, previousLineCount, previousCurs
31819
31819
  return hideCursorEscape + buildReturnToBottom(previousLineCount, previousCursorPosition);
31820
31820
  };
31821
31821
 
31822
- // ../../node_modules/.pnpm/cli-cursor@4.0.0/node_modules/cli-cursor/index.js
31822
+ // ../../node_modules/.bun/cli-cursor@4.0.0/node_modules/cli-cursor/index.js
31823
31823
  import process7 from "node:process";
31824
31824
 
31825
- // ../../node_modules/.pnpm/restore-cursor@4.0.0/node_modules/restore-cursor/index.js
31825
+ // ../../node_modules/.bun/restore-cursor@4.0.0/node_modules/restore-cursor/index.js
31826
31826
  var import_onetime = __toESM(require_onetime(), 1);
31827
31827
  var import_signal_exit = __toESM(require_signal_exit(), 1);
31828
31828
  import process6 from "node:process";
@@ -31833,7 +31833,7 @@ var restoreCursor = (0, import_onetime.default)(() => {
31833
31833
  });
31834
31834
  var restore_cursor_default = restoreCursor;
31835
31835
 
31836
- // ../../node_modules/.pnpm/cli-cursor@4.0.0/node_modules/cli-cursor/index.js
31836
+ // ../../node_modules/.bun/cli-cursor@4.0.0/node_modules/cli-cursor/index.js
31837
31837
  var isHidden = false;
31838
31838
  var cliCursor = {};
31839
31839
  cliCursor.show = (writableStream = process7.stderr) => {
@@ -31863,7 +31863,7 @@ cliCursor.toggle = (force, writableStream) => {
31863
31863
  };
31864
31864
  var cli_cursor_default = cliCursor;
31865
31865
 
31866
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/log-update.js
31866
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/log-update.js
31867
31867
  var visibleLineCount = (lines, str) => str.endsWith("\n") ? lines.length - 1 : lines.length;
31868
31868
  var createStandard = (stream, { showCursor = false } = {}) => {
31869
31869
  let previousLineCount = 0;
@@ -32093,23 +32093,23 @@ var create2 = (stream, { showCursor = false, incremental = false } = {}) => {
32093
32093
  var logUpdate = { create: create2 };
32094
32094
  var log_update_default = logUpdate;
32095
32095
 
32096
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/write-synchronized.js
32096
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/write-synchronized.js
32097
32097
  var bsu = "\x1B[?2026h";
32098
32098
  var esu = "\x1B[?2026l";
32099
32099
  function shouldSynchronize(stream, interactive) {
32100
32100
  return "isTTY" in stream && stream.isTTY && (interactive ?? !is_in_ci_default);
32101
32101
  }
32102
32102
 
32103
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/instances.js
32103
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/instances.js
32104
32104
  var instances = /* @__PURE__ */ new WeakMap();
32105
32105
  var instances_default = instances;
32106
32106
 
32107
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/App.js
32107
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/App.js
32108
32108
  var import_react15 = __toESM(require_react(), 1);
32109
32109
  import { EventEmitter as EventEmitter2 } from "node:events";
32110
32110
  import process11 from "node:process";
32111
32111
 
32112
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/input-parser.js
32112
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/input-parser.js
32113
32113
  var escape = "\x1B";
32114
32114
  var pasteStart = "\x1B[200~";
32115
32115
  var pasteEnd = "\x1B[201~";
@@ -32294,7 +32294,7 @@ var createInputParser = () => {
32294
32294
  };
32295
32295
  };
32296
32296
 
32297
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/AppContext.js
32297
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/AppContext.js
32298
32298
  var import_react2 = __toESM(require_react(), 1);
32299
32299
  var noopSuspension = {
32300
32300
  async resume() {
@@ -32319,7 +32319,7 @@ var AppContext = (0, import_react2.createContext)(defaultValue);
32319
32319
  AppContext.displayName = "InternalAppContext";
32320
32320
  var AppContext_default = AppContext;
32321
32321
 
32322
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/StdinContext.js
32322
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/StdinContext.js
32323
32323
  var import_react3 = __toESM(require_react(), 1);
32324
32324
  import { EventEmitter } from "node:events";
32325
32325
  import process8 from "node:process";
@@ -32338,7 +32338,7 @@ var StdinContext = (0, import_react3.createContext)({
32338
32338
  StdinContext.displayName = "InternalStdinContext";
32339
32339
  var StdinContext_default = StdinContext;
32340
32340
 
32341
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/StdoutContext.js
32341
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/StdoutContext.js
32342
32342
  var import_react4 = __toESM(require_react(), 1);
32343
32343
  import process9 from "node:process";
32344
32344
  var StdoutContext = (0, import_react4.createContext)({
@@ -32349,7 +32349,7 @@ var StdoutContext = (0, import_react4.createContext)({
32349
32349
  StdoutContext.displayName = "InternalStdoutContext";
32350
32350
  var StdoutContext_default = StdoutContext;
32351
32351
 
32352
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/StderrContext.js
32352
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/StderrContext.js
32353
32353
  var import_react5 = __toESM(require_react(), 1);
32354
32354
  import process10 from "node:process";
32355
32355
  var StderrContext = (0, import_react5.createContext)({
@@ -32360,7 +32360,7 @@ var StderrContext = (0, import_react5.createContext)({
32360
32360
  StderrContext.displayName = "InternalStderrContext";
32361
32361
  var StderrContext_default = StderrContext;
32362
32362
 
32363
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/FocusContext.js
32363
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/FocusContext.js
32364
32364
  var import_react6 = __toESM(require_react(), 1);
32365
32365
  var FocusContext = (0, import_react6.createContext)({
32366
32366
  activeId: void 0,
@@ -32386,7 +32386,7 @@ var FocusContext = (0, import_react6.createContext)({
32386
32386
  FocusContext.displayName = "InternalFocusContext";
32387
32387
  var FocusContext_default = FocusContext;
32388
32388
 
32389
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/AnimationContext.js
32389
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/AnimationContext.js
32390
32390
  var import_react7 = __toESM(require_react(), 1);
32391
32391
  var animationContext = (0, import_react7.createContext)({
32392
32392
  renderThrottleMs: 0,
@@ -32401,7 +32401,7 @@ var animationContext = (0, import_react7.createContext)({
32401
32401
  animationContext.displayName = "InternalAnimationContext";
32402
32402
  var AnimationContext_default = animationContext;
32403
32403
 
32404
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/CursorContext.js
32404
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/CursorContext.js
32405
32405
  var import_react8 = __toESM(require_react(), 1);
32406
32406
  var CursorContext = (0, import_react8.createContext)({
32407
32407
  setCursorPosition() {
@@ -32410,22 +32410,22 @@ var CursorContext = (0, import_react8.createContext)({
32410
32410
  CursorContext.displayName = "InternalCursorContext";
32411
32411
  var CursorContext_default = CursorContext;
32412
32412
 
32413
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/ErrorBoundary.js
32413
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/ErrorBoundary.js
32414
32414
  var import_react14 = __toESM(require_react(), 1);
32415
32415
 
32416
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/ErrorOverview.js
32416
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/ErrorOverview.js
32417
32417
  var import_react13 = __toESM(require_react(), 1);
32418
32418
  var import_stack_utils = __toESM(require_stack_utils(), 1);
32419
32419
  import * as fs2 from "node:fs";
32420
32420
  import { cwd } from "node:process";
32421
32421
 
32422
- // ../../node_modules/.pnpm/convert-to-spaces@2.0.1/node_modules/convert-to-spaces/dist/index.js
32422
+ // ../../node_modules/.bun/convert-to-spaces@2.0.1/node_modules/convert-to-spaces/dist/index.js
32423
32423
  var convertToSpaces = (input, spaces = 2) => {
32424
32424
  return input.replace(/^\t+/gm, ($1) => " ".repeat($1.length * spaces));
32425
32425
  };
32426
32426
  var dist_default2 = convertToSpaces;
32427
32427
 
32428
- // ../../node_modules/.pnpm/code-excerpt@4.0.0/node_modules/code-excerpt/dist/index.js
32428
+ // ../../node_modules/.bun/code-excerpt@4.0.0/node_modules/code-excerpt/dist/index.js
32429
32429
  var generateLineNumbers = (line, around) => {
32430
32430
  const lineNumbers = [];
32431
32431
  const min = line - around;
@@ -32451,20 +32451,20 @@ var codeExcerpt = (source, line, options = {}) => {
32451
32451
  };
32452
32452
  var dist_default3 = codeExcerpt;
32453
32453
 
32454
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Box.js
32454
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Box.js
32455
32455
  var import_react11 = __toESM(require_react(), 1);
32456
32456
 
32457
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/AccessibilityContext.js
32457
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/AccessibilityContext.js
32458
32458
  var import_react9 = __toESM(require_react(), 1);
32459
32459
  var accessibilityContext = (0, import_react9.createContext)({
32460
32460
  isScreenReaderEnabled: false
32461
32461
  });
32462
32462
 
32463
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/BackgroundContext.js
32463
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/BackgroundContext.js
32464
32464
  var import_react10 = __toESM(require_react(), 1);
32465
32465
  var backgroundContext = (0, import_react10.createContext)(void 0);
32466
32466
 
32467
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Box.js
32467
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Box.js
32468
32468
  var Box = (0, import_react11.forwardRef)(({ children, backgroundColor, "aria-label": ariaLabel, "aria-hidden": ariaHidden, "aria-role": role, "aria-state": ariaState, ...style }, ref) => {
32469
32469
  const { isScreenReaderEnabled } = (0, import_react11.useContext)(accessibilityContext);
32470
32470
  const label = ariaLabel ? import_react11.default.createElement("ink-text", null, ariaLabel) : void 0;
@@ -32492,7 +32492,7 @@ var Box = (0, import_react11.forwardRef)(({ children, backgroundColor, "aria-lab
32492
32492
  Box.displayName = "Box";
32493
32493
  var Box_default = Box;
32494
32494
 
32495
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Text.js
32495
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Text.js
32496
32496
  var import_react12 = __toESM(require_react(), 1);
32497
32497
  function Text({ color, backgroundColor, dimColor = false, bold = false, italic = false, underline = false, strikethrough = false, inverse = false, wrap: wrap2 = "wrap", children, "aria-label": ariaLabel, "aria-hidden": ariaHidden = false }) {
32498
32498
  const { isScreenReaderEnabled } = (0, import_react12.useContext)(accessibilityContext);
@@ -32535,7 +32535,7 @@ function Text({ color, backgroundColor, dimColor = false, bold = false, italic =
32535
32535
  return import_react12.default.createElement("ink-text", { style: { flexGrow: 0, flexShrink: 1, flexDirection: "row", textWrap: wrap2 }, internal_transform: transform }, childrenOrAriaLabel);
32536
32536
  }
32537
32537
 
32538
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/ErrorOverview.js
32538
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/ErrorOverview.js
32539
32539
  var cleanupPath = (path13) => {
32540
32540
  return path13?.replace(`file://${cwd()}/`, "");
32541
32541
  };
@@ -32648,7 +32648,7 @@ function ErrorOverview({ error }) {
32648
32648
  );
32649
32649
  }
32650
32650
 
32651
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/ErrorBoundary.js
32651
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/ErrorBoundary.js
32652
32652
  var ErrorBoundary = class extends import_react14.PureComponent {
32653
32653
  static displayName = "InternalErrorBoundary";
32654
32654
  static getDerivedStateFromError(error) {
@@ -32668,7 +32668,7 @@ var ErrorBoundary = class extends import_react14.PureComponent {
32668
32668
  }
32669
32669
  };
32670
32670
 
32671
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/App.js
32671
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/App.js
32672
32672
  var tab = " ";
32673
32673
  var shiftTab = "\x1B[Z";
32674
32674
  var escape2 = "\x1B";
@@ -33180,7 +33180,7 @@ function App({ children, stdin, stdout, stderr, writeToStdout, writeToStderr, ex
33180
33180
  App.displayName = "InternalApp";
33181
33181
  var App_default = App;
33182
33182
 
33183
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/kitty-keyboard.js
33183
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/kitty-keyboard.js
33184
33184
  var kittyFlags = {
33185
33185
  disambiguateEscapeCodes: 1,
33186
33186
  reportEventTypes: 2,
@@ -33206,7 +33206,7 @@ var kittyModifiers = {
33206
33206
  numLock: 128
33207
33207
  };
33208
33208
 
33209
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/ink.js
33209
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/ink.js
33210
33210
  var noop = () => {
33211
33211
  };
33212
33212
  var textEncoder = new TextEncoder();
@@ -34002,7 +34002,7 @@ var Ink = class {
34002
34002
  }
34003
34003
  };
34004
34004
 
34005
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render.js
34005
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render.js
34006
34006
  var render = (node, options) => {
34007
34007
  const inkOptions = {
34008
34008
  stdout: process13.stdout,
@@ -34053,10 +34053,10 @@ var getInstance = (stdout, createInstance) => {
34053
34053
  return instance;
34054
34054
  };
34055
34055
 
34056
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/render-to-string.js
34056
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/render-to-string.js
34057
34057
  var import_constants3 = __toESM(require_constants(), 1);
34058
34058
 
34059
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Static.js
34059
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Static.js
34060
34060
  var import_react17 = __toESM(require_react(), 1);
34061
34061
  function Static(props) {
34062
34062
  const { items, children: render2, style: customStyle } = props;
@@ -34078,19 +34078,19 @@ function Static(props) {
34078
34078
  return import_react17.default.createElement("ink-box", { internal_static: true, style }, children);
34079
34079
  }
34080
34080
 
34081
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Transform.js
34081
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Transform.js
34082
34082
  var import_react18 = __toESM(require_react(), 1);
34083
34083
 
34084
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Newline.js
34084
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Newline.js
34085
34085
  var import_react19 = __toESM(require_react(), 1);
34086
34086
 
34087
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/components/Spacer.js
34087
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/components/Spacer.js
34088
34088
  var import_react20 = __toESM(require_react(), 1);
34089
34089
 
34090
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-input.js
34090
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-input.js
34091
34091
  var import_react22 = __toESM(require_react(), 1);
34092
34092
 
34093
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/parse-keypress.js
34093
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/parse-keypress.js
34094
34094
  var textDecoder = new TextDecoder();
34095
34095
  var metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
34096
34096
  var fnKeyRe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
@@ -34522,13 +34522,13 @@ var parseKeypress = (s2 = "") => {
34522
34522
  };
34523
34523
  var parse_keypress_default = parseKeypress;
34524
34524
 
34525
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-stdin.js
34525
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-stdin.js
34526
34526
  var import_react21 = __toESM(require_react(), 1);
34527
34527
  var useStdin = () => (0, import_react21.useContext)(StdinContext_default);
34528
34528
  var useStdinContext = () => (0, import_react21.useContext)(StdinContext_default);
34529
34529
  var use_stdin_default = useStdin;
34530
34530
 
34531
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-input.js
34531
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-input.js
34532
34532
  var useInput = (inputHandler, options = {}) => {
34533
34533
  const { setRawMode, internal_exitOnCtrlC, internal_eventEmitter } = useStdinContext();
34534
34534
  (0, import_react22.useEffect)(() => {
@@ -34608,35 +34608,35 @@ var useInput = (inputHandler, options = {}) => {
34608
34608
  };
34609
34609
  var use_input_default = useInput;
34610
34610
 
34611
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-paste.js
34611
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-paste.js
34612
34612
  var import_react23 = __toESM(require_react(), 1);
34613
34613
 
34614
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-app.js
34614
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-app.js
34615
34615
  var import_react24 = __toESM(require_react(), 1);
34616
34616
  var useApp = () => (0, import_react24.useContext)(AppContext_default);
34617
34617
  var use_app_default = useApp;
34618
34618
 
34619
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-stdout.js
34619
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-stdout.js
34620
34620
  var import_react25 = __toESM(require_react(), 1);
34621
34621
  var useStdout = () => (0, import_react25.useContext)(StdoutContext_default);
34622
34622
  var use_stdout_default = useStdout;
34623
34623
 
34624
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-stderr.js
34624
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-stderr.js
34625
34625
  var import_react26 = __toESM(require_react(), 1);
34626
34626
 
34627
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-focus.js
34627
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-focus.js
34628
34628
  var import_react27 = __toESM(require_react(), 1);
34629
34629
 
34630
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-focus-manager.js
34630
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-focus-manager.js
34631
34631
  var import_react28 = __toESM(require_react(), 1);
34632
34632
 
34633
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js
34633
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js
34634
34634
  var import_react29 = __toESM(require_react(), 1);
34635
34635
 
34636
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-cursor.js
34636
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-cursor.js
34637
34637
  var import_react30 = __toESM(require_react(), 1);
34638
34638
 
34639
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-animation.js
34639
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-animation.js
34640
34640
  var import_react31 = __toESM(require_react(), 1);
34641
34641
  var defaultAnimationInterval = 100;
34642
34642
  var maximumTimerInterval = 2147483647;
@@ -34696,13 +34696,13 @@ function normalizeAnimationInterval(interval) {
34696
34696
  return Math.min(maximumTimerInterval, Math.max(1, interval));
34697
34697
  }
34698
34698
 
34699
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-window-size.js
34699
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-window-size.js
34700
34700
  var import_react32 = __toESM(require_react(), 1);
34701
34701
 
34702
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/hooks/use-box-metrics.js
34702
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/hooks/use-box-metrics.js
34703
34703
  var import_react33 = __toESM(require_react(), 1);
34704
34704
 
34705
- // ../../node_modules/.pnpm/ink@7.1.1_patch_hash=98833c_0fdd2846ba9ee0f07e76b94de69eda49/node_modules/ink/build/measure-element.js
34705
+ // ../../node_modules/.bun/ink@7.1.1+0ac650c021fb1b59/node_modules/ink/build/measure-element.js
34706
34706
  var measureElement = (node) => {
34707
34707
  const { yogaNode } = node;
34708
34708
  if (!yogaNode) {
@@ -37322,7 +37322,7 @@ var F_KEY_PANEL_ENTRIES = [
37322
37322
  key: 4,
37323
37323
  label: "Worktree monitor",
37324
37324
  action: "toggleWorktreeMonitor",
37325
- helpKeys: "F4 or /worktree",
37325
+ helpKeys: "F4, Ctrl+T or /worktree",
37326
37326
  helpDescription: "worktree monitor (Ctrl+T may be reserved)",
37327
37327
  ctrlAlias: "t"
37328
37328
  },
@@ -37464,7 +37464,7 @@ var PANEL_IDS = Object.freeze([
37464
37464
  "connections"
37465
37465
  // Ctrl+N
37466
37466
  ]);
37467
- var TOTAL_SETTINGS_FIELD_COUNT = PANEL_POSITION_FIELD_START + PANEL_IDS.length + 6;
37467
+ var TOTAL_SETTINGS_FIELD_COUNT = PANEL_POSITION_FIELD_START + PANEL_IDS.length + 8;
37468
37468
  var DEFAULT_PANEL_POSITIONS = Object.freeze({
37469
37469
  projectPicker: "bottom",
37470
37470
  fleet: "bottom",
@@ -41017,6 +41017,11 @@ function helpSections() {
41017
41017
  keys: entry2.helpKeys,
41018
41018
  desc: entry2.helpDescription
41019
41019
  })),
41020
+ // Chord-only monitors (no F-key slot) — routeChordPanels /
41021
+ // key-route-composer; listed here so they are discoverable.
41022
+ { keys: "Ctrl+B", desc: "SDD board monitor" },
41023
+ { keys: "Ctrl+P", desc: "goal phase monitor (runs /goal when no goal is active)" },
41024
+ { keys: "/mailbox", desc: "inter-agent mailbox panel" },
41020
41025
  { keys: "Esc", desc: "close the open monitor / overlay" }
41021
41026
  ]
41022
41027
  },
@@ -41041,7 +41046,7 @@ function helpSections() {
41041
41046
  { keys: "/model", desc: "switch the active model" },
41042
41047
  { keys: "/fleet", desc: "multi-agent fleet controls" },
41043
41048
  { keys: "/goal", desc: "set an autonomous goal" },
41044
- { keys: "/autonomy", desc: "autonomy mode (eternal / off)" },
41049
+ { keys: "/autonomy", desc: "autonomy picker (off / suggest / auto / eternal / parallel)" },
41045
41050
  {
41046
41051
  keys: "/settings",
41047
41052
  desc: "settings picker (also: /settings <chord> <value> \xB7 /settings reset <chord>)"
@@ -41059,11 +41064,11 @@ function helpSections() {
41059
41064
  entries: [
41060
41065
  {
41061
41066
  keys: "Multi-diff summary",
41062
- desc: "min files before per-tool aggregate footer (Ctrl+M in picker, settings \u2192 tools, 0 = off, default 5)"
41067
+ desc: "min files before per-tool aggregate footer (Alt+M in picker, settings \u2192 tools, 0 = off, default 5)"
41063
41068
  },
41064
41069
  {
41065
41070
  keys: "Index on session start",
41066
- desc: "run incremental index at startup (Ctrl+I in picker)"
41071
+ desc: "run incremental index at startup (Alt+I in picker)"
41067
41072
  },
41068
41073
  {
41069
41074
  keys: "Thinking word",
@@ -41083,7 +41088,7 @@ function helpSections() {
41083
41088
  },
41084
41089
  {
41085
41090
  keys: "Statusline",
41086
- desc: "detailed / minimum density (Ctrl+D in picker)"
41091
+ desc: "minimum / detailed / no-color (Ctrl+D in picker)"
41087
41092
  },
41088
41093
  {
41089
41094
  keys: "Default autonomy mode",
@@ -41095,11 +41100,11 @@ function helpSections() {
41095
41100
  },
41096
41101
  {
41097
41102
  keys: "Token-saving mode",
41098
- desc: "off / minimal / light / medium / aggressive (Alt+T in picker)"
41103
+ desc: "auto / off / minimal / light / medium / aggressive (Alt+T in picker)"
41099
41104
  },
41100
41105
  {
41101
41106
  keys: "Context mode",
41102
- desc: "balanced / frugal / deep / archival (Alt+X in picker, settings \u2192 context)"
41107
+ desc: "balanced / frugal / deep (Alt+X in picker, settings \u2192 context)"
41103
41108
  },
41104
41109
  {
41105
41110
  keys: "Confirm before exit",
@@ -47150,6 +47155,9 @@ function mergeComposerOwnedChips(hiddenItems) {
47150
47155
  for (const chip of COMPOSER_OWNED_CHIPS) merged.add(chip);
47151
47156
  return [...merged];
47152
47157
  }
47158
+ function leaderEffortLabel(effort) {
47159
+ return effort ? `${effort} (leader)` : void 0;
47160
+ }
47153
47161
  function AppStatusRegion({
47154
47162
  host,
47155
47163
  runtime,
@@ -47168,6 +47176,7 @@ function AppStatusRegion({
47168
47176
  fleetRoster,
47169
47177
  getModeLabel,
47170
47178
  getSettings,
47179
+ getLeaderEffort,
47171
47180
  onCoordinatorStart,
47172
47181
  onCoordinatorStop,
47173
47182
  tokenCounter,
@@ -47248,7 +47257,7 @@ function AppStatusRegion({
47248
47257
  {
47249
47258
  provider: liveProvider,
47250
47259
  model: liveModel,
47251
- effort: getSettings ? state.settingsPicker.open ? state.settingsPicker.reasoningEffort : getSettings().reasoningEffort : void 0,
47260
+ effort: getSettings ? state.settingsPicker.open ? state.settingsPicker.reasoningEffort : leaderEffortLabel(getLeaderEffort?.()) ?? getSettings().reasoningEffort : void 0,
47252
47261
  version: appVersion,
47253
47262
  latestVersion,
47254
47263
  updateAvailable,
@@ -47859,7 +47868,7 @@ function ClearConfirmPanel({
47859
47868
 
47860
47869
  // src/components/confirm-prompt.tsx
47861
47870
  var import_react63 = __toESM(require_react(), 1);
47862
- import { unifiedDiff, writeOut } from "@wrongstack/core/utils";
47871
+ import { sanitizeTerminalText as sanitizeTerminalText2, unifiedDiff, writeOut } from "@wrongstack/core/utils";
47863
47872
 
47864
47873
  // src/highlight.ts
47865
47874
  var C = {
@@ -50556,15 +50565,23 @@ function countUnifiedDiffChanges(diff2) {
50556
50565
  let removed = 0;
50557
50566
  let lineStart = 0;
50558
50567
  const startsWithAny = (prefixes, end) => prefixes.find((p) => end - lineStart >= p.length && diff2.startsWith(p, lineStart));
50568
+ let sawHunk = !/^@@/m.test(diff2);
50569
+ let skipHeaderPlus = false;
50559
50570
  const processLine = (end) => {
50560
50571
  const found = startsWithAny(["diff --git ", "@@"], end);
50561
50572
  if (found === "diff --git ") {
50562
50573
  } else if (found === "@@") {
50563
- } else {
50574
+ sawHunk = true;
50575
+ } else if (skipHeaderPlus) {
50576
+ skipHeaderPlus = false;
50577
+ } else if (sawHunk) {
50578
+ if (startsWithAny(["--- "], end) && diff2.startsWith("+++ ", end + 1)) {
50579
+ skipHeaderPlus = true;
50580
+ return;
50581
+ }
50564
50582
  const first = diff2.charCodeAt(lineStart);
50565
- const fileHeader = startsWithAny(["+++ ", "--- "], end) !== void 0;
50566
- if (!fileHeader && first === 43) added++;
50567
- else if (!fileHeader && first === 45) removed++;
50583
+ if (first === 43) added++;
50584
+ else if (first === 45) removed++;
50568
50585
  }
50569
50586
  };
50570
50587
  for (let index = 0; index < diff2.length; index++) {
@@ -51232,7 +51249,7 @@ function ConfirmPrompt({
51232
51249
  decide("deny");
51233
51250
  }
51234
51251
  });
51235
- const inputSummary = stringifyInput(input);
51252
+ const inputSummary = sanitizeTerminalText2(stringifyInput(input));
51236
51253
  const inp = input;
51237
51254
  const diff2 = payloadDiff(input);
51238
51255
  const diffPath = typeof inp?.path === "string" ? inp.path : void 0;
@@ -51264,8 +51281,9 @@ function ConfirmPrompt({
51264
51281
  boundaryReason
51265
51282
  ] }) : null,
51266
51283
  writeTargets && writeTargets.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Text2, { color: "yellow", children: [
51267
- "WRITES: ",
51268
- writeTargets.slice(0, 5).join(", "),
51284
+ "WRITES:",
51285
+ " ",
51286
+ writeTargets.slice(0, 5).map((target) => sanitizeTerminalText2(target)).join(", "),
51269
51287
  writeTargets.length > 5 ? ` (+${writeTargets.length - 5} more)` : ""
51270
51288
  ] }) : null,
51271
51289
  diff2 ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box2, { flexDirection: "column", marginY: 1, children: renderDiff(diff2, diffPath) }) : null,
@@ -55058,7 +55076,8 @@ function McpPicker({
55058
55076
  busy = false,
55059
55077
  hint,
55060
55078
  maxRows,
55061
- columns
55079
+ columns,
55080
+ editor
55062
55081
  }) {
55063
55082
  const size = useTerminalSize();
55064
55083
  const budget = maxRows ?? Math.max(8, size.rows - 6);
@@ -55073,9 +55092,59 @@ function McpPicker({
55073
55092
  });
55074
55093
  const above = windowStart;
55075
55094
  const below = total - windowEnd;
55095
+ const hintColumns = Math.max(1, (columns ?? size.columns) - 4);
55096
+ const subheaderText = [
55097
+ "\u2191/\u2193 select \xB7 a add \xB7 e edit \xB7 d remove \xB7 Enter toggle \xB7 r restart \xB7 Esc close",
55098
+ "a add \xB7 e edit \xB7 d del \xB7 Enter on/off \xB7 r restart \xB7 Esc",
55099
+ "a add \xB7 e edit \xB7 Enter \xB7 r \xB7 Esc",
55100
+ "a/e \xB7 Enter \xB7 Esc",
55101
+ "Esc"
55102
+ ].find((text) => displayWidth(text) <= hintColumns) ?? "Esc";
55103
+ if (editor) {
55104
+ const fields = [
55105
+ ["Name", editor.name],
55106
+ ["Transport (stdio / streamable-http / sse)", editor.transport],
55107
+ [
55108
+ editor.transport === "stdio" || !editor.transport ? "Command (empty for preset)" : "URL",
55109
+ editor.target
55110
+ ],
55111
+ ["Arguments (JSON array)", editor.args]
55112
+ ];
55113
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Box2, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, children: [
55114
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { bold: true, color: "cyan", children: editor.mode === "remove" ? "Remove MCP server" : editor.mode === "add" ? "Add MCP server" : "Edit MCP server" }),
55115
+ editor.mode === "remove" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Text2, { children: [
55116
+ 'Remove "',
55117
+ editor.name,
55118
+ '" from config? y confirm \xB7 n/Esc cancel'
55119
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
55120
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "Tab fields \xB7 Enter save \xB7 Ctrl+U clear \xB7 Esc cancel" }),
55121
+ fields.map(
55122
+ ([label, value], index) => !compact2 || editor.field === index ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
55123
+ Text2,
55124
+ {
55125
+ color: editor.field === index ? "cyan" : void 0,
55126
+ wrap: "truncate-end",
55127
+ children: [
55128
+ editor.field === index ? "\u203A" : " ",
55129
+ " ",
55130
+ label,
55131
+ ": ",
55132
+ value,
55133
+ editor.field === index ? "\u258C" : ""
55134
+ ]
55135
+ },
55136
+ label
55137
+ ) : null
55138
+ ),
55139
+ !compact2 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "New servers start disabled; Enter on the server row enables them." }) : null
55140
+ ] }),
55141
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { color: "yellow", wrap: "truncate-end", children: hint }) : null,
55142
+ busy ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, children: "Saving\u2026" }) : null
55143
+ ] });
55144
+ }
55076
55145
  return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Box2, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, children: [
55077
55146
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { bold: true, color: "cyan", children: "MCP Servers" }),
55078
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: (columns ?? size.columns) < 70 ? "\u2191\u2193 \xB7 Enter toggle \xB7 r restart \xB7 Esc" : "\u2191/\u2193 select \xB7 Enter/\u2190/\u2192 toggle enable \xB7 r restart \xB7 Esc close" }),
55147
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: subheaderText }),
55079
55148
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Box2, { marginTop: compact2 ? 0 : 1, flexDirection: "column", children: items.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, children: busy ? "Loading servers\u2026" : "No MCP servers configured." }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
55080
55149
  above > 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Text2, { dimColor: true, children: ` \u2191 ${above} more` }) : null,
55081
55150
  items.slice(windowStart, windowEnd).map((item, i) => {
@@ -55234,6 +55303,13 @@ var REASONING_EFFORTS = [
55234
55303
  "max"
55235
55304
  ];
55236
55305
  var CACHE_TTLS = ["default", "5m", "1h"];
55306
+ var SYSTEM_PROMPT_CHOICES = ["lite", "default", "pro", "scout"];
55307
+ var SYSTEM_PROMPT_CHOICE_LABELS = {
55308
+ lite: "Lite",
55309
+ default: "Standard",
55310
+ pro: "Pro",
55311
+ scout: "Scout"
55312
+ };
55237
55313
  var STATUSLINE_MODE_DESCS = {
55238
55314
  minimum: "Single line with essential chips only (default)",
55239
55315
  detailed: "Full multi-line statusline",
@@ -55454,8 +55530,12 @@ var SETTINGS_FIELD_LABELS = [
55454
55530
  // 62
55455
55531
  "Tool Coach",
55456
55532
  // 63
55457
- "Require next steps"
55533
+ "Require next steps",
55458
55534
  // 64
55535
+ "Reuse startup choices",
55536
+ // 65
55537
+ "System prompt"
55538
+ // 66
55459
55539
  ];
55460
55540
 
55461
55541
  // src/components/model-picker-effort.ts
@@ -55936,33 +56016,23 @@ function PluginDetail({
55936
56016
  const contentColumns = Math.max(20, columns - 4);
55937
56017
  const summaryLines = Math.max(3, Math.min(8, (maxRows ?? DETAIL_MIN_ROWS) - 8));
55938
56018
  const summaryWrapped = wrapText2(item.summary || "(no summary)", contentColumns, summaryLines);
55939
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
55940
- Box2,
55941
- {
55942
- flexDirection: "column",
55943
- borderStyle: "round",
55944
- borderColor: "cyan",
55945
- paddingX: 1,
55946
- flexGrow: 1,
55947
- children: [
55948
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { bold: true, color: "cyan", wrap: "truncate-end", children: item.name }),
55949
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { gap: 1, flexWrap: "wrap", children: [
55950
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { color: stateColor, bold: true, children: stateLabel }),
55951
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Text2, { color: riskColor2, bold: true, children: [
55952
- "risk=",
55953
- item.risk
55954
- ] }),
55955
- isLocked ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { color: "yellow", bold: true, children: "\u{1F512} locked" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, children: "toggleable" })
55956
- ] }),
55957
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }),
55958
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, children: "summary" }),
55959
- summaryWrapped.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { wrap: "truncate-end", children: line.length > 0 ? line : " " }, `summary-${i}`)),
55960
- Array.from({ length: summaryLines - summaryWrapped.length }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }, `summary-pad-${i}`)),
55961
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }),
55962
- isLocked ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "Locked rows ignore Enter / \u2190 / \u2192 \u2014 see `/plugin report` for details." }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "Enter / \u2190 / \u2192 toggles this plugin on or off." })
55963
- ]
55964
- }
55965
- );
56019
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, flexGrow: 1, children: [
56020
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { bold: true, color: "cyan", wrap: "truncate-end", children: item.name }),
56021
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { gap: 1, flexWrap: "wrap", children: [
56022
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { color: stateColor, bold: true, children: stateLabel }),
56023
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Text2, { color: riskColor2, bold: true, children: [
56024
+ "risk=",
56025
+ item.risk
56026
+ ] }),
56027
+ isLocked ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { color: "yellow", bold: true, children: "\u{1F512} locked" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, children: "toggleable" })
56028
+ ] }),
56029
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }),
56030
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, children: "summary" }),
56031
+ summaryWrapped.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { wrap: "truncate-end", children: line.length > 0 ? line : " " }, `summary-${i}`)),
56032
+ Array.from({ length: summaryLines - summaryWrapped.length }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }, `summary-pad-${i}`)),
56033
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { children: " " }),
56034
+ isLocked ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "Locked rows ignore Enter / \u2190 / \u2192 \u2014 see `/plugin report` for details." }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Text2, { dimColor: true, wrap: "truncate-end", children: "Enter / \u2190 / \u2192 toggles this plugin on or off." })
56035
+ ] });
55966
56036
  }
55967
56037
  function wrapText2(text, columns, maxLines) {
55968
56038
  if (text.length === 0) return [""];
@@ -56656,8 +56726,11 @@ function buildSettingsFilterState(filter, chords) {
56656
56726
 
56657
56727
  // src/components/settings-picker-jumps.ts
56658
56728
  var SETTINGS_PICKER_JUMP_CHORDS = Object.freeze([
56659
- { mod: "ctrl", letter: "i", field: 20, label: "Index on session start" },
56660
- { mod: "ctrl", letter: "m", field: 21, label: "Multi-diff summary" },
56729
+ // Index / multi-diff ride Alt, not Ctrl: without the kitty keyboard
56730
+ // protocol a terminal sends Ctrl+I as Tab and Ctrl+M as Return, so those
56731
+ // chords never arrived (and Ctrl+M activated the focused row instead).
56732
+ { mod: "alt", letter: "i", field: 20, label: "Index on session start" },
56733
+ { mod: "alt", letter: "m", field: 21, label: "Multi-diff summary" },
56661
56734
  { mod: "ctrl", letter: "w", field: 22, label: "Thinking word" },
56662
56735
  { mod: "ctrl", letter: "r", field: 17, label: "Refine preview countdown" },
56663
56736
  { mod: "ctrl", letter: "e", field: 18, label: "Refine" },
@@ -56697,6 +56770,16 @@ var SETTINGS_PICKER_JUMP_CHORDS = Object.freeze([
56697
56770
  { mod: "alt-shift", letter: "n", field: 58, label: "Connections placement" },
56698
56771
  { mod: "alt-shift", letter: "v", field: 62, label: "Tool result view" }
56699
56772
  ]);
56773
+ var SETTINGS_FIELD_ROW_LABELS = [
56774
+ [7, "Next-step prediction"],
56775
+ [8, "MCP servers"],
56776
+ [9, "Plugins"],
56777
+ [10, "Memory"],
56778
+ [11, "Skills"],
56779
+ [14, "Allow outside project"],
56780
+ [25, "Preserve thinking"],
56781
+ [27, "Auto-compact"]
56782
+ ];
56700
56783
  function settingsPickerJumpField(mod, letter) {
56701
56784
  const lower = letter.toLowerCase();
56702
56785
  const chord = SETTINGS_PICKER_JUMP_CHORDS.find((c) => c.mod === mod && c.letter === lower);
@@ -56712,6 +56795,9 @@ function settingsPickerJumpByName(name) {
56712
56795
  if (exact) return exact.field;
56713
56796
  const canonical = SETTINGS_FIELD_LABELS.findIndex((label) => settingsPickerSlug(label) === query);
56714
56797
  if (canonical >= 0) return canonical;
56798
+ for (const [field, label] of SETTINGS_FIELD_ROW_LABELS) {
56799
+ if (settingsPickerSlug(label) === query) return field;
56800
+ }
56715
56801
  const queryTokens = query.split("-");
56716
56802
  for (const c of SETTINGS_PICKER_JUMP_CHORDS) {
56717
56803
  const labelTokens = settingsPickerSlug(c.label).split("-");
@@ -56768,6 +56854,7 @@ function resolveSettingsFieldValue(field, input) {
56768
56854
  [43, "showSageMemoryInject"],
56769
56855
  [45, "nextStepsTool"],
56770
56856
  [64, "nextStepsRequired"],
56857
+ [65, "rememberStartupChoices"],
56771
56858
  [59, "wrongProxyEnabled"],
56772
56859
  [61, "showSidebar"]
56773
56860
  ]);
@@ -56807,6 +56894,22 @@ function resolveSettingsFieldValue(field, input) {
56807
56894
  error: `Invalid value "${input}" for ${label}. Valid: ${FLEET_CHAT_MODES.join(", ")}.`
56808
56895
  };
56809
56896
  }
56897
+ if (field === 66) {
56898
+ const variant = raw === "standard" ? "default" : raw;
56899
+ const match = SYSTEM_PROMPT_CHOICES.find((v) => v === variant);
56900
+ if (match) {
56901
+ return {
56902
+ ok: true,
56903
+ patch: { nextSystemPromptVariant: match },
56904
+ label,
56905
+ displayValue: SYSTEM_PROMPT_CHOICE_LABELS[match]
56906
+ };
56907
+ }
56908
+ return {
56909
+ ok: false,
56910
+ error: `Invalid value "${input}" for ${label}. Valid: lite, standard, pro, scout.`
56911
+ };
56912
+ }
56810
56913
  const ENUM_FIELDS = [
56811
56914
  [0, "mode", SETTINGS_MODES],
56812
56915
  [13, "tokenSavingTier", TOKEN_SAVING_TIERS],
@@ -56980,6 +57083,7 @@ function getSettingsFieldValue(values, field) {
56980
57083
  [43, "showSageMemoryInject"],
56981
57084
  [45, "nextStepsTool"],
56982
57085
  [64, "nextStepsRequired"],
57086
+ [65, "rememberStartupChoices"],
56983
57087
  // WrongProxy / WrongTrace master switch (field 59). The companion
56984
57088
  // URL field (60) is text-typed, see getSettingsFieldValue.
56985
57089
  [59, "wrongProxyEnabled"],
@@ -57008,6 +57112,13 @@ function getSettingsFieldValue(values, field) {
57008
57112
  [40, "showAgentSwarmPanel"],
57009
57113
  [62, "toolResultViewMode"]
57010
57114
  ];
57115
+ if (field === 66) {
57116
+ return {
57117
+ ok: true,
57118
+ label,
57119
+ displayValue: SYSTEM_PROMPT_CHOICE_LABELS[values.nextSystemPromptVariant]
57120
+ };
57121
+ }
57011
57122
  for (const [f, key2] of ENUM_KEYS) {
57012
57123
  if (field !== f) continue;
57013
57124
  return { ok: true, label, displayValue: String(values[key2]) };
@@ -57057,17 +57168,13 @@ var SETTINGS_SECTIONS = [
57057
57168
  name: "Features",
57058
57169
  fields: [8, 9, 10, 11, 12, 13, 14]
57059
57170
  },
57060
- {
57061
- name: "Agent guidance",
57062
- fields: [63, 64]
57063
- },
57064
57171
  {
57065
57172
  name: "Tools",
57066
- fields: [15, 16, 17, 18, 19, 20, 21, 22, 42, 45]
57173
+ fields: [15, 16, 17, 18, 19, 20, 21]
57067
57174
  },
57068
57175
  {
57069
57176
  name: "Reasoning",
57070
- fields: [23, 24, 25, 26]
57177
+ fields: [22, 23, 24, 25, 26]
57071
57178
  },
57072
57179
  {
57073
57180
  name: "Context",
@@ -57091,7 +57198,7 @@ var SETTINGS_SECTIONS = [
57091
57198
  },
57092
57199
  {
57093
57200
  name: "Display",
57094
- fields: [39, 40, 41, 43, 44, 61, 62]
57201
+ fields: [39, 40, 41, 42, 43, 44, 45]
57095
57202
  },
57096
57203
  {
57097
57204
  name: "Panels",
@@ -57106,6 +57213,18 @@ var SETTINGS_SECTIONS = [
57106
57213
  // to avoid shifting the panel-position block 46–58 indices.
57107
57214
  name: "Integrations",
57108
57215
  fields: [59, 60]
57216
+ },
57217
+ {
57218
+ name: "Layout",
57219
+ fields: [61, 62]
57220
+ },
57221
+ {
57222
+ name: "Agent guidance",
57223
+ fields: [63, 64]
57224
+ },
57225
+ {
57226
+ name: "Startup",
57227
+ fields: [65, 66]
57109
57228
  }
57110
57229
  ];
57111
57230
  function formatAllSettingsSummary(values) {
@@ -57137,7 +57256,8 @@ var SETTINGS_DEFAULTS = Object.freeze({
57137
57256
  // (self-driving) and yolo on (auto-approve). Live values still come from
57138
57257
  // config via getSettings(); these are the "reset to default" targets.
57139
57258
  mode: "auto",
57140
- delayMs: 0,
57259
+ // Core default `autonomy.autoProceedDelayMs` (DEFAULT_AUTONOMY_CONFIG).
57260
+ delayMs: 15e3,
57141
57261
  titleAnimation: true,
57142
57262
  yolo: true,
57143
57263
  fleetChat: "off",
@@ -57150,7 +57270,8 @@ var SETTINGS_DEFAULTS = Object.freeze({
57150
57270
  featureSkills: true,
57151
57271
  featureModelsRegistry: true,
57152
57272
  featureToolCoach: true,
57153
- tokenSavingTier: "off",
57273
+ // Core default `features.tokenSavingMode`.
57274
+ tokenSavingTier: "auto",
57154
57275
  allowOutsideProjectRoot: true,
57155
57276
  contextAutoCompact: true,
57156
57277
  contextStrategy: "hybrid",
@@ -57172,7 +57293,8 @@ var SETTINGS_DEFAULTS = Object.freeze({
57172
57293
  reasoningEffort: "medium",
57173
57294
  reasoningPreserve: false,
57174
57295
  thinkingWord: "thinking",
57175
- cacheTtl: "default",
57296
+ // Core default `modelRuntime.cache.ttl`.
57297
+ cacheTtl: "1h",
57176
57298
  configScope: "global",
57177
57299
  animationStyle: "rainbow",
57178
57300
  breakerEnabled: false,
@@ -57182,10 +57304,14 @@ var SETTINGS_DEFAULTS = Object.freeze({
57182
57304
  showAgentSwarmPanel: "bottom",
57183
57305
  panelPositions: DEFAULT_PANEL_POSITIONS,
57184
57306
  readSymbols: false,
57185
- showSageMemoryInject: true,
57186
- sageMemoryInjectThreshold: 0.85,
57307
+ showSageMemoryInject: false,
57308
+ // Core default `Sage.inject.relationFloor`.
57309
+ sageMemoryInjectThreshold: 0.9,
57187
57310
  nextStepsTool: false,
57188
57311
  nextStepsRequired: true,
57312
+ rememberStartupChoices: true,
57313
+ // Core default `systemPrompt.variant`.
57314
+ nextSystemPromptVariant: "pro",
57189
57315
  // WrongProxy / WrongTrace. Defaults mirror the WebUI `LocalPrefs`
57190
57316
  // DEFAULTS in `packages/webui/src/stores/local-prefs.ts` (master
57191
57317
  // switch off, URL 'http://localhost:3444'). Required keys here
@@ -57253,6 +57379,8 @@ function buildResetPatch(field) {
57253
57379
  [44, "sageMemoryInjectThreshold"],
57254
57380
  [45, "nextStepsTool"],
57255
57381
  [64, "nextStepsRequired"],
57382
+ [65, "rememberStartupChoices"],
57383
+ [66, "nextSystemPromptVariant"],
57256
57384
  // WrongProxy / WrongTrace: appended at the end so the existing
57257
57385
  // 46+13 = 59 entries are not shifted (the picker caps + scrolls;
57258
57386
  // field 59 is boolean, 60 is text). See `Settings.wrongProxy*`
@@ -57456,6 +57584,8 @@ function SettingsPicker({
57456
57584
  sageMemoryInjectThreshold,
57457
57585
  nextStepsTool,
57458
57586
  nextStepsRequired,
57587
+ rememberStartupChoices,
57588
+ nextSystemPromptVariant,
57459
57589
  readSymbols,
57460
57590
  panelPositions,
57461
57591
  // WrongProxy / WrongTrace: pick these from the same slice as
@@ -57760,7 +57890,9 @@ function SettingsPicker({
57760
57890
  value: wrongProxyUrlEditing ? `${wrongProxyUrlDraft ?? ""}\u258F` : wrongProxyUrl,
57761
57891
  detail: wrongProxyUrlEditing ? "type a URL \xB7 Enter \u2713 \xB7 Esc \u2717 (http://host:port or https://host:port)" : "Where the local proxy daemon listens. Probed at <url>/api/health every 30s."
57762
57892
  },
57763
- { section: "Display" },
57893
+ // Second display-ish block (fields 61-62, appended after Integrations).
57894
+ // A distinct name: two "Display" headers in one list read as a glitch.
57895
+ { section: "Layout" },
57764
57896
  {
57765
57897
  label: "Right sidebar",
57766
57898
  value: `${boolVal(showSidebar ?? true)}${sidebarPinned ? " \xB7 pinned" : ""}`,
@@ -57777,6 +57909,17 @@ function SettingsPicker({
57777
57909
  label: "Require next steps",
57778
57910
  value: boolVal(nextStepsRequired),
57779
57911
  detail: "Every finished turn ends with <nextsteps> or a completion marker (/nextsteps)"
57912
+ },
57913
+ { section: "Startup" },
57914
+ {
57915
+ label: "Reuse startup choices",
57916
+ value: boolVal(rememberStartupChoices),
57917
+ detail: "On: launch with the last model, system prompt and mode/YOLO/autonomy without asking. Off: ask every launch"
57918
+ },
57919
+ {
57920
+ label: "System prompt",
57921
+ value: SYSTEM_PROMPT_CHOICE_LABELS[nextSystemPromptVariant] ?? nextSystemPromptVariant,
57922
+ detail: "Lite / Standard / Pro / Scout \u2014 applies from the next session; this session keeps its current prompt"
57780
57923
  }
57781
57924
  ];
57782
57925
  const fieldRowIndex = [];
@@ -59025,6 +59168,8 @@ function AppViewPickers({
59025
59168
  sageMemoryInjectThreshold: state.settingsPicker.sageMemoryInjectThreshold,
59026
59169
  nextStepsTool: state.settingsPicker.nextStepsTool,
59027
59170
  nextStepsRequired: state.settingsPicker.nextStepsRequired,
59171
+ rememberStartupChoices: state.settingsPicker.rememberStartupChoices,
59172
+ nextSystemPromptVariant: state.settingsPicker.nextSystemPromptVariant,
59028
59173
  readSymbols: state.settingsPicker.readSymbols,
59029
59174
  panelPositions: state.settingsPicker.panelPositions,
59030
59175
  wrongProxyEnabled: state.settingsPicker.wrongProxyEnabled,
@@ -59070,7 +59215,8 @@ function AppViewPickers({
59070
59215
  items: state.mcpPicker.items,
59071
59216
  selected: state.mcpPicker.selected,
59072
59217
  busy: state.mcpPicker.busy,
59073
- hint: state.mcpPicker.hint
59218
+ hint: state.mcpPicker.hint,
59219
+ editor: state.mcpPicker.editor
59074
59220
  }
59075
59221
  ) : null,
59076
59222
  state.toolsPicker.open ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
@@ -68590,6 +68736,7 @@ function resolveControllerProps(props) {
68590
68736
  getMcpServers,
68591
68737
  onMcpToggle,
68592
68738
  onMcpRestart,
68739
+ onMcpManage,
68593
68740
  getToolsItems,
68594
68741
  onToolToggle,
68595
68742
  getBrainData,
@@ -68691,6 +68838,7 @@ function resolveControllerProps(props) {
68691
68838
  getMcpServers,
68692
68839
  onMcpToggle,
68693
68840
  onMcpRestart,
68841
+ onMcpManage,
68694
68842
  getToolsItems,
68695
68843
  onToolToggle,
68696
68844
  getBrainData,
@@ -69282,6 +69430,8 @@ var HistoryArchive = class {
69282
69430
  closed = false;
69283
69431
  /** Byte-offset index: index → { offset, length }. Built on first load. */
69284
69432
  index = null;
69433
+ /** Bumped on every invalidation so an in-flight scan can tell its result is stale. */
69434
+ indexGeneration = 0;
69285
69435
  /** Total entries written so far (monotonic counter). */
69286
69436
  // ── Write serialisation ──────────────────────────────────────────────
69287
69437
  writeChain = Promise.resolve();
@@ -69373,13 +69523,20 @@ var HistoryArchive = class {
69373
69523
  * The index is cached for the lifetime of the archive object.
69374
69524
  */
69375
69525
  async buildIndex() {
69376
- if (this.index !== null) return;
69526
+ for (; ; ) {
69527
+ if (this.index !== null) return;
69528
+ const generation = this.indexGeneration;
69529
+ const built = await this.scanIndex();
69530
+ if (generation === this.indexGeneration) {
69531
+ this.index = built;
69532
+ return;
69533
+ }
69534
+ }
69535
+ }
69536
+ async scanIndex() {
69377
69537
  const handle = await this.ensureOpen();
69378
69538
  const stat5 = await handle.stat();
69379
- if (stat5.size === 0) {
69380
- this.index = [];
69381
- return;
69382
- }
69539
+ if (stat5.size === 0) return [];
69383
69540
  const CHUNK_BYTES = 1024 * 1024;
69384
69541
  const idx = [];
69385
69542
  const pushLine = (line, offset, length) => {
@@ -69398,7 +69555,7 @@ var HistoryArchive = class {
69398
69555
  let cursor = 0;
69399
69556
  for (; ; ) {
69400
69557
  const newline = chunk.indexOf(10, cursor);
69401
- if (newline === -1) break;
69558
+ if (newline === -1 || newline >= bytesRead) break;
69402
69559
  const line = pending ? Buffer.concat([pending, chunk.subarray(cursor, newline)]) : chunk.subarray(cursor, newline);
69403
69560
  pending = null;
69404
69561
  pushLine(line, lineStart, read + newline + 1 - lineStart);
@@ -69410,12 +69567,11 @@ var HistoryArchive = class {
69410
69567
  pending = pending ? Buffer.concat([pending, tail]) : tail;
69411
69568
  }
69412
69569
  read += bytesRead;
69413
- if (bytesRead < want) break;
69414
69570
  }
69415
69571
  if (pending !== null && pending.length > 0) {
69416
69572
  pushLine(pending, lineStart, read - lineStart);
69417
69573
  }
69418
- this.index = idx;
69574
+ return idx;
69419
69575
  }
69420
69576
  /** Serialise writes through a FIFO promise chain with per-drain batching. */
69421
69577
  enqueueWrite(line) {
@@ -69436,6 +69592,7 @@ var HistoryArchive = class {
69436
69592
  const handle = await this.ensureOpen();
69437
69593
  await handle.appendFile(batch, "utf8");
69438
69594
  this.index = null;
69595
+ this.indexGeneration++;
69439
69596
  } catch {
69440
69597
  } finally {
69441
69598
  token.resolve();
@@ -70428,7 +70585,10 @@ function useQueueManager({
70428
70585
  (0, import_react106.useEffect)(() => {
70429
70586
  if (!queueStore) return;
70430
70587
  storeRef.current = queueStore;
70431
- hydrateFrom(queueStore, (n) => `Restored ${n} queued message${n === 1 ? "" : "s"} from a previous run.`);
70588
+ hydrateFrom(
70589
+ queueStore,
70590
+ (n) => `Restored ${n} queued message${n === 1 ? "" : "s"} from a previous run.`
70591
+ );
70432
70592
  return () => {
70433
70593
  hydration.current += 1;
70434
70594
  };
@@ -71599,6 +71759,8 @@ function createInitialState(options) {
71599
71759
  sageMemoryInjectThreshold: 0.85,
71600
71760
  nextStepsTool: false,
71601
71761
  nextStepsRequired: true,
71762
+ rememberStartupChoices: true,
71763
+ nextSystemPromptVariant: "pro",
71602
71764
  readSymbols: false,
71603
71765
  // WrongProxy / WrongTrace. Defaults match the WebUI LocalPrefs
71604
71766
  // (master switch off; URL 'http://localhost:3444'). The runtime
@@ -74118,6 +74280,7 @@ var panelPickerActionTypes = [
74118
74280
  "mcpPickerSetItems",
74119
74281
  "mcpPickerBusy",
74120
74282
  "mcpPickerHint",
74283
+ "mcpPickerEditor",
74121
74284
  "toolsPickerOpen",
74122
74285
  "toolsPickerClose",
74123
74286
  "toolsPickerMove",
@@ -74409,7 +74572,10 @@ function reducePanelPickers(state, action) {
74409
74572
  };
74410
74573
  }
74411
74574
  case "mcpPickerClose":
74412
- return { ...state, mcpPicker: { ...state.mcpPicker, open: false, busy: false } };
74575
+ return {
74576
+ ...state,
74577
+ mcpPicker: { ...state.mcpPicker, open: false, busy: false, editor: void 0 }
74578
+ };
74413
74579
  case "mcpPickerMove": {
74414
74580
  const count = state.mcpPicker.items.length;
74415
74581
  if (count === 0) return state;
@@ -74436,6 +74602,11 @@ function reducePanelPickers(state, action) {
74436
74602
  return { ...state, mcpPicker: { ...state.mcpPicker, busy: action.busy } };
74437
74603
  case "mcpPickerHint":
74438
74604
  return { ...state, mcpPicker: { ...state.mcpPicker, hint: action.text } };
74605
+ case "mcpPickerEditor":
74606
+ return {
74607
+ ...state,
74608
+ mcpPicker: { ...state.mcpPicker, editor: action.editor, hint: void 0 }
74609
+ };
74439
74610
  case "toolsPickerOpen": {
74440
74611
  const items = action.items ?? state.toolsPicker.items;
74441
74612
  return {
@@ -74790,6 +74961,8 @@ function reduceSettingsPanel(state, action) {
74790
74961
  sageMemoryInjectThreshold: action.sageMemoryInjectThreshold,
74791
74962
  nextStepsTool: action.nextStepsTool,
74792
74963
  nextStepsRequired: action.nextStepsRequired,
74964
+ rememberStartupChoices: action.rememberStartupChoices,
74965
+ nextSystemPromptVariant: action.nextSystemPromptVariant,
74793
74966
  readSymbols: action.readSymbols,
74794
74967
  // WrongProxy / WrongTrace: hydrate from the persisted boot-time
74795
74968
  // values pushed into the action by the TUI settings adapter.
@@ -75339,6 +75512,24 @@ function cycleSettingsValue(inputs) {
75339
75512
  ...state,
75340
75513
  settingsPicker: { ...sp, nextStepsRequired: !sp.nextStepsRequired, hint: void 0 }
75341
75514
  };
75515
+ if (f === 65)
75516
+ return {
75517
+ ...state,
75518
+ settingsPicker: {
75519
+ ...sp,
75520
+ rememberStartupChoices: !sp.rememberStartupChoices,
75521
+ hint: bootHint
75522
+ }
75523
+ };
75524
+ if (f === 66) {
75525
+ const i = SYSTEM_PROMPT_CHOICES.indexOf(sp.nextSystemPromptVariant);
75526
+ const base = i < 0 ? 0 : i;
75527
+ const next = SYSTEM_PROMPT_CHOICES[(base + action.delta + SYSTEM_PROMPT_CHOICES.length) % SYSTEM_PROMPT_CHOICES.length] ?? "pro";
75528
+ return {
75529
+ ...state,
75530
+ settingsPicker: { ...sp, nextSystemPromptVariant: next, hint: bootHint }
75531
+ };
75532
+ }
75342
75533
  if (f >= PANEL_POSITION_FIELD_START && f - PANEL_POSITION_FIELD_START < PANEL_IDS.length) {
75343
75534
  const PANEL_POSITION_CYCLE = ["bottom", "sidebar"];
75344
75535
  const panelId = PANEL_IDS[f - PANEL_POSITION_FIELD_START];
@@ -78484,6 +78675,7 @@ function usePanelControllers({
78484
78675
  getMcpServers,
78485
78676
  onMcpToggle,
78486
78677
  onMcpRestart,
78678
+ onMcpManage,
78487
78679
  getToolsItems,
78488
78680
  onToolToggle,
78489
78681
  setLiveToolCount,
@@ -78630,6 +78822,8 @@ function usePanelControllers({
78630
78822
  sageMemoryInjectThreshold: s2.sageMemoryInjectThreshold ?? 0.85,
78631
78823
  nextStepsTool: s2.nextStepsTool ?? false,
78632
78824
  nextStepsRequired: s2.nextStepsRequired ?? true,
78825
+ rememberStartupChoices: s2.rememberStartupChoices ?? true,
78826
+ nextSystemPromptVariant: s2.nextSystemPromptVariant ?? s2.systemPromptVariant ?? "pro",
78633
78827
  readSymbols: s2.readSymbols ?? false,
78634
78828
  // WrongProxy / WrongTrace: hydrate from the picker state slice.
78635
78829
  // Same defaults as the WebUI LocalPrefs and the CLI adapter's
@@ -78712,6 +78906,41 @@ function usePanelControllers({
78712
78906
  });
78713
78907
  }
78714
78908
  }, [onMcpRestart]);
78909
+ const mcpSaving = import_react117.default.useRef(false);
78910
+ const saveMcpEditor = import_react117.default.useCallback(async () => {
78911
+ const editor = stateRef.current.mcpPicker.editor;
78912
+ if (!editor || mcpSaving.current) return;
78913
+ if (!onMcpManage) {
78914
+ dispatch({ type: "mcpPickerHint", text: "MCP editing is unavailable in this host." });
78915
+ return;
78916
+ }
78917
+ mcpSaving.current = true;
78918
+ dispatch({ type: "mcpPickerBusy", busy: true });
78919
+ try {
78920
+ const args = JSON.parse(editor.args || "[]");
78921
+ if (!Array.isArray(args) || args.some((arg) => typeof arg !== "string"))
78922
+ throw new Error("Arguments must be a JSON array of strings.");
78923
+ if (!editor.name.trim()) throw new Error("Server name is required.");
78924
+ if (editor.mode === "edit" && !editor.target.trim())
78925
+ throw new Error("Command or URL is required.");
78926
+ if (editor.mode !== "remove" && !["stdio", "streamable-http", "sse"].includes(editor.transport))
78927
+ throw new Error("Choose stdio, streamable-http or sse transport.");
78928
+ const result = await onMcpManage(editor.mode, {
78929
+ name: editor.name.trim(),
78930
+ transport: editor.transport,
78931
+ ...editor.transport === "stdio" ? { command: editor.target.trim(), args } : { url: editor.target.trim() }
78932
+ });
78933
+ dispatch({ type: "mcpPickerSetItems", items: result.items });
78934
+ if (stateRef.current.mcpPicker.editor !== editor) return;
78935
+ if (!result.error) dispatch({ type: "mcpPickerEditor" });
78936
+ dispatch({ type: "mcpPickerHint", text: result.error ?? result.message });
78937
+ } catch (error) {
78938
+ dispatch({ type: "mcpPickerHint", text: toErrorMessage7(error) });
78939
+ } finally {
78940
+ mcpSaving.current = false;
78941
+ dispatch({ type: "mcpPickerBusy", busy: false });
78942
+ }
78943
+ }, [onMcpManage]);
78715
78944
  const refreshToolsPicker = import_react117.default.useCallback(() => {
78716
78945
  if (!getToolsItems) return;
78717
78946
  const items = getToolsItems();
@@ -78749,6 +78978,7 @@ function usePanelControllers({
78749
78978
  toggleSelectedPlugin,
78750
78979
  toggleSelectedMcpServer,
78751
78980
  restartSelectedMcpServer,
78981
+ saveMcpEditor,
78752
78982
  toggleSelectedTool
78753
78983
  };
78754
78984
  }
@@ -78818,6 +79048,7 @@ function useControllerCommands({
78818
79048
  getMcpServers: controllerProps.getMcpServers,
78819
79049
  onMcpToggle: controllerProps.onMcpToggle,
78820
79050
  onMcpRestart: controllerProps.onMcpRestart,
79051
+ onMcpManage: controllerProps.onMcpManage,
78821
79052
  getToolsItems: controllerProps.getToolsItems,
78822
79053
  onToolToggle: controllerProps.onToolToggle,
78823
79054
  setLiveToolCount,
@@ -79925,6 +80156,8 @@ function useSettingsAutoSave(state, saveSettings, dispatch) {
79925
80156
  sageMemoryInjectThreshold: sp.sageMemoryInjectThreshold,
79926
80157
  nextStepsTool: sp.nextStepsTool,
79927
80158
  nextStepsRequired: sp.nextStepsRequired,
80159
+ rememberStartupChoices: sp.rememberStartupChoices,
80160
+ nextSystemPromptVariant: sp.nextSystemPromptVariant,
79928
80161
  readSymbols: sp.readSymbols,
79929
80162
  // WrongProxy / WrongTrace: persist the picker-state values to
79930
80163
  // the same Config keys the adapter exposes (see LiveSettingsInput
@@ -79993,6 +80226,8 @@ function useSettingsAutoSave(state, saveSettings, dispatch) {
79993
80226
  state.settingsPicker.sageMemoryInjectThreshold,
79994
80227
  state.settingsPicker.nextStepsTool,
79995
80228
  state.settingsPicker.nextStepsRequired,
80229
+ state.settingsPicker.rememberStartupChoices,
80230
+ state.settingsPicker.nextSystemPromptVariant,
79996
80231
  state.settingsPicker.readSymbols,
79997
80232
  state.settingsPicker.wrongProxyEnabled,
79998
80233
  state.settingsPicker.wrongProxyUrl,
@@ -81432,6 +81667,8 @@ function routeSettingsOverlayKey(host, input, key2, isEnter) {
81432
81667
  sageMemoryInjectThreshold: config.sageMemoryInjectThreshold ?? 0.85,
81433
81668
  nextStepsTool: config.nextStepsTool ?? false,
81434
81669
  nextStepsRequired: config.nextStepsRequired ?? true,
81670
+ rememberStartupChoices: config.rememberStartupChoices ?? true,
81671
+ nextSystemPromptVariant: config.nextSystemPromptVariant ?? config.systemPromptVariant ?? "pro",
81435
81672
  readSymbols: config.readSymbols ?? false,
81436
81673
  // WrongProxy / WrongTrace: hydrate from the persisted Config (CLI
81437
81674
  // adapter owns the read/write — see LiveSettingsInput + the
@@ -81684,8 +81921,8 @@ async function routeInputKey(host, input, key2) {
81684
81921
  host.nextSteps.setCountdown(null);
81685
81922
  host.nextSteps.setLabel(null);
81686
81923
  host.nextSteps.suggestion.current = null;
81687
- const text = pending.trim();
81688
- if (text) host.setDraft(text, text.length);
81924
+ const text2 = pending.trim();
81925
+ if (text2) host.setDraft(text2, text2.length);
81689
81926
  }
81690
81927
  return true;
81691
81928
  }
@@ -81865,8 +82102,10 @@ async function routeInputKey(host, input, key2) {
81865
82102
  await host.commitPaste(input);
81866
82103
  return true;
81867
82104
  }
82105
+ const text = sanitizeTerminalText(input);
82106
+ if (!text) return true;
81868
82107
  host.nextSteps.cancel();
81869
- host.setDraft(buffer.slice(0, cursor) + input + buffer.slice(cursor), cursor + input.length);
82108
+ host.setDraft(buffer.slice(0, cursor) + text + buffer.slice(cursor), cursor + text.length);
81870
82109
  return true;
81871
82110
  }
81872
82111
 
@@ -82071,6 +82310,11 @@ function routeEscClosePanels(ctx, key2) {
82071
82310
  ctx.lastEscAtRef.current = 0;
82072
82311
  return true;
82073
82312
  }
82313
+ if (ctx.closeMailboxPanel) {
82314
+ ctx.closeMailboxPanel();
82315
+ ctx.lastEscAtRef.current = 0;
82316
+ return true;
82317
+ }
82074
82318
  if (escSelfOwnedPanelOpen(ctx.state)) {
82075
82319
  const positions = effectivePanelPositions(ctx.state, ctx.getSettings?.());
82076
82320
  if (ctx.state.worktreeMonitorOpen && positions.worktree === "sidebar") {
@@ -85024,6 +85268,7 @@ function tryToolsSettingsPickerKeys(host, input, key2, isEnter, debouncedEnter2)
85024
85268
  dispatch({ type: "pluginPickerMove", delta: 1 });
85025
85269
  return true;
85026
85270
  }
85271
+ if (key2.mouse) return true;
85027
85272
  if (key2.leftArrow || key2.rightArrow || isEnter) {
85028
85273
  if (debouncedEnter2(host)) return true;
85029
85274
  void host.onPluginPickerToggle?.();
@@ -85032,7 +85277,53 @@ function tryToolsSettingsPickerKeys(host, input, key2, isEnter, debouncedEnter2)
85032
85277
  return true;
85033
85278
  }
85034
85279
  if (state.mcpPicker.open) {
85280
+ if (state.mcpPicker.busy) {
85281
+ if (key2.escape) dispatch({ type: "mcpPickerClose" });
85282
+ return true;
85283
+ }
85284
+ const editor = state.mcpPicker.editor;
85285
+ if (editor) {
85286
+ if (key2.escape || editor.mode === "remove" && input.toLowerCase() === "n") {
85287
+ dispatch({ type: "mcpPickerEditor" });
85288
+ } else if (editor.mode === "remove") {
85289
+ if (input.toLowerCase() === "y") void host.onMcpPickerSave?.();
85290
+ } else if (isEnter) {
85291
+ if (!debouncedEnter2(host)) void host.onMcpPickerSave?.();
85292
+ } else if (key2.tab || key2.downArrow || key2.upArrow) {
85293
+ const first = editor.mode === "edit" ? 1 : 0;
85294
+ const count = 4 - first;
85295
+ dispatch({
85296
+ type: "mcpPickerEditor",
85297
+ editor: {
85298
+ ...editor,
85299
+ field: first + (editor.field - first + (key2.upArrow || key2.shift ? count - 1 : 1)) % count
85300
+ }
85301
+ });
85302
+ } else {
85303
+ const field = ["name", "transport", "target", "args"][editor.field];
85304
+ const value = key2.ctrl && input.toLowerCase() === "u" ? "" : key2.backspace ? pickerBackspace(editor[field]) : !key2.ctrl && !key2.meta ? editor[field] + pickerInputText(input) : editor[field];
85305
+ dispatch({ type: "mcpPickerEditor", editor: { ...editor, [field]: value } });
85306
+ }
85307
+ return true;
85308
+ }
85035
85309
  if (key2.ctrl || key2.meta) return true;
85310
+ const mode = input.toLowerCase() === "a" ? "add" : input.toLowerCase() === "e" ? "edit" : input.toLowerCase() === "d" ? "remove" : void 0;
85311
+ if (mode) {
85312
+ const item = mode === "add" ? void 0 : state.mcpPicker.items[state.mcpPicker.selected];
85313
+ if (mode !== "add" && !item) return true;
85314
+ dispatch({
85315
+ type: "mcpPickerEditor",
85316
+ editor: {
85317
+ mode,
85318
+ field: mode === "edit" ? 1 : 0,
85319
+ name: item?.name ?? "",
85320
+ transport: item?.transport ?? "stdio",
85321
+ target: item?.transport === "stdio" ? item.command ?? "" : item?.url ?? "",
85322
+ args: JSON.stringify(item?.args ?? [])
85323
+ }
85324
+ });
85325
+ return true;
85326
+ }
85036
85327
  if (key2.escape) {
85037
85328
  dispatch({ type: "mcpPickerClose" });
85038
85329
  return true;
@@ -85399,6 +85690,7 @@ function useAppPickerKeys({
85399
85690
  const {
85400
85691
  openProjectPicker,
85401
85692
  restartSelectedMcpServer,
85693
+ saveMcpEditor,
85402
85694
  toggleSelectedMcpServer,
85403
85695
  toggleSelectedPlugin,
85404
85696
  toggleSelectedTool
@@ -85838,6 +86130,7 @@ function useAppPickerKeys({
85838
86130
  onPluginPickerToggle: toggleSelectedPlugin,
85839
86131
  onMcpPickerToggle: toggleSelectedMcpServer,
85840
86132
  onMcpPickerRestart: restartSelectedMcpServer,
86133
+ onMcpPickerSave: saveMcpEditor,
85841
86134
  onToolsPickerToggle: toggleSelectedTool,
85842
86135
  onHelpPanelEnter: () => {
85843
86136
  },
@@ -85938,6 +86231,7 @@ function buildAppPipelineArgs(params) {
85938
86231
  pasteClipboardText,
85939
86232
  pasteClipboardImage,
85940
86233
  onHistoryCopy,
86234
+ closeMailboxPanel,
85941
86235
  tryPickerKey,
85942
86236
  pasteAccumRef,
85943
86237
  pasteFlushTimerRef,
@@ -86040,7 +86334,8 @@ function buildAppPipelineArgs(params) {
86040
86334
  pasteClipboardImage,
86041
86335
  slashRegistry: props.slashRegistry,
86042
86336
  agent: props.agent,
86043
- onHistoryCopy
86337
+ onHistoryCopy,
86338
+ closeMailboxPanel
86044
86339
  },
86045
86340
  runBlocksParams: {
86046
86341
  capabilities: {
@@ -86475,6 +86770,7 @@ function useControllerKeyPipeline({
86475
86770
  pasteClipboardText,
86476
86771
  pasteClipboardImage,
86477
86772
  onHistoryCopy,
86773
+ closeMailboxPanel,
86478
86774
  pasteAccumRef,
86479
86775
  pasteFlushTimerRef,
86480
86776
  commitPaste,
@@ -86616,6 +86912,7 @@ function useControllerKeyPipeline({
86616
86912
  pasteClipboardText,
86617
86913
  pasteClipboardImage,
86618
86914
  onHistoryCopy,
86915
+ closeMailboxPanel,
86619
86916
  tryPickerKey,
86620
86917
  pasteAccumRef,
86621
86918
  pasteFlushTimerRef,
@@ -86746,7 +87043,8 @@ function useControllerInputWiring({
86746
87043
  handleShadowStart,
86747
87044
  handleShadowStop,
86748
87045
  subagentModelsCtl,
86749
- bugHuntLoop
87046
+ bugHuntLoop,
87047
+ mailbox
86750
87048
  } = panelHooks;
86751
87049
  const {
86752
87050
  environment,
@@ -86881,6 +87179,7 @@ function useControllerInputWiring({
86881
87179
  pasteClipboardText,
86882
87180
  pasteClipboardImage,
86883
87181
  onHistoryCopy,
87182
+ closeMailboxPanel: mailbox.mailboxPanelOpen ? () => mailbox.setMailboxPanelOpen(false) : void 0,
86884
87183
  pasteAccumRef,
86885
87184
  pasteFlushTimerRef,
86886
87185
  commitPaste,
@@ -90038,6 +90337,23 @@ import { tuiStreamFlushMs } from "@wrongstack/core/utils";
90038
90337
  import { DEFAULT_MIN_IMPORTANCE as DEFAULT_MIN_IMPORTANCE2, DEFAULT_MIN_SCORE as DEFAULT_MIN_SCORE2, MIN_RELATION_STRENGTH as MIN_RELATION_STRENGTH2 } from "@wrongstack/sage";
90039
90338
  import { isFinalTurnStopReason as isFinalTurnStopReason2 } from "@wrongstack/tools/next-steps";
90040
90339
 
90340
+ // src/browser-access-hint.ts
90341
+ function networkAccessHint(name, ok, output) {
90342
+ const browser = name.startsWith("browser_");
90343
+ if (ok || !(name.startsWith("browser_") || name === "fetch" || name === "read_url_content") || !output || !(browser ? /browser: (?:blocked|resolved to private|navigation was redirected to a blocked)/ : /fetch: .*?(?:blocked|resolved to private)/).test(output))
90344
+ return void 0;
90345
+ const match = /\/(browser|network) allow (https?:\/\/[^\s"'<>\\)]+)/.exec(output);
90346
+ if (!match) return void 0;
90347
+ try {
90348
+ const url = new URL(match[2]);
90349
+ if (url.username || url.password || url.pathname !== "/" || url.search || url.hash)
90350
+ return void 0;
90351
+ return `Network access blocked. If this is your trusted development server, run /${match[1]} allow ${url.origin}, then retry ${name}.`;
90352
+ } catch {
90353
+ return void 0;
90354
+ }
90355
+ }
90356
+
90041
90357
  // src/memory-lifecycle-entry.ts
90042
90358
  function memoryLifecycleEntry(event, payload) {
90043
90359
  const memoryId = stringValue2(payload.memoryId);
@@ -90308,6 +90624,8 @@ function useProviderEventBridge({
90308
90624
  if (e.name !== "delegate") {
90309
90625
  const sageStats = pendingSageStats.get(e.name);
90310
90626
  const addToolEntry = (output) => {
90627
+ const accessHint = networkAccessHint(e.name, e.ok, output);
90628
+ if (accessHint) dispatch({ type: "addEntry", entry: { kind: "warn", text: accessHint } });
90311
90629
  dispatch({
90312
90630
  type: "addEntry",
90313
90631
  entry: {
@@ -93064,6 +93382,7 @@ async function runTui(opts) {
93064
93382
  sessionsDir: opts.sessionsDir,
93065
93383
  projectRoot: opts.projectRoot,
93066
93384
  getSettings: opts.getSettings,
93385
+ getLeaderEffort: opts.getLeaderEffort,
93067
93386
  saveSettings: opts.saveSettings,
93068
93387
  saveThemePreset: opts.saveThemePreset,
93069
93388
  configStore: opts.configStore,
@@ -93072,6 +93391,7 @@ async function runTui(opts) {
93072
93391
  getMcpServers: opts.getMcpServers,
93073
93392
  onMcpToggle: opts.onMcpToggle,
93074
93393
  onMcpRestart: opts.onMcpRestart,
93394
+ onMcpManage: opts.onMcpManage,
93075
93395
  getToolsItems: opts.getToolsItems,
93076
93396
  onToolToggle: opts.onToolToggle,
93077
93397
  getBrainData: opts.getBrainData,