paean 0.7.4 → 0.7.6

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 (74) hide show
  1. package/README.md +17 -0
  2. package/dist/agent/chat.legacy.d.ts.map +1 -1
  3. package/dist/agent/chat.legacy.js +37 -27
  4. package/dist/agent/chat.legacy.js.map +1 -1
  5. package/dist/agent/completer.d.ts +8 -1
  6. package/dist/agent/completer.d.ts.map +1 -1
  7. package/dist/agent/completer.js +51 -10
  8. package/dist/agent/completer.js.map +1 -1
  9. package/dist/agent/renderer.d.ts +23 -1
  10. package/dist/agent/renderer.d.ts.map +1 -1
  11. package/dist/agent/renderer.js +78 -22
  12. package/dist/agent/renderer.js.map +1 -1
  13. package/dist/agent/spinner.d.ts +12 -0
  14. package/dist/agent/spinner.d.ts.map +1 -1
  15. package/dist/agent/spinner.js +78 -0
  16. package/dist/agent/spinner.js.map +1 -1
  17. package/dist/commands/agent.d.ts.map +1 -1
  18. package/dist/commands/agent.js +59 -16
  19. package/dist/commands/agent.js.map +1 -1
  20. package/dist/commands/worker.d.ts.map +1 -1
  21. package/dist/commands/worker.js +3 -2
  22. package/dist/commands/worker.js.map +1 -1
  23. package/dist/mcp/worker-tools.js +1 -1
  24. package/dist/mcp/worker-tools.js.map +1 -1
  25. package/dist/ui/App.d.ts +1 -0
  26. package/dist/ui/App.d.ts.map +1 -1
  27. package/dist/ui/App.js +4 -2
  28. package/dist/ui/App.js.map +1 -1
  29. package/dist/ui/components/Header.d.ts +2 -1
  30. package/dist/ui/components/Header.d.ts.map +1 -1
  31. package/dist/ui/components/Header.js +13 -1
  32. package/dist/ui/components/Header.js.map +1 -1
  33. package/dist/ui/components/InputArea.d.ts +1 -1
  34. package/dist/ui/components/InputArea.d.ts.map +1 -1
  35. package/dist/ui/components/InputArea.js +51 -34
  36. package/dist/ui/components/InputArea.js.map +1 -1
  37. package/dist/ui/components/MarkdownText.d.ts +16 -0
  38. package/dist/ui/components/MarkdownText.d.ts.map +1 -0
  39. package/dist/ui/components/MarkdownText.js +160 -0
  40. package/dist/ui/components/MarkdownText.js.map +1 -0
  41. package/dist/ui/components/Spinner.d.ts +4 -2
  42. package/dist/ui/components/Spinner.d.ts.map +1 -1
  43. package/dist/ui/components/Spinner.js +60 -3
  44. package/dist/ui/components/Spinner.js.map +1 -1
  45. package/dist/ui/components/StreamingText.d.ts +6 -0
  46. package/dist/ui/components/StreamingText.d.ts.map +1 -1
  47. package/dist/ui/components/StreamingText.js +32 -6
  48. package/dist/ui/components/StreamingText.js.map +1 -1
  49. package/dist/ui/components/index.d.ts +1 -0
  50. package/dist/ui/components/index.d.ts.map +1 -1
  51. package/dist/ui/components/index.js +1 -0
  52. package/dist/ui/components/index.js.map +1 -1
  53. package/dist/ui/hooks/useAgentStream.d.ts.map +1 -1
  54. package/dist/ui/hooks/useAgentStream.js +2 -1
  55. package/dist/ui/hooks/useAgentStream.js.map +1 -1
  56. package/dist/ui/theme/ink-theme.d.ts +39 -0
  57. package/dist/ui/theme/ink-theme.d.ts.map +1 -0
  58. package/dist/ui/theme/ink-theme.js +53 -0
  59. package/dist/ui/theme/ink-theme.js.map +1 -0
  60. package/dist/worker/executors/droid.d.ts +29 -0
  61. package/dist/worker/executors/droid.d.ts.map +1 -0
  62. package/dist/worker/executors/droid.js +121 -0
  63. package/dist/worker/executors/droid.js.map +1 -0
  64. package/dist/worker/index.d.ts +1 -0
  65. package/dist/worker/index.d.ts.map +1 -1
  66. package/dist/worker/index.js +1 -0
  67. package/dist/worker/index.js.map +1 -1
  68. package/dist/worker/supervisor.js +1 -1
  69. package/dist/worker/supervisor.js.map +1 -1
  70. package/dist/worker/types.d.ts +1 -1
  71. package/dist/worker/types.d.ts.map +1 -1
  72. package/dist/worker/types.js +1 -0
  73. package/dist/worker/types.js.map +1 -1
  74. package/package.json +3 -1
package/README.md CHANGED
@@ -152,6 +152,23 @@ const response = await sendMessage("Hello");
152
152
  - Node.js 18+ or Bun
153
153
  - Paean AI account
154
154
 
155
+ ## Development
156
+
157
+ ### Running Locally
158
+
159
+ For development and debugging, **use npm/node instead of bun** to run the interactive agent mode. The [Ink](https://github.com/vadimdemedes/ink) library (React for CLI) has compatibility issues with Bun's runtime:
160
+
161
+ ```bash
162
+ # Recommended: Use npm for development
163
+ npm run dev:node
164
+
165
+ # Or run directly with node
166
+ node --import tsx src/cli.ts
167
+
168
+ # Bun works for building but may have Ink rendering issues
169
+ bun run dev # Not recommended for interactive mode
170
+ ```
171
+
155
172
  ## Links
156
173
 
157
174
  - **Website**: https://paean.ai
@@ -1 +1 @@
1
- {"version":3,"file":"chat.legacy.d.ts","sourceRoot":"","sources":["../../src/agent/chat.legacy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8XxE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
1
+ {"version":3,"file":"chat.legacy.d.ts","sourceRoot":"","sources":["../../src/agent/chat.legacy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiCH,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8YxE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
@@ -6,14 +6,10 @@
6
6
  import * as readline from 'readline';
7
7
  import chalk from 'chalk';
8
8
  import { agentService } from './service.js';
9
- import { renderMarkdown, renderError, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderThinking, renderSparkletCreated, renderMediaGenerated, } from './renderer.js';
9
+ import { renderMarkdown, renderError, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderSparkletCreated, renderMediaGenerated, renderInputBoxTop, renderInputBoxBottom, indentMultilineResponse, } from './renderer.js';
10
10
  import { success, error as errorColor, warning, muted, primary, mcpSymbol, toolSymbol, } from '../ui/theme/index.js';
11
- // Spinner imports (kept for future use)
12
- // import {
13
- // createThinkingSpinner,
14
- // createMcpSpinner,
15
- // type SpinnerController,
16
- // } from './spinner.js';
11
+ // Import thinking animation
12
+ import { createThinkingAnimation } from './spinner.js';
17
13
  import { commandCompleter, renderCommandHelp, } from './completer.js';
18
14
  import { isCliModeActive, isRawStreamEnabled, } from './cli-mode.js';
19
15
  /**
@@ -98,11 +94,15 @@ export async function startChat(options = {}) {
98
94
  };
99
95
  process.on('exit', cleanup);
100
96
  process.on('SIGTERM', cleanup);
101
- // Prompt for user input
97
+ // Prompt for user input with styled input box
102
98
  const promptUser = () => {
103
99
  try {
100
+ // Display input box top border
101
+ console.log(renderInputBoxTop());
104
102
  rl.question(renderPrompt(), async (input) => {
105
103
  try {
104
+ // Display input box bottom border after input
105
+ console.log(renderInputBoxBottom());
106
106
  const trimmedInput = input.trim();
107
107
  if (!trimmedInput) {
108
108
  promptUser();
@@ -210,14 +210,15 @@ export async function startChat(options = {}) {
210
210
  isProcessing = true;
211
211
  let responseText = '';
212
212
  let isFirstContent = true;
213
- // Print thinking indicator (use simple text, not ora spinner)
214
- process.stdout.write('\n' + renderThinking());
213
+ // Create and start the thinking animation
214
+ const thinkingAnimation = createThinkingAnimation();
215
+ thinkingAnimation.start();
215
216
  const callbacks = {
216
217
  onContent: (text, partial) => {
217
218
  if (rawStreamEnabled && partial) {
218
219
  // Raw stream mode: output directly
219
220
  if (isFirstContent) {
220
- process.stdout.write('\r\x1b[K'); // Clear thinking
221
+ thinkingAnimation.clear();
221
222
  process.stdout.write(renderAgentLabel());
222
223
  isFirstContent = false;
223
224
  }
@@ -227,6 +228,11 @@ export async function startChat(options = {}) {
227
228
  // Buffered mode: accumulate text
228
229
  if (partial) {
229
230
  responseText += text;
231
+ // Update animation to show receiving progress
232
+ const charCount = responseText.length;
233
+ if (charCount > 0) {
234
+ thinkingAnimation.updateText(`📝 Receiving... (${charCount} chars)`);
235
+ }
230
236
  }
231
237
  else {
232
238
  responseText = text;
@@ -235,32 +241,31 @@ export async function startChat(options = {}) {
235
241
  },
236
242
  onToolCall: (_id, name) => {
237
243
  if (debug) {
244
+ thinkingAnimation.stop();
238
245
  process.stdout.write('\r\x1b[K');
239
246
  console.log(muted(`${toolSymbol()} ${primary(name)}...`));
240
- process.stdout.write(renderThinking());
247
+ thinkingAnimation.start();
241
248
  }
242
249
  },
243
250
  onToolResult: (_id, _name) => {
244
- if (debug) {
245
- process.stdout.write('\r\x1b[K');
246
- process.stdout.write(renderThinking());
247
- }
251
+ // Tool completed, animation continues
248
252
  },
249
253
  onMcpToolCall: async (callId, serverName, toolName, args) => {
250
- // Clear thinking and show MCP call
254
+ // Pause animation and show MCP call
255
+ thinkingAnimation.stop();
251
256
  process.stdout.write('\r\x1b[K');
252
257
  console.log(muted(`${mcpSymbol()} [${warning(serverName)}] ${primary(toolName)}...`));
253
258
  if (onMcpToolCall) {
254
259
  try {
255
260
  const result = await onMcpToolCall(callId, serverName, toolName, args);
256
261
  console.log(muted(`${success('✓')} [${warning(serverName)}] ${primary(toolName)} completed`));
257
- // Restore thinking indicator
258
- process.stdout.write(renderThinking());
262
+ // Resume thinking animation
263
+ thinkingAnimation.start();
259
264
  return result;
260
265
  }
261
266
  catch (error) {
262
267
  console.log(muted(`${errorColor('✗')} [${warning(serverName)}] ${primary(toolName)} failed`));
263
- process.stdout.write(renderThinking());
268
+ thinkingAnimation.start();
264
269
  return {
265
270
  content: [
266
271
  {
@@ -272,7 +277,7 @@ export async function startChat(options = {}) {
272
277
  };
273
278
  }
274
279
  }
275
- process.stdout.write(renderThinking());
280
+ thinkingAnimation.start();
276
281
  return {
277
282
  content: [{ type: 'text', text: 'MCP not available' }],
278
283
  isError: true,
@@ -280,9 +285,9 @@ export async function startChat(options = {}) {
280
285
  },
281
286
  onDone: (convId) => {
282
287
  conversationId = convId;
283
- // Clear thinking indicator
288
+ // Clear thinking animation
289
+ thinkingAnimation.clear();
284
290
  try {
285
- process.stdout.write('\r\x1b[K');
286
291
  if (responseText) {
287
292
  if (rawStreamEnabled) {
288
293
  // Raw mode: just add newline (content already streamed)
@@ -294,7 +299,9 @@ export async function startChat(options = {}) {
294
299
  const rendered = cliModeEnabled
295
300
  ? responseText // CLI mode: plain text
296
301
  : renderMarkdown(responseText); // Normal: markdown
297
- console.log(rendered.trim());
302
+ // Indent multiline responses for better alignment
303
+ const indented = indentMultilineResponse(rendered.trim(), 2);
304
+ console.log(indented);
298
305
  }
299
306
  }
300
307
  console.log(''); // New line after response
@@ -306,17 +313,19 @@ export async function startChat(options = {}) {
306
313
  currentStreamAbort = null;
307
314
  },
308
315
  onSparkletCreated: (hashKey, title) => {
316
+ thinkingAnimation.stop();
309
317
  process.stdout.write('\r\x1b[K'); // Clear line
310
318
  console.log(renderSparkletCreated(hashKey, title));
311
- process.stdout.write(renderThinking());
319
+ thinkingAnimation.start();
312
320
  },
313
321
  onMediaGenerated: (media) => {
322
+ thinkingAnimation.stop();
314
323
  process.stdout.write('\r\x1b[K'); // Clear line
315
324
  console.log(renderMediaGenerated(media.assetType, media.fileName, media.signedUrl));
316
- process.stdout.write(renderThinking());
325
+ thinkingAnimation.start();
317
326
  },
318
327
  onError: (error) => {
319
- process.stdout.write('\r\x1b[K'); // Clear line
328
+ thinkingAnimation.clear();
320
329
  console.log(renderError(error));
321
330
  isProcessing = false;
322
331
  currentStreamAbort = null;
@@ -331,6 +340,7 @@ export async function startChat(options = {}) {
331
340
  currentStreamAbort = abort;
332
341
  }
333
342
  catch (error) {
343
+ thinkingAnimation.clear();
334
344
  console.log(renderError(error.message));
335
345
  isProcessing = false;
336
346
  currentStreamAbort = null;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.legacy.js","sourceRoot":"","sources":["../../src/agent/chat.legacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.legacy.js","sourceRoot":"","sources":["../../src/agent/chat.legacy.ts"],"names":[],"mappings":"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"}
@@ -20,12 +20,13 @@ export declare const COMMANDS: CommandDef[];
20
20
  export declare function getAllCommandNames(): string[];
21
21
  /**
22
22
  * Readline completer function for slash commands
23
+ * Enhanced to show descriptions when multiple matches
23
24
  * @param line Current input line
24
25
  * @returns [completions, substring] tuple for readline
25
26
  */
26
27
  export declare function commandCompleter(line: string): [string[], string];
27
28
  /**
28
- * Render command help as formatted string
29
+ * Render command help as formatted string with clean styling
29
30
  */
30
31
  export declare function renderCommandHelp(): string;
31
32
  /**
@@ -36,4 +37,10 @@ export declare function isCommand(input: string): boolean;
36
37
  * Get command definition by name (including alias lookup)
37
38
  */
38
39
  export declare function getCommandDef(input: string): CommandDef | undefined;
40
+ /**
41
+ * Render command suggestions inline (for real-time display)
42
+ * @param input Current input (starting with /)
43
+ * @returns Formatted suggestion string
44
+ */
45
+ export declare function renderCommandSuggestions(input: string): string;
39
46
  //# sourceMappingURL=completer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completer.d.ts","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,EAShC,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAqBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAyB1C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAenE"}
1
+ {"version":3,"file":"completer.d.ts","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,EAShC,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAkCjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAgC1C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAenE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA0B9D"}
@@ -31,6 +31,7 @@ export function getAllCommandNames() {
31
31
  }
32
32
  /**
33
33
  * Readline completer function for slash commands
34
+ * Enhanced to show descriptions when multiple matches
34
35
  * @param line Current input line
35
36
  * @returns [completions, substring] tuple for readline
36
37
  */
@@ -45,34 +46,49 @@ export function commandCompleter(line) {
45
46
  if (matches.length === 1) {
46
47
  return [matches, line];
47
48
  }
48
- // If multiple matches or no matches, show all matching commands
49
+ // If multiple matches, show formatted suggestions with descriptions
49
50
  if (matches.length > 0) {
51
+ // Filter to unique primary commands for cleaner display
52
+ const primaryMatches = matches.filter(m => COMMANDS.some(c => c.name === m));
53
+ if (primaryMatches.length > 0) {
54
+ return [primaryMatches, line];
55
+ }
50
56
  return [matches, line];
51
57
  }
52
- // No matches - show all commands
53
- return [COMMANDS.map(c => c.name), line];
58
+ // No matches but starts with / - show all commands
59
+ if (line === '/') {
60
+ // Show all primary commands
61
+ return [COMMANDS.map(c => c.name), line];
62
+ }
63
+ return [[], line];
54
64
  }
55
65
  /**
56
- * Render command help as formatted string
66
+ * Render command help as formatted string with clean styling
57
67
  */
58
68
  export function renderCommandHelp() {
69
+ const width = process.stdout.columns || 80;
70
+ const line = '─'.repeat(width);
59
71
  const lines = [
60
72
  '',
61
- info('Available Commands:'),
73
+ muted(line),
74
+ info(' 📋 Available Commands'),
62
75
  '',
63
76
  ];
64
77
  for (const cmd of COMMANDS) {
65
78
  const aliases = cmd.aliases?.length
66
79
  ? muted(` (${cmd.aliases.join(', ')})`)
67
80
  : '';
68
- lines.push(` ${success(cmd.name.padEnd(12))} ${muted(cmd.description)}${aliases}`);
81
+ lines.push(` ${success(cmd.name.padEnd(10))} ${muted(cmd.description)}${aliases}`);
69
82
  }
70
83
  lines.push('');
71
- lines.push(info('Shortcuts:'));
72
- lines.push(` ${warning('Ctrl+C')} Exit or abort current operation`);
73
- lines.push(` ${warning('Tab')} Command completion`);
84
+ lines.push(info(' ⌨️ Shortcuts'));
85
+ lines.push('');
86
+ lines.push(` ${warning('Ctrl+C')} Exit or abort current operation`);
87
+ lines.push(` ${warning('Tab')} Command completion`);
88
+ lines.push(` ${warning('↑/↓')} History navigation`);
74
89
  lines.push('');
75
- lines.push(muted(' Press Tab after / to autocomplete commands'));
90
+ lines.push(muted(' 💡 Type / and press Tab to autocomplete commands'));
91
+ lines.push(muted(line));
76
92
  lines.push('');
77
93
  return lines.join('\n');
78
94
  }
@@ -100,4 +116,29 @@ export function getCommandDef(input) {
100
116
  }
101
117
  return undefined;
102
118
  }
119
+ /**
120
+ * Render command suggestions inline (for real-time display)
121
+ * @param input Current input (starting with /)
122
+ * @returns Formatted suggestion string
123
+ */
124
+ export function renderCommandSuggestions(input) {
125
+ if (!input.startsWith('/')) {
126
+ return '';
127
+ }
128
+ const allNames = getAllCommandNames();
129
+ const matches = allNames.filter(name => name.toLowerCase().startsWith(input.toLowerCase()) && name !== input.toLowerCase());
130
+ if (matches.length === 0) {
131
+ return '';
132
+ }
133
+ // Show up to 5 suggestions
134
+ const displayMatches = matches.slice(0, 5);
135
+ const suggestions = displayMatches.map(name => {
136
+ const cmd = COMMANDS.find(c => c.name === name || c.aliases?.includes(name));
137
+ const desc = cmd ? muted(` ${cmd.description}`) : '';
138
+ return ` ${success(name)}${desc}`;
139
+ });
140
+ const header = muted(' ┌─ Commands ─────────────────────────────────');
141
+ const footer = muted(' └─────────────────────────── Tab to complete');
142
+ return '\n' + header + '\n' + suggestions.join('\n') + '\n' + footer;
143
+ }
103
144
  //# sourceMappingURL=completer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"completer.js","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completer.js","sourceRoot":"","sources":["../../src/agent/completer.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * Render markdown text to styled terminal output
7
+ * Uses synchronous parsing to ensure consistent results
7
8
  */
8
9
  export declare function renderMarkdown(text: string): string;
9
10
  /**
@@ -30,16 +31,32 @@ export declare function renderError(message: string): string;
30
31
  * Render a success message
31
32
  */
32
33
  export declare function renderSuccess(message: string): string;
34
+ /**
35
+ * Get current terminal width
36
+ */
37
+ export declare function getTerminalWidth(): number;
38
+ /**
39
+ * Render the input separator line (top) - simple horizontal line
40
+ */
41
+ export declare function renderInputBoxTop(): string;
42
+ /**
43
+ * Render the input separator line (bottom)
44
+ */
45
+ export declare function renderInputBoxBottom(): string;
33
46
  /**
34
47
  * Render the agent prompt
35
48
  */
36
49
  export declare function renderPrompt(): string;
50
+ /**
51
+ * Render simple prompt (without box)
52
+ */
53
+ export declare function renderSimplePrompt(): string;
37
54
  /**
38
55
  * Render the agent label
39
56
  */
40
57
  export declare function renderAgentLabel(): string;
41
58
  /**
42
- * Render welcome message
59
+ * Render welcome message with clean styling
43
60
  */
44
61
  export declare function renderWelcome(mcpToolCount?: number): string;
45
62
  /**
@@ -50,6 +67,11 @@ export declare function renderGoodbye(): string;
50
67
  * Render thinking indicator
51
68
  */
52
69
  export declare function renderThinking(): string;
70
+ /**
71
+ * Indent multiline text for consistent display
72
+ * Adds prefix to continuation lines after the first
73
+ */
74
+ export declare function indentMultilineResponse(text: string, indentSize?: number): string;
53
75
  /**
54
76
  * Render sparklet created indicator
55
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoDH;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAanD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAc,GACxB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,OAAO,GAAG,OAAO,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAKR"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwDH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAc,GACxB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,MAAM,CAUpF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,OAAO,GAAG,OAAO,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAKR"}
@@ -5,8 +5,9 @@
5
5
  import { Marked } from 'marked';
6
6
  import { markedTerminal } from 'marked-terminal';
7
7
  import chalk from 'chalk';
8
- import { primary, primaryBold, success, warning, error, muted, bold, code as codeStyle, link, toolSymbol, mcpSymbol, symbols, getLogoAscii, } from '../ui/theme/index.js';
8
+ import { primary, primaryBold, secondary, success, warning, error, muted, bold, code as codeStyle, link, toolSymbol, mcpSymbol, symbols, getLogoAscii, } from '../ui/theme/index.js';
9
9
  // Configure marked with terminal renderer
10
+ // Use synchronous parsing by setting async: false
10
11
  const marked = new Marked();
11
12
  marked.use(markedTerminal({
12
13
  // Code blocks
@@ -15,17 +16,19 @@ marked.use(markedTerminal({
15
16
  // Headers
16
17
  heading: primary.bold,
17
18
  firstHeading: primaryBold,
18
- // Text styles
19
- strong: chalk.bold,
20
- em: chalk.italic,
21
- del: chalk.strikethrough.gray,
19
+ // Text styles - use explicit chalk functions for consistent rendering
20
+ strong: (text) => chalk.bold(text),
21
+ em: (text) => chalk.italic(text),
22
+ del: (text) => chalk.strikethrough.gray(text),
22
23
  // Links and references
23
24
  link: link,
24
25
  href: link,
25
26
  // Lists
26
27
  listitem: chalk.reset,
27
- // Code highlighting
28
- codespan: warning,
28
+ // Code highlighting - inline code
29
+ codespan: (text) => chalk.yellow(text),
30
+ // Paragraph - ensure proper rendering
31
+ paragraph: (text) => text,
29
32
  // Misc
30
33
  unescape: true,
31
34
  emoji: true,
@@ -36,19 +39,28 @@ marked.use(markedTerminal({
36
39
  }));
37
40
  /**
38
41
  * Render markdown text to styled terminal output
42
+ * Uses synchronous parsing to ensure consistent results
39
43
  */
40
44
  export function renderMarkdown(text) {
45
+ if (!text || typeof text !== 'string') {
46
+ return text || '';
47
+ }
41
48
  try {
42
- const result = marked.parse(text);
43
- // Handle both sync and async results (marked can return a promise)
49
+ // marked.parse can return string | Promise<string>
50
+ // With async: false, it should always return a string synchronously
51
+ const result = marked.parse(text, { async: false });
44
52
  if (typeof result === 'string') {
45
53
  return result;
46
54
  }
47
- // If it's a promise, we'll handle it synchronously for now
55
+ // Fallback: if somehow we got a promise, return original text
56
+ console.warn('[renderMarkdown] Unexpected async result');
48
57
  return text;
49
58
  }
50
- catch {
59
+ catch (err) {
51
60
  // Fallback to plain text on error
61
+ if (process.env.DEBUG) {
62
+ console.error('[renderMarkdown] Error:', err);
63
+ }
52
64
  return text;
53
65
  }
54
66
  }
@@ -90,37 +102,65 @@ export function renderError(message) {
90
102
  export function renderSuccess(message) {
91
103
  return success(`${symbols.success} ${message}`);
92
104
  }
105
+ /**
106
+ * Get current terminal width
107
+ */
108
+ export function getTerminalWidth() {
109
+ return process.stdout.columns || 80;
110
+ }
111
+ /**
112
+ * Render the input separator line (top) - simple horizontal line
113
+ */
114
+ export function renderInputBoxTop() {
115
+ const width = getTerminalWidth();
116
+ const line = '─'.repeat(width);
117
+ return muted(line);
118
+ }
119
+ /**
120
+ * Render the input separator line (bottom)
121
+ */
122
+ export function renderInputBoxBottom() {
123
+ const width = getTerminalWidth();
124
+ const line = '─'.repeat(width);
125
+ return muted(line);
126
+ }
93
127
  /**
94
128
  * Render the agent prompt
95
129
  */
96
130
  export function renderPrompt() {
131
+ return `${primary('❯')} `;
132
+ }
133
+ /**
134
+ * Render simple prompt (without box)
135
+ */
136
+ export function renderSimplePrompt() {
97
137
  return primaryBold('You: ');
98
138
  }
99
139
  /**
100
140
  * Render the agent label
101
141
  */
102
142
  export function renderAgentLabel() {
103
- return primaryBold('Pæan: ');
143
+ return `${secondary('❯')} ${primaryBold('Pæan: ')}`;
104
144
  }
105
145
  /**
106
- * Render welcome message
146
+ * Render welcome message with clean styling
107
147
  */
108
148
  export function renderWelcome(mcpToolCount) {
109
- const width = process.stdout.columns || 80;
110
- const line = primary('─'.repeat(Math.min(width, 60)));
149
+ const width = getTerminalWidth();
150
+ const line = '─'.repeat(width);
111
151
  const lines = [
112
152
  '',
113
153
  primary(getLogoAscii()),
114
- line,
154
+ muted(line),
115
155
  bold(' Interactive Agent Session'),
116
- muted(' Type /help for commands, Ctrl+C to exit'),
117
- line,
118
- '',
119
156
  ];
120
157
  if (mcpToolCount !== undefined && mcpToolCount > 0) {
121
- lines.push(muted(` ${mcpSymbol()} MCP: ${success(mcpToolCount)} tools connected`));
158
+ lines.push(` ${mcpSymbol()} MCP: ${success(mcpToolCount.toString())} tools connected`);
122
159
  }
123
- lines.push(muted(' Type your message and press Enter to send.'), muted(' Press Ctrl+C to exit.'), '');
160
+ lines.push(muted(' 💡 Type your message and press Enter to send'));
161
+ lines.push(muted(' ⌨️ Type / then Tab for commands, Ctrl+C to exit'));
162
+ lines.push(muted(line));
163
+ lines.push('');
124
164
  return lines.join('\n');
125
165
  }
126
166
  /**
@@ -133,7 +173,23 @@ export function renderGoodbye() {
133
173
  * Render thinking indicator
134
174
  */
135
175
  export function renderThinking() {
136
- return muted('💭 Thinking...');
176
+ return `${secondary('❯')} ${muted('💭 Thinking...')}`;
177
+ }
178
+ /**
179
+ * Indent multiline text for consistent display
180
+ * Adds prefix to continuation lines after the first
181
+ */
182
+ export function indentMultilineResponse(text, indentSize = 2) {
183
+ const lines = text.split('\n');
184
+ if (lines.length <= 1) {
185
+ return text;
186
+ }
187
+ const indent = ' '.repeat(indentSize);
188
+ return lines.map((line, index) => {
189
+ if (index === 0)
190
+ return line;
191
+ return indent + line;
192
+ }).join('\n');
137
193
  }
138
194
  /**
139
195
  * Render sparklet created indicator