wispy-ai 0.3.0 → 0.4.1

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 (48) hide show
  1. package/dist/cli/commands.d.ts.map +1 -1
  2. package/dist/cli/commands.js +28 -0
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/history.d.ts +2 -0
  5. package/dist/cli/history.d.ts.map +1 -1
  6. package/dist/cli/history.js +7 -0
  7. package/dist/cli/history.js.map +1 -1
  8. package/dist/cli/repl.d.ts +11 -0
  9. package/dist/cli/repl.d.ts.map +1 -1
  10. package/dist/cli/repl.js +319 -51
  11. package/dist/cli/repl.js.map +1 -1
  12. package/dist/cli/tui/history-browser.d.ts +13 -0
  13. package/dist/cli/tui/history-browser.d.ts.map +1 -0
  14. package/dist/cli/tui/history-browser.js +135 -0
  15. package/dist/cli/tui/history-browser.js.map +1 -0
  16. package/dist/cli/tui/input-box.d.ts +31 -0
  17. package/dist/cli/tui/input-box.d.ts.map +1 -0
  18. package/dist/cli/tui/input-box.js +107 -0
  19. package/dist/cli/tui/input-box.js.map +1 -0
  20. package/dist/cli/tui/key-handler.d.ts +30 -0
  21. package/dist/cli/tui/key-handler.d.ts.map +1 -0
  22. package/dist/cli/tui/key-handler.js +161 -0
  23. package/dist/cli/tui/key-handler.js.map +1 -0
  24. package/dist/cli/tui/layout.d.ts +36 -0
  25. package/dist/cli/tui/layout.d.ts.map +1 -0
  26. package/dist/cli/tui/layout.js +36 -0
  27. package/dist/cli/tui/layout.js.map +1 -0
  28. package/dist/cli/tui/recents-panel.d.ts +14 -0
  29. package/dist/cli/tui/recents-panel.d.ts.map +1 -0
  30. package/dist/cli/tui/recents-panel.js +111 -0
  31. package/dist/cli/tui/recents-panel.js.map +1 -0
  32. package/dist/cli/tui/screen.d.ts +34 -0
  33. package/dist/cli/tui/screen.d.ts.map +1 -0
  34. package/dist/cli/tui/screen.js +59 -0
  35. package/dist/cli/tui/screen.js.map +1 -0
  36. package/dist/cli/tui/status-bar.d.ts +23 -0
  37. package/dist/cli/tui/status-bar.d.ts.map +1 -0
  38. package/dist/cli/tui/status-bar.js +50 -0
  39. package/dist/cli/tui/status-bar.js.map +1 -0
  40. package/dist/cli/ui/banner.d.ts +1 -0
  41. package/dist/cli/ui/banner.d.ts.map +1 -1
  42. package/dist/cli/ui/banner.js +28 -40
  43. package/dist/cli/ui/banner.js.map +1 -1
  44. package/dist/cli/ui/theme.d.ts +6 -0
  45. package/dist/cli/ui/theme.d.ts.map +1 -1
  46. package/dist/cli/ui/theme.js +18 -0
  47. package/dist/cli/ui/theme.js.map +1 -1
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAoRD,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAU7F"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAgTD,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAU7F"}
@@ -275,6 +275,34 @@ const commands = [
275
275
  await runSetupWizard({ rootDir: process.cwd(), runtimeDir: ctx.runtimeDir, soulDir: ctx.soulDir });
276
276
  },
277
277
  },
278
+ {
279
+ name: "prompts",
280
+ description: "Browse prompt history",
281
+ handler: async () => {
282
+ console.log(t.dim("\nUse Ctrl+R or type /prompts in the TUI to browse history.\n"));
283
+ },
284
+ },
285
+ {
286
+ name: "recents",
287
+ description: "Resume a recent session",
288
+ handler: async () => {
289
+ console.log(t.dim("\nUse /recents in the TUI to pick a session.\n"));
290
+ },
291
+ },
292
+ {
293
+ name: "context",
294
+ description: "Show context window usage",
295
+ handler: async () => {
296
+ const { TokenManager } = await import("../token/estimator.js");
297
+ const tm = new TokenManager();
298
+ const stats = tm.getStats();
299
+ const pct = Math.round((stats.sessionTokens / stats.budget.maxTokensPerSession) * 100);
300
+ console.log(t.bold("\nContext Usage:\n"));
301
+ console.log(` Session: ${stats.sessionTokens.toLocaleString()} / ${stats.budget.maxTokensPerSession.toLocaleString()} tokens (${pct}%)`);
302
+ console.log(` Daily: ${stats.dailyTokens.toLocaleString()} / ${stats.budget.maxTokensPerDay.toLocaleString()} tokens`);
303
+ console.log();
304
+ },
305
+ },
278
306
  {
279
307
  name: "exit",
280
308
  description: "Quit Wispy",
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export declare class CliHistory {
4
4
  constructor(runtimeDir: string);
5
5
  add(line: string): void;
6
6
  getAll(): string[];
7
+ getRecent(n: number): string[];
8
+ search(query: string): string[];
7
9
  save(): void;
8
10
  }
9
11
  //# sourceMappingURL=history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/cli/history.ts"],"names":[],"mappings":"AASA,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAW;gBAEd,UAAU,EAAE,MAAM;IAQ9B,GAAG,CAAC,IAAI,EAAE,MAAM;IAUhB,MAAM,IAAI,MAAM,EAAE;IAIlB,IAAI;CAGL"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/cli/history.ts"],"names":[],"mappings":"AASA,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAW;gBAEd,UAAU,EAAE,MAAM;IAQ9B,GAAG,CAAC,IAAI,EAAE,MAAM;IAUhB,MAAM,IAAI,MAAM,EAAE;IAIlB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAK/B,IAAI;CAGL"}
@@ -25,6 +25,13 @@ export class CliHistory {
25
25
  getAll() {
26
26
  return [...this.entries];
27
27
  }
28
+ getRecent(n) {
29
+ return this.entries.slice(-n);
30
+ }
31
+ search(query) {
32
+ const q = query.toLowerCase();
33
+ return this.entries.filter(e => e.toLowerCase().includes(q));
34
+ }
28
35
  save() {
29
36
  writeJSON(this.path, { entries: this.entries });
30
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/cli/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMlE,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,OAAO,UAAU;IACb,IAAI,CAAS;IACb,OAAO,CAAW;IAE1B,YAAY,UAAkB;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAe,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO;QAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/cli/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMlE,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,OAAO,UAAU;IACb,IAAI,CAAS;IACb,OAAO,CAAW;IAE1B,YAAY,UAAkB;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAe,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO;QAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,CAAS;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI;QACF,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Wispy REPL — Rich Terminal UI
3
+ *
4
+ * Uses raw stdin with ANSI escape codes for:
5
+ * - Persistent status bar (tokens, memory, session, context)
6
+ * - Bordered input box with full line editing
7
+ * - Double-ESC to clear prompt
8
+ * - History browsing (Ctrl+R)
9
+ * - Recents panel on launch
10
+ * - Scroll region for chat output
11
+ */
1
12
  export interface ReplOpts {
2
13
  rootDir: string;
3
14
  runtimeDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,iBAyJ7C"}
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2BH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,iBAka7C"}
package/dist/cli/repl.js CHANGED
@@ -1,9 +1,18 @@
1
- import * as readline from "readline";
1
+ /**
2
+ * Wispy REPL — Rich Terminal UI
3
+ *
4
+ * Uses raw stdin with ANSI escape codes for:
5
+ * - Persistent status bar (tokens, memory, session, context)
6
+ * - Bordered input box with full line editing
7
+ * - Double-ESC to clear prompt
8
+ * - History browsing (Ctrl+R)
9
+ * - Recents panel on launch
10
+ * - Scroll region for chat output
11
+ */
2
12
  import { existsSync } from "fs";
3
13
  import { join } from "path";
4
14
  import { showBanner } from "./ui/banner.js";
5
15
  import { t } from "./ui/theme.js";
6
- import { startSpinner, stopSpinner, updateSpinner } from "./ui/spinner.js";
7
16
  import { formatToolCall } from "./ui/tool-display.js";
8
17
  import { CliHistory } from "./history.js";
9
18
  import { handleSlashCommand } from "./commands.js";
@@ -14,16 +23,24 @@ import { initGemini } from "../ai/gemini.js";
14
23
  import { Agent } from "../core/agent.js";
15
24
  import { runBoot } from "../gateway/boot.js";
16
25
  import { logger } from "../infra/logger.js";
26
+ import { TokenManager } from "../token/estimator.js";
27
+ // TUI components
28
+ import { screen } from "./tui/screen.js";
29
+ import { KeyHandler } from "./tui/key-handler.js";
30
+ import { InputBox } from "./tui/input-box.js";
31
+ import { StatusBar } from "./tui/status-bar.js";
32
+ import { calculateLayout, onResize } from "./tui/layout.js";
33
+ import { showRecentsPanel } from "./tui/recents-panel.js";
34
+ import { browseHistory } from "./tui/history-browser.js";
17
35
  export async function startRepl(opts) {
18
36
  const { rootDir, runtimeDir, soulDir } = opts;
19
37
  loadEnv(rootDir);
20
- // First-run detection — show onboarding wizard if no config exists
38
+ // First-run detection
21
39
  const configPath = join(runtimeDir, "config.yaml");
22
40
  if (!existsSync(configPath)) {
23
41
  const { runSetupWizard } = await import("./setup/wizard.js");
24
42
  await runSetupWizard({ rootDir, runtimeDir, soulDir });
25
43
  }
26
- // Silence logs in REPL mode — no noisy boot output
27
44
  logger.level = "silent";
28
45
  const bootOk = await runBoot({ rootDir, runtimeDir, soulDir });
29
46
  if (!bootOk) {
@@ -31,7 +48,6 @@ export async function startRepl(opts) {
31
48
  process.exit(1);
32
49
  }
33
50
  const config = loadConfig(runtimeDir);
34
- // Apply saved theme
35
51
  if (config.theme) {
36
52
  const { setTheme } = await import("./ui/theme.js");
37
53
  setTheme(config.theme);
@@ -43,62 +59,162 @@ export async function startRepl(opts) {
43
59
  process.exit(1);
44
60
  }
45
61
  initGemini(apiKey);
46
- // Silence logs after boot so they don't pollute the REPL
47
62
  logger.level = "silent";
48
63
  const agent = new Agent({ config, runtimeDir, soulDir });
49
64
  const history = new CliHistory(runtimeDir);
50
- let currentSession = "cli-repl";
65
+ const tokenManager = new TokenManager();
66
+ let currentSession = "main";
51
67
  const cmdCtx = {
52
68
  agent,
53
69
  runtimeDir,
54
70
  soulDir,
55
71
  currentSession,
56
- setSession: (key) => { currentSession = key; cmdCtx.currentSession = key; },
72
+ setSession: (key) => {
73
+ currentSession = key;
74
+ cmdCtx.currentSession = key;
75
+ statusBar.setState({ session: key });
76
+ renderChrome();
77
+ },
57
78
  };
79
+ // ── Banner + Recents ─────────────────────────────────────────────
58
80
  showBanner();
59
- const rl = readline.createInterface({
60
- input: process.stdin,
61
- output: process.stdout,
62
- prompt: t.prompt,
63
- historySize: 200,
64
- });
65
- // Pre-load history into readline
66
- const pastEntries = history.getAll();
67
- for (const entry of pastEntries) {
68
- rl.history?.unshift(entry);
81
+ // Show recents panel (non-TUI — normal console output before TUI starts)
82
+ const picked = await showRecentsPanel(runtimeDir, config.agent.id);
83
+ if (picked) {
84
+ currentSession = picked;
85
+ cmdCtx.currentSession = picked;
69
86
  }
70
- rl.prompt();
71
- rl.on("line", async (line) => {
72
- const input = line.trim();
73
- if (!input) {
74
- rl.prompt();
87
+ // ── Initialize TUI ───────────────────────────────────────────────
88
+ let layout = calculateLayout();
89
+ const inputBox = new InputBox(layout);
90
+ const statusBar = new StatusBar(layout);
91
+ const keyHandler = new KeyHandler();
92
+ // Check memory status
93
+ const memoryDbPath = join(runtimeDir, "memory", "embeddings.db");
94
+ const memStatus = existsSync(memoryDbPath) ? "active" : "inactive";
95
+ statusBar.setState({ session: currentSession, memory: memStatus });
96
+ // History navigation state
97
+ let historyIndex = -1;
98
+ let savedInput = "";
99
+ const historyEntries = history.getAll();
100
+ // Is the agent currently responding?
101
+ let busy = false;
102
+ function renderChrome() {
103
+ screen.saveCursor();
104
+ statusBar.render();
105
+ inputBox.render();
106
+ screen.restoreCursor();
107
+ }
108
+ function moveToChatArea() {
109
+ screen.moveTo(layout.chatBottom, 1);
110
+ }
111
+ function writeChatLine(text) {
112
+ // Write to the scroll region — chat area scrolls naturally
113
+ screen.saveCursor();
114
+ moveToChatArea();
115
+ process.stdout.write(text);
116
+ screen.restoreCursor();
117
+ }
118
+ // ── Set up scroll region ─────────────────────────────────────────
119
+ screen.clear();
120
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
121
+ screen.moveTo(layout.chatTop, 1);
122
+ // Show a greeting in the chat area
123
+ console.log(t.brand(" Wispy") + t.dim(" is ready. Type a message or /help for commands.\n"));
124
+ renderChrome();
125
+ // ── Resize handler ───────────────────────────────────────────────
126
+ onResize((newLayout) => {
127
+ layout = newLayout;
128
+ inputBox.updateLayout(newLayout);
129
+ statusBar.updateLayout(newLayout);
130
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
131
+ renderChrome();
132
+ });
133
+ // ── Process input ────────────────────────────────────────────────
134
+ async function processInput(text) {
135
+ if (!text.trim())
75
136
  return;
76
- }
77
- history.add(input);
137
+ busy = true;
138
+ history.add(text);
139
+ historyIndex = -1;
140
+ // Echo user input in chat area
141
+ screen.saveCursor();
142
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
143
+ screen.moveTo(layout.chatBottom, 1);
144
+ console.log(t.user("You") + t.dim(": ") + text);
145
+ screen.restoreCursor();
78
146
  // Slash commands
79
- if (input.startsWith("/")) {
80
- await handleSlashCommand(input, cmdCtx);
81
- rl.prompt();
147
+ if (text.startsWith("/")) {
148
+ // Special handling for /prompts and /recents
149
+ if (text.trim() === "/prompts") {
150
+ keyHandler.stop();
151
+ const selected = await browseHistory(history, layout);
152
+ keyHandler.start();
153
+ if (selected) {
154
+ inputBox.setLine(selected);
155
+ }
156
+ renderChrome();
157
+ busy = false;
158
+ return;
159
+ }
160
+ if (text.trim() === "/recents") {
161
+ keyHandler.stop();
162
+ const sessionKey = await showRecentsPanel(runtimeDir, config.agent.id);
163
+ keyHandler.start();
164
+ if (sessionKey) {
165
+ currentSession = sessionKey;
166
+ cmdCtx.currentSession = sessionKey;
167
+ statusBar.setState({ session: sessionKey });
168
+ }
169
+ renderChrome();
170
+ busy = false;
171
+ return;
172
+ }
173
+ // Redirect console output to chat area
174
+ screen.saveCursor();
175
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
176
+ screen.moveTo(layout.chatBottom, 1);
177
+ try {
178
+ await handleSlashCommand(text, cmdCtx);
179
+ }
180
+ catch (err) {
181
+ console.error(t.err(`Command error: ${err instanceof Error ? err.message : String(err)}`));
182
+ }
183
+ screen.restoreCursor();
184
+ renderChrome();
185
+ busy = false;
82
186
  return;
83
187
  }
84
- // Chat with agent
188
+ // ── Chat with agent ──────────────────────────────────────────
189
+ const thinkStart = Date.now();
190
+ let outputTokenCount = 0;
191
+ // Show thinking indicator in status bar
192
+ statusBar.setState({ contextPercent: 0 });
193
+ renderChrome();
85
194
  try {
86
- const thinkStart = Date.now();
87
- const spinner = startSpinner("Thinking...");
88
195
  let firstText = true;
89
- for await (const chunk of agent.chatStream(input, "cli-user", "cli", "main")) {
196
+ screen.saveCursor();
197
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
198
+ screen.moveTo(layout.chatBottom, 1);
199
+ // Print agent label
200
+ process.stdout.write(t.agent("Wispy") + t.dim(": "));
201
+ for await (const chunk of agent.chatStream(text, "cli-user", "cli", "main")) {
90
202
  switch (chunk.type) {
91
- case "thinking":
92
- updateSpinner(`Thinking... (${((Date.now() - thinkStart) / 1000).toFixed(1)}s)`);
203
+ case "thinking": {
204
+ const elapsed = ((Date.now() - thinkStart) / 1000).toFixed(1);
205
+ statusBar.setState({ contextPercent: Math.min(99, Math.round(outputTokenCount / 10)) });
206
+ screen.saveCursor();
207
+ statusBar.render();
208
+ screen.restoreCursor();
93
209
  break;
210
+ }
94
211
  case "tool_call": {
95
- stopSpinner();
96
212
  const tc = {
97
213
  name: chunk.content,
98
214
  args: {},
99
215
  status: "pending",
100
216
  };
101
- process.stdout.write(formatToolCall(tc) + "\n");
217
+ process.stdout.write("\n" + formatToolCall(tc));
102
218
  break;
103
219
  }
104
220
  case "tool_result": {
@@ -108,42 +224,194 @@ export async function startRepl(opts) {
108
224
  status: "ok",
109
225
  result: chunk.content.slice(0, 200),
110
226
  };
111
- process.stdout.write(formatToolCall(tr) + "\n");
227
+ process.stdout.write("\n" + formatToolCall(tr));
112
228
  break;
113
229
  }
114
230
  case "text":
115
231
  if (firstText) {
116
- stopSpinner();
117
- console.log();
118
232
  firstText = false;
119
233
  }
120
234
  process.stdout.write(chunk.content);
235
+ // Live token count
236
+ outputTokenCount += Math.ceil(chunk.content.length / 4);
237
+ tokenManager.recordUsage("gemini-2.5-flash", 0, Math.ceil(chunk.content.length / 4));
238
+ const stats = tokenManager.getStats();
239
+ statusBar.setState({
240
+ tokens: stats.sessionTokens,
241
+ cost: stats.sessionCost,
242
+ });
243
+ screen.saveCursor();
244
+ statusBar.render();
245
+ screen.restoreCursor();
121
246
  break;
122
247
  case "done":
123
- if (firstText)
124
- stopSpinner();
125
248
  break;
126
249
  }
127
250
  }
128
- // Final newline + render markdown for the full response
129
- console.log("\n");
251
+ process.stdout.write("\n\n");
252
+ screen.restoreCursor();
130
253
  }
131
254
  catch (err) {
132
- stopSpinner();
133
255
  console.error(t.err(`\nError: ${err instanceof Error ? err.message : String(err)}\n`));
256
+ screen.restoreCursor();
134
257
  }
135
- rl.prompt();
258
+ renderChrome();
259
+ busy = false;
260
+ }
261
+ // ── Key handler events ───────────────────────────────────────────
262
+ keyHandler.on("char", (ev) => {
263
+ if (busy)
264
+ return;
265
+ inputBox.insert(ev.sequence);
266
+ historyIndex = -1;
267
+ inputBox.render();
136
268
  });
137
- rl.on("close", () => {
138
- history.save();
139
- console.log(t.dim("\nGoodbye!\n"));
140
- process.exit(0);
269
+ keyHandler.on("backspace", () => {
270
+ if (busy)
271
+ return;
272
+ inputBox.backspace();
273
+ inputBox.render();
274
+ });
275
+ keyHandler.on("delete", () => {
276
+ if (busy)
277
+ return;
278
+ inputBox.deleteChar();
279
+ inputBox.render();
280
+ });
281
+ keyHandler.on("left", () => {
282
+ if (busy)
283
+ return;
284
+ inputBox.moveCursorLeft();
285
+ inputBox.render();
286
+ });
287
+ keyHandler.on("right", () => {
288
+ if (busy)
289
+ return;
290
+ inputBox.moveCursorRight();
291
+ inputBox.render();
292
+ });
293
+ keyHandler.on("home", () => {
294
+ if (busy)
295
+ return;
296
+ inputBox.home();
297
+ inputBox.render();
141
298
  });
142
- // Handle Ctrl+C gracefully
143
- rl.on("SIGINT", () => {
299
+ keyHandler.on("end", () => {
300
+ if (busy)
301
+ return;
302
+ inputBox.end();
303
+ inputBox.render();
304
+ });
305
+ keyHandler.on("enter", () => {
306
+ if (busy)
307
+ return;
308
+ const text = inputBox.submit();
309
+ inputBox.render();
310
+ if (text.trim()) {
311
+ processInput(text);
312
+ }
313
+ });
314
+ keyHandler.on("double-esc", () => {
315
+ if (busy)
316
+ return;
317
+ const cleared = inputBox.clear();
318
+ if (cleared) {
319
+ screen.saveCursor();
320
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
321
+ screen.moveTo(layout.chatBottom, 1);
322
+ console.log(t.dim(" (input cleared)"));
323
+ screen.restoreCursor();
324
+ }
325
+ inputBox.render();
326
+ });
327
+ keyHandler.on("up", () => {
328
+ if (busy)
329
+ return;
330
+ if (historyIndex === -1) {
331
+ savedInput = inputBox.getBuffer();
332
+ }
333
+ if (historyIndex < historyEntries.length - 1) {
334
+ historyIndex++;
335
+ const entry = historyEntries[historyEntries.length - 1 - historyIndex];
336
+ if (entry)
337
+ inputBox.setLine(entry);
338
+ inputBox.render();
339
+ }
340
+ });
341
+ keyHandler.on("down", () => {
342
+ if (busy)
343
+ return;
344
+ if (historyIndex > 0) {
345
+ historyIndex--;
346
+ const entry = historyEntries[historyEntries.length - 1 - historyIndex];
347
+ if (entry)
348
+ inputBox.setLine(entry);
349
+ inputBox.render();
350
+ }
351
+ else if (historyIndex === 0) {
352
+ historyIndex = -1;
353
+ inputBox.setLine(savedInput);
354
+ inputBox.render();
355
+ }
356
+ });
357
+ keyHandler.on("ctrl-r", async () => {
358
+ if (busy)
359
+ return;
360
+ keyHandler.stop();
361
+ const selected = await browseHistory(history, layout);
362
+ keyHandler.start();
363
+ if (selected) {
364
+ inputBox.setLine(selected);
365
+ }
366
+ renderChrome();
367
+ });
368
+ keyHandler.on("tab", async () => {
369
+ if (busy)
370
+ return;
371
+ const buf = inputBox.getBuffer();
372
+ if (buf.startsWith("/")) {
373
+ const partial = buf.slice(1).toLowerCase();
374
+ const { getCommands } = await import("./commands.js");
375
+ const cmds = getCommands();
376
+ const match = cmds.find((c) => c.name.startsWith(partial));
377
+ if (match) {
378
+ inputBox.setLine("/" + match.name + " ");
379
+ inputBox.render();
380
+ }
381
+ }
382
+ });
383
+ keyHandler.on("sigint", () => {
384
+ shutdown();
385
+ });
386
+ function shutdown() {
144
387
  history.save();
388
+ keyHandler.stop();
389
+ screen.resetScrollRegion();
390
+ screen.showCursor();
391
+ screen.moveTo(layout.height, 1);
145
392
  console.log(t.dim("\nGoodbye!\n"));
146
393
  process.exit(0);
394
+ }
395
+ // Prevent crashes
396
+ process.on("uncaughtException", (err) => {
397
+ screen.saveCursor();
398
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
399
+ screen.moveTo(layout.chatBottom, 1);
400
+ console.error(t.err(`Fatal: ${err.message}`));
401
+ screen.restoreCursor();
402
+ busy = false;
403
+ renderChrome();
404
+ });
405
+ process.on("unhandledRejection", (err) => {
406
+ screen.saveCursor();
407
+ screen.scrollRegion(layout.chatTop, layout.chatBottom);
408
+ screen.moveTo(layout.chatBottom, 1);
409
+ console.error(t.err(`Error: ${err instanceof Error ? err.message : String(err)}`));
410
+ screen.restoreCursor();
411
+ busy = false;
412
+ renderChrome();
147
413
  });
414
+ // ── Start ────────────────────────────────────────────────────────
415
+ keyHandler.start();
148
416
  }
149
417
  //# sourceMappingURL=repl.js.map