@agents-ensemble/cli 0.12.0 → 0.13.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.
Files changed (49) hide show
  1. package/README.md +3 -0
  2. package/dist/format-session-summary.d.ts.map +1 -1
  3. package/dist/format-session-summary.js +68 -7
  4. package/dist/format-session-summary.js.map +1 -1
  5. package/dist/index.js +14 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/tui/format-operator-context.d.ts +2 -3
  8. package/dist/tui/format-operator-context.d.ts.map +1 -1
  9. package/dist/tui/format-operator-context.js +4 -10
  10. package/dist/tui/format-operator-context.js.map +1 -1
  11. package/dist/tui/ink-test-keys.d.ts +1 -0
  12. package/dist/tui/ink-test-keys.d.ts.map +1 -1
  13. package/dist/tui/ink-test-keys.js +1 -0
  14. package/dist/tui/ink-test-keys.js.map +1 -1
  15. package/dist/tui/issue-session-tui-stream-cursor.test.js +57 -10
  16. package/dist/tui/issue-session-tui-stream-cursor.test.js.map +1 -1
  17. package/dist/tui/issue-session-tui-stream.d.ts.map +1 -1
  18. package/dist/tui/issue-session-tui-stream.js +34 -4
  19. package/dist/tui/issue-session-tui-stream.js.map +1 -1
  20. package/dist/tui/issue-session-tui-stream.test.js +43 -19
  21. package/dist/tui/issue-session-tui-stream.test.js.map +1 -1
  22. package/dist/tui/issue-session-tui.d.ts.map +1 -1
  23. package/dist/tui/issue-session-tui.js +34 -4
  24. package/dist/tui/issue-session-tui.js.map +1 -1
  25. package/dist/tui/issue-session-tui.test.js +129 -45
  26. package/dist/tui/issue-session-tui.test.js.map +1 -1
  27. package/dist/tui/operator-command-suggestions.d.ts +13 -1
  28. package/dist/tui/operator-command-suggestions.d.ts.map +1 -1
  29. package/dist/tui/operator-command-suggestions.js +23 -2
  30. package/dist/tui/operator-command-suggestions.js.map +1 -1
  31. package/dist/tui/operator-text-area.d.ts +8 -1
  32. package/dist/tui/operator-text-area.d.ts.map +1 -1
  33. package/dist/tui/operator-text-area.js +5 -2
  34. package/dist/tui/operator-text-area.js.map +1 -1
  35. package/dist/tui/operator-text-area.test-double.d.ts +1 -1
  36. package/dist/tui/operator-text-area.test-double.d.ts.map +1 -1
  37. package/dist/tui/operator-text-area.test-double.js +87 -6
  38. package/dist/tui/operator-text-area.test-double.js.map +1 -1
  39. package/dist/tui/operator-text-area.test-stub.d.ts +5 -1
  40. package/dist/tui/operator-text-area.test-stub.d.ts.map +1 -1
  41. package/dist/tui/operator-text-area.test-stub.js +6 -2
  42. package/dist/tui/operator-text-area.test-stub.js.map +1 -1
  43. package/dist/tui/operator-text-area.test.js +13 -0
  44. package/dist/tui/operator-text-area.test.js.map +1 -1
  45. package/dist/tui/tui-layout-constants.d.ts +0 -4
  46. package/dist/tui/tui-layout-constants.d.ts.map +1 -1
  47. package/dist/tui/tui-layout-constants.js +0 -4
  48. package/dist/tui/tui-layout-constants.js.map +1 -1
  49. package/package.json +3 -2
@@ -12,8 +12,29 @@ export function getOperatorCommandSuggestions(input) {
12
12
  const prefix = `/${match[1]}`.toLowerCase();
13
13
  return OPERATOR_COMMANDS.filter((command) => command.name.toLowerCase().startsWith(prefix));
14
14
  }
15
+ /** 候補 index を上下へ進める。リスト端では循環せず、その場に留まる。 */
16
+ export function advanceOperatorCommandSelection(selectedIndex, direction, suggestionCount) {
17
+ if (suggestionCount <= 0) {
18
+ return 0;
19
+ }
20
+ const currentIndex = Math.min(Math.max(selectedIndex, 0), suggestionCount - 1);
21
+ const offset = direction === 'up' ? -1 : 1;
22
+ return Math.min(Math.max(currentIndex + offset, 0), suggestionCount - 1);
23
+ }
15
24
  /** pane 内に表示する候補行。候補の折り返しも入力ペインの高さ計算と共有する。 */
16
- export function getOperatorCommandSuggestionLines(input, contentWidth) {
17
- return getOperatorCommandSuggestions(input).flatMap((command) => wrapTextToWidth(`${command.name} — ${command.description}`, contentWidth));
25
+ export function getOperatorCommandSuggestionLines(input, contentWidth, selectedIndex = 0) {
26
+ const width = Math.max(1, Math.floor(contentWidth));
27
+ const markerWidth = width >= 3 ? 2 : width >= 2 ? 1 : 0;
28
+ const textWidth = Math.max(1, width - markerWidth);
29
+ const unselectedMarker = ' '.repeat(markerWidth);
30
+ const selectedMarker = markerWidth === 2 ? '› ' : markerWidth === 1 ? '›' : '';
31
+ return getOperatorCommandSuggestions(input).flatMap((command, commandIndex) => {
32
+ const isSelected = commandIndex === selectedIndex;
33
+ return wrapTextToWidth(`${command.name} — ${command.description}`, textWidth).map((line, lineIndex) => ({
34
+ id: `${command.id}-${lineIndex}`,
35
+ text: `${isSelected && lineIndex === 0 ? selectedMarker : unselectedMarker}${line}`,
36
+ isSelected,
37
+ }));
38
+ });
18
39
  }
19
40
  //# sourceMappingURL=operator-command-suggestions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-command-suggestions.js","sourceRoot":"","sources":["../../src/tui/operator-command-suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,wCAAwC;AACxC,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,iCAAiC,CAC/C,KAAa,EACb,YAAoB;IAEpB,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"operator-command-suggestions.js","sourceRoot":"","sources":["../../src/tui/operator-command-suggestions.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export interface OperatorTextAreaProps {
10
10
  /** 入力欄に表示できる最大行数(末尾追従)。 */
11
11
  readonly maxDisplayLines: number;
12
12
  readonly onDisplayLineCountChange?: (lineCount: number) => void;
13
+ /** Slash 候補表示中は上下矢印を候補選択へ渡す。 */
14
+ readonly commandSuggestionsActive?: boolean;
15
+ /** TextArea の Tab callback。 */
16
+ readonly onTab?: (shift: boolean) => void;
17
+ /** 候補補完後の caret 位置。 */
18
+ readonly cursorPosition?: [number, number];
19
+ readonly onCursorChange?: (position: [number, number]) => void;
13
20
  /**
14
21
  * Ink 出力原点からの入力欄先頭行位置。IME 変換窓を実カーソルに合わせる。
15
22
  * `x` はプロンプト直前の列(`linePrefix` 幅は TextArea 側で加算)、`y` は表示先頭行。
@@ -23,5 +30,5 @@ export interface OperatorTextAreaProps {
23
30
  * `react-ink-textarea` ベースのオペレータ入力欄。
24
31
  * IME 物理カーソルはフォーク版 TextArea の `cursorStart` + 内部 visual row に委譲する。
25
32
  */
26
- export declare function OperatorTextArea({ value, focus, onChange, onSubmit, contentWidth, promptPrefix, maxDisplayLines, onDisplayLineCountChange, cursorStart, }: OperatorTextAreaProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function OperatorTextArea({ value, focus, onChange, onSubmit, contentWidth, promptPrefix, maxDisplayLines, onDisplayLineCountChange, commandSuggestionsActive, onTab, cursorPosition, onCursorChange, cursorStart, }: OperatorTextAreaProps): import("react/jsx-runtime").JSX.Element;
27
34
  //# sourceMappingURL=operator-text-area.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,2BAA2B;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2BAA2B;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,WAAW,GACZ,EAAE,qBAAqB,2CA4CvB"}
1
+ {"version":3,"file":"operator-text-area.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,2BAA2B;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2BAA2B;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,gCAAgC;IAChC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,wBAAgC,EAChC,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,GACZ,EAAE,qBAAqB,2CAmDvB"}
@@ -9,7 +9,7 @@ import { INPUT_PANE_PROMPT_COLOR } from './tui-layout-constants.js';
9
9
  * `react-ink-textarea` ベースのオペレータ入力欄。
10
10
  * IME 物理カーソルはフォーク版 TextArea の `cursorStart` + 内部 visual row に委譲する。
11
11
  */
12
- export function OperatorTextArea({ value, focus = true, onChange, onSubmit, contentWidth, promptPrefix = '', maxDisplayLines, onDisplayLineCountChange, cursorStart, }) {
12
+ export function OperatorTextArea({ value, focus = true, onChange, onSubmit, contentWidth, promptPrefix = '', maxDisplayLines, onDisplayLineCountChange, commandSuggestionsActive = false, onTab, cursorPosition, onCursorChange, cursorStart, }) {
13
13
  const promptWidth = stringWidth(promptPrefix);
14
14
  const layout = useMemo(() => computeOperatorInputLayout(value, contentWidth, promptWidth), [value, contentWidth, promptWidth]);
15
15
  useEffect(() => {
@@ -27,6 +27,9 @@ export function OperatorTextArea({ value, focus = true, onChange, onSubmit, cont
27
27
  y: cursorStart.y,
28
28
  }
29
29
  : undefined;
30
- return (_jsx(Box, { width: contentWidth, flexDirection: "column", children: _jsx(TextArea, { focus: focus, value: value, onChange: onChange, onSubmit: (submitted) => onSubmit?.(submitted), linePrefix: promptPrefix ? linePrefix : undefined, viewportLines: maxDisplayLines, initialLineCount: 1, cursorStart: textAreaCursorStart }) }));
30
+ const keybindings = commandSuggestionsActive
31
+ ? { Up: false, Down: false }
32
+ : undefined;
33
+ return (_jsx(Box, { width: contentWidth, flexDirection: "column", children: _jsx(TextArea, { focus: focus, value: value, onChange: onChange, onSubmit: (submitted) => onSubmit?.(submitted), onTab: onTab, keybindings: keybindings, cursorPosition: cursorPosition, onCursorChange: onCursorChange, linePrefix: promptPrefix ? linePrefix : undefined, viewportLines: maxDisplayLines, initialLineCount: 1, cursorStart: textAreaCursorStart }) }));
31
34
  }
32
35
  //# sourceMappingURL=operator-text-area.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAyB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAqBpE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,GAAG,IAAI,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,GAAG,EAAE,EACjB,eAAe,EACf,wBAAwB,EACxB,WAAW,GACW;IACtB,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAClE,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CACnC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAoB,EAAE,EAAE;QACvD,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,uBAAuB,YAAG,YAAY,GAAQ,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,mBAAmB,GACvB,KAAK,IAAI,WAAW,KAAK,SAAS;QAChC,CAAC,CAAC;YACE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW;YACrC,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAC,QAAQ,YAC9C,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAC9C,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACjD,aAAa,EAAE,eAAe,EAC9B,gBAAgB,EAAE,CAAC,EACnB,WAAW,EAAE,mBAAmB,GAChC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"operator-text-area.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAA4C,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA4BpE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,GAAG,IAAI,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,GAAG,EAAE,EACjB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,GAAG,KAAK,EAChC,KAAK,EACL,cAAc,EACd,cAAc,EACd,WAAW,GACW;IACtB,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAClE,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CACnC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAoB,EAAE,EAAE;QACvD,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,uBAAuB,YAAG,YAAY,GAAQ,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,mBAAmB,GACvB,KAAK,IAAI,WAAW,KAAK,SAAS;QAChC,CAAC,CAAC;YACE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW;YACrC,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,WAAW,GAA6B,wBAAwB;QACpE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAC,QAAQ,YAC9C,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAC9C,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACjD,aAAa,EAAE,eAAe,EAC9B,gBAAgB,EAAE,CAAC,EACnB,WAAW,EAAE,mBAAmB,GAChC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { OperatorTextAreaProps } from './operator-text-area.js';
2
- export declare function OperatorTextArea({ value, onChange, onSubmit, focus, contentWidth, promptPrefix, maxDisplayLines, onDisplayLineCountChange, cursorStart, }: OperatorTextAreaProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function OperatorTextArea({ value, onChange, onSubmit, focus, contentWidth, promptPrefix, maxDisplayLines, onDisplayLineCountChange, commandSuggestionsActive, onTab, cursorPosition: controlledCursorPosition, onCursorChange, cursorStart, }: OperatorTextAreaProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=operator-text-area.test-double.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.test-double.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-double.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQrE,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,YAAY,EACZ,YAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,WAAW,GACZ,EAAE,qBAAqB,2CAoGvB"}
1
+ {"version":3,"file":"operator-text-area.test-double.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-double.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AASrE,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,YAAY,EACZ,YAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,wBAAgC,EAChC,KAAK,EACL,cAAc,EAAE,wBAAwB,EACxC,cAAc,EACd,WAAW,GACZ,EAAE,qBAAqB,2CA4LvB"}
@@ -4,11 +4,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  * IssueSessionTui の縦切りテストでは本番の OperatorTextArea の契約だけを再現する。
5
5
  */
6
6
  import { useEffect, useMemo, useState } from 'react';
7
- import { Text, useCursor, useInput } from 'ink';
7
+ import { Text, useCursor, useInput, usePaste } from 'ink';
8
8
  import stringWidth from 'string-width';
9
- import { computeOperatorInputLayout, mapCursorOffsetToDisplayPosition, sliceVisibleInputDisplayLines, } from './operator-input-layout.js';
9
+ import { computeOperatorInputLayout, logicalPositionToOffset, mapCursorOffsetToDisplayPosition, sliceVisibleInputDisplayLines, } from './operator-input-layout.js';
10
10
  import { INPUT_PANE_PROMPT_COLOR } from './tui-layout-constants.js';
11
- export function OperatorTextArea({ value, onChange, onSubmit, focus = true, contentWidth, promptPrefix = '', maxDisplayLines, onDisplayLineCountChange, cursorStart, }) {
11
+ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, contentWidth, promptPrefix = '', maxDisplayLines, onDisplayLineCountChange, commandSuggestionsActive = false, onTab, cursorPosition: controlledCursorPosition, onCursorChange, cursorStart, }) {
12
12
  const [cursorOffset, setCursorOffset] = useState(value.length);
13
13
  const { setCursorPosition } = useCursor();
14
14
  const promptWidth = stringWidth(promptPrefix);
@@ -22,10 +22,13 @@ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, cont
22
22
  onDisplayLineCountChange?.(layout.displayLines.length);
23
23
  }, [layout.displayLines.length, onDisplayLineCountChange]);
24
24
  useEffect(() => {
25
- if (focus) {
25
+ if (controlledCursorPosition) {
26
+ setCursorOffset(logicalPositionToOffset(value, controlledCursorPosition[0], controlledCursorPosition[1]));
27
+ }
28
+ else if (focus) {
26
29
  setCursorOffset((previous) => Math.min(previous, value.length));
27
30
  }
28
- }, [value, focus]);
31
+ }, [value, focus, controlledCursorPosition]);
29
32
  const visibleCursorLineIndex = cursorPosition.displayLineIndex - scrollOffset;
30
33
  const cursorColumnInVisibleLine = cursorPosition.columnInLine;
31
34
  if (focus && cursorStart !== undefined && visibleCursorLineIndex >= 0) {
@@ -39,11 +42,81 @@ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, cont
39
42
  else {
40
43
  setCursorPosition(undefined);
41
44
  }
45
+ usePaste((pastedText) => {
46
+ const nextValue = value.slice(0, cursorOffset) + pastedText + value.slice(cursorOffset);
47
+ const nextCursorOffset = cursorOffset + pastedText.length;
48
+ onChange(nextValue);
49
+ setCursorOffset(nextCursorOffset);
50
+ onCursorChange?.(cursorPositionFor(nextValue, nextCursorOffset));
51
+ }, { isActive: focus });
42
52
  useInput((input, key) => {
43
53
  if (!focus) {
44
54
  return;
45
55
  }
46
- if (key.pageUp || key.pageDown || key.home || key.end || key.tab || (key.shift && key.tab)) {
56
+ if (key.tab) {
57
+ if (commandSuggestionsActive) {
58
+ onTab?.(!!key.shift);
59
+ }
60
+ return;
61
+ }
62
+ if (key.pageUp ||
63
+ key.pageDown ||
64
+ key.home ||
65
+ key.end ||
66
+ key.leftArrow ||
67
+ key.rightArrow ||
68
+ key.upArrow ||
69
+ key.downArrow) {
70
+ if (commandSuggestionsActive && (key.upArrow || key.downArrow)) {
71
+ return;
72
+ }
73
+ const lineStart = value.lastIndexOf('\n', cursorOffset - 1) + 1;
74
+ const lineEndIndex = value.indexOf('\n', cursorOffset);
75
+ const lineEnd = lineEndIndex < 0 ? value.length : lineEndIndex;
76
+ if (key.home) {
77
+ setCursorOffset(lineStart);
78
+ onCursorChange?.(cursorPositionFor(value, lineStart));
79
+ }
80
+ else if (key.end) {
81
+ setCursorOffset(lineEnd);
82
+ onCursorChange?.(cursorPositionFor(value, lineEnd));
83
+ }
84
+ else if (key.leftArrow) {
85
+ const nextOffset = Math.max(0, cursorOffset - 1);
86
+ setCursorOffset(nextOffset);
87
+ onCursorChange?.(cursorPositionFor(value, nextOffset));
88
+ }
89
+ else if (key.rightArrow) {
90
+ const nextOffset = Math.min(value.length, cursorOffset + 1);
91
+ setCursorOffset(nextOffset);
92
+ onCursorChange?.(cursorPositionFor(value, nextOffset));
93
+ }
94
+ else if (key.upArrow) {
95
+ const newlineIndex = value.lastIndexOf('\n', cursorOffset - 1);
96
+ if (newlineIndex >= 0) {
97
+ const offsetOnPreviousLine = cursorOffset - (newlineIndex + 1);
98
+ const previousLineStart = value.lastIndexOf('\n', newlineIndex - 1) + 1;
99
+ const nextOffset = Math.min(previousLineStart + offsetOnPreviousLine, newlineIndex);
100
+ setCursorOffset(nextOffset);
101
+ onCursorChange?.(cursorPositionFor(value, nextOffset));
102
+ }
103
+ }
104
+ else if (key.downArrow) {
105
+ const nextLineStart = value.indexOf('\n', cursorOffset);
106
+ if (nextLineStart >= 0) {
107
+ const nextLineEndIndex = value.indexOf('\n', nextLineStart + 1);
108
+ const nextLineEnd = nextLineEndIndex < 0 ? value.length : nextLineEndIndex;
109
+ const nextOffset = Math.min(nextLineStart + 1 + (cursorOffset - lineStart), nextLineEnd);
110
+ setCursorOffset(nextOffset);
111
+ onCursorChange?.(cursorPositionFor(value, nextOffset));
112
+ }
113
+ else {
114
+ const nextValue = `${value}\n`;
115
+ onChange(nextValue);
116
+ setCursorOffset(nextValue.length);
117
+ onCursorChange?.(cursorPositionFor(nextValue, nextValue.length));
118
+ }
119
+ }
47
120
  return;
48
121
  }
49
122
  if (key.return && !key.shift) {
@@ -54,6 +127,7 @@ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, cont
54
127
  const nextValue = value.slice(0, cursorOffset) + '\n' + value.slice(cursorOffset);
55
128
  onChange(nextValue);
56
129
  setCursorOffset(cursorOffset + 1);
130
+ onCursorChange?.(cursorPositionFor(nextValue, cursorOffset + 1));
57
131
  return;
58
132
  }
59
133
  if (key.backspace || key.delete) {
@@ -63,12 +137,14 @@ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, cont
63
137
  const nextValue = value.slice(0, cursorOffset - 1) + value.slice(cursorOffset);
64
138
  onChange(nextValue);
65
139
  setCursorOffset(cursorOffset - 1);
140
+ onCursorChange?.(cursorPositionFor(nextValue, cursorOffset - 1));
66
141
  return;
67
142
  }
68
143
  if (input) {
69
144
  const nextValue = value.slice(0, cursorOffset) + input + value.slice(cursorOffset);
70
145
  onChange(nextValue);
71
146
  setCursorOffset(cursorOffset + input.length);
147
+ onCursorChange?.(cursorPositionFor(nextValue, cursorOffset + input.length));
72
148
  }
73
149
  }, { isActive: focus });
74
150
  return (_jsx(_Fragment, { children: visibleLines.map((lineText, index) => {
@@ -76,4 +152,9 @@ export function OperatorTextArea({ value, onChange, onSubmit, focus = true, cont
76
152
  return (_jsxs(Text, { children: [index === 0 && scrollOffset === 0 ? (_jsx(Text, { color: INPUT_PANE_PROMPT_COLOR, children: promptPrefix })) : null, lineText] }, `input-line-${absoluteLineIndex}`));
77
153
  }) }));
78
154
  }
155
+ function cursorPositionFor(value, cursorOffset) {
156
+ const line = value.slice(0, cursorOffset).split('\n').length - 1;
157
+ const lineStart = value.lastIndexOf('\n', cursorOffset - 1) + 1;
158
+ return [line, cursorOffset - lineStart];
159
+ }
79
160
  //# sourceMappingURL=operator-text-area.test-double.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.test-double.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-double.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,YAAY,EACZ,YAAY,GAAG,EAAE,EACjB,eAAe,EACf,wBAAwB,EACxB,WAAW,GACW;IACtB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAClE,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CACnC,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,gCAAgC,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EACtF,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CACjD,CAAC;IAEF,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,6BAA6B,CAC1C,MAAM,CAAC,YAAY,EACnB,eAAe,EACf,cAAc,CAAC,gBAAgB,CAChC,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IAClF,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE5E,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,MAAM,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,GAAG,YAAY,CAAC;IAC9E,MAAM,yBAAyB,GAAG,cAAc,CAAC,YAAY,CAAC;IAE9D,IAAI,KAAK,IAAI,WAAW,KAAK,SAAS,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,aAAa,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;QACzD,MAAM,UAAU,GACd,sBAAsB,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5F,iBAAiB,CAAC;YAChB,CAAC,EAAE,UAAU,GAAG,yBAAyB;YACzC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,sBAAsB;SAC1C,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAClF,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/E,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnF,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;IAEF,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,iBAAiB,GAAG,YAAY,GAAG,KAAK,CAAC;YAC/C,OAAO,CACL,MAAC,IAAI,eACF,KAAK,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,KAAC,IAAI,IAAC,KAAK,EAAE,uBAAuB,YAAG,YAAY,GAAQ,CAC5D,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,KAJA,cAAc,iBAAiB,EAAE,CAKrC,CACR,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"operator-text-area.test-double.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-double.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
+ import type { TKeybindings } from 'react-ink-textarea';
1
2
  export declare const textAreaSpy: import("vitest").Mock<(...args: any[]) => any>;
2
3
  export declare function TestTextArea(props: {
3
4
  readonly focus: boolean;
4
5
  readonly value: string;
5
6
  readonly onChange?: (value: string) => void;
6
7
  readonly onSubmit?: (value: string) => void;
7
- readonly onCursorChange?: (position: [number, number]) => void;
8
8
  readonly linePrefix?: unknown;
9
9
  readonly viewportLines?: number;
10
10
  readonly initialLineCount?: number;
@@ -12,5 +12,9 @@ export declare function TestTextArea(props: {
12
12
  readonly x?: number;
13
13
  readonly y: number;
14
14
  };
15
+ readonly keybindings?: TKeybindings;
16
+ readonly onTab?: (shift: boolean) => void;
17
+ readonly cursorPosition?: [number, number];
18
+ readonly onCursorChange?: (position: [number, number]) => void;
15
19
  }): null;
16
20
  //# sourceMappingURL=operator-text-area.test-stub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.test-stub.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-stub.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,gDAAU,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,QAqEA"}
1
+ {"version":3,"file":"operator-text-area.test-stub.d.ts","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-stub.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,eAAO,MAAM,WAAW,gDAAU,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CAChE,QAyEA"}
@@ -17,8 +17,8 @@ export function TestTextArea(props) {
17
17
  key.end ||
18
18
  key.leftArrow ||
19
19
  key.rightArrow ||
20
- key.upArrow ||
21
- key.downArrow) {
20
+ (key.upArrow && props.keybindings?.Up !== false) ||
21
+ (key.downArrow && props.keybindings?.Down !== false)) {
22
22
  if (key.home) {
23
23
  const lineStart = props.value.lastIndexOf('\n', cursorOffset - 1) + 1;
24
24
  setCursorOffset(lineStart);
@@ -37,6 +37,10 @@ export function TestTextArea(props) {
37
37
  }
38
38
  return;
39
39
  }
40
+ if (key.tab) {
41
+ props.onTab?.(!!key.shift);
42
+ return;
43
+ }
40
44
  if (key.return && !key.shift) {
41
45
  props.onSubmit?.(props.value);
42
46
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.test-stub.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-stub.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-text-area.test-stub.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test-stub.tsx"],"names":[],"mappings":"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"}
@@ -38,6 +38,19 @@ describe('OperatorTextArea (production wrapper)', () => {
38
38
  props?.onSubmit?.('hello');
39
39
  expect(onSubmit).toHaveBeenCalledWith('hello');
40
40
  expect(props?.cursorStart).toBeUndefined();
41
+ expect(props?.keybindings).toBeUndefined();
42
+ });
43
+ it('hands arrows and Tab to an active suggestion menu and forwards controlled cursor state', () => {
44
+ const onTab = vi.fn();
45
+ const onCursorChange = vi.fn();
46
+ render(_jsx(OperatorTextArea, { value: "/cl", onChange: () => { }, contentWidth: 40, maxDisplayLines: 4, commandSuggestionsActive: true, onTab: onTab, cursorPosition: [0, 3], onCursorChange: onCursorChange }));
47
+ const props = textAreaSpy.mock.calls.at(-1)?.[0];
48
+ expect(props?.keybindings).toEqual({ Up: false, Down: false });
49
+ expect(props?.cursorPosition).toEqual([0, 3]);
50
+ expect(props?.onCursorChange).toBe(onCursorChange);
51
+ props?.onTab?.(false);
52
+ expect(onTab).toHaveBeenCalledWith(false);
53
+ expect(props?.onSubmit).toBeTypeOf('function');
41
54
  });
42
55
  it('forwards cursorStart to TextArea when promptPrefix is set', () => {
43
56
  render(_jsx(OperatorTextArea, { value: "", onChange: () => { }, contentWidth: 40, promptPrefix: "> ", maxDisplayLines: 4, cursorStart: { x: 5, y: 20 } }));
@@ -1 +1 @@
1
- {"version":3,"file":"operator-text-area.test.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-text-area.test.js","sourceRoot":"","sources":["../../src/tui/operator-text-area.test.tsx"],"names":[],"mappings":"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"}
@@ -38,10 +38,6 @@ export declare const OPEN_QUESTIONS_PANE_MAX_HEIGHT_RATIO = 0.6;
38
38
  export declare const OPEN_QUESTIONS_PANE_MAX_DISPLAY_LINES = 14;
39
39
  /** Open questions ペインタイトルに付与する選択操作ヒント。 */
40
40
  export declare const OPEN_QUESTIONS_SELECTION_HINT = " \u2014 Shift+\u2191\u2193\u3067\u9078\u629E";
41
- /** Open questions がないときに Operator input へ表示する任意入力 prompt。 */
42
- export declare const OPERATOR_INPUT_DISCRETIONARY_HINT = "\u4EFB\u610F\u5165\u529B \u00B7 /reconnect \u00B7 /close \u4FDD\u5B58\u3057\u3066\u9589\u3058\u308B \u00B7 /exit \u6383\u9664\u3057\u3066\u7D42\u4E86";
43
- /** post-loop 待機中に Operator input へ表示する追加入力 prompt。 */
44
- export declare const OPERATOR_INPUT_POST_LOOP_HINT = "\u8FFD\u52A0\u6307\u793A \u00B7 /reconnect \u00B7 /close \u4FDD\u5B58\u3057\u3066\u9589\u3058\u308B \u00B7 /exit \u6383\u9664\u3057\u3066\u7D42\u4E86";
45
41
  /** 終了処理中に Operator input へ表示する prompt。 */
46
42
  export declare const OPERATOR_INPUT_SHUTTING_DOWN_HINT = "\u7D42\u4E86\u3057\u3066\u3044\u307E\u3059\u2026";
47
43
  /** 入力ペインの枠線(上下)行数。`PANE_BORDER_ROWS` と同値。 */
@@ -1 +1 @@
1
- {"version":3,"file":"tui-layout-constants.d.ts","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD,sDAAsD;AACtD,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD,0CAA0C;AAC1C,eAAO,MAAM,6BAA6B,iDAAmB,CAAC;AAE9D,6DAA6D;AAC7D,eAAO,MAAM,iCAAiC,0JACO,CAAC;AAEtD,sDAAsD;AACtD,eAAO,MAAM,6BAA6B,0JACW,CAAC;AAEtD,0CAA0C;AAC1C,eAAO,MAAM,iCAAiC,qDAAa,CAAC;AAE5D,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,IAAmB,CAAC;AAEvD,kCAAkC;AAClC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,gCAAgC;AAChC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,uBAAuB;AACvB,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,0BAA0B;AAC1B,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
1
+ {"version":3,"file":"tui-layout-constants.d.ts","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD,sDAAsD;AACtD,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD,0CAA0C;AAC1C,eAAO,MAAM,6BAA6B,iDAAmB,CAAC;AAE9D,0CAA0C;AAC1C,eAAO,MAAM,iCAAiC,qDAAa,CAAC;AAE5D,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,IAAmB,CAAC;AAEvD,kCAAkC;AAClC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,gCAAgC;AAChC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,uBAAuB;AACvB,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,0BAA0B;AAC1B,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
@@ -38,10 +38,6 @@ export const OPEN_QUESTIONS_PANE_MAX_HEIGHT_RATIO = 0.6;
38
38
  export const OPEN_QUESTIONS_PANE_MAX_DISPLAY_LINES = 14;
39
39
  /** Open questions ペインタイトルに付与する選択操作ヒント。 */
40
40
  export const OPEN_QUESTIONS_SELECTION_HINT = ' — Shift+↑↓で選択';
41
- /** Open questions がないときに Operator input へ表示する任意入力 prompt。 */
42
- export const OPERATOR_INPUT_DISCRETIONARY_HINT = '任意入力 · /reconnect · /close 保存して閉じる · /exit 掃除して終了';
43
- /** post-loop 待機中に Operator input へ表示する追加入力 prompt。 */
44
- export const OPERATOR_INPUT_POST_LOOP_HINT = '追加指示 · /reconnect · /close 保存して閉じる · /exit 掃除して終了';
45
41
  /** 終了処理中に Operator input へ表示する prompt。 */
46
42
  export const OPERATOR_INPUT_SHUTTING_DOWN_HINT = '終了しています…';
47
43
  /** 入力ペインの枠線(上下)行数。`PANE_BORDER_ROWS` と同値。 */
@@ -1 +1 @@
1
- {"version":3,"file":"tui-layout-constants.js","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD,sDAAsD;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AAExD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AAE9D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iCAAiC,GAC5C,mDAAmD,CAAC;AAEtD,sDAAsD;AACtD,MAAM,CAAC,MAAM,6BAA6B,GACxC,mDAAmD,CAAC;AAEtD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAE5D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,GAAG,cAAc,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD,gCAAgC;AAChC,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,uBAAuB;AACvB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"tui-layout-constants.js","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD,sDAAsD;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AAExD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AAE9D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAE5D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,GAAG,cAAc,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD,gCAAgC;AAChC,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,uBAAuB;AACvB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agents-ensemble/cli",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "type": "module",
5
5
  "description": "ensemble CLI — Issue-based agent orchestration",
6
6
  "bin": {
@@ -17,7 +17,8 @@
17
17
  "react": "19.2.0",
18
18
  "react-ink-textarea": "npm:@otolab/react-ink-textarea@0.4.1-otolab.3",
19
19
  "string-width": "8.1.0",
20
- "@agents-ensemble/core": "0.12.0"
20
+ "@agents-ensemble/core": "0.13.0",
21
+ "@agents-ensemble/operator-agent": "0.1.0"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@types/js-yaml": "4.0.9",