@upstash/box-cli 0.1.10 → 0.1.13

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 (54) hide show
  1. package/README.md +25 -20
  2. package/dist/agent-key.d.ts +10 -0
  3. package/dist/agent-key.d.ts.map +1 -0
  4. package/dist/agent-key.js +18 -0
  5. package/dist/agent-key.js.map +1 -0
  6. package/dist/cli.js +3 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/connect.d.ts.map +1 -1
  9. package/dist/commands/connect.js +13 -5
  10. package/dist/commands/connect.js.map +1 -1
  11. package/dist/commands/create-wizard.d.ts +3 -0
  12. package/dist/commands/create-wizard.d.ts.map +1 -0
  13. package/dist/commands/create-wizard.js +170 -0
  14. package/dist/commands/create-wizard.js.map +1 -0
  15. package/dist/commands/create.d.ts +2 -3
  16. package/dist/commands/create.d.ts.map +1 -1
  17. package/dist/commands/create.js +18 -6
  18. package/dist/commands/create.js.map +1 -1
  19. package/dist/commands/from-snapshot.d.ts +1 -1
  20. package/dist/commands/from-snapshot.d.ts.map +1 -1
  21. package/dist/commands/from-snapshot.js +3 -6
  22. package/dist/commands/from-snapshot.js.map +1 -1
  23. package/dist/commands/init-demo.d.ts +1 -1
  24. package/dist/commands/init-demo.d.ts.map +1 -1
  25. package/dist/commands/init-demo.js +8 -10
  26. package/dist/commands/init-demo.js.map +1 -1
  27. package/dist/commands/list.d.ts.map +1 -1
  28. package/dist/commands/list.js +18 -2
  29. package/dist/commands/list.js.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/repl/client.d.ts +8 -3
  33. package/dist/repl/client.d.ts.map +1 -1
  34. package/dist/repl/client.js +30 -11
  35. package/dist/repl/client.js.map +1 -1
  36. package/dist/repl/commands/code.d.ts +12 -0
  37. package/dist/repl/commands/code.d.ts.map +1 -0
  38. package/dist/repl/commands/code.js +45 -0
  39. package/dist/repl/commands/code.js.map +1 -0
  40. package/dist/repl/commands/command.d.ts +7 -0
  41. package/dist/repl/commands/command.d.ts.map +1 -0
  42. package/dist/repl/commands/command.js +14 -0
  43. package/dist/repl/commands/command.js.map +1 -0
  44. package/dist/repl/commands/run.d.ts +9 -1
  45. package/dist/repl/commands/run.d.ts.map +1 -1
  46. package/dist/repl/commands/run.js +67 -0
  47. package/dist/repl/commands/run.js.map +1 -1
  48. package/dist/repl/terminal.d.ts +2 -1
  49. package/dist/repl/terminal.d.ts.map +1 -1
  50. package/dist/repl/terminal.js +123 -14
  51. package/dist/repl/terminal.js.map +1 -1
  52. package/dist/repl/types.d.ts +26 -1
  53. package/dist/repl/types.d.ts.map +1 -1
  54. package/package.json +2 -2
@@ -3,26 +3,42 @@ import { createInterface } from "node:readline/promises";
3
3
  import { stdin, stdout } from "node:process";
4
4
  import { BoxREPLClient } from "./client.js";
5
5
  import { startSpinner } from "./spinner.js";
6
- import { bold, cyan, dim, green, red, yellow, cursorUp, eraseLine, eraseDown, stripAnsi, } from "../utils/ansi.js";
6
+ import { bold, cyan, dim, green, red, yellow, cursorUp, eraseDown, stripAnsi, } from "../utils/ansi.js";
7
7
  /**
8
8
  * Start an interactive REPL session for the given box (CLI entry point).
9
9
  */
10
- export async function startRepl(box) {
10
+ export async function startRepl(box, options) {
11
11
  const rl = createInterface({
12
12
  input: stdin,
13
13
  output: stdout,
14
14
  completer: () => [[], ""],
15
15
  });
16
16
  const prompt = `${bold(cyan(box.id))}${dim(">")} `;
17
- const client = new BoxREPLClient(box);
17
+ const client = new BoxREPLClient(box, options);
18
18
  // --- Spinner tracking ---
19
19
  let activeSpinnerStop = null;
20
+ let inCommand = false;
21
+ // --- Todo checklist tracking ---
22
+ let todoLines = 0;
23
+ // --- Stream newline tracking ---
24
+ let needsNewline = false;
20
25
  function ensureSpinnerStopped() {
21
26
  if (activeSpinnerStop) {
22
27
  activeSpinnerStop();
23
28
  activeSpinnerStop = null;
24
29
  }
25
30
  }
31
+ function ensureNewline() {
32
+ if (needsNewline) {
33
+ stdout.write("\n");
34
+ needsNewline = false;
35
+ }
36
+ }
37
+ function restartSpinnerIfInCommand() {
38
+ if (inCommand) {
39
+ activeSpinnerStop = startSpinner();
40
+ }
41
+ }
26
42
  // --- Command preview while typing ---
27
43
  let previewLines = 0;
28
44
  const promptVisualLen = stripAnsi(prompt).length;
@@ -42,7 +58,7 @@ export async function startRepl(box) {
42
58
  }
43
59
  }
44
60
  // --- Ghost suggestion in input ---
45
- let nextSuggestion = "/exec ls";
61
+ let nextSuggestion = "/command ls";
46
62
  let ghostText = null;
47
63
  function showGhost(text) {
48
64
  ghostText = text;
@@ -50,11 +66,16 @@ export async function startRepl(box) {
50
66
  // Move cursor back to just after the prompt
51
67
  stdout.write(`\x1b[${text.length}D`);
52
68
  }
69
+ // --- Multi-line input tracking ---
70
+ let isMetaReturn = false;
53
71
  if (stdin.isTTY) {
54
72
  // Must run before readline's handler so the cursor is still on the input line
55
73
  stdin.prependListener("keypress", (_str, key) => {
56
74
  if (key?.name === "return") {
57
75
  clearPreview();
76
+ if (key.meta || key.shift) {
77
+ isMetaReturn = true;
78
+ }
58
79
  }
59
80
  });
60
81
  stdin.on("keypress", (_str, key) => {
@@ -79,7 +100,7 @@ export async function startRepl(box) {
79
100
  clearPreview();
80
101
  if (line.startsWith("/") && !line.includes(" ")) {
81
102
  const partial = line.slice(1);
82
- const matches = BoxREPLClient.suggestCommands(partial).slice(0, 5);
103
+ const matches = client.suggestCommands(partial).slice(0, 5);
83
104
  if (matches.length > 0) {
84
105
  const preview = matches
85
106
  .map((c) => ` ${dim(`/${c.name}`)} ${dim("—")} ${dim(c.description)}`)
@@ -96,24 +117,82 @@ export async function startRepl(box) {
96
117
  function processEvent(event) {
97
118
  switch (event.type) {
98
119
  case "command:start":
120
+ inCommand = true;
99
121
  stdout.write("\n");
100
122
  activeSpinnerStop = startSpinner();
101
123
  break;
102
124
  case "log":
103
125
  ensureSpinnerStopped();
126
+ ensureNewline();
104
127
  clearPreview();
105
128
  console.log(event.message);
129
+ needsNewline = false;
130
+ todoLines = 0;
131
+ restartSpinnerIfInCommand();
106
132
  break;
107
133
  case "error":
108
134
  ensureSpinnerStopped();
135
+ ensureNewline();
109
136
  clearPreview();
110
137
  console.error(red(event.message));
138
+ needsNewline = false;
139
+ todoLines = 0;
140
+ restartSpinnerIfInCommand();
111
141
  break;
112
142
  case "stream":
113
143
  ensureSpinnerStopped();
114
144
  process.stdout.write(event.text);
145
+ needsNewline = !event.text.endsWith("\n");
146
+ todoLines = 0;
147
+ break;
148
+ case "tool": {
149
+ ensureSpinnerStopped();
150
+ ensureNewline();
151
+ const { name, summary, detail } = event.tool;
152
+ if (name === "Bash") {
153
+ let line = dim(" ⚡ ") + yellow(name) + dim(": " + summary);
154
+ if (detail) {
155
+ line += dim("\n $ " + detail);
156
+ }
157
+ console.log(line);
158
+ }
159
+ else {
160
+ console.log(dim(" ⚡ ") + yellow(name) + dim("(" + summary + ")"));
161
+ }
162
+ needsNewline = false;
163
+ todoLines = 0;
164
+ restartSpinnerIfInCommand();
165
+ break;
166
+ }
167
+ case "todo": {
168
+ ensureSpinnerStopped();
169
+ ensureNewline();
170
+ if (todoLines > 0) {
171
+ stdout.write(cursorUp(todoLines) + eraseDown);
172
+ }
173
+ for (const item of event.todos) {
174
+ if (item.status === "completed") {
175
+ console.log(green(" ✔") + " " + item.content);
176
+ }
177
+ else if (item.status === "in_progress") {
178
+ console.log(cyan(" ◼") + " " + item.content);
179
+ }
180
+ else {
181
+ console.log(dim(" ◻ " + item.content));
182
+ }
183
+ }
184
+ stdout.write("\n"); // bottom margin
185
+ todoLines = event.todos.length + 1; // items + bottom margin
186
+ needsNewline = false;
187
+ restartSpinnerIfInCommand();
115
188
  break;
189
+ }
116
190
  case "command:complete": {
191
+ inCommand = false;
192
+ ensureSpinnerStopped();
193
+ ensureNewline();
194
+ todoLines = 0;
195
+ needsNewline = false;
117
196
  const seconds = (event.durationMs / 1000).toFixed(1);
118
197
  console.log(dim(`\n /${event.command} completed in ${seconds}s\n`));
119
198
  break;
@@ -122,11 +201,15 @@ export async function startRepl(box) {
122
201
  nextSuggestion = event.text;
123
202
  break;
124
203
  case "command:not-found":
204
+ ensureNewline();
125
205
  console.error(yellow(`\nUnknown command: /${event.typed}`));
126
206
  if (event.suggestions.length > 0) {
127
207
  console.log(yellow(`Did you mean: ${event.suggestions.map((s) => `/${s}`).join(", ")}?\n`));
128
208
  }
129
209
  break;
210
+ case "clear":
211
+ stdout.write("\x1b[2J\x1b[H");
212
+ break;
130
213
  case "open-url": {
131
214
  const openCmd = process.platform === "darwin"
132
215
  ? "open"
@@ -142,22 +225,45 @@ export async function startRepl(box) {
142
225
  return false;
143
226
  }
144
227
  // --- Welcome message ---
145
- const allCommands = BoxREPLClient.suggestCommands("");
228
+ const allCommands = client.suggestCommands("");
146
229
  console.log(`\nConnected to box ${box.id}`);
147
- console.log(`Type a prompt to run the agent, or use commands: ${allCommands.map((c) => `/${c.name}`).join(", ")}, /exit\n`);
230
+ console.log(`Type a prompt to run the agent, or use commands: ${allCommands.map((c) => `/${c.name}`).join(", ")}\n`);
148
231
  // --- Main REPL loop ---
232
+ const continuationPrompt = " ".repeat(promptVisualLen);
149
233
  try {
150
234
  while (true) {
151
235
  clearPreview();
152
236
  const suggestion = nextSuggestion;
153
237
  nextSuggestion = null;
154
- const answer = await rl.question(prompt).then((input) => {
155
- // Rewrite the prompt line with the input in green
156
- if (input.trim()) {
157
- stdout.write(`\x1b[A\r${eraseLine}${prompt}${green(input)}\n`);
238
+ // Collect input (supports multi-line via alt+enter / shift+enter)
239
+ const inputLines = [];
240
+ isMetaReturn = false;
241
+ const firstLine = await rl.question(prompt);
242
+ inputLines.push(firstLine);
243
+ if (isMetaReturn && stdin.isTTY) {
244
+ while (true) {
245
+ isMetaReturn = false;
246
+ const nextLine = await rl.question(continuationPrompt);
247
+ inputLines.push(nextLine);
248
+ if (!isMetaReturn)
249
+ break;
158
250
  }
159
- return input;
160
- });
251
+ }
252
+ const answer = inputLines.join("\n");
253
+ // Rewrite all input lines in green
254
+ if (answer.trim()) {
255
+ const termWidth = stdout.columns || 80;
256
+ let totalVisualRows = 0;
257
+ for (const line of inputLines) {
258
+ const totalChars = promptVisualLen + line.length;
259
+ totalVisualRows += Math.ceil(totalChars / termWidth) || 1;
260
+ }
261
+ stdout.write(cursorUp(totalVisualRows) + "\r" + eraseDown);
262
+ for (let i = 0; i < inputLines.length; i++) {
263
+ const p = i === 0 ? prompt : continuationPrompt;
264
+ stdout.write(p + green(inputLines[i]) + "\n");
265
+ }
266
+ }
161
267
  if (suggestion && stdin.isTTY) {
162
268
  setImmediate(() => showGhost(suggestion));
163
269
  }
@@ -171,9 +277,12 @@ export async function startRepl(box) {
171
277
  }
172
278
  }
173
279
  catch (err) {
174
- ensureSpinnerStopped();
175
280
  console.error(red(`Error: ${err instanceof Error ? err.message : err}`));
176
281
  }
282
+ // Always clean up after event processing — handles cases where the
283
+ // generator ends without a command:complete (e.g. after an error event).
284
+ inCommand = false;
285
+ ensureSpinnerStopped();
177
286
  if (shouldExit)
178
287
  break;
179
288
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/repl/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/repl/terminal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,22 @@
1
1
  import type { Box } from "@upstash/box";
2
- export type BoxREPLCommandName = "run" | "exec" | "files" | "git" | "snapshot" | "pause" | "delete" | "console";
2
+ export type BoxREPLCommandName = "run" | "command" | "code" | "files" | "git" | "snapshot" | "pause" | "delete" | "console" | "clear" | "help" | "exit";
3
+ /** Known tool names from the agent stream */
4
+ export type AgentToolName = "Bash" | "Read" | "Edit" | "Write" | "Grep" | "Glob" | "TodoWrite" | "EnterPlanMode";
5
+ /** A single todo item from a TodoWrite tool call */
6
+ export interface TodoItem {
7
+ content: string;
8
+ status: "pending" | "in_progress" | "completed";
9
+ activeForm?: string;
10
+ }
11
+ /** Summary of a tool invocation for display */
12
+ export interface ToolCallSummary {
13
+ /** Tool name, typed for known tools with fallback */
14
+ name: AgentToolName | (string & {});
15
+ /** Human-readable one-liner derived from the tool's key input */
16
+ summary: string;
17
+ /** Optional secondary detail (e.g. the raw command for Bash) */
18
+ detail?: string;
19
+ }
3
20
  export type BoxREPLEvent = {
4
21
  type: "log";
5
22
  message: string;
@@ -9,6 +26,12 @@ export type BoxREPLEvent = {
9
26
  } | {
10
27
  type: "stream";
11
28
  text: string;
29
+ } | {
30
+ type: "tool";
31
+ tool: ToolCallSummary;
32
+ } | {
33
+ type: "todo";
34
+ todos: TodoItem[];
12
35
  } | {
13
36
  type: "command:start";
14
37
  command: BoxREPLCommandName;
@@ -24,6 +47,8 @@ export type BoxREPLEvent = {
24
47
  } | {
25
48
  type: "suggestion";
26
49
  text: string;
50
+ } | {
51
+ type: "clear";
27
52
  } | {
28
53
  type: "open-url";
29
54
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/repl/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,CAAC;AAE7F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,qBAAqB,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/repl/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,SAAS,GACT,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,WAAW,GACX,eAAe,CAAC;AAEpB,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,IAAI,EAAE,aAAa,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACpC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,CAAC;AAE7F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,qBAAqB,CAAC;CAChC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upstash/box-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.13",
4
4
  "description": "CLI for Upstash Box — REPL-first interface for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "commander": "^13.0.0",
27
27
  "dotenv": "^17.3.1",
28
- "@upstash/box": "0.1.8"
28
+ "@upstash/box": "0.1.10"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.10.0",