arc402-cli 1.7.6 → 1.8.1

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.
Files changed (62) hide show
  1. package/dist/chat/harness.d.ts +47 -0
  2. package/dist/chat/harness.d.ts.map +1 -0
  3. package/dist/chat/harness.js +235 -0
  4. package/dist/chat/harness.js.map +1 -0
  5. package/dist/commands/chat.d.ts.map +1 -1
  6. package/dist/commands/chat.js +30 -208
  7. package/dist/commands/chat.js.map +1 -1
  8. package/dist/renderer/index.d.ts +2 -0
  9. package/dist/renderer/index.d.ts.map +1 -1
  10. package/dist/renderer/index.js +2 -0
  11. package/dist/renderer/index.js.map +1 -1
  12. package/dist/renderer/ink.d.ts +29 -13
  13. package/dist/renderer/ink.d.ts.map +1 -1
  14. package/dist/renderer/ink.js +28 -52
  15. package/dist/renderer/ink.js.map +1 -1
  16. package/dist/renderer/reconciler.d.ts.map +1 -1
  17. package/dist/renderer/reconciler.js +12 -1
  18. package/dist/renderer/reconciler.js.map +1 -1
  19. package/dist/renderer/render-frame.d.ts +8 -0
  20. package/dist/renderer/render-frame.d.ts.map +1 -0
  21. package/dist/renderer/render-frame.js +104 -0
  22. package/dist/renderer/render-frame.js.map +1 -0
  23. package/dist/renderer/runtime.d.ts +23 -0
  24. package/dist/renderer/runtime.d.ts.map +1 -0
  25. package/dist/renderer/runtime.js +148 -0
  26. package/dist/renderer/runtime.js.map +1 -0
  27. package/dist/tui/App.d.ts.map +1 -1
  28. package/dist/tui/App.js +43 -14
  29. package/dist/tui/App.js.map +1 -1
  30. package/dist/tui/Footer.js +1 -1
  31. package/dist/tui/Footer.js.map +1 -1
  32. package/dist/tui/InputLine.d.ts +1 -1
  33. package/dist/tui/InputLine.d.ts.map +1 -1
  34. package/dist/tui/InputLine.js +140 -132
  35. package/dist/tui/InputLine.js.map +1 -1
  36. package/dist/tui/components/Button.d.ts.map +1 -1
  37. package/dist/tui/components/Button.js +3 -4
  38. package/dist/tui/components/Button.js.map +1 -1
  39. package/dist/tui/components/ChatHarnessSelector.d.ts +11 -0
  40. package/dist/tui/components/ChatHarnessSelector.d.ts.map +1 -0
  41. package/dist/tui/components/ChatHarnessSelector.js +23 -0
  42. package/dist/tui/components/ChatHarnessSelector.js.map +1 -0
  43. package/dist/tui/components/CustomTextInput.d.ts +1 -1
  44. package/dist/tui/components/CustomTextInput.d.ts.map +1 -1
  45. package/dist/tui/components/CustomTextInput.js +15 -31
  46. package/dist/tui/components/CustomTextInput.js.map +1 -1
  47. package/dist/tui/components/InteractiveTable.d.ts.map +1 -1
  48. package/dist/tui/components/InteractiveTable.js +4 -5
  49. package/dist/tui/components/InteractiveTable.js.map +1 -1
  50. package/dist/tui/components/commerce/AgentPicker.d.ts.map +1 -1
  51. package/dist/tui/components/commerce/AgentPicker.js +5 -6
  52. package/dist/tui/components/commerce/AgentPicker.js.map +1 -1
  53. package/dist/tui/index.js +2 -2
  54. package/dist/tui/index.js.map +1 -1
  55. package/dist/tui/useChat.d.ts +11 -5
  56. package/dist/tui/useChat.d.ts.map +1 -1
  57. package/dist/tui/useChat.js +99 -97
  58. package/dist/tui/useChat.js.map +1 -1
  59. package/dist/tui/useScroll.d.ts.map +1 -1
  60. package/dist/tui/useScroll.js +0 -15
  61. package/dist/tui/useScroll.js.map +1 -1
  62. package/package.json +3 -3
@@ -4,7 +4,6 @@ exports.InputLine = InputLine;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const index_js_1 = require("../renderer/index.js");
7
- const index_js_2 = require("../renderer/index.js");
8
7
  const command_catalog_js_1 = require("./command-catalog.js");
9
8
  const CompletionDropdown_js_1 = require("./components/CompletionDropdown.js");
10
9
  const ALL_TOP = [...command_catalog_js_1.BUILTIN_CMDS, ...command_catalog_js_1.TUI_TOP_LEVEL_COMMANDS];
@@ -14,9 +13,10 @@ const SUB_MAP = new Map(Object.entries(command_catalog_js_1.TUI_SUBCOMMANDS));
14
13
  * - Command history navigation (↑/↓)
15
14
  * - Live completion dropdown (Tab cycles, Esc dismisses)
16
15
  * - Tab expansion on single match
17
- * - Driven by raw InputSystem — no ink useInput, so arrow keys work reliably
16
+ * - Driven by renderer runtime input, so arrow keys and completion stay coherent
18
17
  */
19
18
  function InputLine({ onSubmit, isDisabled = false }) {
19
+ const { exit } = (0, index_js_1.useApp)();
20
20
  const [value, setValue] = (0, react_1.useState)("");
21
21
  const [cursorPos, setCursorPos] = (0, react_1.useState)(0);
22
22
  const [history, setHistory] = (0, react_1.useState)([]);
@@ -66,157 +66,165 @@ function InputLine({ onSubmit, isDisabled = false }) {
66
66
  setDropdownVisible(false);
67
67
  onSubmit(trimmed);
68
68
  }, [onSubmit]);
69
- (0, react_1.useEffect)(() => {
69
+ (0, index_js_1.useInput)((event) => {
70
70
  if (isDisabled)
71
71
  return;
72
- const inputSystem = new index_js_2.InputSystem();
73
- inputSystem.on('key', (event) => {
74
- if (isDisabled)
75
- return;
76
- if (event.key === 'escape') {
77
- setDropdownVisible(false);
72
+ if (event.key === 'escape') {
73
+ setDropdownVisible(false);
74
+ return;
75
+ }
76
+ if (event.key === 'up') {
77
+ if (dropdownVisible && completions.length > 0) {
78
+ setCompletionIdx((idx) => Math.max(0, idx - 1));
78
79
  return;
79
80
  }
80
- if (event.key === 'up') {
81
- if (dropdownVisible && completions.length > 0) {
82
- setCompletionIdx((idx) => Math.max(0, idx - 1));
83
- return;
84
- }
85
- setHistory((hist) => {
86
- setHistoryIdx((idx) => {
87
- if (idx === -1) {
88
- setHistoryTemp(value);
89
- const newIdx = hist.length - 1;
90
- if (newIdx >= 0) {
91
- setValue(hist[newIdx]);
92
- setCursorPos(hist[newIdx].length);
93
- setCompletions([]);
94
- setDropdownVisible(false);
95
- }
96
- return newIdx;
97
- }
98
- else if (idx > 0) {
99
- const newIdx = idx - 1;
81
+ setHistory((hist) => {
82
+ setHistoryIdx((idx) => {
83
+ if (idx === -1) {
84
+ setHistoryTemp(value);
85
+ const newIdx = hist.length - 1;
86
+ if (newIdx >= 0) {
100
87
  setValue(hist[newIdx]);
101
88
  setCursorPos(hist[newIdx].length);
102
89
  setCompletions([]);
103
90
  setDropdownVisible(false);
104
- return newIdx;
105
91
  }
106
- return idx;
107
- });
108
- return hist;
92
+ return newIdx;
93
+ }
94
+ else if (idx > 0) {
95
+ const newIdx = idx - 1;
96
+ setValue(hist[newIdx]);
97
+ setCursorPos(hist[newIdx].length);
98
+ setCompletions([]);
99
+ setDropdownVisible(false);
100
+ return newIdx;
101
+ }
102
+ return idx;
109
103
  });
104
+ return hist;
105
+ });
106
+ return;
107
+ }
108
+ if (event.key === 'down') {
109
+ if (dropdownVisible && completions.length > 0) {
110
+ setCompletionIdx((idx) => Math.min(completions.length - 1, idx + 1));
110
111
  return;
111
112
  }
112
- if (event.key === 'down') {
113
- if (dropdownVisible && completions.length > 0) {
114
- setCompletionIdx((idx) => Math.min(completions.length - 1, idx + 1));
115
- return;
116
- }
117
- setHistory((hist) => {
118
- setHistoryIdx((idx) => {
119
- if (idx >= 0) {
120
- const newIdx = idx + 1;
121
- if (newIdx >= hist.length) {
122
- setValue(historyTemp);
123
- setCursorPos(historyTemp.length);
124
- setCompletions([]);
125
- setDropdownVisible(false);
126
- return -1;
127
- }
128
- else {
129
- setValue(hist[newIdx]);
130
- setCursorPos(hist[newIdx].length);
131
- setCompletions([]);
132
- setDropdownVisible(false);
133
- return newIdx;
134
- }
113
+ setHistory((hist) => {
114
+ setHistoryIdx((idx) => {
115
+ if (idx >= 0) {
116
+ const newIdx = idx + 1;
117
+ if (newIdx >= hist.length) {
118
+ setValue(historyTemp);
119
+ setCursorPos(historyTemp.length);
120
+ setCompletions([]);
121
+ setDropdownVisible(false);
122
+ return -1;
135
123
  }
136
- return idx;
137
- });
138
- return hist;
139
- });
140
- return;
141
- }
142
- if (event.key === 'tab') {
143
- if (completions.length === 0)
144
- return;
145
- if (completions.length === 1) {
146
- const completed = completions[0] + " ";
147
- handleChange(completed);
148
- return;
149
- }
150
- if (dropdownVisible) {
151
- const selected = completions[completionIdx];
152
- if (selected) {
153
- handleChange(selected + " ");
124
+ setValue(hist[newIdx]);
125
+ setCursorPos(hist[newIdx].length);
126
+ setCompletions([]);
127
+ setDropdownVisible(false);
128
+ return newIdx;
154
129
  }
155
- return;
156
- }
157
- setDropdownVisible(true);
158
- return;
159
- }
160
- if (event.key === 'enter') {
161
- handleSubmit(value);
162
- return;
163
- }
164
- if (event.key === 'backspace') {
165
- setValue((prev) => {
166
- const newVal = prev.slice(0, -1);
167
- setCursorPos(newVal.length);
168
- const candidates = computeCompletions(newVal);
169
- setCompletions(candidates);
170
- setCompletionIdx(0);
171
- setDropdownVisible(candidates.length > 0);
172
- return newVal;
130
+ return idx;
173
131
  });
132
+ return hist;
133
+ });
134
+ return;
135
+ }
136
+ if (event.key === 'tab') {
137
+ if (completions.length === 0)
174
138
  return;
175
- }
176
- if (event.key === 'delete') {
177
- // forward delete — noop for now (cursor at end)
178
- return;
179
- }
180
- if (event.key === 'ctrl-c') {
181
- process.exit(0);
182
- return;
183
- }
184
- if (event.key === 'ctrl-u') {
185
- handleChange("");
139
+ if (!dropdownVisible) {
140
+ setDropdownVisible(true);
186
141
  return;
187
142
  }
188
- if (event.key === 'ctrl-w') {
189
- // Delete word before cursor
190
- setValue((prev) => {
191
- const parts = prev.trimEnd().split(" ");
192
- parts.pop();
193
- const newVal = parts.join(" ") + (parts.length ? " " : "");
194
- setCursorPos(newVal.length);
195
- const candidates = computeCompletions(newVal);
196
- setCompletions(candidates);
197
- setCompletionIdx(0);
198
- setDropdownVisible(candidates.length > 0);
199
- return newVal;
200
- });
143
+ const nextIdx = completionIdx + 1 >= completions.length ? 0 : completionIdx + 1;
144
+ setCompletionIdx(nextIdx);
145
+ return;
146
+ }
147
+ if (event.key === 'enter') {
148
+ if (dropdownVisible && completions.length > 0) {
149
+ const selected = completions[completionIdx];
150
+ if (selected) {
151
+ handleChange(selected + ' ');
152
+ }
201
153
  return;
202
154
  }
203
- if (event.key === 'char' && event.char) {
204
- setValue((prev) => {
205
- const newVal = prev + event.char;
206
- setCursorPos(newVal.length);
207
- const candidates = computeCompletions(newVal);
208
- setCompletions(candidates);
209
- setCompletionIdx(0);
210
- setDropdownVisible(candidates.length > 0);
211
- return newVal;
212
- });
155
+ handleSubmit(value);
156
+ return;
157
+ }
158
+ if (event.key === 'backspace') {
159
+ if (cursorPos === 0)
213
160
  return;
214
- }
215
- });
216
- inputSystem.start();
217
- return () => inputSystem.stop();
218
- // eslint-disable-next-line react-hooks/exhaustive-deps
219
- }, [isDisabled, dropdownVisible, completions, completionIdx, value, historyTemp, handleChange, handleSubmit, computeCompletions]);
161
+ setValue((prev) => {
162
+ const newVal = prev.slice(0, cursorPos - 1) + prev.slice(cursorPos);
163
+ const nextPos = cursorPos - 1;
164
+ setCursorPos(nextPos);
165
+ const candidates = computeCompletions(newVal);
166
+ setCompletions(candidates);
167
+ setCompletionIdx(0);
168
+ setDropdownVisible(candidates.length > 0);
169
+ return newVal;
170
+ });
171
+ return;
172
+ }
173
+ if (event.key === 'left') {
174
+ setCursorPos((prev) => Math.max(0, prev - 1));
175
+ return;
176
+ }
177
+ if (event.key === 'right') {
178
+ setCursorPos((prev) => Math.min(value.length, prev + 1));
179
+ return;
180
+ }
181
+ if (event.key === 'home' || event.key === 'ctrl-a') {
182
+ setCursorPos(0);
183
+ return;
184
+ }
185
+ if (event.key === 'end' || event.key === 'ctrl-e') {
186
+ setCursorPos(value.length);
187
+ return;
188
+ }
189
+ if (event.key === 'delete') {
190
+ return;
191
+ }
192
+ if (event.key === 'ctrl-c') {
193
+ exit();
194
+ return;
195
+ }
196
+ if (event.key === 'ctrl-u') {
197
+ handleChange('');
198
+ return;
199
+ }
200
+ if (event.key === 'ctrl-w') {
201
+ setValue((prev) => {
202
+ const left = prev.slice(0, cursorPos).replace(/\s+$/, '');
203
+ const cutTo = left.lastIndexOf(' ') + 1;
204
+ const newVal = prev.slice(0, cutTo) + prev.slice(cursorPos);
205
+ setCursorPos(cutTo);
206
+ const candidates = computeCompletions(newVal);
207
+ setCompletions(candidates);
208
+ setCompletionIdx(0);
209
+ setDropdownVisible(candidates.length > 0);
210
+ return newVal;
211
+ });
212
+ return;
213
+ }
214
+ if (event.key === 'char' && event.char) {
215
+ const char = event.char;
216
+ setValue((prev) => {
217
+ const newVal = prev.slice(0, cursorPos) + char + prev.slice(cursorPos);
218
+ const nextPos = cursorPos + char.length;
219
+ setCursorPos(nextPos);
220
+ const candidates = computeCompletions(newVal);
221
+ setCompletions(candidates);
222
+ setCompletionIdx(0);
223
+ setDropdownVisible(candidates.length > 0);
224
+ return newVal;
225
+ });
226
+ }
227
+ }, { isActive: !isDisabled });
220
228
  // Render cursor as block char at cursor position
221
229
  const displayValue = value.slice(0, cursorPos) + "█" + value.slice(cursorPos);
222
230
  return ((0, jsx_runtime_1.jsxs)(index_js_1.Box, { flexDirection: "column", children: [dropdownVisible && completions.length > 0 && ((0, jsx_runtime_1.jsx)(CompletionDropdown_js_1.CompletionDropdown, { candidates: completions, selectedIndex: completionIdx, visible: dropdownVisible })), (0, jsx_runtime_1.jsxs)(index_js_1.Box, { children: [(0, jsx_runtime_1.jsx)(index_js_1.Text, { color: "cyan", children: "\u25C8" }), (0, jsx_runtime_1.jsx)(index_js_1.Text, { dimColor: true, children: " arc402 " }), (0, jsx_runtime_1.jsxs)(index_js_1.Text, { color: "white", children: [">", " "] }), (0, jsx_runtime_1.jsx)(index_js_1.Text, { color: "white", children: displayValue })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/tui/InputLine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/tui/InputLine.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Button.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;CACxC;AAQD,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAmB,EAAE,EAAE,WAAW,2CAsB1E"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Button.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;CACxC;AAQD,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAmB,EAAE,EAAE,WAAW,2CAsB1E"}
@@ -3,16 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Button = Button;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const index_js_1 = require("../../renderer/index.js");
6
- const ink_1 = require("ink");
7
6
  const VARIANT_COLORS = {
8
7
  primary: "cyan",
9
8
  danger: "red",
10
9
  dim: "gray",
11
10
  };
12
11
  function Button({ label, onPress, variant = "primary" }) {
13
- const { isFocused } = (0, ink_1.useFocus)();
14
- (0, ink_1.useInput)((_input, key) => {
15
- if (key.return) {
12
+ const { isFocused } = (0, index_js_1.useFocus)();
13
+ (0, index_js_1.useInput)((event) => {
14
+ if (event.key === "enter") {
16
15
  onPress();
17
16
  }
18
17
  }, { isActive: isFocused });
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/tui/components/Button.tsx"],"names":[],"mappings":";;AAgBA,wBAsBC;;AArCD,sDAAoD;AACpD,6BAAyC;AAQzC,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,SAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAe;IACzE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAQ,GAAE,CAAC;IAEjC,IAAA,cAAQ,EACN,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtE,OAAO,CACL,uBAAC,cAAG,cACF,wBAAC,eAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,aAChC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACvB,KAAK,IACD,GACH,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/tui/components/Button.tsx"],"names":[],"mappings":";;AAeA,wBAsBC;;AApCD,sDAAwE;AAQxE,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,SAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAe;IACzE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;IAEjC,IAAA,mBAAQ,EACN,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtE,OAAO,CACL,uBAAC,cAAG,cACF,wBAAC,eAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,aAChC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACvB,KAAK,IACD,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { HarnessChoice } from "../../chat/harness.js";
2
+ interface ChatHarnessSelectorProps {
3
+ choices: HarnessChoice[];
4
+ selectedIndex: number;
5
+ onMove: (delta: number) => void;
6
+ onConfirm: () => void;
7
+ onCancel: () => void;
8
+ }
9
+ export declare function ChatHarnessSelector({ choices, selectedIndex, onMove, onConfirm, onCancel }: ChatHarnessSelectorProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=ChatHarnessSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHarnessSelector.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ChatHarnessSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,UAAU,wBAAwB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAwBpH"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatHarnessSelector = ChatHarnessSelector;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const index_js_1 = require("../../renderer/index.js");
6
+ function ChatHarnessSelector({ choices, selectedIndex, onMove, onConfirm, onCancel }) {
7
+ (0, index_js_1.useInput)((event) => {
8
+ if (event.key === "up")
9
+ onMove(-1);
10
+ else if (event.key === "down")
11
+ onMove(1);
12
+ else if (event.key === "enter")
13
+ onConfirm();
14
+ else if (event.key === "escape")
15
+ onCancel();
16
+ });
17
+ return ((0, jsx_runtime_1.jsxs)(index_js_1.Box, { flexDirection: "column", marginLeft: 2, children: [(0, jsx_runtime_1.jsx)(index_js_1.Text, { color: "cyan", children: "\u25C8 Select chat harness" }), choices.map((choice, index) => {
18
+ const selected = index === selectedIndex;
19
+ const badge = choice.readiness.ready ? "ready" : "setup needed";
20
+ return ((0, jsx_runtime_1.jsxs)(index_js_1.Text, { color: selected ? "cyan" : undefined, bold: selected, children: [selected ? " ▶ " : " ", `${choice.label}, ${badge}: ${choice.readiness.summary}`] }, choice.harness));
21
+ }), (0, jsx_runtime_1.jsx)(index_js_1.Text, { dimColor: true, children: " \u2191\u2193 select, Enter confirm, Esc cancel" })] }));
22
+ }
23
+ //# sourceMappingURL=ChatHarnessSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHarnessSelector.js","sourceRoot":"","sources":["../../../src/tui/components/ChatHarnessSelector.tsx"],"names":[],"mappings":";;AAYA,kDAwBC;;AAnCD,sDAA8D;AAW9D,SAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAA4B;IACnH,IAAA,mBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;QACjB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9B,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACpC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;YAAE,SAAS,EAAE,CAAC;aACvC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,wBAAC,cAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,uBAAC,eAAI,IAAC,KAAK,EAAC,MAAM,2CAA6B,EAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,QAAQ,GAAG,KAAK,KAAK,aAAa,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;gBAChE,OAAO,CACL,wBAAC,eAAI,IAAsB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,aAC5E,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC1B,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAFhD,MAAM,CAAC,OAAO,CAGlB,CACR,CAAC;YACJ,CAAC,CAAC,EACF,uBAAC,eAAI,IAAC,QAAQ,uEAA8C,IACxD,CACP,CAAC;AACJ,CAAC"}
@@ -8,7 +8,7 @@ interface CustomTextInputProps {
8
8
  }
9
9
  /**
10
10
  * Minimal text input that does NOT intercept Tab, Up, Down, Escape, or Ctrl+C,
11
- * allowing parent useInput handlers to receive those keys.
11
+ * allowing parent renderer input handlers to receive those keys.
12
12
  */
13
13
  export declare function CustomTextInput({ value, onChange, onSubmit, focus, suppressEnter, }: CustomTextInputProps): import("react/jsx-runtime").JSX.Element;
14
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"CustomTextInput.d.ts","sourceRoot":"","sources":["../../../src/tui/components/CustomTextInput.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,aAAqB,GACtB,EAAE,oBAAoB,2CA6GtB"}
1
+ {"version":3,"file":"CustomTextInput.d.ts","sourceRoot":"","sources":["../../../src/tui/components/CustomTextInput.tsx"],"names":[],"mappings":"AAGA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,aAAqB,GACtB,EAAE,oBAAoB,2CA+FtB"}
@@ -4,10 +4,9 @@ exports.CustomTextInput = CustomTextInput;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const index_js_1 = require("../../renderer/index.js");
7
- const ink_1 = require("ink");
8
7
  /**
9
8
  * Minimal text input that does NOT intercept Tab, Up, Down, Escape, or Ctrl+C,
10
- * allowing parent useInput handlers to receive those keys.
9
+ * allowing parent renderer input handlers to receive those keys.
11
10
  */
12
11
  function CustomTextInput({ value, onChange, onSubmit, focus = true, suppressEnter = false, }) {
13
12
  const [cursorPos, setCursorPos] = (0, react_1.useState)(value.length);
@@ -25,22 +24,17 @@ function CustomTextInput({ value, onChange, onSubmit, focus = true, suppressEnte
25
24
  }, 530);
26
25
  return () => clearInterval(timer);
27
26
  }, [focus]);
28
- (0, ink_1.useInput)((input, key) => {
29
- // Keys we explicitly do NOT handle let parent see them:
30
- // Tab, Up, Down, Escape, Ctrl+C
31
- if (key.tab || key.upArrow || key.downArrow || key.escape)
27
+ (0, index_js_1.useInput)((event) => {
28
+ if (event.key === "tab" || event.key === "up" || event.key === "down" || event.key === "escape" || event.key === "ctrl-c") {
32
29
  return;
33
- if (input === "\x03")
34
- return; // Ctrl+C
35
- // Enter/Return — submit (unless suppressed for dropdown selection)
36
- if (key.return) {
30
+ }
31
+ if (event.key === "enter") {
37
32
  if (!suppressEnter) {
38
33
  onSubmit?.(value);
39
34
  }
40
35
  return;
41
36
  }
42
- // Backspace
43
- if (key.backspace || key.delete) {
37
+ if (event.key === "backspace" || event.key === "delete") {
44
38
  if (cursorPos > 0) {
45
39
  const next = value.slice(0, cursorPos - 1) + value.slice(cursorPos);
46
40
  setCursorPos(cursorPos - 1);
@@ -48,44 +42,34 @@ function CustomTextInput({ value, onChange, onSubmit, focus = true, suppressEnte
48
42
  }
49
43
  return;
50
44
  }
51
- // Left arrow
52
- if (key.leftArrow) {
45
+ if (event.key === "left") {
53
46
  setCursorPos((p) => Math.max(0, p - 1));
54
47
  return;
55
48
  }
56
- // Right arrow
57
- if (key.rightArrow) {
49
+ if (event.key === "right") {
58
50
  setCursorPos((p) => Math.min(value.length, p + 1));
59
51
  return;
60
52
  }
61
- // Home (Ctrl+A)
62
- if (input === "\x01") {
53
+ if (event.key === "ctrl-a" || event.key === "home") {
63
54
  setCursorPos(0);
64
55
  return;
65
56
  }
66
- // End (Ctrl+E)
67
- if (input === "\x05") {
57
+ if (event.key === "ctrl-e" || event.key === "end") {
68
58
  setCursorPos(value.length);
69
59
  return;
70
60
  }
71
- // Ctrl+U clear line
72
- if (input === "\x15") {
61
+ if (event.key === "ctrl-u") {
73
62
  setCursorPos(0);
74
63
  onChange("");
75
64
  return;
76
65
  }
77
- // Ctrl+K kill to end of line
78
- if (input === "\x0B") {
66
+ if (event.key === "ctrl-k") {
79
67
  onChange(value.slice(0, cursorPos));
80
68
  return;
81
69
  }
82
- // Ignore other control characters
83
- if (input.length > 0 && input.charCodeAt(0) < 32)
84
- return;
85
- // Regular character input (including paste)
86
- if (input.length > 0) {
87
- const next = value.slice(0, cursorPos) + input + value.slice(cursorPos);
88
- setCursorPos(cursorPos + input.length);
70
+ if (event.key === "char" && event.char) {
71
+ const next = value.slice(0, cursorPos) + event.char + value.slice(cursorPos);
72
+ setCursorPos(cursorPos + event.char.length);
89
73
  onChange(next);
90
74
  }
91
75
  }, { isActive: focus });
@@ -1 +1 @@
1
- {"version":3,"file":"CustomTextInput.js","sourceRoot":"","sources":["../../../src/tui/components/CustomTextInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomTextInput.js","sourceRoot":"","sources":["../../../src/tui/components/CustomTextInput.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveTable.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InteractiveTable.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,EAAE,aAAa,GAC7B,EAAE,qBAAqB,2CAiFvB"}
1
+ {"version":3,"file":"InteractiveTable.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InteractiveTable.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,EAAE,aAAa,GAC7B,EAAE,qBAAqB,2CAiFvB"}
@@ -4,19 +4,18 @@ exports.InteractiveTable = InteractiveTable;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const index_js_1 = require("../../renderer/index.js");
7
- const ink_1 = require("ink");
8
7
  const MAX_VISIBLE_ROWS = 15;
9
8
  function InteractiveTable({ columns, rows, onSelect, selectedIndex: controlledIdx, }) {
10
9
  const [internalIdx, setInternalIdx] = (0, react_1.useState)(0);
11
10
  const selectedIndex = controlledIdx ?? internalIdx;
12
- (0, ink_1.useInput)((_input, key) => {
13
- if (key.upArrow) {
11
+ (0, index_js_1.useInput)((event) => {
12
+ if (event.key === "up") {
14
13
  setInternalIdx((i) => Math.max(0, i - 1));
15
14
  }
16
- if (key.downArrow) {
15
+ if (event.key === "down") {
17
16
  setInternalIdx((i) => Math.min(rows.length - 1, i + 1));
18
17
  }
19
- if (key.return && onSelect && rows[selectedIndex]) {
18
+ if (event.key === "enter" && onSelect && rows[selectedIndex]) {
20
19
  onSelect(rows[selectedIndex], selectedIndex);
21
20
  }
22
21
  });