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.
- package/dist/chunks/{chunk-KY3K4GV4.js → chunk-FLNJONTC.js} +65 -1
- package/dist/chunks/chunk-FLNJONTC.js.map +7 -0
- package/dist/chunks/{tui-WG5AIWUR.js → tui-DS2TQXTM.js} +47 -20
- package/dist/chunks/tui-DS2TQXTM.js.map +7 -0
- package/dist/cli.js +3 -3
- package/package.json +1 -1
- package/dist/chunks/chunk-KY3K4GV4.js.map +0 -7
- package/dist/chunks/tui-WG5AIWUR.js.map +0 -7
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DexError,
|
|
3
3
|
dataDirectory,
|
|
4
4
|
publicError
|
|
5
|
-
} from "./chunk-
|
|
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(
|
|
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
|
|
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
|
-
()
|
|
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
|
-
|
|
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:
|
|
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
|
|
2134
|
-
const
|
|
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
|
-
|
|
2147
|
-
|
|
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-
|
|
2215
|
+
//# sourceMappingURL=tui-DS2TQXTM.js.map
|