auq-mcp-server 3.2.8 → 3.2.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auq-mcp-server",
3
- "version": "3.2.8",
3
+ "version": "3.2.10",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "auq": "bin/auq"
@@ -45,10 +45,21 @@ export const MultiLineTextInput = ({ isFocused = true, onChange, onSubmit, place
45
45
  if (key.tab && key.shift) {
46
46
  return;
47
47
  }
48
+ // Ctrl+J: universal newline fallback (0x0A, distinct from Enter which sends \r)
49
+ // In most terminals, Ctrl+J sends 0x0A (\n) directly without key.return set
50
+ if (input === "\n" && !key.return && !key.shift) {
51
+ const chars = [...currentValue];
52
+ const before = chars.slice(0, currentCursor).join("");
53
+ const after = chars.slice(currentCursor).join("");
54
+ const newValue = before + "\n" + after;
55
+ onChange(newValue);
56
+ setCursorPosition(currentCursor + 1);
57
+ return;
58
+ }
48
59
  // Enter: Submit/advance; Shift+Enter inserts newline
49
60
  if (input === "\r" || input === "\n" || key.return) {
50
61
  if (key.shift) {
51
- // Shift+Enter: Insert newline at cursor position
62
+ // Shift+Enter: Insert newline at cursor position (Kitty-protocol terminals)
52
63
  const chars = [...currentValue];
53
64
  const before = chars.slice(0, currentCursor).join("");
54
65
  const after = chars.slice(currentCursor).join("");
@@ -35,7 +35,7 @@ export const KEY_LABELS = {
35
35
  SELECT_NEXT: "Enter",
36
36
  NEXT: "Enter",
37
37
  CURSOR: "←→",
38
- NEWLINE: "Shift+Enter",
38
+ NEWLINE: "S+Enter/^J",
39
39
  ADVANCE_INPUT: "Enter",
40
40
  REJECT: "Esc",
41
41
  BACK: "n",
@@ -92,8 +92,9 @@ export const OptionsList = ({ isFocused, onSelect, options, selectedOption, show
92
92
  onAdvance?.();
93
93
  }
94
94
  else if (key.name === "return") {
95
+ key.preventDefault(); // prevent <input> onChange from overwriting state
95
96
  if (key.shift) {
96
- // Shift+Enter: insert newline
97
+ // Shift+Enter: insert newline (Kitty-protocol terminals)
97
98
  onCustomChange?.(customValue + "\n");
98
99
  }
99
100
  else {
@@ -101,6 +102,11 @@ export const OptionsList = ({ isFocused, onSelect, options, selectedOption, show
101
102
  onAdvance?.();
102
103
  }
103
104
  }
105
+ else if (key.ctrl && key.name === "j") {
106
+ // Ctrl+J: universal newline fallback (0x0A, works in ALL terminals)
107
+ key.preventDefault();
108
+ onCustomChange?.(customValue + "\n");
109
+ }
104
110
  return;
105
111
  }
106
112
  // When elaborate input is focused, only intercept navigation keys
@@ -113,8 +119,9 @@ export const OptionsList = ({ isFocused, onSelect, options, selectedOption, show
113
119
  onAdvance?.();
114
120
  }
115
121
  else if (key.name === "return") {
122
+ key.preventDefault(); // prevent <input> onChange from overwriting state
116
123
  if (key.shift) {
117
- // Shift+Enter: insert newline
124
+ // Shift+Enter: insert newline (Kitty-protocol terminals)
118
125
  onElaborateTextChange?.(elaborateText + "\n");
119
126
  }
120
127
  else {
@@ -125,6 +132,11 @@ export const OptionsList = ({ isFocused, onSelect, options, selectedOption, show
125
132
  onAdvance?.();
126
133
  }
127
134
  }
135
+ else if (key.ctrl && key.name === "j") {
136
+ // Ctrl+J: universal newline fallback (0x0A, works in ALL terminals)
137
+ key.preventDefault();
138
+ onElaborateTextChange?.(elaborateText + "\n");
139
+ }
128
140
  return;
129
141
  }
130
142
  // Spacebar: Select/toggle WITHOUT advancing (works for both modes)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auq-mcp-server",
3
- "version": "3.2.8",
3
+ "version": "3.2.10",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "auq": "bin/auq"