gaunt-sloth 2.0.0-alpha.30 → 2.0.0-alpha.32

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.
@@ -16,8 +16,8 @@ import { type ChalkInstance, type ColorSupportLevel } from 'chalk';
16
16
  * into the one knob that reaches every renderer: `chalk.level` on the shared instance.
17
17
  *
18
18
  * **Why one knob is enough.** Ink imports the same `chalk` default export we do (`colorize.js`
19
- * and `render-border.js` both `import chalk from 'chalk'`), and under the scoped `ink>chalk` /
20
- * `ink-text-input>chalk` overrides in `pnpm-workspace.yaml` that resolves to the very same
19
+ * and `render-border.js` both `import chalk from 'chalk'`), and under the scoped `ink>chalk`
20
+ * override in `pnpm-workspace.yaml` that resolves to the very same
21
21
  * physical module as the app's. Mutating it therefore clamps every `<Text color>` Ink paints as
22
22
  * well as our markdown styling. Break the single-module property and this hook silently covers
23
23
  * only half the screen, which is why the overrides carry a comment saying so.
@@ -16,8 +16,8 @@ import chalk from 'chalk';
16
16
  * into the one knob that reaches every renderer: `chalk.level` on the shared instance.
17
17
  *
18
18
  * **Why one knob is enough.** Ink imports the same `chalk` default export we do (`colorize.js`
19
- * and `render-border.js` both `import chalk from 'chalk'`), and under the scoped `ink>chalk` /
20
- * `ink-text-input>chalk` overrides in `pnpm-workspace.yaml` that resolves to the very same
19
+ * and `render-border.js` both `import chalk from 'chalk'`), and under the scoped `ink>chalk`
20
+ * override in `pnpm-workspace.yaml` that resolves to the very same
21
21
  * physical module as the app's. Mutating it therefore clamps every `<Text color>` Ink paints as
22
22
  * well as our markdown styling. Break the single-module property and this hook silently covers
23
23
  * only half the screen, which is why the overrides carry a comment saying so.
@@ -745,9 +745,9 @@ export function App(props) {
745
745
  // typed twin of the same toggle, not a substitute for reaching it from the keyboard.
746
746
  //
747
747
  // The stray letter this used to stand off from is handled where it happens rather than by
748
- // declining to bind the key: `ink-text-input` types any control chord it does not itself claim,
749
- // and <PromptInput>'s sentinel keeps the whole class out of the buffer (the prompt is mounted
750
- // while a turn streams too, so gating on `running` never prevented it).
748
+ // declining to bind the key: <PromptEditor>'s insert branch refuses every ctrl and meta chord,
749
+ // so a key bound here cannot also land in the buffer (the prompt is mounted while a turn
750
+ // streams too, so gating on `running` never prevented it).
751
751
  if (key.ctrl && input === 't') {
752
752
  // Share the /verbose helper so the same state-aware notice is committed (TUI-C14).
753
753
  toggleTools();
@@ -784,7 +784,10 @@ export function App(props) {
784
784
  key.pageDown) {
785
785
  return;
786
786
  }
787
- if (input && !key.ctrl && !key.meta) {
787
+ // A chord belongs to whoever bound it, never to a text buffer — the same four modifiers the
788
+ // attack-banner phrase and the prompt's own editor refuse, so every buffer in the TUI reads
789
+ // a chord the same way. `shift` is excluded deliberately: it is how a capital is typed.
790
+ if (input && !key.ctrl && !key.meta && !key.super && !key.hyper) {
788
791
  setDebugSearch(debugSearchQueryRef.current + input);
789
792
  }
790
793
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/tui/components/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/tui/components/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { type EditorState } from '#src/tui/lineEditor.js';
3
+ export declare function PromptEditor({ state, onChange, onEnter, menuActive, }: {
4
+ /** The buffer and caret to RENDER. Owned by the parent — this component never stores them. */
5
+ state: EditorState;
6
+ /**
7
+ * Applies one edit or motion. Takes an updater rather than a finished state, and that is
8
+ * load-bearing rather than a style choice — see the note on batching in the doc comment above.
9
+ */
10
+ onChange: (update: (previous: EditorState) => EditorState) => void;
11
+ /**
12
+ * Enter was pressed with the menu closed. Reported, not interpreted: what Enter means depends on
13
+ * the buffer, so the parent decides it inside the buffer's own updater, for the same reason
14
+ * {@link onChange} is an updater.
15
+ */
16
+ onEnter: () => void;
17
+ /** While true the editor ignores Up/Down and Enter — the slash menu owns them. */
18
+ menuActive: boolean;
19
+ }): React.ReactElement;
@@ -0,0 +1,147 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text, useInput } from 'ink';
3
+ import chalk from 'chalk';
4
+ import { deleteBackward, insertText, layout, moveLeft, moveLineDown, moveLineEnd, moveLineStart, moveLineUp, moveRight, moveWordLeft, moveWordRight, } from '#src/tui/lineEditor.js';
5
+ /**
6
+ * TUI-C25 — the prompt's editor: the keyboard on one side, {@link EditorState} on the other.
7
+ *
8
+ * Everything that *decides* lives in `#src/tui/lineEditor.js`; this file only translates keys into
9
+ * calls on it and paints the result. It is a controlled component — the buffer belongs to
10
+ * `<PromptInput>` — so a caret this moves is a caret the parent can also set (after a submit, a
11
+ * paste or a Tab completion) without a second source of truth.
12
+ *
13
+ * **No platform branch, anywhere.** All three word-motion spellings are bound unconditionally:
14
+ * `Meta+B`/`Meta+F` is what macOS Terminal.app and Ghostty send for `Option+←/→` and what a readline
15
+ * user types directly, `Ctrl+←/→` is the xterm/Konsole spelling, and `Meta+←/→` is a third spelling
16
+ * Konsole sends for `Alt+←/→`. They are alternatives, not fallbacks. A platform check here would
17
+ * buy nothing but a way to be wrong on a terminal nobody measured.
18
+ *
19
+ * **Control chords are refused, never typed.** The insert branch takes an event only when none of
20
+ * `ctrl`/`meta`/`super`/`hyper` is set, so a chord bound elsewhere in the app — or bound nowhere at
21
+ * all — cannot drop its letter into what the user is writing. That is a property of owning the
22
+ * editor, and it is what makes a separate guard component in front of the prompt unnecessary.
23
+ *
24
+ * **Every edit is an UPDATER, because keystrokes share a stdin chunk.** Ink splits one chunk into
25
+ * several key events and dispatches them synchronously, so every handler after the first in a chunk
26
+ * still closes over the `state` prop from before its predecessor's edit. A handler computing from
27
+ * that prop therefore throws its predecessor's work away — and this is not a rare shape: Ink
28
+ * deliberately splits repeated backspace bytes into separate events *because holding the key sends
29
+ * them in one chunk*, so a buffer that computed from the prop would answer a held Backspace with a
30
+ * single deletion. Handing the parent an updater makes each keystroke compose on the result of the
31
+ * one before it, whatever the batching did.
32
+ *
33
+ * The same rule is why `Enter` is *reported* rather than interpreted here (`onEnter`): whether it
34
+ * continues the line or submits is a question about the buffer, and a held Backspace released into
35
+ * Enter is exactly the shape that asks it about text the user has already corrected. So nothing in
36
+ * this component reads {@link state} except the renderer.
37
+ *
38
+ * **Two deliberate v1 narrowings.**
39
+ *
40
+ * - Up/Down move over LOGICAL lines (the `\n`-separated ones), not visual wrapped rows. A long line
41
+ * that the terminal wraps is one line, so Up/Down on it do nothing. Visual-line motion would have
42
+ * to thread the terminal width into the model, coupling a pure module to terminal geometry, and
43
+ * word motion plus `Ctrl+A`/`Ctrl+E` already give a wrapped line the navigation it needs.
44
+ * - `Ctrl+A`/`Ctrl+E` and `Home`/`End` go to the ends of the caret's OWN logical line, not of the
45
+ * whole buffer. There is no buffer-start/buffer-end binding.
46
+ */
47
+ /** The ` > ` the first row of the buffer is written after. */
48
+ const PROMPT_PREFIX = ' > ';
49
+ /**
50
+ * Every continuation row's prefix. Deliberately the same four columns wide as ` > `, so the text
51
+ * of every row of a multi-line buffer starts in the same column.
52
+ */
53
+ const CONTINUATION_PREFIX = ' … ';
54
+ /**
55
+ * A row with the caret drawn into it as an inverse-video cell — the way `ink-text-input` drew it,
56
+ * because a terminal cursor Ink does not move is not an option and this is what users already read
57
+ * as "the caret is here".
58
+ *
59
+ * Takes the WHOLE code point under the caret: inverting one code unit of a surrogate pair renders
60
+ * the emoji as two pieces of garbage. At end-of-line there is nothing to invert, so an inverse space
61
+ * stands in — which is also what an empty buffer renders as.
62
+ */
63
+ function withCaret(line, column) {
64
+ const codePoint = line.codePointAt(column);
65
+ if (codePoint === undefined)
66
+ return line + chalk.inverse(' ');
67
+ const character = String.fromCodePoint(codePoint);
68
+ return line.slice(0, column) + chalk.inverse(character) + line.slice(column + character.length);
69
+ }
70
+ export function PromptEditor({ state, onChange, onEnter, menuActive, }) {
71
+ useInput((input, key) => {
72
+ // Word motion — three spellings, none of them a fallback for another (see the doc comment).
73
+ if ((key.meta && input === 'b') || ((key.ctrl || key.meta) && key.leftArrow)) {
74
+ onChange(moveWordLeft);
75
+ return;
76
+ }
77
+ if ((key.meta && input === 'f') || ((key.ctrl || key.meta) && key.rightArrow)) {
78
+ onChange(moveWordRight);
79
+ return;
80
+ }
81
+ // Line start / end. `Home`/`End` are claimed only WITHOUT Ctrl: <App> binds Ctrl+Home/Ctrl+End
82
+ // to scrolling the transcript, and leaving those two alone is what keeps both bindings working.
83
+ if ((key.ctrl && input === 'a') || (key.home && !key.ctrl)) {
84
+ onChange(moveLineStart);
85
+ return;
86
+ }
87
+ if ((key.ctrl && input === 'e') || (key.end && !key.ctrl)) {
88
+ onChange(moveLineEnd);
89
+ return;
90
+ }
91
+ // One character at a time. Reached only after the word-motion branches above, so an arrow that
92
+ // arrives carrying Ctrl or Meta has already been handled as a word motion.
93
+ //
94
+ // `Shift` is deliberately NOT tested on any motion branch: a terminal that reports Shift with an
95
+ // arrow (`\x1b[1;2D`) performs the plain motion. Selection is not a concept this editor has, so
96
+ // there is nothing else the shifted key could mean, and refusing it would make a key a user
97
+ // pressed do nothing at all.
98
+ if (key.leftArrow) {
99
+ onChange(moveLeft);
100
+ return;
101
+ }
102
+ if (key.rightArrow) {
103
+ onChange(moveRight);
104
+ return;
105
+ }
106
+ // Up/Down have exactly TWO claimants at the prompt, and this is where they are arbitrated:
107
+ //
108
+ // 1. The slash menu is open → the menu owns them (it moves its highlight). `menuActive` says
109
+ // so, and this branch stands down completely.
110
+ // 2. Otherwise → the buffer owns them, moving the caret between the logical
111
+ // lines of a multi-line entry. On a single-line buffer that is a no-op by construction.
112
+ //
113
+ // There is NO third claimant: input-history recall is not implemented at this prompt and is not
114
+ // built here, so nothing is waiting behind the buffer for the no-op case to fall through to.
115
+ // (The debug panel also binds Up/Down, but the prompt is unmounted while that panel is focused.)
116
+ if (key.upArrow || key.downArrow) {
117
+ if (menuActive || key.ctrl || key.meta)
118
+ return;
119
+ onChange(key.upArrow ? moveLineUp : moveLineDown);
120
+ return;
121
+ }
122
+ if (key.backspace || key.delete) {
123
+ onChange(deleteBackward);
124
+ return;
125
+ }
126
+ if (key.return) {
127
+ // With the menu open Enter belongs to it — the parent dispatches the highlighted command.
128
+ if (menuActive)
129
+ return;
130
+ // Reported rather than decided, and for the same reason every other branch hands up an
131
+ // updater: what Enter means is a question about the buffer, and answering it from the
132
+ // rendered `state` answers it about the text as it stood before whatever shared this chunk.
133
+ onEnter();
134
+ return;
135
+ }
136
+ // Everything else that carries text. The guard is the point: a chord belongs to whoever bound
137
+ // it, and an editor whose insert branch is the fall-through for unrecognised chords types `t`
138
+ // when the user presses Ctrl+T. Ours refuses every modifier that makes a key a chord, silently.
139
+ // `shift` is the one deliberately absent: it is how a capital is typed, not a different key.
140
+ if (input.length > 0 && !key.ctrl && !key.meta && !key.super && !key.hyper) {
141
+ onChange((previous) => insertText(previous, input));
142
+ }
143
+ });
144
+ const { lines, line: caretLine, column } = layout(state);
145
+ return (_jsx(Box, { flexDirection: "column", children: lines.map((text, index) => (_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, children: index === 0 ? (_jsx(Text, { color: "cyan", children: PROMPT_PREFIX })) : (_jsx(Text, { dimColor: true, children: CONTINUATION_PREFIX })) }), _jsx(Text, { children: index === caretLine ? withCaret(text, column) : text })] }, index))) }));
146
+ }
147
+ //# sourceMappingURL=PromptEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptEditor.js","sourceRoot":"","sources":["../../../src/tui/components/PromptEditor.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,35 @@
1
1
  import React from 'react';
2
2
  import { type SlashCommand } from '@gaunt-sloth/agent/modules/slashCommands.js';
3
+ /**
4
+ * The user prompt line. Mirrors the readline ` > ` prompt. Clears on submit; the parent
5
+ * hides it while a turn is running so Ink owns stdin uncontended during streaming.
6
+ *
7
+ * The buffer and caret live here as an {@link import('#src/tui/lineEditor.js').EditorState} and are
8
+ * rendered and driven by `<PromptEditor>` (TUI-C25), which owns the keyboard for everything that
9
+ * edits text. This component owns what the buffer *means*: the slash menu it may open, and the
10
+ * submission it becomes — including what Enter means, which is decided against the authoritative
11
+ * buffer so that it reads the text its predecessors in the same stdin chunk produced.
12
+ *
13
+ * TUI-C10 — while the user is typing a bare slash command (input starts with `/`, no space yet),
14
+ * a discovery menu of the matching registered commands appears just above the prompt. The registry
15
+ * (`commands`) is the single source, so extension-registered commands show automatically. Arrow
16
+ * keys move the highlight, Tab completes the highlighted name, Enter dispatches it, Esc dismisses
17
+ * the menu. The keyboard split is stated in one place and honoured on both sides of it: while the
18
+ * menu is open `<PromptEditor>` stands down from Up/Down and Enter (its `menuActive` prop) and this
19
+ * component's `useInput` claims them, so no key is handled twice. A fully-typed command still
20
+ * dispatches exactly as before (Enter with the menu open submits the highlighted command, which
21
+ * equals what was typed).
22
+ *
23
+ * A buffer with a newline in it never opens the menu, and does not need a guard of its own to stop
24
+ * it: `slashMenuQuery` matches `/` followed by non-whitespace to the end of the input, and `\n` is
25
+ * whitespace — so a continued or pasted multi-line entry beginning with `/` is not a command query.
26
+ *
27
+ * TUI-C24 — multiline paste. `usePaste` puts the terminal into bracketed-paste mode (`\x1b[?2004h`)
28
+ * while the prompt is mounted and disables it on unmount, and Ink delivers the pasted text on a
29
+ * channel separate from `useInput` — so an embedded newline in a pasted burst is never read as
30
+ * Enter and can never submit the turn mid-paste. The normalized paste (CRLF/CR → `\n`) is inserted
31
+ * at the caret without submitting; a subsequent explicit Enter submits the whole multi-line value.
32
+ */
3
33
  export declare function PromptInput({ onSubmit, commands, onMenuStateChange, }: {
4
34
  onSubmit: (value: string) => void;
5
35
  /** The slash-command registry (App builds it once) — the menu's single source of truth. */
@@ -1,154 +1,178 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
- import { Box, Text, useInput, usePaste } from 'ink';
4
- import TextInput from 'ink-text-input';
3
+ import { Box, useInput, usePaste } from 'ink';
4
+ import { PromptEditor } from '#src/tui/components/PromptEditor.js';
5
5
  import { SlashCommandMenu } from '#src/tui/components/SlashCommandMenu.js';
6
6
  import { filterSlashCommands, slashMenuQuery, } from '@gaunt-sloth/agent/modules/slashCommands.js';
7
+ import { createEditorState, insertText, pressEnter, } from '#src/tui/lineEditor.js';
7
8
  import { normalizePastedText } from '#src/tui/pasteParser.js';
8
9
  /**
9
10
  * The user prompt line. Mirrors the readline ` > ` prompt. Clears on submit; the parent
10
11
  * hides it while a turn is running so Ink owns stdin uncontended during streaming.
11
12
  *
13
+ * The buffer and caret live here as an {@link import('#src/tui/lineEditor.js').EditorState} and are
14
+ * rendered and driven by `<PromptEditor>` (TUI-C25), which owns the keyboard for everything that
15
+ * edits text. This component owns what the buffer *means*: the slash menu it may open, and the
16
+ * submission it becomes — including what Enter means, which is decided against the authoritative
17
+ * buffer so that it reads the text its predecessors in the same stdin chunk produced.
18
+ *
12
19
  * TUI-C10 — while the user is typing a bare slash command (input starts with `/`, no space yet),
13
20
  * a discovery menu of the matching registered commands appears just above the prompt. The registry
14
21
  * (`commands`) is the single source, so extension-registered commands show automatically. Arrow
15
22
  * keys move the highlight, Tab completes the highlighted name, Enter dispatches it, Esc dismisses
16
- * the menu. The keyboard split is clean: `ink-text-input` ignores Up/Down/Tab and only fires
17
- * `onSubmit` on Enter, so this component's `useInput` owns the arrows/Tab/Esc while `onSubmit` owns
18
- * Enter — no double-handling. A fully-typed command still dispatches exactly as before (Enter with
19
- * the menu open just submits the highlighted command, which equals what was typed).
23
+ * the menu. The keyboard split is stated in one place and honoured on both sides of it: while the
24
+ * menu is open `<PromptEditor>` stands down from Up/Down and Enter (its `menuActive` prop) and this
25
+ * component's `useInput` claims them, so no key is handled twice. A fully-typed command still
26
+ * dispatches exactly as before (Enter with the menu open submits the highlighted command, which
27
+ * equals what was typed).
20
28
  *
21
- * TUI-C24 — multiline paste. `ink-text-input` is single-line: an embedded newline in a pasted
22
- * burst would otherwise be read as Enter and submit the turn mid-paste (or jam the lines together).
23
- * `usePaste` puts the terminal into bracketed-paste mode (`\x1b[?2004h`) while the prompt is mounted
24
- * and disables it on unmount, and Ink delivers the pasted text on a channel separate from
25
- * `useInput` — so the payload never reaches `TextInput`'s Enter handling. We append the normalized
26
- * paste (CRLF/CR → `\n`) to the buffer without submitting; a subsequent explicit Enter submits the
27
- * whole multi-line value through the existing `onSubmit` path. Rich multi-line cursor editing /
28
- * continuation-line rendering is intentionally NOT handled here — that is node TUI-C25; a buffered
29
- * multi-line value may render imperfectly, but the submitted value is correct and intact.
30
- */
31
- /**
32
- * Records whether the input event now being delivered is a control chord.
29
+ * A buffer with a newline in it never opens the menu, and does not need a guard of its own to stop
30
+ * it: `slashMenuQuery` matches `/` followed by non-whitespace to the end of the input, and `\n` is
31
+ * whitespace — so a continued or pasted multi-line entry beginning with `/` is not a command query.
33
32
  *
34
- * `ink-text-input` claims only Ctrl+C among control chords and **types** the rest: Ink reports
35
- * Ctrl+T as `input` `'t'` with `key.ctrl`, and the text input's handler falls through to its insert
36
- * branch, so a keystroke the app binds elsewhere also drops a stray letter into whatever the user
37
- * was writing. That is a whole class reached by reflex — Ctrl+A, Ctrl+E, Ctrl+U, Ctrl+W and Ctrl+K
38
- * are what a terminal user's fingers do at any prompt — not one binding somebody chose to press.
39
- * Ink fans one event out to every registered handler and offers no way to stop it, so the only
40
- * place to catch this is *before* the text input sees it — which is what this is for.
41
- *
42
- * It renders nothing and exists only for its position: `useInput` subscribes from an effect, and
43
- * effects fire in mount order, so a sibling rendered ahead of the text input is called ahead of it.
44
- * That ordering is what the "leaves the buffer alone" case pins.
33
+ * TUI-C24 — multiline paste. `usePaste` puts the terminal into bracketed-paste mode (`\x1b[?2004h`)
34
+ * while the prompt is mounted and disables it on unmount, and Ink delivers the pasted text on a
35
+ * channel separate from `useInput` — so an embedded newline in a pasted burst is never read as
36
+ * Enter and can never submit the turn mid-paste. The normalized paste (CRLF/CR → `\n`) is inserted
37
+ * at the caret without submitting; a subsequent explicit Enter submits the whole multi-line value.
45
38
  */
46
- function ControlChordSentinel({ onKey }) {
47
- useInput((input, key) => {
48
- onKey(key.ctrl && input.length > 0);
49
- });
50
- return null;
51
- }
52
39
  export function PromptInput({ onSubmit, commands = [], onMenuStateChange, }) {
53
- const [value, setValue] = useState('');
54
- // Highlighted row in the menu. Reset to the top whenever the query changes (the filtered list
55
- // changes under it), so navigation always starts from the most-relevant match.
56
- const [cursor, setCursor] = useState(0);
57
- // Esc dismisses the menu without clearing the input; typing anything re-opens it (onChange
58
- // clears this flag), matching how palette menus behave elsewhere.
59
- const [dismissed, setDismissed] = useState(false);
60
- // Set by <ControlChordSentinel> for every keystroke, read by onChange below.
61
- const controlChordRef = useRef(false);
62
- // Bumped to remount <TextInput> after a refused chord — see the onChange handler.
63
- const [textInputGeneration, setTextInputGeneration] = useState(0);
64
- const query = slashMenuQuery(value);
40
+ /**
41
+ * The buffer and its edit serial — authoritative in a REF, mirrored into state for rendering.
42
+ *
43
+ * A keystroke is not delivered alone: Ink splits one stdin chunk into several key events and
44
+ * dispatches them synchronously, so a handler that computes from the rendered value computes from
45
+ * the text as it stood before its predecessors in that chunk. Holding a Backspace is exactly that
46
+ * shape — Ink splits repeated backspace bytes into separate events precisely *because* holding the
47
+ * key sends them in one chunk. A ref is written and read synchronously, so each keystroke sees
48
+ * what the one before it did, and `onSubmit` can still be called straight from the handler that
49
+ * decided on it (which a `setState` updater, being pure, could not do). It is the same
50
+ * ref-plus-mirror shape `<App>` uses for its own keystroke-driven text buffers.
51
+ *
52
+ * `edits` counts only the updates that CHANGED the text, and it is the key the menu's transient
53
+ * bookkeeping hangs on. Keying that bookkeeping on the text itself is the obvious thing and it is
54
+ * wrong: an Esc-dismissal or a stale highlight resurrects the moment an edit returns the buffer to
55
+ * a value it has already held — a Backspace back to the previous query, or the same query typed
56
+ * again in a later message. A serial never repeats, so the bookkeeping is invalidated by any edit
57
+ * and by nothing else; a bare caret move leaves it alone, which is what lets Esc survive an arrow.
58
+ */
59
+ const [buffer, setBuffer] = useState(() => ({
60
+ state: createEditorState(),
61
+ edits: 0,
62
+ }));
63
+ const bufferRef = useRef(buffer);
64
+ const state = buffer.state;
65
+ /** Make `next` the buffer: authoritative immediately, on screen at the next render. */
66
+ const commitBuffer = (next) => {
67
+ bufferRef.current = next;
68
+ setBuffer(next);
69
+ };
70
+ /** Apply one edit or motion, counting it as an edit only if it changed the text. */
71
+ const applyEdit = (update) => {
72
+ const previous = bufferRef.current;
73
+ const next = update(previous.state);
74
+ commitBuffer({
75
+ state: next,
76
+ edits: next.value === previous.state.value ? previous.edits : previous.edits + 1,
77
+ });
78
+ };
79
+ /** Submit `value` and clear the buffer; the bumped serial resets the menu (see `bufferRef`). */
80
+ const submit = (value) => {
81
+ commitBuffer({ state: createEditorState(), edits: bufferRef.current.edits + 1 });
82
+ onSubmit(value);
83
+ };
84
+ /**
85
+ * Enter, with the menu closed — decided here rather than in the editor.
86
+ *
87
+ * What Enter means depends on the buffer (a trailing backslash continues the line, anything else
88
+ * submits it), so the decision reads the same authoritative buffer every other keystroke writes.
89
+ * Decided from a render instead, an Enter sharing a chunk with an edit answers about the text
90
+ * before that edit: a held Backspace released into Enter shows the corrected text on screen and
91
+ * sends the uncorrected text, then clears the buffer so nothing survives to show it.
92
+ */
93
+ const pressEnterOnBuffer = () => {
94
+ const result = pressEnter(bufferRef.current.state);
95
+ if (result.kind === 'continue') {
96
+ commitBuffer({ state: result.state, edits: bufferRef.current.edits + 1 });
97
+ return;
98
+ }
99
+ submit(result.value);
100
+ };
101
+ /**
102
+ * The menu's transient state, keyed on the edit serial it belongs to.
103
+ *
104
+ * `dismissed` is Esc's, so the menu can be sent away without clearing the input; `index` is the
105
+ * highlighted row, which starts at the most-relevant match whenever the query changes under it.
106
+ */
107
+ const [menu, setMenu] = useState({
108
+ forEdit: 0,
109
+ dismissed: false,
110
+ index: 0,
111
+ });
112
+ const menuAppliesToBuffer = menu.forEdit === buffer.edits;
113
+ const query = slashMenuQuery(state.value);
114
+ const dismissed = menuAppliesToBuffer && menu.dismissed;
65
115
  const matches = query !== null && !dismissed ? filterSlashCommands(commands, query) : [];
66
116
  const menuActive = matches.length > 0;
67
- // Clamp defensively in case the filtered list shrank below the cursor between renders.
68
- const selectedIndex = menuActive ? Math.min(cursor, matches.length - 1) : 0;
117
+ // Clamp defensively in case the filtered list shrank below the highlight between renders.
118
+ const selectedIndex = menuActive
119
+ ? Math.min(menuAppliesToBuffer ? menu.index : 0, matches.length - 1)
120
+ : 0;
69
121
  // Let the parent suppress its competing Tab handler (debug-panel focus) while the menu is open.
70
122
  useEffect(() => {
71
123
  onMenuStateChange?.(menuActive);
72
124
  }, [menuActive, onMenuStateChange]);
125
+ /** Step the highlight by `step`, wrapping — the menu is open, so there is a list to step. */
126
+ const moveHighlight = (step) => {
127
+ const forEdit = bufferRef.current.edits;
128
+ setMenu((previous) => {
129
+ const current = previous.forEdit === forEdit ? previous.index : 0;
130
+ const clamped = Math.min(current, matches.length - 1);
131
+ return {
132
+ forEdit,
133
+ dismissed: false,
134
+ index: (clamped + step + matches.length) % matches.length,
135
+ };
136
+ });
137
+ };
73
138
  // TUI-C24 — capture a bracketed paste as buffered text instead of keystrokes. Ink enables
74
139
  // bracketed-paste mode while this hook is mounted and routes the pasted payload here (off the
75
- // `useInput` channel), so its embedded newlines never reach TextInput's Enter handling. We append
76
- // the normalized paste to the buffer and do NOT submit — a later explicit Enter submits it all.
77
- // (Appending, rather than inserting at TextInput's internal cursor, is deliberate: multi-line
78
- // cursor editing is TUI-C25's scope; the submitted value stays correct and intact.)
140
+ // `useInput` channel), so its embedded newlines never reach Enter handling. The paste is inserted
141
+ // AT THE CARET and does NOT submit — a later explicit Enter submits it all.
79
142
  usePaste((text) => {
80
143
  const pasted = normalizePastedText(text);
81
144
  if (!pasted)
82
145
  return;
83
- setValue((current) => current + pasted);
84
- // Mirror onChange's menu bookkeeping so a paste can't leave a stale/incorrectly-open menu.
85
- setDismissed(false);
86
- setCursor(0);
146
+ applyEdit((current) => insertText(current, pasted));
87
147
  });
88
148
  useInput((_input, key) => {
89
- // Only claim keys while the menu is visible; otherwise TextInput handles everything.
149
+ // Only claim keys while the menu is visible; otherwise the editor handles everything.
90
150
  if (!menuActive)
91
151
  return;
92
152
  if (key.upArrow) {
93
- setCursor((c) => (Math.min(c, matches.length - 1) - 1 + matches.length) % matches.length);
153
+ moveHighlight(-1);
94
154
  }
95
155
  else if (key.downArrow) {
96
- setCursor((c) => (Math.min(c, matches.length - 1) + 1) % matches.length);
156
+ moveHighlight(1);
97
157
  }
98
158
  else if (key.tab) {
99
159
  // Complete to the highlighted name plus a trailing space: the space closes the menu (the
100
- // input now has whitespace) and leaves the cursor ready for args, without dispatching.
101
- setValue(`/${matches[selectedIndex].name} `);
102
- setDismissed(false);
103
- setCursor(0);
160
+ // input now has whitespace) and leaves the caret ready for args, without dispatching.
161
+ applyEdit(() => createEditorState(`/${matches[selectedIndex].name} `));
104
162
  }
105
163
  else if (key.escape) {
106
- setDismissed(true);
164
+ setMenu({ forEdit: bufferRef.current.edits, dismissed: true, index: 0 });
165
+ }
166
+ else if (key.return) {
167
+ // With the menu open, Enter dispatches the HIGHLIGHTED command (so "/mo"+Enter runs
168
+ // "/mode") rather than the typed text. The parent's handler parses + dispatches through
169
+ // the registry either way, so fully-typed dispatch is unchanged. <PromptEditor> stands
170
+ // down from Enter while `menuActive`, so this is the only claimant.
171
+ submit(`/${matches[selectedIndex].name}`);
107
172
  }
108
- // Enter is intentionally NOT handled here — TextInput's onSubmit owns it (see onSubmit).
109
173
  },
110
174
  // Active only while the prompt is mounted; harmless when the menu is closed (early return).
111
175
  { isActive: true });
112
- return (_jsxs(Box, { flexDirection: "column", children: [menuActive ? _jsx(SlashCommandMenu, { commands: matches, selectedIndex: selectedIndex }) : null, _jsx(ControlChordSentinel, { onKey: (isControlChord) => {
113
- controlChordRef.current = isControlChord;
114
- } }), _jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: ' > ' }), _jsx(TextInput, { value: value, onChange: (next) => {
115
- // A control chord belongs to whoever bound it, never to the buffer.
116
- //
117
- // Refusing the value is only half of it. `ink-text-input` commits its internal cursor
118
- // offset BEFORE it asks whether the value may change, and it repairs an out-of-range
119
- // offset only from an effect keyed on the value — which a refusal, by definition, does
120
- // not change. So a refused chord leaves the offset one past the value, the reverse-video
121
- // cursor cell matches no character and disappears, and every later character inserts one
122
- // position early: `draft` + one chord + `m,o,r,e` submits `draftorem`.
123
- //
124
- // Remounting is what puts the offset back, because the component derives it from the
125
- // value at mount. The cost is that a cursor the user had moved into the middle of the
126
- // buffer returns to the end — visible, recoverable with the arrow keys, and not the
127
- // value. [[TUI-C25]] builds the real line editor, binds Ctrl+A/Ctrl+E to line start/end
128
- // and will own the cursor outright; until then this is the cheap half of the trade.
129
- //
130
- // It also re-subscribes the text input's `useInput`, which moves that listener to the
131
- // back of Ink's emitter. Harmless, and checked rather than assumed: the ONE ordering
132
- // anything here depends on is the sentinel being ahead of the text input, and the
133
- // sentinel never re-subscribes. App's handler ending up ahead of the text input's is
134
- // independent — they act on disjoint state, and App returns early from every branch it
135
- // claims.
136
- if (controlChordRef.current) {
137
- setTextInputGeneration((generation) => generation + 1);
138
- return;
139
- }
140
- setValue(next);
141
- setDismissed(false);
142
- setCursor(0);
143
- }, onSubmit: (submitted) => {
144
- // With the menu open, Enter dispatches the HIGHLIGHTED command (so "/mo"+Enter runs
145
- // "/mode"); otherwise submit exactly what was typed. Either way the parent's handler
146
- // parses + dispatches through the registry, so fully-typed dispatch is unchanged.
147
- const toSubmit = menuActive ? `/${matches[selectedIndex].name}` : submitted;
148
- setValue('');
149
- setDismissed(false);
150
- setCursor(0);
151
- onSubmit(toSubmit);
152
- } }, textInputGeneration)] })] }));
176
+ return (_jsxs(Box, { flexDirection: "column", children: [menuActive ? _jsx(SlashCommandMenu, { commands: matches, selectedIndex: selectedIndex }) : null, _jsx(PromptEditor, { state: state, onChange: applyEdit, onEnter: pressEnterOnBuffer, menuActive: menuActive })] }));
153
177
  }
154
178
  //# sourceMappingURL=PromptInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptInput.js","sourceRoot":"","sources":["../../../src/tui/components/PromptInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PromptInput.js","sourceRoot":"","sources":["../../../src/tui/components/PromptInput.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@
10
10
  * construction** rather than by anyone remembering (GS2-87: divergence is deliberate and stated).
11
11
  *
12
12
  * The bindings are the ones the code actually binds — `<App>`'s `useInput` and wheel subscription,
13
- * and `<PromptInput>`'s menu handler. Adding an entry here does not add a binding; it promises one.
13
+ * `<PromptInput>`'s menu handler and `<PromptEditor>`'s. Adding an entry here does not add a
14
+ * binding; it promises one.
14
15
  */
15
16
  import type { KeyBindingGroup } from '@gaunt-sloth/agent/modules/slashCommands.js';
16
17
  /**
@@ -10,7 +10,8 @@
10
10
  * construction** rather than by anyone remembering (GS2-87: divergence is deliberate and stated).
11
11
  *
12
12
  * The bindings are the ones the code actually binds — `<App>`'s `useInput` and wheel subscription,
13
- * and `<PromptInput>`'s menu handler. Adding an entry here does not add a binding; it promises one.
13
+ * `<PromptInput>`'s menu handler and `<PromptEditor>`'s. Adding an entry here does not add a
14
+ * binding; it promises one.
14
15
  */
15
16
  /**
16
17
  * The scroll fragment this surface appends to the shared hint row.
@@ -64,7 +65,6 @@ export const TUI_KEY_BINDINGS = [
64
65
  title: 'At the prompt',
65
66
  bindings: [
66
67
  { keys: '/', description: 'open the slash-command menu' },
67
- { keys: '↑ / ↓', description: 'move through the open menu' },
68
68
  { keys: 'Tab', description: 'complete the highlighted command' },
69
69
  {
70
70
  // Worth a line precisely because it is not what the buffer shows: with the menu open,
@@ -73,6 +73,24 @@ export const TUI_KEY_BINDINGS = [
73
73
  description: 'send the line — or run the highlighted command, while the menu is open',
74
74
  },
75
75
  { keys: 'Esc', description: 'dismiss the menu' },
76
+ {
77
+ // The one binding here a user cannot discover by pressing something: it is a character
78
+ // they already type for other reasons, and nothing on screen suggests it means anything.
79
+ keys: '\\ then Enter',
80
+ description: 'carry the message onto another line instead of sending it',
81
+ },
82
+ {
83
+ // Both meanings on one line, because the key is the same key and which one it has is
84
+ // decided by whether the menu is open — a reader who gets only one of them is misled.
85
+ keys: '↑ / ↓',
86
+ description: 'move between the lines of the message — or through the open menu',
87
+ },
88
+ { keys: '← / →', description: 'a character' },
89
+ { keys: 'Alt+← / Alt+→, or Ctrl+← / Ctrl+→', description: 'a word' },
90
+ {
91
+ keys: 'Ctrl+A / Ctrl+E, or Home / End',
92
+ description: 'the start / end of the current line',
93
+ },
76
94
  ],
77
95
  },
78
96
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../src/tui/keyBindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D;QACE,KAAK,EAAE,uEAAuE;QAC9E,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,mEAAmE;aACjF;YACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,8CAA8C,EAAE;YAC7F,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yDAAyD,EAAE;YACzF;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,wEAAwE;aACtF;YACD;gBACE,0FAA0F;gBAC1F,yFAAyF;gBACzF,qFAAqF;gBACrF,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,6EAA6E;aAC3F;SACF;KACF;IACD;QACE,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KAC1D;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC5D,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kCAAkC,EAAE;YAChE;gBACE,sFAAsF;gBACtF,0FAA0F;gBAC1F,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,wEAAwE;aACtF;YACD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACjD;KACF;IACD;QACE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;aAC3E;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EACT,uFAAuF;aAC1F;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YACtF,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,sCAAsC,EAAE;YACnF;gBACE,6FAA6F;gBAC7F,2FAA2F;gBAC3F,6FAA6F;gBAC7F,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,sEAAsE;aACpF;YACD,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACzE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,6DAA6D,EAAE;SAC5F;KACF;IACD;QACE,gGAAgG;QAChG,6FAA6F;QAC7F,sBAAsB;QACtB,KAAK,EAAE,iEAAiE;QACxE,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,6BAA6B;gBACnC,WAAW,EAAE,iDAAiD;aAC/D;SACF;KACF;IACD;QACE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;KAC9F;CACF,CAAC"}
1
+ {"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../src/tui/keyBindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D;QACE,KAAK,EAAE,uEAAuE;QAC9E,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,mEAAmE;aACjF;YACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,8CAA8C,EAAE;YAC7F,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yDAAyD,EAAE;YACzF;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,wEAAwE;aACtF;YACD;gBACE,0FAA0F;gBAC1F,yFAAyF;gBACzF,qFAAqF;gBACrF,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,6EAA6E;aAC3F;SACF;KACF;IACD;QACE,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KAC1D;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACzD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kCAAkC,EAAE;YAChE;gBACE,sFAAsF;gBACtF,0FAA0F;gBAC1F,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,wEAAwE;aACtF;YACD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;YAChD;gBACE,uFAAuF;gBACvF,yFAAyF;gBACzF,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,2DAA2D;aACzE;YACD;gBACE,qFAAqF;gBACrF,sFAAsF;gBACtF,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,kEAAkE;aAChF;YACD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;YAC7C,EAAE,IAAI,EAAE,mCAAmC,EAAE,WAAW,EAAE,QAAQ,EAAE;YACpE;gBACE,IAAI,EAAE,gCAAgC;gBACtC,WAAW,EAAE,qCAAqC;aACnD;SACF;KACF;IACD;QACE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;aAC3E;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EACT,uFAAuF;aAC1F;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YACtF,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,sCAAsC,EAAE;YACnF;gBACE,6FAA6F;gBAC7F,2FAA2F;gBAC3F,6FAA6F;gBAC7F,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,sEAAsE;aACpF;YACD,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACzE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,6DAA6D,EAAE;SAC5F;KACF;IACD;QACE,gGAAgG;QAChG,6FAA6F;QAC7F,sBAAsB;QACtB,KAAK,EAAE,iEAAiE;QACxE,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,6BAA6B;gBACnC,WAAW,EAAE,iDAAiD;aAC/D;SACF;KACF;IACD;QACE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;KAC9F;CACF,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * TUI-C25 — the prompt's buffer and caret, as a pure model.
3
+ *
4
+ * `ink-text-input` is a single-line widget: one cursor offset, one `<Text>`, no concept of a
5
+ * logical line, and it returns early on Up/Down. Multi-line entry, cross-line caret movement, word
6
+ * motion and line-start/end motion cannot be expressed through it, so the prompt owns its own
7
+ * editor. Everything the editor *decides* lives here, with no React, no Ink and no terminal — which
8
+ * is what makes the behaviour assertable deterministically on every platform of the unit matrix,
9
+ * including the Windows cells, without a PTY.
10
+ *
11
+ * **Code points, not code units.** {@link EditorState.cursor} is a JS string index, but every
12
+ * movement and deletion steps a whole code point, so a surrogate pair is never split down the
13
+ * middle: one Backspace removes a plain emoji whole rather than leaving half of it on screen, and
14
+ * every offset handed back is a boundary the renderer can invert a whole character at.
15
+ *
16
+ * **The unit is the code point, not the grapheme cluster** — a deliberate v1 narrowing, stated
17
+ * because the difference is visible. A sequence joined by ZWJ (`👨‍👩‍👧`) or trailed by a combining
18
+ * mark is several code points, so Backspace takes the last of them rather than the whole cluster.
19
+ * Cluster segmentation needs `Intl.Segmenter` and a rule for every operation here; nothing in the
20
+ * prompt's own behaviour depends on it, and half-doing it is worse than a boundary that is at least
21
+ * always the same one.
22
+ *
23
+ * **Enter's continuation syntax.** A backslash immediately before the caret makes Enter continue
24
+ * the line instead of submitting: the backslash is consumed and a newline takes its place, the way
25
+ * a shell reads a trailing `\`. **Known v1 limitation, intentional:** because the backslash is
26
+ * always consumed there is no escape for a literal one, so a submitted line cannot end in a
27
+ * backslash.
28
+ *
29
+ * Every exported function is pure: it returns a new {@link EditorState} and never mutates its
30
+ * argument. A movement that cannot move returns an equivalent state.
31
+ */
32
+ /** An immutable snapshot of the prompt buffer and where the caret sits in it. */
33
+ export interface EditorState {
34
+ /** The whole buffer. Logical lines are separated by `\n`. */
35
+ readonly value: string;
36
+ /** Caret offset as a JS string index into `value`, 0..value.length. */
37
+ readonly cursor: number;
38
+ /**
39
+ * The column Up/Down are trying to return to, in code points from the start of the logical line.
40
+ * Set by {@link moveLineUp}/{@link moveLineDown}, cleared (undefined) by every other operation.
41
+ */
42
+ readonly desiredColumn?: number;
43
+ }
44
+ export declare function createEditorState(value?: string): EditorState;
45
+ /** Insert literal text at the caret; caret lands after it. `desiredColumn` clears. */
46
+ export declare function insertText(state: EditorState, text: string): EditorState;
47
+ /** Backspace: remove the code point before the caret. No-op at offset 0. */
48
+ export declare function deleteBackward(state: EditorState): EditorState;
49
+ export declare function moveLeft(state: EditorState): EditorState;
50
+ export declare function moveRight(state: EditorState): EditorState;
51
+ /**
52
+ * Word motion (readline `Alt+B`): skip separators leftward, then the word itself, landing on its
53
+ * start. `\n` is just another separator, so the motion crosses lines freely.
54
+ */
55
+ export declare function moveWordLeft(state: EditorState): EditorState;
56
+ /**
57
+ * Word motion (readline `Alt+F`): skip separators rightward, then the word itself, landing just
58
+ * after its end.
59
+ */
60
+ export declare function moveWordRight(state: EditorState): EditorState;
61
+ /** Start of the caret's own LOGICAL line (not of the whole buffer). */
62
+ export declare function moveLineStart(state: EditorState): EditorState;
63
+ /** End of the caret's own LOGICAL line (not of the whole buffer). */
64
+ export declare function moveLineEnd(state: EditorState): EditorState;
65
+ /**
66
+ * Up one logical line, honouring the sticky {@link EditorState.desiredColumn}.
67
+ *
68
+ * On the first line there is nowhere to go, but the column is still recorded: that is what lets
69
+ * Up-Down-Up out of a long line and back keep the column it started from.
70
+ */
71
+ export declare function moveLineUp(state: EditorState): EditorState;
72
+ /** Down one logical line, honouring the sticky {@link EditorState.desiredColumn}. */
73
+ export declare function moveLineDown(state: EditorState): EditorState;
74
+ export type EnterResult = {
75
+ readonly kind: 'continue';
76
+ readonly state: EditorState;
77
+ } | {
78
+ readonly kind: 'submit';
79
+ readonly value: string;
80
+ };
81
+ /**
82
+ * What Enter means for this state: a backslash immediately before the caret continues the line
83
+ * (the backslash is replaced by a newline), anything else submits the buffer exactly as typed —
84
+ * untrimmed, newlines intact. Clearing the buffer and dispatching the submission belong to the
85
+ * caller.
86
+ */
87
+ export declare function pressEnter(state: EditorState): EnterResult;
88
+ /**
89
+ * What the renderer needs: the logical lines and where the caret is among them. An empty buffer is
90
+ * one empty line, and a trailing `\n` yields a final empty line — the row the caret sits on after
91
+ * a continuation, which still has to be drawn.
92
+ */
93
+ export declare function layout(state: EditorState): {
94
+ readonly lines: readonly string[];
95
+ /** 0-based index into `lines`. */
96
+ readonly line: number;
97
+ /** Caret offset within that line, as a JS string index into `lines[line]`. */
98
+ readonly column: number;
99
+ };
@@ -0,0 +1,250 @@
1
+ /**
2
+ * TUI-C25 — the prompt's buffer and caret, as a pure model.
3
+ *
4
+ * `ink-text-input` is a single-line widget: one cursor offset, one `<Text>`, no concept of a
5
+ * logical line, and it returns early on Up/Down. Multi-line entry, cross-line caret movement, word
6
+ * motion and line-start/end motion cannot be expressed through it, so the prompt owns its own
7
+ * editor. Everything the editor *decides* lives here, with no React, no Ink and no terminal — which
8
+ * is what makes the behaviour assertable deterministically on every platform of the unit matrix,
9
+ * including the Windows cells, without a PTY.
10
+ *
11
+ * **Code points, not code units.** {@link EditorState.cursor} is a JS string index, but every
12
+ * movement and deletion steps a whole code point, so a surrogate pair is never split down the
13
+ * middle: one Backspace removes a plain emoji whole rather than leaving half of it on screen, and
14
+ * every offset handed back is a boundary the renderer can invert a whole character at.
15
+ *
16
+ * **The unit is the code point, not the grapheme cluster** — a deliberate v1 narrowing, stated
17
+ * because the difference is visible. A sequence joined by ZWJ (`👨‍👩‍👧`) or trailed by a combining
18
+ * mark is several code points, so Backspace takes the last of them rather than the whole cluster.
19
+ * Cluster segmentation needs `Intl.Segmenter` and a rule for every operation here; nothing in the
20
+ * prompt's own behaviour depends on it, and half-doing it is worse than a boundary that is at least
21
+ * always the same one.
22
+ *
23
+ * **Enter's continuation syntax.** A backslash immediately before the caret makes Enter continue
24
+ * the line instead of submitting: the backslash is consumed and a newline takes its place, the way
25
+ * a shell reads a trailing `\`. **Known v1 limitation, intentional:** because the backslash is
26
+ * always consumed there is no escape for a literal one, so a submitted line cannot end in a
27
+ * backslash.
28
+ *
29
+ * Every exported function is pure: it returns a new {@link EditorState} and never mutates its
30
+ * argument. A movement that cannot move returns an equivalent state.
31
+ */
32
+ /** A word character for word motion; everything else — including a space and `\n` — separates. */
33
+ const WORD_CHARACTER = /[\p{L}\p{N}_]/u;
34
+ export function createEditorState(value = '') {
35
+ return { value, cursor: value.length };
36
+ }
37
+ /**
38
+ * A state at `cursor` with no sticky column — the shape every operation but Up/Down returns.
39
+ * Hands back the same object when that is already true, so an unmoved caret cannot look like a
40
+ * change to a caller comparing by identity.
41
+ */
42
+ function at(state, cursor) {
43
+ if (state.cursor === cursor && state.desiredColumn === undefined)
44
+ return state;
45
+ return { value: state.value, cursor };
46
+ }
47
+ /** The index where the code point ending at `index` starts. `index` 0 stays 0. */
48
+ function previousCodePointStart(value, index) {
49
+ if (index <= 0)
50
+ return 0;
51
+ const code = value.charCodeAt(index - 1);
52
+ // A low surrogate only ever ends a pair, so its high half is the real start of the character.
53
+ if (code >= 0xdc00 && code <= 0xdfff && index >= 2) {
54
+ const high = value.charCodeAt(index - 2);
55
+ if (high >= 0xd800 && high <= 0xdbff)
56
+ return index - 2;
57
+ }
58
+ return index - 1;
59
+ }
60
+ /**
61
+ * The index just past the code point starting at `index` — the forward twin of
62
+ * {@link previousCodePointStart}, holding the same invariant from the other side: an index handed
63
+ * back by either is always the start of a whole character, never the middle of a surrogate pair.
64
+ * Forward, `codePointAt` does the pairing for us, so only its width has to be decided here; a code
65
+ * point above the BMP is the pair, everything else is one unit.
66
+ */
67
+ function nextCodePointEnd(value, index) {
68
+ if (index >= value.length)
69
+ return value.length;
70
+ const codePoint = value.codePointAt(index);
71
+ return index + (codePoint !== undefined && codePoint > 0xffff ? 2 : 1);
72
+ }
73
+ /** Whether the code point starting at `index` is a word character. */
74
+ function isWordAt(value, index) {
75
+ const codePoint = value.codePointAt(index);
76
+ if (codePoint === undefined)
77
+ return false;
78
+ return WORD_CHARACTER.test(String.fromCodePoint(codePoint));
79
+ }
80
+ /** How many code points `text` holds — the unit the sticky column is measured in. */
81
+ function codePointCount(text) {
82
+ let count = 0;
83
+ for (let i = 0; i < text.length; i = nextCodePointEnd(text, i))
84
+ count += 1;
85
+ return count;
86
+ }
87
+ /**
88
+ * The start of the logical line `cursor` sits on: just past the preceding `\n`, or 0.
89
+ *
90
+ * The zero guard is load-bearing, not defensive. `lastIndexOf` **clamps a negative `fromIndex` to
91
+ * 0** instead of reporting no match, so on a buffer that begins with `\n` — which is exactly what
92
+ * the backslash continuation produces — the caret at offset 0 would find that newline and report
93
+ * the line as starting at 1: `moveLineStart` would move the caret to the *right*, and `layout`
94
+ * would name the wrong row with a column of -1.
95
+ */
96
+ function lineStartOffset(value, cursor) {
97
+ if (cursor <= 0)
98
+ return 0;
99
+ return value.lastIndexOf('\n', cursor - 1) + 1;
100
+ }
101
+ /** How many newlines precede `offset` — which is the index of the line `offset` sits on. */
102
+ function lineIndexAt(value, offset) {
103
+ let count = 0;
104
+ for (let i = value.indexOf('\n'); i !== -1 && i < offset; i = value.indexOf('\n', i + 1)) {
105
+ count += 1;
106
+ }
107
+ return count;
108
+ }
109
+ /** The end of the logical line `cursor` sits on: the next `\n`, or the end of the buffer. */
110
+ function lineEndOffset(value, cursor) {
111
+ const newline = value.indexOf('\n', cursor);
112
+ return newline === -1 ? value.length : newline;
113
+ }
114
+ /** The offset `column` code points into the line `start`..`end`, clamped to `end`. */
115
+ function offsetForColumn(value, start, end, column) {
116
+ let offset = start;
117
+ for (let stepped = 0; stepped < column && offset < end; stepped += 1) {
118
+ offset = nextCodePointEnd(value, offset);
119
+ }
120
+ return Math.min(offset, end);
121
+ }
122
+ /** The caret's column on its own line, in code points. */
123
+ function currentColumn(state) {
124
+ const start = lineStartOffset(state.value, state.cursor);
125
+ return codePointCount(state.value.slice(start, state.cursor));
126
+ }
127
+ /** Insert literal text at the caret; caret lands after it. `desiredColumn` clears. */
128
+ export function insertText(state, text) {
129
+ if (text === '')
130
+ return at(state, state.cursor);
131
+ return {
132
+ value: state.value.slice(0, state.cursor) + text + state.value.slice(state.cursor),
133
+ cursor: state.cursor + text.length,
134
+ };
135
+ }
136
+ /** Backspace: remove the code point before the caret. No-op at offset 0. */
137
+ export function deleteBackward(state) {
138
+ if (state.cursor <= 0)
139
+ return at(state, 0);
140
+ const start = previousCodePointStart(state.value, state.cursor);
141
+ return {
142
+ value: state.value.slice(0, start) + state.value.slice(state.cursor),
143
+ cursor: start,
144
+ };
145
+ }
146
+ export function moveLeft(state) {
147
+ return at(state, previousCodePointStart(state.value, state.cursor));
148
+ }
149
+ export function moveRight(state) {
150
+ return at(state, nextCodePointEnd(state.value, state.cursor));
151
+ }
152
+ /**
153
+ * Word motion (readline `Alt+B`): skip separators leftward, then the word itself, landing on its
154
+ * start. `\n` is just another separator, so the motion crosses lines freely.
155
+ */
156
+ export function moveWordLeft(state) {
157
+ const { value } = state;
158
+ let offset = state.cursor;
159
+ while (offset > 0 && !isWordAt(value, previousCodePointStart(value, offset))) {
160
+ offset = previousCodePointStart(value, offset);
161
+ }
162
+ while (offset > 0 && isWordAt(value, previousCodePointStart(value, offset))) {
163
+ offset = previousCodePointStart(value, offset);
164
+ }
165
+ return at(state, offset);
166
+ }
167
+ /**
168
+ * Word motion (readline `Alt+F`): skip separators rightward, then the word itself, landing just
169
+ * after its end.
170
+ */
171
+ export function moveWordRight(state) {
172
+ const { value } = state;
173
+ let offset = state.cursor;
174
+ while (offset < value.length && !isWordAt(value, offset)) {
175
+ offset = nextCodePointEnd(value, offset);
176
+ }
177
+ while (offset < value.length && isWordAt(value, offset)) {
178
+ offset = nextCodePointEnd(value, offset);
179
+ }
180
+ return at(state, offset);
181
+ }
182
+ /** Start of the caret's own LOGICAL line (not of the whole buffer). */
183
+ export function moveLineStart(state) {
184
+ return at(state, lineStartOffset(state.value, state.cursor));
185
+ }
186
+ /** End of the caret's own LOGICAL line (not of the whole buffer). */
187
+ export function moveLineEnd(state) {
188
+ return at(state, lineEndOffset(state.value, state.cursor));
189
+ }
190
+ /**
191
+ * Up one logical line, honouring the sticky {@link EditorState.desiredColumn}.
192
+ *
193
+ * On the first line there is nowhere to go, but the column is still recorded: that is what lets
194
+ * Up-Down-Up out of a long line and back keep the column it started from.
195
+ */
196
+ export function moveLineUp(state) {
197
+ const { value } = state;
198
+ const column = state.desiredColumn ?? currentColumn(state);
199
+ const start = lineStartOffset(value, state.cursor);
200
+ if (start === 0)
201
+ return { value, cursor: state.cursor, desiredColumn: column };
202
+ const previousStart = lineStartOffset(value, start - 1);
203
+ return {
204
+ value,
205
+ cursor: offsetForColumn(value, previousStart, start - 1, column),
206
+ desiredColumn: column,
207
+ };
208
+ }
209
+ /** Down one logical line, honouring the sticky {@link EditorState.desiredColumn}. */
210
+ export function moveLineDown(state) {
211
+ const { value } = state;
212
+ const column = state.desiredColumn ?? currentColumn(state);
213
+ const end = lineEndOffset(value, state.cursor);
214
+ if (end === value.length)
215
+ return { value, cursor: state.cursor, desiredColumn: column };
216
+ const nextStart = end + 1;
217
+ return {
218
+ value,
219
+ cursor: offsetForColumn(value, nextStart, lineEndOffset(value, nextStart), column),
220
+ desiredColumn: column,
221
+ };
222
+ }
223
+ /**
224
+ * What Enter means for this state: a backslash immediately before the caret continues the line
225
+ * (the backslash is replaced by a newline), anything else submits the buffer exactly as typed —
226
+ * untrimmed, newlines intact. Clearing the buffer and dispatching the submission belong to the
227
+ * caller.
228
+ */
229
+ export function pressEnter(state) {
230
+ const { value, cursor } = state;
231
+ const start = previousCodePointStart(value, cursor);
232
+ if (cursor > 0 && value.slice(start, cursor) === '\\') {
233
+ return {
234
+ kind: 'continue',
235
+ state: { value: `${value.slice(0, start)}\n${value.slice(cursor)}`, cursor: start + 1 },
236
+ };
237
+ }
238
+ return { kind: 'submit', value };
239
+ }
240
+ /**
241
+ * What the renderer needs: the logical lines and where the caret is among them. An empty buffer is
242
+ * one empty line, and a trailing `\n` yields a final empty line — the row the caret sits on after
243
+ * a continuation, which still has to be drawn.
244
+ */
245
+ export function layout(state) {
246
+ const lines = state.value.split('\n');
247
+ const start = lineStartOffset(state.value, state.cursor);
248
+ return { lines, line: lineIndexAt(state.value, start), column: state.cursor - start };
249
+ }
250
+ //# sourceMappingURL=lineEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineEditor.js","sourceRoot":"","sources":["../../src/tui/lineEditor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaunt-sloth",
3
- "version": "2.0.0-alpha.30",
3
+ "version": "2.0.0-alpha.32",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "author": "Andrew Kondratev",
@@ -44,17 +44,16 @@
44
44
  "@langchain/xai": "^1.4.5",
45
45
  "commander": "^15.0.0",
46
46
  "zod": "^4.4.3",
47
- "@gaunt-sloth/agent": "2.0.0-alpha.30",
48
- "@gaunt-sloth/batch": "2.0.0-alpha.30",
49
- "@gaunt-sloth/core": "2.0.0-alpha.30",
50
- "@gaunt-sloth/eval-reporter-junit": "0.1.0",
51
- "@gaunt-sloth/review": "2.0.0-alpha.30"
47
+ "@gaunt-sloth/agent": "2.0.0-alpha.32",
48
+ "@gaunt-sloth/batch": "2.0.0-alpha.32",
49
+ "@gaunt-sloth/review": "2.0.0-alpha.32",
50
+ "@gaunt-sloth/core": "2.0.0-alpha.32",
51
+ "@gaunt-sloth/eval-reporter-junit": "0.1.0"
52
52
  },
53
53
  "optionalDependencies": {
54
54
  "chalk": "^6.0.0",
55
55
  "ink": "^7.1.1",
56
56
  "ink-spinner": "^5.0.0",
57
- "ink-text-input": "^6.0.0",
58
57
  "react": "^19.2.8"
59
58
  },
60
59
  "devDependencies": {