@arizeai/phoenix-cli 1.6.0 → 1.6.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/pxi/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoC5E,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;CAChC,CAAC;AAmNF,8EAA8E;AAC9E,wBAAgB,iBAAiB,sBAWhC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAoB,EAAE,EAAE,WAAW,qBA2I5E"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/pxi/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAuBpE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAmD5E,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;CAChC,CAAC;AAkZF,8EAA8E;AAC9E,wBAAgB,iBAAiB,sBAWhC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAoB,EAAE,EAAE,WAAW,qBAqQ5E"}
package/build/pxi/App.js CHANGED
@@ -1,8 +1,11 @@
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
+ 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";
5
7
  import { Markdown } from "./inkMarkdown.js";
8
+ import { formatTokenUsageLine, getLatestAssistantUsage } from "./tokenUsage.js";
6
9
  import { getToolProgressFromPart } from "./toolProgress.js";
7
10
  const PXI_BANNER = String.raw `
8
11
  __/\\\\\\\\\\\\\____/\\\_______/\\\__/\\\\\\\\\\\_
@@ -21,6 +24,15 @@ const THINKING_FRAMES = [
21
24
  "PXI is thinking.. ",
22
25
  "PXI is thinking...",
23
26
  ];
27
+ const ESCAPE_INPUT = "\x1B";
28
+ const BACKSPACE_INPUTS = new Set(["\b", "\x7F"]);
29
+ const FORWARD_DELETE_INPUTS = new Set([
30
+ `${ESCAPE_INPUT}[3~`,
31
+ `${ESCAPE_INPUT}[3$`,
32
+ `${ESCAPE_INPUT}[3^`,
33
+ ]);
34
+ const KITTY_BACKSPACE_INPUT_PATTERN = /^\x1B\[(?:8|127)(?:;\d+(?::[12])?(?:;[\d:]+)?)?u$/;
35
+ const KITTY_FORWARD_DELETE_INPUT_PATTERN = /^\x1B\[3;\d+:[12]~$/;
24
36
  const KEYBOARD_PROTOCOL_RESPONSE_PATTERN = /^\[\?\d+u$/;
25
37
  const INTERRUPTED_MESSAGE_TEXT = "\n\n[Interrupted by user before completion.]";
26
38
  // The 3D banner is drawn with two kinds of strokes: the `\` runs form the
@@ -90,14 +102,100 @@ function Transcript({ messages, phoenixBaseUrl, }) {
90
102
  return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: color, bold: true, children: label }), _jsx(MessageParts, { message: message, phoenixBaseUrl: phoenixBaseUrl })] }, message.id));
91
103
  }) }));
92
104
  }
105
+ /**
106
+ * Render the draft text with slash-command syntax highlighting.
107
+ *
108
+ * When the draft starts with `/`, the command name is colored yellow and the
109
+ * arguments follow in default color. Everything else renders as plain text.
110
+ */
111
+ function getHighlightedDraftSegments({ draft, }) {
112
+ if (!draft.startsWith("/")) {
113
+ return [{ text: draft, isCommandSegment: false }];
114
+ }
115
+ const rest = draft.slice(1);
116
+ const spaceIndex = rest.indexOf(" ");
117
+ if (spaceIndex === -1) {
118
+ return [
119
+ { text: "/", isCommandSegment: true, isBold: false },
120
+ { text: rest, isCommandSegment: true, isBold: true },
121
+ ];
122
+ }
123
+ const cmdName = rest.slice(0, spaceIndex);
124
+ const args = rest.slice(spaceIndex);
125
+ return [
126
+ { text: "/", isCommandSegment: true, isBold: false },
127
+ { text: cmdName, isCommandSegment: true, isBold: true },
128
+ { text: args, isCommandSegment: false },
129
+ ];
130
+ }
131
+ function HighlightedDraftSegment({ segment, isInverse = false, }) {
132
+ if (!segment.text) {
133
+ return null;
134
+ }
135
+ if (segment.isCommandSegment) {
136
+ return (_jsx(Text, { color: "yellow", bold: segment.isBold, inverse: isInverse, children: segment.text }));
137
+ }
138
+ return _jsx(Text, { inverse: isInverse, children: segment.text });
139
+ }
140
+ function HighlightedDraft({ draft, cursorIndex, isCursorVisible, }) {
141
+ const segments = getHighlightedDraftSegments({ draft });
142
+ const boundedCursorIndex = Math.min(Math.max(cursorIndex, 0), draft.length);
143
+ let nextSegmentStartIndex = 0;
144
+ let hasRenderedCursor = false;
145
+ return (_jsxs(Text, { children: [segments.flatMap((segment, segmentIndex) => {
146
+ const segmentStartIndex = nextSegmentStartIndex;
147
+ const segmentEndIndex = segmentStartIndex + segment.text.length;
148
+ nextSegmentStartIndex = segmentEndIndex;
149
+ if (isCursorVisible &&
150
+ !hasRenderedCursor &&
151
+ boundedCursorIndex >= segmentStartIndex &&
152
+ boundedCursorIndex < segmentEndIndex) {
153
+ hasRenderedCursor = true;
154
+ const cursorOffset = boundedCursorIndex - segmentStartIndex;
155
+ const beforeCursor = segment.text.slice(0, cursorOffset);
156
+ const cursorText = segment.text.slice(cursorOffset, cursorOffset + 1);
157
+ const isCursorOnNewline = cursorText === "\n";
158
+ const afterCursor = segment.text.slice(cursorOffset + 1);
159
+ return [
160
+ _jsx(HighlightedDraftSegment, { segment: { ...segment, text: beforeCursor } }, `${segmentIndex}-before`),
161
+ isCursorOnNewline ? (_jsx(Text, { children: "█\n" }, `${segmentIndex}-cursor`)) : (_jsx(HighlightedDraftSegment, { segment: { ...segment, text: cursorText }, isInverse: true }, `${segmentIndex}-cursor`)),
162
+ _jsx(HighlightedDraftSegment, { segment: { ...segment, text: afterCursor } }, `${segmentIndex}-after`),
163
+ ];
164
+ }
165
+ return [
166
+ _jsx(HighlightedDraftSegment, { segment: segment }, `${segmentIndex}-whole`),
167
+ ];
168
+ }), !hasRenderedCursor && isCursorVisible ? _jsx(Text, { children: "\u2588" }) : null] }));
169
+ }
93
170
  /** Render the prompt row with helper text below it. */
94
- function InputPrompt({ draft, status }) {
95
- const cursor = status === "streaming" ? "" : "█";
96
- return (_jsxs(Box, { flexDirection: "column", marginTop: 1, gap: 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: "> " }), draft, cursor] }) }), _jsx(Text, { dimColor: true, children: "Enter sends. Shift+Enter inserts a newline. Esc interrupts a reply. Ctrl+D or Ctrl+C exits." })] }));
171
+ function InputPrompt({ draft, status, usageLine, modelLabel, }) {
172
+ const draftValue = draft.value;
173
+ const cmdName = getSlashCommandName(draftValue);
174
+ // Show matching commands while the user is still typing the command token
175
+ // (no space yet means they haven't moved on to arguments).
176
+ const showHints = cmdName !== null && !draftValue.includes(" ") && draftValue.length > 1;
177
+ const hints = showHints ? matchingCommands(cmdName) : [];
178
+ 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 })] }) })] })] }));
97
179
  }
98
180
  function isKeyboardProtocolResponseInput({ input }) {
99
181
  return KEYBOARD_PROTOCOL_RESPONSE_PATTERN.test(input);
100
182
  }
183
+ function isBracketedPasteMarkerInput({ input }) {
184
+ return input === `${ESCAPE_INPUT}[200~` || input === `${ESCAPE_INPUT}[201~`;
185
+ }
186
+ function isStrippedBracketedPasteMarkerInput({ input }) {
187
+ return input === "[200~" || input === "[201~";
188
+ }
189
+ function isBackspaceInput({ input }) {
190
+ return (BACKSPACE_INPUTS.has(input) || KITTY_BACKSPACE_INPUT_PATTERN.test(input));
191
+ }
192
+ function isForwardDeleteInput({ input }) {
193
+ return (FORWARD_DELETE_INPUTS.has(input) ||
194
+ KITTY_FORWARD_DELETE_INPUT_PATTERN.test(input));
195
+ }
196
+ function getDraftInputText({ input }) {
197
+ return input.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
198
+ }
101
199
  function getCompletedInterruptedPart({ part, }) {
102
200
  if (part.type === "text" || part.type === "reasoning") {
103
201
  return { ...part, state: "done" };
@@ -156,8 +254,9 @@ export function ThinkingIndicator() {
156
254
  */
157
255
  export function PxiApp({ options, client, initialMessages = [] }) {
158
256
  const { exit } = useApp();
257
+ const { internal_eventEmitter: inputEventEmitter } = useStdin();
159
258
  const [messages, setMessages] = useState(initialMessages);
160
- const [draft, setDraft] = useState("");
259
+ const [draft, setDraft] = useState(EMPTY_DRAFT_EDITOR_STATE);
161
260
  const [status, setStatus] = useState("idle");
162
261
  const [error, setError] = useState(null);
163
262
  const abortControllerRef = useRef(null);
@@ -188,17 +287,50 @@ export function PxiApp({ options, client, initialMessages = [] }) {
188
287
  }
189
288
  setStatus("idle");
190
289
  };
290
+ const clearMessages = () => {
291
+ setMessages([]);
292
+ setError(null);
293
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
294
+ };
191
295
  const submitDraft = () => {
192
- const text = draft.trim();
296
+ const text = draft.value.trim();
193
297
  if (!text || status === "streaming") {
194
298
  return;
195
299
  }
300
+ // Intercept slash commands before sending to the server.
301
+ if (text.startsWith("/")) {
302
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
303
+ const result = runSlashCommand(text, {
304
+ clearMessages,
305
+ exit: handleExit,
306
+ });
307
+ if (result.type === "help") {
308
+ const helpLines = SLASH_COMMANDS.map((c) => ` \`/${c.name}\` — ${c.description}`).join("\n");
309
+ const helpMessage = createUserMessage({ text });
310
+ const helpReply = {
311
+ id: crypto.randomUUID(),
312
+ role: "assistant",
313
+ parts: [
314
+ {
315
+ type: "text",
316
+ text: `Available commands:\n${helpLines}`,
317
+ state: "done",
318
+ },
319
+ ],
320
+ };
321
+ setMessages((m) => [...m, helpMessage, helpReply]);
322
+ }
323
+ else if (result.type === "unknown") {
324
+ setError(`Unknown command: /${result.name}. Type /help to see available commands.`);
325
+ }
326
+ return;
327
+ }
196
328
  const userMessage = createUserMessage({ text });
197
329
  const nextMessages = [...messages, userMessage];
198
330
  const abortController = new AbortController();
199
331
  abortControllerRef.current = abortController;
200
332
  streamingAssistantMessageRef.current = null;
201
- setDraft("");
333
+ setDraft(EMPTY_DRAFT_EDITOR_STATE);
202
334
  setError(null);
203
335
  setStatus("streaming");
204
336
  setMessages(nextMessages);
@@ -232,6 +364,34 @@ export function PxiApp({ options, client, initialMessages = [] }) {
232
364
  setStatus("idle");
233
365
  });
234
366
  };
367
+ const bracketedPasteMarkerCountRef = useRef(0);
368
+ const handleRawInput = (input) => {
369
+ if (status === "streaming") {
370
+ return;
371
+ }
372
+ if (isBracketedPasteMarkerInput({ input })) {
373
+ bracketedPasteMarkerCountRef.current += 1;
374
+ return;
375
+ }
376
+ if (isBackspaceInput({ input })) {
377
+ setDraft((value) => deleteDraftTextBeforeCursor({ draft: value }));
378
+ return;
379
+ }
380
+ if (isForwardDeleteInput({ input })) {
381
+ setDraft((value) => deleteDraftTextAtCursor({ draft: value }));
382
+ }
383
+ };
384
+ const rawInputHandlerRef = useRef(handleRawInput);
385
+ rawInputHandlerRef.current = handleRawInput;
386
+ useEffect(() => {
387
+ const handleInputEvent = (input) => {
388
+ rawInputHandlerRef.current(input);
389
+ };
390
+ inputEventEmitter.on("input", handleInputEvent);
391
+ return () => {
392
+ inputEventEmitter.removeListener("input", handleInputEvent);
393
+ };
394
+ }, [inputEventEmitter]);
235
395
  useInput((input, key) => {
236
396
  if (key.escape) {
237
397
  interruptStream();
@@ -247,22 +407,61 @@ export function PxiApp({ options, client, initialMessages = [] }) {
247
407
  if (isKeyboardProtocolResponseInput({ input })) {
248
408
  return;
249
409
  }
410
+ if (key.ctrl && input === "a") {
411
+ setDraft((value) => moveDraftCursorToStart({ draft: value }));
412
+ return;
413
+ }
414
+ if (key.ctrl && input === "e") {
415
+ setDraft((value) => moveDraftCursorToEnd({ draft: value }));
416
+ return;
417
+ }
250
418
  if (key.return && key.shift) {
251
- setDraft((value) => `${value}\n`);
419
+ setDraft((value) => insertDraftText({ draft: value, text: "\n" }));
252
420
  return;
253
421
  }
254
422
  if (key.return) {
255
423
  submitDraft();
256
424
  return;
257
425
  }
426
+ if (key.leftArrow) {
427
+ setDraft((value) => moveDraftCursor({ draft: value, offset: -1 }));
428
+ return;
429
+ }
430
+ if (key.rightArrow) {
431
+ setDraft((value) => moveDraftCursor({ draft: value, offset: 1 }));
432
+ return;
433
+ }
434
+ if (key.upArrow) {
435
+ setDraft((value) => moveDraftCursorVertically({ draft: value, direction: -1 }));
436
+ return;
437
+ }
438
+ if (key.downArrow) {
439
+ setDraft((value) => moveDraftCursorVertically({ draft: value, direction: 1 }));
440
+ return;
441
+ }
442
+ if (key.home) {
443
+ setDraft((value) => moveDraftCursorToStart({ draft: value }));
444
+ return;
445
+ }
446
+ if (key.end) {
447
+ setDraft((value) => moveDraftCursorToEnd({ draft: value }));
448
+ return;
449
+ }
258
450
  if (key.backspace || key.delete) {
259
- setDraft((value) => value.slice(0, -1));
451
+ return;
452
+ }
453
+ if (isStrippedBracketedPasteMarkerInput({ input }) &&
454
+ bracketedPasteMarkerCountRef.current > 0) {
455
+ bracketedPasteMarkerCountRef.current -= 1;
260
456
  return;
261
457
  }
262
458
  if (input) {
263
- setDraft((value) => `${value}${input}`);
459
+ const text = getDraftInputText({ input });
460
+ if (text) {
461
+ setDraft((value) => insertDraftText({ draft: value, text }));
462
+ }
264
463
  }
265
464
  });
266
- 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 })] }));
465
+ 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 })] }));
267
466
  }
268
467
  //# 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,37 @@
1
+ /**
2
+ * Client-side slash commands for the PXI chat UI.
3
+ *
4
+ * Commands are intercepted before the input reaches the server, so they run
5
+ * instantly and never consume a network round-trip.
6
+ */
7
+ export type CommandContext = {
8
+ clearMessages: () => void;
9
+ exit: () => void;
10
+ };
11
+ export type PxiCommand = {
12
+ /** The name after the leading slash, e.g. "clear" for `/clear`. */
13
+ name: string;
14
+ description: string;
15
+ handler: (args: string, ctx: CommandContext) => void;
16
+ };
17
+ export declare const SLASH_COMMANDS: PxiCommand[];
18
+ export type SlashCommandResult = {
19
+ type: "unknown";
20
+ name: string;
21
+ } | {
22
+ type: "handled";
23
+ } | {
24
+ type: "help";
25
+ };
26
+ /**
27
+ * Parse and dispatch a slash command string. Returns a result describing what
28
+ * happened so the caller can react (e.g. display an error for unknown commands).
29
+ *
30
+ * @param input - The full draft string, expected to start with `/`.
31
+ */
32
+ export declare function runSlashCommand(input: string, ctx: CommandContext): SlashCommandResult;
33
+ /** Return the command name being typed, or null if the input isn't a slash command. */
34
+ export declare function getSlashCommandName(draft: string): string | null;
35
+ /** Return commands whose names start with the given prefix (case-insensitive). */
36
+ export declare function matchingCommands(prefix: string): PxiCommand[];
37
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/pxi/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAAU,EAkBtC,CAAC;AAIF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,cAAc,GAClB,kBAAkB,CAoBpB;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAG7D"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Client-side slash commands for the PXI chat UI.
3
+ *
4
+ * Commands are intercepted before the input reaches the server, so they run
5
+ * instantly and never consume a network round-trip.
6
+ */
7
+ export const SLASH_COMMANDS = [
8
+ {
9
+ name: "clear",
10
+ description: "Clear the conversation history",
11
+ handler: (_args, ctx) => ctx.clearMessages(),
12
+ },
13
+ {
14
+ name: "exit",
15
+ description: "Exit PXI",
16
+ handler: (_args, ctx) => ctx.exit(),
17
+ },
18
+ {
19
+ name: "help",
20
+ description: "Show available slash commands",
21
+ handler: (_args, _ctx) => {
22
+ // handled specially in the UI to print the command list
23
+ },
24
+ },
25
+ ];
26
+ const COMMAND_MAP = new Map(SLASH_COMMANDS.map((c) => [c.name, c]));
27
+ /**
28
+ * Parse and dispatch a slash command string. Returns a result describing what
29
+ * happened so the caller can react (e.g. display an error for unknown commands).
30
+ *
31
+ * @param input - The full draft string, expected to start with `/`.
32
+ */
33
+ export function runSlashCommand(input, ctx) {
34
+ const withoutSlash = input.slice(1).trimStart();
35
+ const spaceIndex = withoutSlash.indexOf(" ");
36
+ const name = (spaceIndex === -1 ? withoutSlash : withoutSlash.slice(0, spaceIndex)).toLowerCase();
37
+ const args = spaceIndex === -1 ? "" : withoutSlash.slice(spaceIndex + 1).trim();
38
+ if (name === "help") {
39
+ return { type: "help" };
40
+ }
41
+ const command = COMMAND_MAP.get(name);
42
+ if (!command) {
43
+ return { type: "unknown", name };
44
+ }
45
+ command.handler(args, ctx);
46
+ return { type: "handled" };
47
+ }
48
+ /** Return the command name being typed, or null if the input isn't a slash command. */
49
+ export function getSlashCommandName(draft) {
50
+ if (!draft.startsWith("/"))
51
+ return null;
52
+ const rest = draft.slice(1);
53
+ const spaceIndex = rest.indexOf(" ");
54
+ return spaceIndex === -1 ? rest : rest.slice(0, spaceIndex);
55
+ }
56
+ /** Return commands whose names start with the given prefix (case-insensitive). */
57
+ export function matchingCommands(prefix) {
58
+ const lower = prefix.toLowerCase();
59
+ return SLASH_COMMANDS.filter((c) => c.name.startsWith(lower));
60
+ }
61
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/pxi/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE;KAC7C;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE;KACpC;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,wDAAwD;QAC1D,CAAC;KACF;CACF,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAOpE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,GAAmB;IAEnB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CACX,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CACrE,CAAC,WAAW,EAAE,CAAC;IAChB,MAAM,IAAI,GACR,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAErE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/pxi/preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;GASG;AAEH,gGAAgG;AAChG,eAAO,MAAM,yBAAyB,kdA2BrC,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,KAAK,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,8BAA8B,EAAE;QAC9B,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,iBAAiB,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AA2HF;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,MAAM,EACN,SAA4B,GAC7B,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAyBjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,IAAI,EACJ,cAAc,GACf,EAAE;IACD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,IAAI,CA4DP;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,SAA4B,GAC7B,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,cAAc,GACf,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,KAAK,CASR"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/pxi/preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;GASG;AAEH,gGAAgG;AAChG,eAAO,MAAM,yBAAyB,kdA2BrC,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,KAAK,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,8BAA8B,EAAE;QAC9B,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,iBAAiB,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAoKF;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,MAAM,EACN,SAA4B,GAC7B,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqCjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,IAAI,EACJ,cAAc,GACf,EAAE;IACD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,IAAI,CA4DP;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,SAA4B,GAC7B,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,cAAc,GACf,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,KAAK,CASR"}
@@ -61,6 +61,36 @@ function getModelLabel({ modelSelection, }) {
61
61
  }
62
62
  return `${modelSelection.provider}/${modelSelection.modelName}`;
63
63
  }
64
+ function getErrorMessage({ error }) {
65
+ return error instanceof Error ? error.message : String(error);
66
+ }
67
+ function getErrorCauseMessage({ error }) {
68
+ if (!(error instanceof Error) || !("cause" in error)) {
69
+ return null;
70
+ }
71
+ const cause = error.cause;
72
+ if (!cause) {
73
+ return null;
74
+ }
75
+ return getErrorMessage({ error: cause });
76
+ }
77
+ function formatEndpointPreflightFailure({ error, endpoint, requestUrl, }) {
78
+ const causeMessage = getErrorCauseMessage({ error });
79
+ const causeLine = causeMessage ? `\nCause: ${causeMessage}` : "";
80
+ return [
81
+ "Could not reach Phoenix during PXI startup preflight.",
82
+ "",
83
+ `Endpoint: ${endpoint}`,
84
+ `Request: ${requestUrl}`,
85
+ `Network error: ${getErrorMessage({ error })}${causeLine}`,
86
+ "",
87
+ "How to fix:",
88
+ " 1. Start Phoenix and confirm the server is listening.",
89
+ " 2. If Phoenix is running at a different URL, pass --endpoint <url> or set PHOENIX_HOST.",
90
+ " 3. For remote endpoints, check VPN, proxy, firewall, and DNS settings.",
91
+ " 4. To skip only model validation, pass --skip-model-preflight.",
92
+ ].join("\n");
93
+ }
64
94
  /**
65
95
  * Compose the "missing credentials" error for a provider, listing the required
66
96
  * environment variables (falling back to all known ones if none are flagged
@@ -124,11 +154,21 @@ export async function fetchPxiModelPreflight({ config, fetchImpl = globalThis.fe
124
154
  query: PXI_MODEL_PREFLIGHT_QUERY,
125
155
  config,
126
156
  });
127
- const response = await fetchImpl(request.url, {
128
- method: request.method,
129
- headers: request.headers,
130
- body: request.body,
131
- });
157
+ let response;
158
+ try {
159
+ response = await fetchImpl(request.url, {
160
+ method: request.method,
161
+ headers: request.headers,
162
+ body: request.body,
163
+ });
164
+ }
165
+ catch (error) {
166
+ throw new TypeError(formatEndpointPreflightFailure({
167
+ error,
168
+ endpoint: config.endpoint,
169
+ requestUrl: request.url,
170
+ }), { cause: error });
171
+ }
132
172
  if (!response.ok) {
133
173
  const detail = await readResponseText({ response });
134
174
  const detailText = detail ? `: ${detail}` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/pxi/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/pxi/preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AssistantMessageMetadata, PxiMessage } from "./types.js";
2
+ /**
3
+ * Token-usage helpers for the PXI status line.
4
+ *
5
+ * The Phoenix server attaches {@link AssistantMessageMetadata} usage to each
6
+ * assistant turn. These helpers pull the most recent usage off the transcript
7
+ * and format it for the bottom-right status line, mirroring how the web UI's
8
+ * `ChatSessionUsage` surfaces the latest token count plus any cache activity so
9
+ * the user can gauge how much of the context window is in play.
10
+ */
11
+ /** The usage metadata reported for a single assistant turn. */
12
+ export type PxiUsage = NonNullable<AssistantMessageMetadata["usage"]>;
13
+ /**
14
+ * Return the usage reported by the most recent assistant message that carries
15
+ * any, scanning newest-first. Returns `null` when no assistant turn reported
16
+ * usage (tracing/usage reporting can be disabled server-side).
17
+ */
18
+ export declare function getLatestAssistantUsage(messages: PxiMessage[]): PxiUsage | null;
19
+ /** Format a token count with thousands separators (e.g. `12,345`). */
20
+ export declare function formatTokenCount(value: number): string;
21
+ /**
22
+ * Build the cache-activity portion of the status line from a turn's prompt
23
+ * details, matching the web UI: always show cache reads, and only show cache
24
+ * writes when non-zero (OpenAI never reports them). Returns `null` when there
25
+ * is no cache activity to surface.
26
+ */
27
+ export declare function formatCacheSummary(promptDetails: PxiUsage["promptDetails"]): string | null;
28
+ /**
29
+ * Compose the full bottom-right status line for a turn's usage — the headline
30
+ * total token count, optionally preceded by a cache-activity summary. Returns
31
+ * `null` when there is no usage to show, so the caller can omit the line
32
+ * entirely.
33
+ */
34
+ export declare function formatTokenUsageLine(usage: PxiUsage | null): string | null;
35
+ //# sourceMappingURL=tokenUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.d.ts","sourceRoot":"","sources":["../../src/pxi/tokenUsage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;GAQG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,UAAU,EAAE,GACrB,QAAQ,GAAG,IAAI,CAYjB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,GACvC,MAAM,GAAG,IAAI,CAcf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAW1E"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Return the usage reported by the most recent assistant message that carries
3
+ * any, scanning newest-first. Returns `null` when no assistant turn reported
4
+ * usage (tracing/usage reporting can be disabled server-side).
5
+ */
6
+ export function getLatestAssistantUsage(messages) {
7
+ for (let index = messages.length - 1; index >= 0; index--) {
8
+ const message = messages[index];
9
+ if (message?.role !== "assistant") {
10
+ continue;
11
+ }
12
+ const usage = message.metadata?.usage;
13
+ if (usage != null) {
14
+ return usage;
15
+ }
16
+ }
17
+ return null;
18
+ }
19
+ /** Format a token count with thousands separators (e.g. `12,345`). */
20
+ export function formatTokenCount(value) {
21
+ return value.toLocaleString("en-US");
22
+ }
23
+ /**
24
+ * Build the cache-activity portion of the status line from a turn's prompt
25
+ * details, matching the web UI: always show cache reads, and only show cache
26
+ * writes when non-zero (OpenAI never reports them). Returns `null` when there
27
+ * is no cache activity to surface.
28
+ */
29
+ export function formatCacheSummary(promptDetails) {
30
+ if (!promptDetails) {
31
+ return null;
32
+ }
33
+ const cacheRead = promptDetails.cacheRead ?? 0;
34
+ const cacheWrite = promptDetails.cacheWrite ?? 0;
35
+ if (cacheRead <= 0 && cacheWrite <= 0) {
36
+ return null;
37
+ }
38
+ const parts = [`cache read ${formatTokenCount(cacheRead)}`];
39
+ if (cacheWrite > 0) {
40
+ parts.push(`cache write ${formatTokenCount(cacheWrite)}`);
41
+ }
42
+ return parts.join(" / ");
43
+ }
44
+ /**
45
+ * Compose the full bottom-right status line for a turn's usage — the headline
46
+ * total token count, optionally preceded by a cache-activity summary. Returns
47
+ * `null` when there is no usage to show, so the caller can omit the line
48
+ * entirely.
49
+ */
50
+ export function formatTokenUsageLine(usage) {
51
+ if (!usage) {
52
+ return null;
53
+ }
54
+ const segments = [];
55
+ const cacheSummary = formatCacheSummary(usage.promptDetails);
56
+ if (cacheSummary) {
57
+ segments.push(cacheSummary);
58
+ }
59
+ segments.push(`${formatTokenCount(usage.tokens.total)} tokens`);
60
+ return segments.join(" · ");
61
+ }
62
+ //# sourceMappingURL=tokenUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.js","sourceRoot":"","sources":["../../src/pxi/tokenUsage.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAsB;IAEtB,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QACtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAAwC;IAExC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC;IACjD,IAAI,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,cAAc,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,eAAe,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,YAAY,EAAE,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arizeai/phoenix-cli",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "A command-line interface for Phoenix",
5
5
  "keywords": [
6
6
  "arize",
@@ -32,15 +32,15 @@
32
32
  "types": "build/index.d.ts",
33
33
  "dependencies": {
34
34
  "@arizeai/openinference-semantic-conventions": "^2.5.0",
35
- "@clack/prompts": "^1.5.1",
36
- "ai": "^6.0.208",
35
+ "@clack/prompts": "^1.6.0",
36
+ "ai": "^6.0.211",
37
37
  "commander": "^15.0.0",
38
38
  "ink": "^6.8.0",
39
39
  "marked": "^12.0.2",
40
40
  "marked-terminal": "^7.3.0",
41
41
  "react": "19.2.7",
42
42
  "zod": "^4.4.3",
43
- "@arizeai/phoenix-client": "6.11.1",
43
+ "@arizeai/phoenix-client": "6.12.0",
44
44
  "@arizeai/phoenix-config": "0.1.4"
45
45
  },
46
46
  "devDependencies": {