@agents-ensemble/cli 0.11.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.
- package/README.md +5 -0
- package/config.example.yaml +2 -0
- package/dist/async-operator-input.js +1 -1
- package/dist/async-operator-input.js.map +1 -1
- package/dist/format-session-summary.d.ts.map +1 -1
- package/dist/format-session-summary.js +68 -7
- package/dist/format-session-summary.js.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/session-log-lines.d.ts.map +1 -1
- package/dist/session-log-lines.js +5 -0
- package/dist/session-log-lines.js.map +1 -1
- package/dist/tui/create-issue-session-tui-host.d.ts.map +1 -1
- package/dist/tui/create-issue-session-tui-host.js +19 -1
- package/dist/tui/create-issue-session-tui-host.js.map +1 -1
- package/dist/tui/create-issue-session-tui-host.test.js +65 -0
- package/dist/tui/create-issue-session-tui-host.test.js.map +1 -1
- package/dist/tui/create-tui-telemetry-sink.d.ts.map +1 -1
- package/dist/tui/create-tui-telemetry-sink.js +2 -1
- package/dist/tui/create-tui-telemetry-sink.js.map +1 -1
- package/dist/tui/format-operator-context.d.ts +2 -3
- package/dist/tui/format-operator-context.d.ts.map +1 -1
- package/dist/tui/format-operator-context.js +4 -10
- package/dist/tui/format-operator-context.js.map +1 -1
- package/dist/tui/ink-test-keys.d.ts +1 -0
- package/dist/tui/ink-test-keys.d.ts.map +1 -1
- package/dist/tui/ink-test-keys.js +1 -0
- package/dist/tui/ink-test-keys.js.map +1 -1
- package/dist/tui/issue-session-tui-stream-cursor.test.js +57 -10
- package/dist/tui/issue-session-tui-stream-cursor.test.js.map +1 -1
- package/dist/tui/issue-session-tui-stream.d.ts.map +1 -1
- package/dist/tui/issue-session-tui-stream.js +36 -4
- package/dist/tui/issue-session-tui-stream.js.map +1 -1
- package/dist/tui/issue-session-tui-stream.test.js +57 -16
- package/dist/tui/issue-session-tui-stream.test.js.map +1 -1
- package/dist/tui/issue-session-tui.d.ts.map +1 -1
- package/dist/tui/issue-session-tui.js +35 -3
- package/dist/tui/issue-session-tui.js.map +1 -1
- package/dist/tui/issue-session-tui.test.js +148 -42
- package/dist/tui/issue-session-tui.test.js.map +1 -1
- package/dist/tui/operator-command-suggestions.d.ts +27 -0
- package/dist/tui/operator-command-suggestions.d.ts.map +1 -0
- package/dist/tui/operator-command-suggestions.js +40 -0
- package/dist/tui/operator-command-suggestions.js.map +1 -0
- package/dist/tui/operator-text-area.d.ts +8 -1
- package/dist/tui/operator-text-area.d.ts.map +1 -1
- package/dist/tui/operator-text-area.js +5 -2
- package/dist/tui/operator-text-area.js.map +1 -1
- package/dist/tui/operator-text-area.test-double.d.ts +1 -1
- package/dist/tui/operator-text-area.test-double.d.ts.map +1 -1
- package/dist/tui/operator-text-area.test-double.js +87 -6
- package/dist/tui/operator-text-area.test-double.js.map +1 -1
- package/dist/tui/operator-text-area.test-stub.d.ts +5 -1
- package/dist/tui/operator-text-area.test-stub.d.ts.map +1 -1
- package/dist/tui/operator-text-area.test-stub.js +6 -2
- package/dist/tui/operator-text-area.test-stub.js.map +1 -1
- package/dist/tui/operator-text-area.test.js +13 -0
- package/dist/tui/operator-text-area.test.js.map +1 -1
- package/dist/tui/tui-layout-constants.d.ts +0 -4
- package/dist/tui/tui-layout-constants.d.ts.map +1 -1
- package/dist/tui/tui-layout-constants.js +0 -4
- package/dist/tui/tui-layout-constants.js.map +1 -1
- package/docs/config.md +1 -1
- package/docs/pi-conductor-setup.md +285 -0
- package/package.json +4 -2
- package/scripts/pi/cached-auth.mjs +873 -0
- package/scripts/pi/cached-auth.sh +11 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { OPERATOR_COMMANDS } from '@agents-ensemble/core';
|
|
2
|
+
import { wrapTextToWidth } from './wrap-text-to-width.js';
|
|
3
|
+
/** 入力全体が単一行のコマンド名 prefix のときだけ候補を返す。 */
|
|
4
|
+
export function getOperatorCommandSuggestions(input) {
|
|
5
|
+
if (/[\r\n\u2028\u2029]/u.test(input)) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
const match = /^[\t ]*\/([^\s]*)[\t ]*$/u.exec(input);
|
|
9
|
+
if (!match) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
const prefix = `/${match[1]}`.toLowerCase();
|
|
13
|
+
return OPERATOR_COMMANDS.filter((command) => command.name.toLowerCase().startsWith(prefix));
|
|
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
|
+
}
|
|
24
|
+
/** pane 内に表示する候補行。候補の折り返しも入力ペインの高さ計算と共有する。 */
|
|
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
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=operator-command-suggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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 (
|
|
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.
|
|
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;
|
|
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,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,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,wBAAwB,GAAG,KAAK,EAChC,KAAK,EACL,cAAc,EAAE,wBAAwB,EACxC,cAAc,EACd,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,wBAAwB,EAAE,CAAC;YAC7B,eAAe,CACb,uBAAuB,CACrB,KAAK,EACL,wBAAwB,CAAC,CAAC,CAAC,EAC3B,wBAAwB,CAAC,CAAC,CAAC,CAC5B,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,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,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE7C,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,UAAU,EAAE,EAAE;QACb,MAAM,SAAS,GACb,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;QAC1D,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAClC,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnE,CAAC,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;IAEF,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IACE,GAAG,CAAC,MAAM;YACV,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,IAAI;YACR,GAAG,CAAC,GAAG;YACP,GAAG,CAAC,SAAS;YACb,GAAG,CAAC,UAAU;YACd,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,SAAS,EACb,CAAC;YACD,IAAI,wBAAwB,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;YAC/D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,eAAe,CAAC,SAAS,CAAC,CAAC;gBAC3B,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACnB,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzB,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjD,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC5B,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC5D,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC5B,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,oBAAoB,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;oBAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACxE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,iBAAiB,GAAG,oBAAoB,EACxC,YAAY,CACb,CAAC;oBACF,eAAe,CAAC,UAAU,CAAC,CAAC;oBAC5B,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACxD,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;oBAChE,MAAM,WAAW,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,aAAa,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,EAC9C,WAAW,CACZ,CAAC;oBACF,eAAe,CAAC,UAAU,CAAC,CAAC;oBAC5B,cAAc,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,CAAC;oBAC/B,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACpB,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAClC,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,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,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,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,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,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;YAC7C,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9E,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;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,YAAoB;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -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":"
|
|
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":"AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;
|
|
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\u306E\u30BF\u30A4\u30DF\u30F3\u30B0\u3067\u5165\u529B \u00B7 /reconnect \u3067\u518D\u63A5\u7D9A \u00B7 /exit \u3067\u7D42\u4E86";
|
|
43
|
-
/** post-loop 待機中に Operator input へ表示する追加入力 prompt。 */
|
|
44
|
-
export declare const OPERATOR_INPUT_POST_LOOP_HINT = "\u8FFD\u52A0\u6307\u793A\u3092\u5165\u529B\u3059\u308B\u304B /reconnect \u3067\u518D\u63A5\u7D9A \u00B7 /exit \u3067\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,
|
|
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 で再接続 · /exit で終了';
|
|
43
|
-
/** post-loop 待機中に Operator input へ表示する追加入力 prompt。 */
|
|
44
|
-
export const OPERATOR_INPUT_POST_LOOP_HINT = '追加指示を入力するか /reconnect で再接続 · /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,
|
|
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/docs/config.md
CHANGED
|
@@ -182,7 +182,7 @@ worker ACP spawn のフィンガープリント([ADR 0011](adr/0011-session-si
|
|
|
182
182
|
- `prompts/`: Markdown template を読み込み、`/name args` の user prompt を Pi 標準の引数置換で展開します。
|
|
183
183
|
- `themes/`: Pi 標準 JSON として読み込み、project 同名を優先します。conductor は headless `AgentSession` のため TUI renderer がなく、theme の色・表示設定はモデル入出力には適用しません。
|
|
184
184
|
|
|
185
|
-
Pi の初回セットアップ、provider 認証、認証優先順、TTY / stderr の login、project OAuth の制約、`ensemble models list`、missing key / 401 の復旧は [Pi conductor セットアップと認証](pi-conductor-setup.md)を正本とします。この config reference では、headless conductor が `settings.json` の `apiKey` / `apiKeys` を認証 fallback として使い、`models.json` の provider `apiKey` と `!command` も Pi resource として解決することだけを定義します。`!command` は conductor process の shell と OS 権限で実行されるため、信頼できる設定でのみ使用してください。`gcloud auth print-identity-token` 等を連続実行しないためのキャッシュ付きヘルパーは harness では提供せず、[pi-conductor-setup.md の `!command` とトークン取得](pi-conductor-setup.md#command-とトークン取得の連続実行litellm--gcloud-等) と [scripts/pi/cached-auth.
|
|
185
|
+
Pi の初回セットアップ、provider 認証、認証優先順、TTY / stderr の login、project OAuth の制約、`ensemble models list`、missing key / 401 の復旧は [Pi conductor セットアップと認証](pi-conductor-setup.md)を正本とします。この config reference では、headless conductor が `settings.json` の `apiKey` / `apiKeys` を認証 fallback として使い、`models.json` の provider `apiKey` と `!command` も Pi resource として解決することだけを定義します。`!command` は conductor process の shell と OS 権限で実行されるため、信頼できる設定でのみ使用してください。`gcloud auth print-identity-token` 等を連続実行しないためのキャッシュ付きヘルパーは harness では提供せず、[pi-conductor-setup.md の `!command` とトークン取得](pi-conductor-setup.md#command-とトークン取得の連続実行litellm--gcloud-等) と Node 実装の [scripts/pi/cached-auth.mjs](../scripts/pi/cached-auth.mjs) を参照してください。`@agents-ensemble/cli` の配布物には `scripts/pi/cached-auth.mjs` と、これへ委譲する非推奨の `.sh` wrapper が含まれます。既存 `~/.ensemble/pi/cached-auth.sh` コピーからの移行と p50 測定手順も Pi セットアップガイドに記載しています。Pi の MCP HTTP OAuth は provider OAuth とは別に、公式 MCP extension が管理します。
|
|
186
186
|
|
|
187
187
|
#### `settings.json` の headless 対応範囲
|
|
188
188
|
|