xgen-dex-cli 1.25.6 → 1.26.0

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.
@@ -2,7 +2,7 @@ import {
2
2
  DexError,
3
3
  dataDirectory,
4
4
  publicError
5
- } from "./chunk-KY3K4GV4.js";
5
+ } from "./chunk-FLNJONTC.js";
6
6
 
7
7
  // src/tui/index.tsx
8
8
  import { render } from "ink";
@@ -537,7 +537,8 @@ function visibleInput(segments, cursor, maximumWidth) {
537
537
  cursorWidth: widthBeforeCursor
538
538
  };
539
539
  }
540
- function isHangulToggle(input, key) {
540
+ function isHangulToggle(input, key, nativeIme = false) {
541
+ if (nativeIme) return false;
541
542
  if (key.ctrl && (input === "`" || input === " " || input === "l")) return true;
542
543
  if (key.meta && input === " ") return true;
543
544
  if (key.shift && input === " ") return true;
@@ -568,10 +569,10 @@ function ImeTextInput(props) {
568
569
  props.onChange(nextValue);
569
570
  };
570
571
  useEffect2(() => {
571
- if (!props.focus || !props.hangulMode) {
572
+ if (props.nativeIme || !props.focus || !props.hangulMode) {
572
573
  typingRef.current = { ...IDLE, capsLock: typingRef.current.capsLock };
573
574
  }
574
- }, [props.focus, props.hangulMode]);
575
+ }, [props.focus, props.hangulMode, props.nativeIme]);
575
576
  useEffect2(() => {
576
577
  if (props.value === valueRef.current) return;
577
578
  const previousLength = graphemes(valueRef.current).length;
@@ -612,7 +613,7 @@ function ImeTextInput(props) {
612
613
  }
613
614
  return;
614
615
  }
615
- if (isHangulToggle(input, key)) {
616
+ if (isHangulToggle(input, key, props.nativeIme)) {
616
617
  settle();
617
618
  props.onHangulModeChange?.(!props.hangulMode);
618
619
  return;
@@ -659,7 +660,7 @@ function ImeTextInput(props) {
659
660
  return;
660
661
  }
661
662
  if (event.kind !== "text") return;
662
- if (props.hangulMode) {
663
+ if (!props.nativeIme && props.hangulMode) {
663
664
  let session = typingRef.current;
664
665
  let previous = shown;
665
666
  let segments = current;
@@ -1101,6 +1102,7 @@ function AgentCreateScreen(props) {
1101
1102
  onSubmit: () => void submit(),
1102
1103
  focus: true,
1103
1104
  placeholder: field.hint ?? "",
1105
+ nativeIme: props.nativeIme,
1104
1106
  hangulMode: props.hangulMode,
1105
1107
  onHangulModeChange: props.onHangulModeChange
1106
1108
  }
@@ -1201,7 +1203,14 @@ function ChatPane(props) {
1201
1203
  }
1202
1204
  function Composer(props) {
1203
1205
  return /* @__PURE__ */ jsxs7(Box7, { borderStyle: "round", borderColor: props.focused ? "cyan" : "gray", paddingX: 1, children: [
1204
- /* @__PURE__ */ jsx7(Text7, { color: props.hangulMode ? "yellow" : void 0, dimColor: !props.hangulMode, children: props.hangulMode ? "\uD55C" : "EN" }),
1206
+ /* @__PURE__ */ jsx7(
1207
+ Text7,
1208
+ {
1209
+ color: props.nativeIme || props.hangulMode ? "yellow" : void 0,
1210
+ dimColor: !props.nativeIme && !props.hangulMode,
1211
+ children: props.nativeIme ? "\uD55C/\uC601" : props.hangulMode ? "\uD55C" : "EN"
1212
+ }
1213
+ ),
1205
1214
  /* @__PURE__ */ jsx7(Text7, { color: "cyan", children: " \u203A " }),
1206
1215
  props.disabled ? /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "\uC751\uB2F5\uC744 \uAE30\uB2E4\uB9AC\uB294 \uC911..." }) : /* @__PURE__ */ jsx7(
1207
1216
  ImeTextInput,
@@ -1211,6 +1220,7 @@ function Composer(props) {
1211
1220
  onSubmit: props.onSubmit,
1212
1221
  focus: props.focused,
1213
1222
  placeholder: "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD558\uC138\uC694",
1223
+ nativeIme: props.nativeIme,
1214
1224
  hangulMode: props.hangulMode,
1215
1225
  onHangulModeChange: props.onHangulModeChange
1216
1226
  }
@@ -1234,20 +1244,25 @@ function Dashboard(props) {
1234
1244
  const [history, setHistory] = useState8(false);
1235
1245
  const [start, setStart] = useState8();
1236
1246
  const [scrollUp, setScrollUp] = useState8(0);
1237
- const [hangulMode, setHangulMode] = useState8(props.preferences?.hangulMode ?? false);
1247
+ const nativeIme = props.preferences?.nativeIme === true;
1248
+ const imeShortcut = props.preferences?.imeShortcut ?? (nativeIme ? "Caps Lock" : "Ctrl+Space");
1249
+ const [hangulMode, setHangulMode] = useState8(
1250
+ nativeIme ? false : props.preferences?.hangulMode ?? false
1251
+ );
1238
1252
  const changeHangulMode = (enabled) => {
1253
+ if (nativeIme) return;
1239
1254
  setHangulMode(enabled);
1240
1255
  props.preferences?.onHangulModeChange?.(enabled);
1241
1256
  };
1242
- useEffect7(
1243
- () => props.preferences?.onModeKey?.(
1257
+ useEffect7(() => {
1258
+ if (nativeIme) return void 0;
1259
+ return props.preferences?.onModeKey?.(
1244
1260
  () => setHangulMode((current) => {
1245
1261
  props.preferences?.onHangulModeChange?.(!current);
1246
1262
  return !current;
1247
1263
  })
1248
- ),
1249
- [props.preferences]
1250
- );
1264
+ );
1265
+ }, [nativeIme, props.preferences]);
1251
1266
  const viewport = useRef3({ lineCount: 0, height: 0 });
1252
1267
  const [starting, setStarting] = useState8(false);
1253
1268
  const controller = useRef3(null);
@@ -1403,6 +1418,7 @@ function Dashboard(props) {
1403
1418
  engine: props.engine,
1404
1419
  profile: props.session.profile,
1405
1420
  hangulMode,
1421
+ nativeIme,
1406
1422
  onHangulModeChange: changeHangulMode,
1407
1423
  onCancel: () => setCreatingAgent(false),
1408
1424
  onCreated: (agent) => {
@@ -1469,6 +1485,7 @@ function Dashboard(props) {
1469
1485
  onSubmit: (value) => void send(value),
1470
1486
  focused: focus === "composer",
1471
1487
  disabled: chat.running || !selected,
1488
+ nativeIme,
1472
1489
  hangulMode,
1473
1490
  onHangulModeChange: changeHangulMode
1474
1491
  }
@@ -1492,8 +1509,8 @@ function Dashboard(props) {
1492
1509
  /* @__PURE__ */ jsx7(
1493
1510
  Footer,
1494
1511
  {
1495
- mode: hangulMode ? "\uD55C" : "EN",
1496
- text: "Ctrl+Space \uD55C/\uC601 \xB7 Tab \uD328\uB110 \xB7 PgUp/PgDn \uC2A4\uD06C\uB864 \xB7 Ctrl+K \uBA85\uB839 \xB7 Ctrl+H \uAE30\uB85D \xB7 Ctrl+P \uD504\uB85C\uD544 \xB7 Esc \uCDE8\uC18C \xB7 Ctrl+Q \uC885\uB8CC"
1512
+ mode: nativeIme ? void 0 : hangulMode ? "\uD55C" : "EN",
1513
+ text: `${imeShortcut} \uD55C/\uC601 \xB7 Tab \uD328\uB110 \xB7 PgUp/PgDn \uC2A4\uD06C\uB864 \xB7 Ctrl+K \uBA85\uB839 \xB7 Ctrl+H \uAE30\uB85D \xB7 Ctrl+P \uD504\uB85C\uD544 \xB7 Esc \uCDE8\uC18C \xB7 Ctrl+Q \uC885\uB8CC`
1497
1514
  }
1498
1515
  )
1499
1516
  ] });
@@ -2118,6 +2135,11 @@ function createKeySignal() {
2118
2135
  };
2119
2136
  }
2120
2137
 
2138
+ // src/tui/ime-policy.ts
2139
+ function imePolicy(platform = process.platform) {
2140
+ return platform === "darwin" ? { native: true, shortcut: "Caps Lock" } : { native: false, shortcut: "Ctrl+Space" };
2141
+ }
2142
+
2121
2143
  // src/tui/index.tsx
2122
2144
  import { jsx as jsx12 } from "react/jsx-runtime";
2123
2145
  async function runTui(engine) {
@@ -2130,8 +2152,9 @@ async function runTui(engine) {
2130
2152
  process.once("exit", restore);
2131
2153
  process.once("SIGINT", onSignal);
2132
2154
  process.once("SIGTERM", onSignal);
2133
- const preferences = await readPreferences();
2134
- const kitty = await supportsKittyKeyboard({ stdin, stdout, isTTY: stdin.isTTY });
2155
+ const ime = imePolicy();
2156
+ const preferences = ime.native ? { hangulMode: false } : await readPreferences();
2157
+ const kitty = ime.native ? false : await supportsKittyKeyboard({ stdin, stdout, isTTY: stdin.isTTY });
2135
2158
  screen = createScreenGuard(stdout, { kittyKeyboard: kitty });
2136
2159
  const modeKeys = createKeySignal();
2137
2160
  screen.enter();
@@ -2142,9 +2165,13 @@ async function runTui(engine) {
2142
2165
  {
2143
2166
  engine,
2144
2167
  preferences: {
2168
+ nativeIme: ime.native,
2169
+ imeShortcut: ime.shortcut,
2145
2170
  hangulMode: preferences.hangulMode,
2146
- onHangulModeChange: (enabled) => void writePreferences({ hangulMode: enabled }),
2147
- onModeKey: modeKeys.subscribe
2171
+ ...ime.native ? {} : {
2172
+ onHangulModeChange: (enabled) => void writePreferences({ hangulMode: enabled }),
2173
+ onModeKey: modeKeys.subscribe
2174
+ }
2148
2175
  }
2149
2176
  }
2150
2177
  ),
@@ -2185,4 +2212,4 @@ async function runTui(engine) {
2185
2212
  export {
2186
2213
  runTui
2187
2214
  };
2188
- //# sourceMappingURL=tui-WG5AIWUR.js.map
2215
+ //# sourceMappingURL=tui-DS2TQXTM.js.map