@hydra-acp/cli 0.1.60 → 0.1.61
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/cli.js +43 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -6867,10 +6867,10 @@ var init_session_row = __esm({
|
|
|
6867
6867
|
DEFAULT_COLUMNS = [
|
|
6868
6868
|
"session",
|
|
6869
6869
|
"state",
|
|
6870
|
-
"agent",
|
|
6871
6870
|
"age",
|
|
6872
6871
|
"cwd",
|
|
6873
6872
|
"title",
|
|
6873
|
+
"agent",
|
|
6874
6874
|
"cost"
|
|
6875
6875
|
];
|
|
6876
6876
|
ELASTIC_COLUMNS = /* @__PURE__ */ new Set(["cwd", "title"]);
|
|
@@ -12877,8 +12877,12 @@ async function pickSession(term, opts) {
|
|
|
12877
12877
|
}
|
|
12878
12878
|
let searchActive = false;
|
|
12879
12879
|
let searchTerm = "";
|
|
12880
|
+
const UP_REPEAT_GAP_MS = 120;
|
|
12881
|
+
let upGuardArmed = false;
|
|
12882
|
+
let lastUpAt = 0;
|
|
12880
12883
|
let mode = "normal";
|
|
12881
12884
|
let pendingAction = null;
|
|
12885
|
+
let findLayerActive = false;
|
|
12882
12886
|
let findSubMode = "input";
|
|
12883
12887
|
let findComposer = new InputDispatcher({
|
|
12884
12888
|
history: [],
|
|
@@ -13454,6 +13458,16 @@ async function pickSession(term, opts) {
|
|
|
13454
13458
|
});
|
|
13455
13459
|
};
|
|
13456
13460
|
const findQueryText = () => findComposer.state().buffer.join("\n");
|
|
13461
|
+
const feedFindPaste = (text) => {
|
|
13462
|
+
const prevRows = findBoxRows;
|
|
13463
|
+
findComposer.feed({ type: "paste", text });
|
|
13464
|
+
computeFindBoxLayout();
|
|
13465
|
+
if (findBoxRows !== prevRows) {
|
|
13466
|
+
renderFind();
|
|
13467
|
+
} else {
|
|
13468
|
+
repaintFindBoxBodyRows();
|
|
13469
|
+
}
|
|
13470
|
+
};
|
|
13457
13471
|
const runFind = async () => {
|
|
13458
13472
|
const query = findQueryText().trim();
|
|
13459
13473
|
if (query.length === 0) {
|
|
@@ -13596,7 +13610,11 @@ async function pickSession(term, opts) {
|
|
|
13596
13610
|
const pasted = Buffer.from(pasteBuffer, "binary").toString("utf-8").replace(/\r\n?/g, "\n");
|
|
13597
13611
|
pasteBuffer = "";
|
|
13598
13612
|
const remaining = text.slice(endIdx + PASTE_END.length);
|
|
13599
|
-
if (
|
|
13613
|
+
if (findLayerActive) {
|
|
13614
|
+
if (findSubMode === "input" && !findInFlight) {
|
|
13615
|
+
feedFindPaste(pasted);
|
|
13616
|
+
}
|
|
13617
|
+
} else if (selectedIdx === 0 && !searchActive) {
|
|
13600
13618
|
composer.feed({ type: "paste", text: pasted });
|
|
13601
13619
|
const after = composer.state();
|
|
13602
13620
|
const newVr = computePromptVisualRows(after.buffer, composerRoom);
|
|
@@ -13659,6 +13677,7 @@ async function pickSession(term, opts) {
|
|
|
13659
13677
|
findError = null;
|
|
13660
13678
|
findInFlight = false;
|
|
13661
13679
|
findSubMode = "input";
|
|
13680
|
+
findLayerActive = false;
|
|
13662
13681
|
popLayer();
|
|
13663
13682
|
};
|
|
13664
13683
|
const dispatch = (name, _matches, data) => {
|
|
@@ -13871,7 +13890,10 @@ ${cells}`;
|
|
|
13871
13890
|
paintIndicator();
|
|
13872
13891
|
return;
|
|
13873
13892
|
}
|
|
13874
|
-
findComposer = new InputDispatcher({
|
|
13893
|
+
findComposer = new InputDispatcher({
|
|
13894
|
+
history: [],
|
|
13895
|
+
collapsePastes: false
|
|
13896
|
+
});
|
|
13875
13897
|
findResults = [];
|
|
13876
13898
|
findTruncated = false;
|
|
13877
13899
|
findSelectedIdx = 0;
|
|
@@ -13880,6 +13902,7 @@ ${cells}`;
|
|
|
13880
13902
|
findError = null;
|
|
13881
13903
|
findInFlight = false;
|
|
13882
13904
|
findSubMode = "input";
|
|
13905
|
+
findLayerActive = true;
|
|
13883
13906
|
computeFindBoxLayout();
|
|
13884
13907
|
renderFind();
|
|
13885
13908
|
const findOnKey = (name, _matches, data) => {
|
|
@@ -14158,6 +14181,16 @@ ${cells}`;
|
|
|
14158
14181
|
}
|
|
14159
14182
|
return;
|
|
14160
14183
|
}
|
|
14184
|
+
if (name === "UP" && upGuardArmed) {
|
|
14185
|
+
const now = Date.now();
|
|
14186
|
+
const gap = now - lastUpAt;
|
|
14187
|
+
lastUpAt = now;
|
|
14188
|
+
if (gap < UP_REPEAT_GAP_MS) {
|
|
14189
|
+
placeComposerCursor();
|
|
14190
|
+
return;
|
|
14191
|
+
}
|
|
14192
|
+
upGuardArmed = false;
|
|
14193
|
+
}
|
|
14161
14194
|
if (name === "DOWN") {
|
|
14162
14195
|
const cs = composer.state();
|
|
14163
14196
|
const inWalk = cs.historyIndex !== -1 || cs.queueIndex !== -1;
|
|
@@ -14180,6 +14213,7 @@ ${cells}`;
|
|
|
14180
14213
|
}
|
|
14181
14214
|
return;
|
|
14182
14215
|
}
|
|
14216
|
+
upGuardArmed = false;
|
|
14183
14217
|
const before = composer.state();
|
|
14184
14218
|
let event = null;
|
|
14185
14219
|
if (data?.isCharacter) {
|
|
@@ -14403,6 +14437,12 @@ ${cells}`;
|
|
|
14403
14437
|
case "UP":
|
|
14404
14438
|
case "SHIFT_TAB":
|
|
14405
14439
|
case "CTRL_P":
|
|
14440
|
+
if (name === "UP") {
|
|
14441
|
+
if (selectedIdx === 1) {
|
|
14442
|
+
upGuardArmed = true;
|
|
14443
|
+
}
|
|
14444
|
+
lastUpAt = Date.now();
|
|
14445
|
+
}
|
|
14406
14446
|
move(-1);
|
|
14407
14447
|
return;
|
|
14408
14448
|
case "DOWN":
|