@arizeai/phoenix-cli 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +170 -1
  2. package/build/commands/annotationConfig.d.ts +4 -0
  3. package/build/commands/annotationConfig.d.ts.map +1 -1
  4. package/build/commands/annotationConfig.js +506 -8
  5. package/build/commands/annotationConfig.js.map +1 -1
  6. package/build/commands/annotationConfigValues.d.ts +35 -0
  7. package/build/commands/annotationConfigValues.d.ts.map +1 -0
  8. package/build/commands/annotationConfigValues.js +97 -0
  9. package/build/commands/annotationConfigValues.js.map +1 -0
  10. package/build/commands/dataset.d.ts.map +1 -1
  11. package/build/commands/dataset.js +2 -7
  12. package/build/commands/dataset.js.map +1 -1
  13. package/build/commands/docs.d.ts.map +1 -1
  14. package/build/commands/docs.js +2 -1
  15. package/build/commands/docs.js.map +1 -1
  16. package/build/commands/formatAnnotationConfigs.d.ts +16 -0
  17. package/build/commands/formatAnnotationConfigs.d.ts.map +1 -1
  18. package/build/commands/formatAnnotationConfigs.js +15 -0
  19. package/build/commands/formatAnnotationConfigs.js.map +1 -1
  20. package/build/commands/profile.d.ts.map +1 -1
  21. package/build/commands/profile.js +2 -4
  22. package/build/commands/profile.js.map +1 -1
  23. package/build/optionParsers.d.ts +17 -0
  24. package/build/optionParsers.d.ts.map +1 -0
  25. package/build/optionParsers.js +22 -0
  26. package/build/optionParsers.js.map +1 -0
  27. package/build/pxi/App.d.ts.map +1 -1
  28. package/build/pxi/App.js +219 -28
  29. package/build/pxi/App.js.map +1 -1
  30. package/build/pxi/draftEditor.d.ts +31 -0
  31. package/build/pxi/draftEditor.d.ts.map +1 -0
  32. package/build/pxi/draftEditor.js +95 -0
  33. package/build/pxi/draftEditor.js.map +1 -0
  34. package/build/pxi/index.d.ts.map +1 -1
  35. package/build/pxi/index.js +9 -0
  36. package/build/pxi/index.js.map +1 -1
  37. package/build/pxi/toolPresentation.d.ts +56 -0
  38. package/build/pxi/toolPresentation.d.ts.map +1 -0
  39. package/build/pxi/toolPresentation.js +295 -0
  40. package/build/pxi/toolPresentation.js.map +1 -0
  41. package/build/pxi/toolProgress.d.ts +2 -1
  42. package/build/pxi/toolProgress.d.ts.map +1 -1
  43. package/build/pxi/toolProgress.js +10 -1
  44. package/build/pxi/toolProgress.js.map +1 -1
  45. package/package.json +4 -4
package/build/pxi/App.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useApp, useInput } from "ink";
2
+ import { Box, Text, useApp, useInput, useStdin } from "ink";
3
3
  import { useEffect, useMemo, useRef, useState } from "react";
4
4
  import { createPxiChatClient, createUserMessage } from "./client.js";
5
5
  import { getSlashCommandName, matchingCommands, runSlashCommand, SLASH_COMMANDS, } from "./commands.js";
6
+ import { deleteDraftTextAtCursor, deleteDraftTextBeforeCursor, EMPTY_DRAFT_EDITOR_STATE, insertDraftText, moveDraftCursor, moveDraftCursorToEnd, moveDraftCursorToStart, moveDraftCursorVertically, } from "./draftEditor.js";
6
7
  import { Markdown } from "./inkMarkdown.js";
7
8
  import { formatTokenUsageLine, getLatestAssistantUsage } from "./tokenUsage.js";
8
- import { getToolProgressFromPart } from "./toolProgress.js";
9
+ import { getToolProgressFromPart, } from "./toolProgress.js";
9
10
  const PXI_BANNER = String.raw `
10
11
  __/\\\\\\\\\\\\\____/\\\_______/\\\__/\\\\\\\\\\\_
11
12
  _\/\\\/////////\\\_\///\\\___/\\\/__\/////\\\///__
@@ -23,6 +24,22 @@ const THINKING_FRAMES = [
23
24
  "PXI is thinking.. ",
24
25
  "PXI is thinking...",
25
26
  ];
27
+ const TOOL_SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
28
+ /** Tool states where the call is still in flight and shows a spinner. */
29
+ const RUNNING_TOOL_STATES = new Set([
30
+ "input-streaming",
31
+ "input-available",
32
+ "approval-responded",
33
+ ]);
34
+ const ESCAPE_INPUT = "\x1B";
35
+ const BACKSPACE_INPUTS = new Set(["\b", "\x7F"]);
36
+ const FORWARD_DELETE_INPUTS = new Set([
37
+ `${ESCAPE_INPUT}[3~`,
38
+ `${ESCAPE_INPUT}[3$`,
39
+ `${ESCAPE_INPUT}[3^`,
40
+ ]);
41
+ const KITTY_BACKSPACE_INPUT_PATTERN = /^\x1B\[(?:8|127)(?:;\d+(?::[12])?(?:;[\d:]+)?)?u$/;
42
+ const KITTY_FORWARD_DELETE_INPUT_PATTERN = /^\x1B\[3;\d+:[12]~$/;
26
43
  const KEYBOARD_PROTOCOL_RESPONSE_PATTERN = /^\[\?\d+u$/;
27
44
  const INTERRUPTED_MESSAGE_TEXT = "\n\n[Interrupted by user before completion.]";
28
45
  // The 3D banner is drawn with two kinds of strokes: the `\` runs form the
@@ -57,23 +74,68 @@ function getModelLabel(options) {
57
74
  }
58
75
  return `${options.modelSelection.provider}/${options.modelSelection.modelName}`;
59
76
  }
60
- /** Render a single tool call inline in the transcript, coloring errors red. */
61
- function InlineToolProgress({ tool }) {
62
- const statusColor = tool.state === "output-error" ? "red" : "yellow";
63
- return (_jsxs(Box, { flexDirection: "column", marginY: 1, paddingLeft: 2, children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "[tool]" }), " ", _jsx(Text, { color: statusColor, children: tool.toolName }), " ", _jsx(Text, { color: statusColor, children: tool.statusText })] }), tool.errorText ? _jsx(Text, { color: "red", children: tool.errorText }) : null] }));
77
+ /** Animated braille spinner shown while a tool call is still in flight. */
78
+ function ToolSpinner() {
79
+ const [frameIndex, setFrameIndex] = useState(0);
80
+ useEffect(() => {
81
+ const interval = setInterval(() => {
82
+ setFrameIndex((value) => (value + 1) % TOOL_SPINNER_FRAMES.length);
83
+ }, 250);
84
+ return () => clearInterval(interval);
85
+ }, []);
86
+ return _jsx(Text, { color: "yellow", children: TOOL_SPINNER_FRAMES[frameIndex] });
87
+ }
88
+ /**
89
+ * The leading state glyph of a tool row: a spinner while the call is in
90
+ * flight, then a settled glyph — `✓` success, `✗` failure (including a
91
+ * non-zero exit code surfaced via `statusSuffix`), `?` awaiting approval,
92
+ * `⊘` denied.
93
+ */
94
+ function ToolStateIndicator({ tool }) {
95
+ if (RUNNING_TOOL_STATES.has(tool.state)) {
96
+ return _jsx(ToolSpinner, {});
97
+ }
98
+ switch (tool.state) {
99
+ case "output-available":
100
+ return tool.statusSuffix ? (_jsx(Text, { color: "red", children: "\u2717" })) : (_jsx(Text, { color: "green", children: "\u2713" }));
101
+ case "output-error":
102
+ return _jsx(Text, { color: "red", children: "\u2717" });
103
+ case "approval-requested":
104
+ return _jsx(Text, { color: "yellow", children: "?" });
105
+ case "output-denied":
106
+ return _jsx(Text, { dimColor: true, children: "\u2298" });
107
+ default:
108
+ return _jsx(Text, { color: "yellow", children: "\u2022" });
109
+ }
110
+ }
111
+ /**
112
+ * Render a single tool call inline in the transcript: a state glyph, the
113
+ * tool's icon and name, a dim one-line preview of what it is doing, then any
114
+ * detail lines (e.g. the bash command) and error lines (e.g. stderr).
115
+ * Completed "quiet" tools collapse to a single dim line.
116
+ */
117
+ function InlineToolProgress({ tool, marginTop, marginBottom, }) {
118
+ if (tool.isQuiet && tool.state === "output-available") {
119
+ return (_jsx(Box, { paddingLeft: 2, marginTop: marginTop, marginBottom: marginBottom, children: _jsxs(Text, { wrap: "truncate-end", children: [_jsx(Text, { color: "green", children: "\u2713" }), " ", _jsx(Text, { dimColor: true, children: tool.quietLabel ?? tool.toolName })] }) }));
120
+ }
121
+ const showStatusText = tool.state === "approval-requested" || tool.state === "output-denied";
122
+ return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, marginTop: marginTop, marginBottom: marginBottom, children: [_jsxs(Text, { wrap: "truncate-end", children: [_jsx(ToolStateIndicator, { tool: tool }), " ", _jsxs(Text, { color: "yellow", children: [tool.icon, " ", tool.toolName] }), showStatusText ? _jsxs(Text, { color: "yellow", children: [" ", tool.statusText] }) : null, tool.previewText ? _jsxs(Text, { dimColor: true, children: [" \u00B7 ", tool.previewText] }) : null, tool.statusSuffix ? (_jsxs(Text, { color: "red", children: [" (", tool.statusSuffix, ")"] })) : null] }), tool.detailLines.length > 0 ? (_jsx(Box, { flexDirection: "column", paddingLeft: 4, children: tool.detailLines.map((line, index) => (_jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }, index))) })) : null, tool.errorLines.length > 0 ? (_jsx(Box, { flexDirection: "column", paddingLeft: 4, children: tool.errorLines.map((line, index) => (_jsx(Text, { color: "red", wrap: "truncate-end", children: line }, index))) })) : null] }));
64
123
  }
65
124
  /**
66
125
  * Render the ordered parts of one message: text parts as markdown, tool parts
67
- * as inline progress, skipping anything unrecognized.
126
+ * as inline progress, skipping anything unrecognized. Consecutive tool calls
127
+ * stack compactly — the blank line appears only at the boundary between a
128
+ * tool block and its neighbors.
68
129
  */
69
130
  function MessageParts({ message, phoenixBaseUrl, }) {
131
+ const toolProgressByPart = message.parts.map((part) => getToolProgressFromPart({ part }));
70
132
  return (_jsx(Box, { flexDirection: "column", children: message.parts.map((part, index) => {
71
133
  if (part.type === "text") {
72
134
  return (_jsx(Markdown, { phoenixBaseUrl: phoenixBaseUrl, children: part.text }, `${message.id}-text-${index}`));
73
135
  }
74
- const tool = getToolProgressFromPart({ part });
136
+ const tool = toolProgressByPart[index];
75
137
  if (tool) {
76
- return _jsx(InlineToolProgress, { tool: tool }, tool.toolCallId);
138
+ return (_jsx(InlineToolProgress, { tool: tool, marginTop: toolProgressByPart[index - 1] ? 0 : 1, marginBottom: toolProgressByPart[index + 1] ? 0 : 1 }, tool.toolCallId));
77
139
  }
78
140
  return null;
79
141
  }) }));
@@ -98,33 +160,94 @@ function Transcript({ messages, phoenixBaseUrl, }) {
98
160
  * When the draft starts with `/`, the command name is colored yellow and the
99
161
  * arguments follow in default color. Everything else renders as plain text.
100
162
  */
101
- function HighlightedDraft({ draft }) {
163
+ function getHighlightedDraftSegments({ draft, }) {
102
164
  if (!draft.startsWith("/")) {
103
- return _jsx(Text, { children: draft });
165
+ return [{ text: draft, isCommandSegment: false }];
104
166
  }
105
167
  const rest = draft.slice(1);
106
168
  const spaceIndex = rest.indexOf(" ");
107
169
  if (spaceIndex === -1) {
108
- // Still typing the command name — color the whole token
109
- return (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "/" }), _jsx(Text, { color: "yellow", bold: true, children: rest })] }));
170
+ return [
171
+ { text: "/", isCommandSegment: true, isBold: false },
172
+ { text: rest, isCommandSegment: true, isBold: true },
173
+ ];
110
174
  }
111
175
  const cmdName = rest.slice(0, spaceIndex);
112
176
  const args = rest.slice(spaceIndex);
113
- return (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "/" }), _jsx(Text, { color: "yellow", bold: true, children: cmdName }), _jsx(Text, { children: args })] }));
177
+ return [
178
+ { text: "/", isCommandSegment: true, isBold: false },
179
+ { text: cmdName, isCommandSegment: true, isBold: true },
180
+ { text: args, isCommandSegment: false },
181
+ ];
182
+ }
183
+ function HighlightedDraftSegment({ segment, isInverse = false, }) {
184
+ if (!segment.text) {
185
+ return null;
186
+ }
187
+ if (segment.isCommandSegment) {
188
+ return (_jsx(Text, { color: "yellow", bold: segment.isBold, inverse: isInverse, children: segment.text }));
189
+ }
190
+ return _jsx(Text, { inverse: isInverse, children: segment.text });
191
+ }
192
+ function HighlightedDraft({ draft, cursorIndex, isCursorVisible, }) {
193
+ const segments = getHighlightedDraftSegments({ draft });
194
+ const boundedCursorIndex = Math.min(Math.max(cursorIndex, 0), draft.length);
195
+ let nextSegmentStartIndex = 0;
196
+ let hasRenderedCursor = false;
197
+ return (_jsxs(Text, { children: [segments.flatMap((segment, segmentIndex) => {
198
+ const segmentStartIndex = nextSegmentStartIndex;
199
+ const segmentEndIndex = segmentStartIndex + segment.text.length;
200
+ nextSegmentStartIndex = segmentEndIndex;
201
+ if (isCursorVisible &&
202
+ !hasRenderedCursor &&
203
+ boundedCursorIndex >= segmentStartIndex &&
204
+ boundedCursorIndex < segmentEndIndex) {
205
+ hasRenderedCursor = true;
206
+ const cursorOffset = boundedCursorIndex - segmentStartIndex;
207
+ const beforeCursor = segment.text.slice(0, cursorOffset);
208
+ const cursorText = segment.text.slice(cursorOffset, cursorOffset + 1);
209
+ const isCursorOnNewline = cursorText === "\n";
210
+ const afterCursor = segment.text.slice(cursorOffset + 1);
211
+ return [
212
+ _jsx(HighlightedDraftSegment, { segment: { ...segment, text: beforeCursor } }, `${segmentIndex}-before`),
213
+ isCursorOnNewline ? (_jsx(Text, { children: "█\n" }, `${segmentIndex}-cursor`)) : (_jsx(HighlightedDraftSegment, { segment: { ...segment, text: cursorText }, isInverse: true }, `${segmentIndex}-cursor`)),
214
+ _jsx(HighlightedDraftSegment, { segment: { ...segment, text: afterCursor } }, `${segmentIndex}-after`),
215
+ ];
216
+ }
217
+ return [
218
+ _jsx(HighlightedDraftSegment, { segment: segment }, `${segmentIndex}-whole`),
219
+ ];
220
+ }), !hasRenderedCursor && isCursorVisible ? _jsx(Text, { children: "\u2588" }) : null] }));
114
221
  }
115
222
  /** Render the prompt row with helper text below it. */
116
- function InputPrompt({ draft, status, usageLine, }) {
117
- const cursor = status === "streaming" ? "" : "█";
118
- const cmdName = getSlashCommandName(draft);
223
+ function InputPrompt({ draft, status, usageLine, modelLabel, }) {
224
+ const draftValue = draft.value;
225
+ const cmdName = getSlashCommandName(draftValue);
119
226
  // Show matching commands while the user is still typing the command token
120
227
  // (no space yet means they haven't moved on to arguments).
121
- const showHints = cmdName !== null && !draft.includes(" ") && draft.length > 1;
228
+ const showHints = cmdName !== null && !draftValue.includes(" ") && draftValue.length > 1;
122
229
  const hints = showHints ? matchingCommands(cmdName) : [];
123
- return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { borderStyle: "single", borderLeft: false, borderRight: false, borderTop: true, borderBottom: true, borderColor: "gray", children: _jsxs(Text, { children: [_jsx(Text, { color: "cyan", children: "> " }), _jsx(HighlightedDraft, { draft: draft }), cursor] }) }), _jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [hints.length > 0 ? (_jsx(Box, { flexDirection: "column", children: hints.map((cmd) => (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: " /" }), _jsx(Text, { color: "yellow", bold: true, children: cmd.name }), _jsxs(Text, { dimColor: true, children: [" ", cmd.description] })] }, cmd.name))) })) : (_jsx(Text, { dimColor: true, children: "Enter sends. Shift+Enter inserts a newline. Esc interrupts. Type /help for commands. Ctrl+D or Ctrl+C exits." })), usageLine ? (_jsx(Box, { flexShrink: 0, marginLeft: 2, children: _jsx(Text, { color: "green", children: usageLine }) })) : null] })] }));
230
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { borderStyle: "single", borderLeft: false, borderRight: false, borderTop: true, borderBottom: true, borderColor: "gray", children: _jsxs(Text, { children: [_jsx(Text, { color: "cyan", children: " " }), _jsx(HighlightedDraft, { draft: draftValue, cursorIndex: draft.cursorIndex, isCursorVisible: status !== "streaming" })] }) }), _jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [hints.length > 0 ? (_jsx(Box, { flexDirection: "column", children: hints.map((cmd) => (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: " /" }), _jsx(Text, { color: "yellow", bold: true, children: cmd.name }), _jsxs(Text, { dimColor: true, children: [" ", cmd.description] })] }, cmd.name))) })) : (_jsx(Text, { dimColor: true, children: "\u21B5 send \u00B7 \u21E7\u21B5 newline \u00B7 esc interrupt \u00B7 /help \u00B7 ctrl+c exit" })), _jsx(Box, { flexShrink: 0, marginLeft: 2, children: _jsxs(Text, { children: [usageLine ? _jsx(Text, { color: "green", children: usageLine }) : null, usageLine ? _jsx(Text, { dimColor: true, children: " | " }) : null, _jsx(Text, { dimColor: true, children: modelLabel })] }) })] })] }));
124
231
  }
125
232
  function isKeyboardProtocolResponseInput({ input }) {
126
233
  return KEYBOARD_PROTOCOL_RESPONSE_PATTERN.test(input);
127
234
  }
235
+ function isBracketedPasteMarkerInput({ input }) {
236
+ return input === `${ESCAPE_INPUT}[200~` || input === `${ESCAPE_INPUT}[201~`;
237
+ }
238
+ function isStrippedBracketedPasteMarkerInput({ input }) {
239
+ return input === "[200~" || input === "[201~";
240
+ }
241
+ function isBackspaceInput({ input }) {
242
+ return (BACKSPACE_INPUTS.has(input) || KITTY_BACKSPACE_INPUT_PATTERN.test(input));
243
+ }
244
+ function isForwardDeleteInput({ input }) {
245
+ return (FORWARD_DELETE_INPUTS.has(input) ||
246
+ KITTY_FORWARD_DELETE_INPUT_PATTERN.test(input));
247
+ }
248
+ function getDraftInputText({ input }) {
249
+ return input.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
250
+ }
128
251
  function getCompletedInterruptedPart({ part, }) {
129
252
  if (part.type === "text" || part.type === "reasoning") {
130
253
  return { ...part, state: "done" };
@@ -183,8 +306,9 @@ export function ThinkingIndicator() {
183
306
  */
184
307
  export function PxiApp({ options, client, initialMessages = [] }) {
185
308
  const { exit } = useApp();
309
+ const { internal_eventEmitter: inputEventEmitter } = useStdin();
186
310
  const [messages, setMessages] = useState(initialMessages);
187
- const [draft, setDraft] = useState("");
311
+ const [draft, setDraft] = useState(EMPTY_DRAFT_EDITOR_STATE);
188
312
  const [status, setStatus] = useState("idle");
189
313
  const [error, setError] = useState(null);
190
314
  const abortControllerRef = useRef(null);
@@ -218,16 +342,16 @@ export function PxiApp({ options, client, initialMessages = [] }) {
218
342
  const clearMessages = () => {
219
343
  setMessages([]);
220
344
  setError(null);
221
- setDraft("");
345
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
222
346
  };
223
347
  const submitDraft = () => {
224
- const text = draft.trim();
348
+ const text = draft.value.trim();
225
349
  if (!text || status === "streaming") {
226
350
  return;
227
351
  }
228
352
  // Intercept slash commands before sending to the server.
229
353
  if (text.startsWith("/")) {
230
- setDraft("");
354
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
231
355
  const result = runSlashCommand(text, {
232
356
  clearMessages,
233
357
  exit: handleExit,
@@ -258,7 +382,7 @@ export function PxiApp({ options, client, initialMessages = [] }) {
258
382
  const abortController = new AbortController();
259
383
  abortControllerRef.current = abortController;
260
384
  streamingAssistantMessageRef.current = null;
261
- setDraft("");
385
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
262
386
  setError(null);
263
387
  setStatus("streaming");
264
388
  setMessages(nextMessages);
@@ -292,6 +416,34 @@ export function PxiApp({ options, client, initialMessages = [] }) {
292
416
  setStatus("idle");
293
417
  });
294
418
  };
419
+ const bracketedPasteMarkerCountRef = useRef(0);
420
+ const handleRawInput = (input) => {
421
+ if (status === "streaming") {
422
+ return;
423
+ }
424
+ if (isBracketedPasteMarkerInput({ input })) {
425
+ bracketedPasteMarkerCountRef.current += 1;
426
+ return;
427
+ }
428
+ if (isBackspaceInput({ input })) {
429
+ setDraft((value) => deleteDraftTextBeforeCursor({ draft: value }));
430
+ return;
431
+ }
432
+ if (isForwardDeleteInput({ input })) {
433
+ setDraft((value) => deleteDraftTextAtCursor({ draft: value }));
434
+ }
435
+ };
436
+ const rawInputHandlerRef = useRef(handleRawInput);
437
+ rawInputHandlerRef.current = handleRawInput;
438
+ useEffect(() => {
439
+ const handleInputEvent = (input) => {
440
+ rawInputHandlerRef.current(input);
441
+ };
442
+ inputEventEmitter.on("input", handleInputEvent);
443
+ return () => {
444
+ inputEventEmitter.removeListener("input", handleInputEvent);
445
+ };
446
+ }, [inputEventEmitter]);
295
447
  useInput((input, key) => {
296
448
  if (key.escape) {
297
449
  interruptStream();
@@ -307,22 +459,61 @@ export function PxiApp({ options, client, initialMessages = [] }) {
307
459
  if (isKeyboardProtocolResponseInput({ input })) {
308
460
  return;
309
461
  }
462
+ if (key.ctrl && input === "a") {
463
+ setDraft((value) => moveDraftCursorToStart({ draft: value }));
464
+ return;
465
+ }
466
+ if (key.ctrl && input === "e") {
467
+ setDraft((value) => moveDraftCursorToEnd({ draft: value }));
468
+ return;
469
+ }
310
470
  if (key.return && key.shift) {
311
- setDraft((value) => `${value}\n`);
471
+ setDraft((value) => insertDraftText({ draft: value, text: "\n" }));
312
472
  return;
313
473
  }
314
474
  if (key.return) {
315
475
  submitDraft();
316
476
  return;
317
477
  }
478
+ if (key.leftArrow) {
479
+ setDraft((value) => moveDraftCursor({ draft: value, offset: -1 }));
480
+ return;
481
+ }
482
+ if (key.rightArrow) {
483
+ setDraft((value) => moveDraftCursor({ draft: value, offset: 1 }));
484
+ return;
485
+ }
486
+ if (key.upArrow) {
487
+ setDraft((value) => moveDraftCursorVertically({ draft: value, direction: -1 }));
488
+ return;
489
+ }
490
+ if (key.downArrow) {
491
+ setDraft((value) => moveDraftCursorVertically({ draft: value, direction: 1 }));
492
+ return;
493
+ }
494
+ if (key.home) {
495
+ setDraft((value) => moveDraftCursorToStart({ draft: value }));
496
+ return;
497
+ }
498
+ if (key.end) {
499
+ setDraft((value) => moveDraftCursorToEnd({ draft: value }));
500
+ return;
501
+ }
318
502
  if (key.backspace || key.delete) {
319
- setDraft((value) => value.slice(0, -1));
503
+ return;
504
+ }
505
+ if (isStrippedBracketedPasteMarkerInput({ input }) &&
506
+ bracketedPasteMarkerCountRef.current > 0) {
507
+ bracketedPasteMarkerCountRef.current -= 1;
320
508
  return;
321
509
  }
322
510
  if (input) {
323
- setDraft((value) => `${value}${input}`);
511
+ const text = getDraftInputText({ input });
512
+ if (text) {
513
+ setDraft((value) => insertDraftText({ draft: value, text }));
514
+ }
324
515
  }
325
516
  });
326
- return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(PxiBanner, {}), _jsxs(Text, { dimColor: true, children: ["endpoint: ", options.config.endpoint, " | model: ", getModelLabel(options), " | session: ", options.sessionId] }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Transcript, { messages: messages, phoenixBaseUrl: options.config.endpoint }) }), error ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "red", children: ["Error: ", error] }) })) : null, status === "streaming" ? _jsx(ThinkingIndicator, {}) : null, _jsx(InputPrompt, { draft: draft, status: status, usageLine: formatTokenUsageLine(getLatestAssistantUsage(messages)) })] }));
517
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(PxiBanner, {}), _jsxs(Text, { dimColor: true, children: ["endpoint: ", options.config.endpoint, " | model: ", getModelLabel(options), " | session: ", options.sessionId] }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Transcript, { messages: messages, phoenixBaseUrl: options.config.endpoint }) }), error ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "red", children: ["Error: ", error] }) })) : null, status === "streaming" ? _jsx(ThinkingIndicator, {}) : null, _jsx(InputPrompt, { draft: draft, status: status, usageLine: formatTokenUsageLine(getLatestAssistantUsage(messages)), modelLabel: options.modelSelection.modelName })] }));
327
518
  }
328
519
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/pxi/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/pxi/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type DraftEditorState = {
2
+ value: string;
3
+ cursorIndex: number;
4
+ preferredColumn?: number;
5
+ };
6
+ export declare const EMPTY_DRAFT_EDITOR_STATE: DraftEditorState;
7
+ export declare function insertDraftText({ draft, text, }: {
8
+ draft: DraftEditorState;
9
+ text: string;
10
+ }): DraftEditorState;
11
+ export declare function moveDraftCursor({ draft, offset, }: {
12
+ draft: DraftEditorState;
13
+ offset: number;
14
+ }): DraftEditorState;
15
+ export declare function moveDraftCursorToStart({ draft, }: {
16
+ draft: DraftEditorState;
17
+ }): DraftEditorState;
18
+ export declare function moveDraftCursorToEnd({ draft, }: {
19
+ draft: DraftEditorState;
20
+ }): DraftEditorState;
21
+ export declare function deleteDraftTextBeforeCursor({ draft, }: {
22
+ draft: DraftEditorState;
23
+ }): DraftEditorState;
24
+ export declare function deleteDraftTextAtCursor({ draft, }: {
25
+ draft: DraftEditorState;
26
+ }): DraftEditorState;
27
+ export declare function moveDraftCursorVertically({ draft, direction, }: {
28
+ draft: DraftEditorState;
29
+ direction: -1 | 1;
30
+ }): DraftEditorState;
31
+ //# sourceMappingURL=draftEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftEditor.d.ts","sourceRoot":"","sources":["../../src/pxi/draftEditor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,gBAGtC,CAAC;AAMF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,IAAI,GACL,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,gBAAgB,CAOnB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,GACP,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAQnB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,GACN,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,gBAAgB,CAEnB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,GACN,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,gBAAgB,CAEnB;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,GACN,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,gBAAgB,CAUnB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,GACN,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,gBAAgB,CAUnB;AAoBD,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CACnB,GAAG,gBAAgB,CAyCnB"}
@@ -0,0 +1,95 @@
1
+ export const EMPTY_DRAFT_EDITOR_STATE = {
2
+ value: "",
3
+ cursorIndex: 0,
4
+ };
5
+ function clampCursorIndex({ draft }) {
6
+ return Math.min(Math.max(draft.cursorIndex, 0), draft.value.length);
7
+ }
8
+ export function insertDraftText({ draft, text, }) {
9
+ const cursorIndex = clampCursorIndex({ draft });
10
+ return {
11
+ value: draft.value.slice(0, cursorIndex) + text + draft.value.slice(cursorIndex),
12
+ cursorIndex: cursorIndex + text.length,
13
+ };
14
+ }
15
+ export function moveDraftCursor({ draft, offset, }) {
16
+ return {
17
+ value: draft.value,
18
+ cursorIndex: Math.min(Math.max(clampCursorIndex({ draft }) + offset, 0), draft.value.length),
19
+ };
20
+ }
21
+ export function moveDraftCursorToStart({ draft, }) {
22
+ return { value: draft.value, cursorIndex: 0 };
23
+ }
24
+ export function moveDraftCursorToEnd({ draft, }) {
25
+ return { value: draft.value, cursorIndex: draft.value.length };
26
+ }
27
+ export function deleteDraftTextBeforeCursor({ draft, }) {
28
+ const cursorIndex = clampCursorIndex({ draft });
29
+ if (cursorIndex === 0) {
30
+ return draft;
31
+ }
32
+ return {
33
+ value: draft.value.slice(0, cursorIndex - 1) + draft.value.slice(cursorIndex),
34
+ cursorIndex: cursorIndex - 1,
35
+ };
36
+ }
37
+ export function deleteDraftTextAtCursor({ draft, }) {
38
+ const cursorIndex = clampCursorIndex({ draft });
39
+ if (cursorIndex >= draft.value.length) {
40
+ return draft;
41
+ }
42
+ return {
43
+ value: draft.value.slice(0, cursorIndex) + draft.value.slice(cursorIndex + 1),
44
+ cursorIndex,
45
+ };
46
+ }
47
+ function getDraftLineInfo({ draft }) {
48
+ const cursorIndex = clampCursorIndex({ draft });
49
+ const lineStartIndex = cursorIndex === 0 ? 0 : draft.value.lastIndexOf("\n", cursorIndex - 1) + 1;
50
+ const nextNewlineIndex = draft.value.indexOf("\n", cursorIndex);
51
+ const lineEndIndex = nextNewlineIndex === -1 ? draft.value.length : nextNewlineIndex;
52
+ return {
53
+ lineStartIndex,
54
+ lineEndIndex,
55
+ column: cursorIndex - lineStartIndex,
56
+ };
57
+ }
58
+ export function moveDraftCursorVertically({ draft, direction, }) {
59
+ const currentLine = getDraftLineInfo({ draft });
60
+ const preferredColumn = draft.preferredColumn ?? currentLine.column;
61
+ if (direction === -1) {
62
+ if (currentLine.lineStartIndex === 0) {
63
+ return {
64
+ value: draft.value,
65
+ cursorIndex: clampCursorIndex({ draft }),
66
+ preferredColumn,
67
+ };
68
+ }
69
+ const previousLineEndIndex = currentLine.lineStartIndex - 1;
70
+ const previousLineStartIndex = draft.value.lastIndexOf("\n", previousLineEndIndex - 1) + 1;
71
+ const previousLineLength = previousLineEndIndex - previousLineStartIndex;
72
+ return {
73
+ value: draft.value,
74
+ cursorIndex: previousLineStartIndex + Math.min(preferredColumn, previousLineLength),
75
+ preferredColumn,
76
+ };
77
+ }
78
+ if (currentLine.lineEndIndex >= draft.value.length) {
79
+ return {
80
+ value: draft.value,
81
+ cursorIndex: clampCursorIndex({ draft }),
82
+ preferredColumn,
83
+ };
84
+ }
85
+ const nextLineStartIndex = currentLine.lineEndIndex + 1;
86
+ const nextNewlineIndex = draft.value.indexOf("\n", nextLineStartIndex);
87
+ const nextLineEndIndex = nextNewlineIndex === -1 ? draft.value.length : nextNewlineIndex;
88
+ const nextLineLength = nextLineEndIndex - nextLineStartIndex;
89
+ return {
90
+ value: draft.value,
91
+ cursorIndex: nextLineStartIndex + Math.min(preferredColumn, nextLineLength),
92
+ preferredColumn,
93
+ };
94
+ }
95
+ //# sourceMappingURL=draftEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftEditor.js","sourceRoot":"","sources":["../../src/pxi/draftEditor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pxi/index.tsx"],"names":[],"mappings":";AAWA;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,EACzB,IAAmB,GACpB,GAAE;IACD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACZ,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pxi/index.tsx"],"names":[],"mappings":";AAWA;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,EACzB,IAAmB,GACpB,GAAE;IACD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACZ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrB"}
@@ -18,6 +18,15 @@ import { runPxiModelPreflight } from "./preflight.js";
18
18
  export async function main({ argv = process.argv, } = {}) {
19
19
  const options = await parsePxiRuntimeOptions({ argv });
20
20
  await runPxiModelPreflight({ options });
21
+ // Ink's kitty-keyboard "auto" detection writes a `CSI ? u` capability query to
22
+ // stdout from its constructor, before it switches the terminal into raw mode.
23
+ // On a TTY still in canonical mode the terminal echoes its reply (`ESC[?0u`)
24
+ // back to the screen, leaving a stray `^[[?0u` line above the banner. Putting
25
+ // stdin into raw mode here disables that echo so Ink consumes the reply
26
+ // silently; Ink keeps raw mode on for the rest of the session.
27
+ if (process.stdin.isTTY) {
28
+ process.stdin.setRawMode(true);
29
+ }
21
30
  const instance = render(_jsx(PxiApp, { options: options }), {
22
31
  exitOnCtrlC: false,
23
32
  kittyKeyboard: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pxi/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EACzB,IAAI,GAAG,OAAO,CAAC,IAAI,MAGjB,EAAE;IACJ,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,EAAE;QACpD,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,yBAAyB,CAAC;SACnC;KACF,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,UAAU,CAAC;QACT,OAAO,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC5E,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pxi/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EACzB,IAAI,GAAG,OAAO,CAAC,IAAI,MAGjB,EAAE;IACJ,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,EAAE;QACpD,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,yBAAyB,CAAC;SACnC;KACF,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,UAAU,CAAC;QACT,OAAO,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC5E,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}