@orbitpanel/cli 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Box drawing and below-prompt rendering for @orbitpanel/cli.
3
+ *
4
+ * Visual frame around the prompt area (gum-inspired):
5
+ *
6
+ * ╭──────────────────────────────────╮
7
+ * │ orbit ❯ user types here...
8
+ * ╰──────────────────────────────────╯
9
+ * ❯ /session start avvia sessione
10
+ * /session end chiudi sessione
11
+ * ▎ acme.com │ local-dev │ main │ idle ▕
12
+ *
13
+ * Uses DEC save/restore (\x1b7/\x1b8) for cursor management.
14
+ * Works in xterm.js (VS Code/Cursor). No scroll regions.
15
+ */
16
+ export declare function topBorder(width: number): string;
17
+ export declare function bottomBorder(width: number): string;
18
+ /** Prompt string for readline — includes left box border. */
19
+ export declare function boxedPromptString(): string;
20
+ /**
21
+ * Render lines below the current cursor position (below the prompt).
22
+ * Erases any previous below-prompt content first.
23
+ * Uses DEC save/restore to keep cursor on the prompt line.
24
+ *
25
+ * @param lines - Array of strings to render below
26
+ * @returns The number of lines rendered
27
+ */
28
+ export declare function renderBelow(lines: string[]): number;
29
+ /**
30
+ * Clear all below-prompt content. Call before processing a command
31
+ * so output doesn't mix with suggestions/status bar.
32
+ */
33
+ export declare function clearBelow(): void;
34
+ /** Reset the internal height counter (e.g., after console.clear). */
35
+ export declare function resetBelow(): void;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Box drawing and below-prompt rendering for @orbitpanel/cli.
3
+ *
4
+ * Visual frame around the prompt area (gum-inspired):
5
+ *
6
+ * ╭──────────────────────────────────╮
7
+ * │ orbit ❯ user types here...
8
+ * ╰──────────────────────────────────╯
9
+ * ❯ /session start avvia sessione
10
+ * /session end chiudi sessione
11
+ * ▎ acme.com │ local-dev │ main │ idle ▕
12
+ *
13
+ * Uses DEC save/restore (\x1b7/\x1b8) for cursor management.
14
+ * Works in xterm.js (VS Code/Cursor). No scroll regions.
15
+ */
16
+ import chalk from 'chalk';
17
+ const DIM = chalk.dim;
18
+ const B = chalk.rgb(37, 99, 235);
19
+ const BB = chalk.bold.rgb(37, 99, 235);
20
+ // ── Box borders ──
21
+ export function topBorder(width) {
22
+ const w = Math.max(0, width - 4);
23
+ return ` ${DIM('╭')}${DIM('─'.repeat(w))}${DIM('╮')}`;
24
+ }
25
+ export function bottomBorder(width) {
26
+ const w = Math.max(0, width - 4);
27
+ return ` ${DIM('╰')}${DIM('─'.repeat(w))}${DIM('╯')}`;
28
+ }
29
+ /** Prompt string for readline — includes left box border. */
30
+ export function boxedPromptString() {
31
+ return ` ${DIM('│')} ${B('orbit')} ${BB('❯')} `;
32
+ }
33
+ // ── Below-prompt renderer ──
34
+ let _prevHeight = 0;
35
+ /**
36
+ * Render lines below the current cursor position (below the prompt).
37
+ * Erases any previous below-prompt content first.
38
+ * Uses DEC save/restore to keep cursor on the prompt line.
39
+ *
40
+ * @param lines - Array of strings to render below
41
+ * @returns The number of lines rendered
42
+ */
43
+ export function renderBelow(lines) {
44
+ const out = process.stdout;
45
+ if (!out.isTTY)
46
+ return 0;
47
+ // Save cursor at current typing position
48
+ out.write('\x1b7');
49
+ // Erase previous below-prompt content
50
+ if (_prevHeight > 0) {
51
+ for (let i = 0; i < _prevHeight; i++) {
52
+ out.write('\n\x1b[2K'); // move down + clear line
53
+ }
54
+ out.write(`\x1b[${_prevHeight}A`); // move back up
55
+ }
56
+ // Write new content below
57
+ for (const line of lines) {
58
+ out.write(`\n${line}`);
59
+ }
60
+ // Restore cursor to typing position
61
+ out.write('\x1b8');
62
+ _prevHeight = lines.length;
63
+ return lines.length;
64
+ }
65
+ /**
66
+ * Clear all below-prompt content. Call before processing a command
67
+ * so output doesn't mix with suggestions/status bar.
68
+ */
69
+ export function clearBelow() {
70
+ if (_prevHeight === 0)
71
+ return;
72
+ renderBelow([]);
73
+ }
74
+ /** Reset the internal height counter (e.g., after console.clear). */
75
+ export function resetBelow() {
76
+ _prevHeight = 0;
77
+ }
78
+ //# sourceMappingURL=shell-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-box.js","sourceRoot":"","sources":["../../src/lib/shell-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAEvC,oBAAoB;AAEpB,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACjC,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACjC,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,8BAA8B;AAE9B,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IAEzB,yCAAyC;IACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnB,sCAAsC;IACtC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB;QACnD,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAC,CAAC,eAAe;IACpD,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,oCAAoC;IACpC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnB,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU;IACxB,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Interactive REPL shell for @orbitpanel/cli.
3
- * Thin orchestration layer — delegates to shell-commands.ts and shell-render.ts.
4
- * Pure readline + chalk — no Ink/React dependency.
5
3
  *
6
- * Features:
7
- * - Fixed bottom status bar (ANSI scroll regions + refresh before prompt)
8
- * - Tab completion with slash command suggestions
9
- * - Contextual hints for unknown commands
10
- * - AI chat with streaming + state machine
4
+ * Architecture:
5
+ * - Boxed prompt (gum-inspired): ╭───╮ orbit ╰───╯
6
+ * - Real-time slash suggestions via keypress interception
7
+ * - Status bar below prompt (always visible)
8
+ * - Streaming AI chat with state machine
9
+ *
10
+ * Pure readline + chalk — no Ink/React.
11
11
  */
12
12
  export declare function startShell(version: string): Promise<void>;
package/dist/lib/shell.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Interactive REPL shell for @orbitpanel/cli.
3
- * Thin orchestration layer — delegates to shell-commands.ts and shell-render.ts.
4
- * Pure readline + chalk — no Ink/React dependency.
5
3
  *
6
- * Features:
7
- * - Fixed bottom status bar (ANSI scroll regions + refresh before prompt)
8
- * - Tab completion with slash command suggestions
9
- * - Contextual hints for unknown commands
10
- * - AI chat with streaming + state machine
4
+ * Architecture:
5
+ * - Boxed prompt (gum-inspired): ╭───╮ orbit ╰───╯
6
+ * - Real-time slash suggestions via keypress interception
7
+ * - Status bar below prompt (always visible)
8
+ * - Streaming AI chat with state machine
9
+ *
10
+ * Pure readline + chalk — no Ink/React.
11
11
  */
12
12
  import chalk from 'chalk';
13
13
  import ora from 'ora';
@@ -23,11 +23,12 @@ import { StreamStateMachine } from './stream-state.js';
23
23
  import { outputBlock } from './ui.js';
24
24
  import { BL, BB, DIM, WHITE, orbitGrad, sparkle, logoLines, SLASH_COMMANDS, sep, } from './shell-render.js';
25
25
  import { cmdStatus, cmdDoctor, cmdSessionStart, cmdSessionEnd, cmdSessionInfo, cmdNoteAdd, cmdReport, cmdList, cmdGet, cmdHistory, cmdSites, cmdAuth, cmdLogin, cmdLink, } from './shell-commands.js';
26
- import { completer as enhancedCompleter, formatSuggestionList } from './shell-completer.js';
26
+ import { completer as enhancedCompleter, getSuggestions } from './shell-completer.js';
27
+ import { formatSuggestionList } from './shell-completer.js';
27
28
  import { getWelcomeHint, getUnknownCommandHint } from './shell-hints.js';
28
- import { buildPromptString } from './shell-prompt.js';
29
- import { StatusBar } from './status-bar.js';
30
- // Default IO adapter
29
+ import { topBorder, bottomBorder, boxedPromptString, renderBelow, clearBelow, resetBelow, } from './shell-box.js';
30
+ import { renderBarContent } from './status-bar.js';
31
+ // IO adapter
31
32
  const defaultStoreIO = {
32
33
  loadConfig,
33
34
  loadSiteLink: (cwd) => loadSiteLink(cwd),
@@ -40,7 +41,7 @@ function sleep(ms) {
40
41
  function completer(line) {
41
42
  return enhancedCompleter(line, SLASH_COMMANDS);
42
43
  }
43
- /** Build BarState from store. Single source of truth. */
44
+ /** Build BarState from store. */
44
45
  function buildBarState(store) {
45
46
  const { tokenEntry, siteLink, session, gitBranch } = store.getState();
46
47
  const sessionMinutes = session
@@ -55,9 +56,37 @@ function buildBarState(store) {
55
56
  sessionMinutes,
56
57
  };
57
58
  }
59
+ /** Format a suggestion line for the dropdown. */
60
+ function formatSuggestionLine(cmd, index) {
61
+ const pointer = index === 0 ? chalk.hex('#60A5FA')(' ❯') : ' ';
62
+ const cmdStyle = index === 0 ? chalk.white.bold : chalk.white;
63
+ const alias = cmd.alias ? DIM(` ${cmd.alias}`) : '';
64
+ return ` ${pointer} ${cmdStyle(cmd.cmd.padEnd(18))}${alias.padEnd(8)}${DIM(cmd.desc)}`;
65
+ }
66
+ /** Build the lines to render below the prompt. */
67
+ function buildBelowContent(suggestions, barState, width) {
68
+ const lines = [];
69
+ // Bottom border of the box
70
+ lines.push(bottomBorder(width));
71
+ // Suggestions (max 6)
72
+ if (suggestions.length > 0) {
73
+ lines.push(''); // spacing
74
+ for (let i = 0; i < Math.min(6, suggestions.length); i++) {
75
+ lines.push(formatSuggestionLine(suggestions[i], i));
76
+ }
77
+ if (suggestions.length > 6) {
78
+ lines.push(DIM(` ...e altri ${suggestions.length - 6}`));
79
+ }
80
+ lines.push(''); // spacing
81
+ }
82
+ // Status bar (always at bottom)
83
+ lines.push(renderBarContent(barState, width));
84
+ return lines;
85
+ }
58
86
  export async function startShell(version) {
59
87
  const isTTY = process.stdin.isTTY === true;
60
- // Header
88
+ const getCols = () => process.stdout.columns ?? 80;
89
+ // ── Header ──
61
90
  console.clear();
62
91
  console.log('');
63
92
  for (const line of logoLines) {
@@ -68,7 +97,7 @@ export async function startShell(version) {
68
97
  console.log(` ${chalk.bgRgb(37, 99, 235).white.bold(' CLI ')} ${chalk.bgHex('#1E293B').hex('#60A5FA')(` v${version} `)} ${DIM('·')} ${BL('Gestione Orbit Panel AI-powered')}`);
69
98
  console.log('');
70
99
  sep();
71
- // Init state
100
+ // ── State ──
72
101
  const cwd = process.cwd();
73
102
  const store = new OrbitStore(defaultStoreIO);
74
103
  await store.init(cwd);
@@ -79,13 +108,10 @@ export async function startShell(version) {
79
108
  hasSite: !!siteLink,
80
109
  hasSession: !!session,
81
110
  });
82
- console.log(` ${DIM(welcomeHint)}`);
83
111
  console.log('');
84
- // --- Status bar ---
85
- const bar = new StatusBar();
86
- bar.init(buildBarState(store));
87
- // REPL
88
- const promptStr = buildPromptString();
112
+ console.log(` ${DIM(welcomeHint)}`);
113
+ // ── REPL ──
114
+ const promptStr = boxedPromptString();
89
115
  const rl = createInterface({
90
116
  input: process.stdin,
91
117
  output: process.stdout,
@@ -94,21 +120,24 @@ export async function startShell(version) {
94
120
  terminal: isTTY,
95
121
  });
96
122
  /**
97
- * Show prompt with status bar below it.
98
- * 1. rl.prompt() writes the prompt line
99
- * 2. bar.refresh() writes the bar BELOW using cursor save/restore
123
+ * Show the boxed prompt with status bar below.
124
+ * Layout:
125
+ * ╭───────────────────────╮
126
+ * │ orbit ❯ _
127
+ * ╰───────────────────────╯
128
+ * ▎ site │ env │ branch │ idle ▕
100
129
  */
101
130
  const showPrompt = () => {
131
+ const w = getCols();
132
+ console.log(''); // breathing room
133
+ console.log(topBorder(w));
102
134
  rl.prompt();
103
- bar.refresh();
104
- };
105
- /** Update bar state from store and refresh. */
106
- const updateBar = () => {
107
- bar.update(buildBarState(store));
135
+ // Render bottom border + status bar below the prompt
136
+ renderBelow(buildBelowContent([], buildBarState(store), w));
108
137
  };
109
138
  /** Clean exit. */
110
139
  const exitShell = () => {
111
- bar.destroy();
140
+ clearBelow();
112
141
  console.log(`\n ${DIM('Alla prossima!')}\n`);
113
142
  rl.close();
114
143
  };
@@ -122,23 +151,44 @@ export async function startShell(version) {
122
151
  });
123
152
  });
124
153
  };
154
+ // ── Keypress handler: real-time slash suggestions ──
155
+ if (isTTY) {
156
+ // readline's input stream emits keypress events (terminal: true enables this)
157
+ rl.input.on('keypress', () => {
158
+ // Use setImmediate to ensure rl.line is updated by readline first
159
+ setImmediate(() => {
160
+ const line = rl.line;
161
+ const w = getCols();
162
+ const barState = buildBarState(store);
163
+ // Show suggestions when typing slash commands
164
+ let suggestions = [];
165
+ if (line.startsWith('/') && line.length >= 1) {
166
+ suggestions = getSuggestions(line, SLASH_COMMANDS);
167
+ }
168
+ renderBelow(buildBelowContent(suggestions, barState, w));
169
+ });
170
+ });
171
+ }
125
172
  showPrompt();
126
173
  return new Promise((resolve) => {
127
174
  rl.on('close', () => resolve());
128
175
  rl.on('line', async (input) => {
129
176
  const raw = input.trim();
130
177
  const cmd = raw.toLowerCase();
178
+ // Clear below-prompt content before processing
179
+ clearBelow();
131
180
  if (!cmd) {
132
181
  showPrompt();
133
182
  return;
134
183
  }
184
+ // ── Command routing ──
135
185
  if (cmd === '/exit' || cmd === '/quit' || cmd === '/q') {
136
186
  exitShell();
137
187
  return;
138
188
  }
139
189
  if (cmd === '/clear' || cmd === '/cls') {
140
190
  console.clear();
141
- bar.reinit();
191
+ resetBelow();
142
192
  showPrompt();
143
193
  return;
144
194
  }
@@ -160,14 +210,12 @@ export async function startShell(version) {
160
210
  if (cmd === '/session start' || cmd === '/ss') {
161
211
  await cmdSessionStart();
162
212
  await store.refresh(cwd);
163
- updateBar();
164
213
  showPrompt();
165
214
  return;
166
215
  }
167
216
  if (cmd === '/session end' || cmd === '/se') {
168
217
  await cmdSessionEnd();
169
218
  await store.refresh(cwd);
170
- updateBar();
171
219
  showPrompt();
172
220
  return;
173
221
  }
@@ -184,7 +232,6 @@ export async function startShell(version) {
184
232
  if (cmd === '/report' || cmd === '/r') {
185
233
  await cmdReport(promptConfirm);
186
234
  await store.refresh(cwd);
187
- updateBar();
188
235
  showPrompt();
189
236
  return;
190
237
  }
@@ -206,28 +253,24 @@ export async function startShell(version) {
206
253
  if (cmd === '/sites' || cmd.startsWith('/sites ')) {
207
254
  await cmdSites(cmd.split(' ')[1]);
208
255
  await store.refresh(cwd);
209
- updateBar();
210
256
  showPrompt();
211
257
  return;
212
258
  }
213
259
  if (cmd === '/auth') {
214
260
  await cmdAuth();
215
261
  await store.refresh(cwd);
216
- updateBar();
217
262
  showPrompt();
218
263
  return;
219
264
  }
220
265
  if (cmd.startsWith('/login ')) {
221
266
  await cmdLogin(raw.split(' ')[1]);
222
267
  await store.refresh(cwd);
223
- updateBar();
224
268
  showPrompt();
225
269
  return;
226
270
  }
227
271
  if (cmd.startsWith('/link ')) {
228
272
  await cmdLink(raw.split(' ')[1]);
229
273
  await store.refresh(cwd);
230
- updateBar();
231
274
  showPrompt();
232
275
  return;
233
276
  }
@@ -238,39 +281,42 @@ export async function startShell(version) {
238
281
  console.log(formatSuggestionList(SLASH_COMMANDS));
239
282
  console.log('');
240
283
  console.log(` ${DIM('Premi Tab per completare, o scrivi in linguaggio naturale.')}`);
241
- console.log('');
242
284
  showPrompt();
243
285
  return;
244
286
  }
245
287
  if (cmd.startsWith('/')) {
246
288
  const hint = getUnknownCommandHint(cmd);
247
- console.log(`\n ${DIM('Comando sconosciuto:')} ${WHITE(cmd)}`);
248
- console.log(` ${DIM(hint)}\n`);
289
+ console.log('');
290
+ console.log(` ${DIM('Comando sconosciuto:')} ${WHITE(cmd)}`);
291
+ console.log(` ${DIM(hint)}`);
249
292
  showPrompt();
250
293
  return;
251
294
  }
295
+ // Free text → AI chat
252
296
  await handleAIChat(raw, store);
253
297
  showPrompt();
254
298
  });
255
299
  });
256
300
  }
301
+ // ── Help ──
257
302
  function printHelp() {
258
303
  console.log('');
259
304
  console.log(` ${sparkle} ${BB('Comandi disponibili')}`);
260
305
  console.log('');
261
306
  for (const c of SLASH_COMMANDS) {
262
307
  const alias = c.alias ? DIM(` ${c.alias}`) : '';
263
- console.log(` ${WHITE(c.cmd.padEnd(18))}${alias.padEnd(12)}${DIM(c.desc)}`);
308
+ console.log(` ${WHITE(c.cmd.padEnd(18))}${alias.padEnd(10)}${DIM(c.desc)}`);
264
309
  }
265
310
  console.log('');
266
311
  console.log(` ${DIM('Oppure scrivi in linguaggio naturale per parlare con Orbit AI.')}`);
267
- console.log('');
268
312
  }
313
+ // ── AI Chat ──
269
314
  async function handleAIChat(raw, store) {
270
315
  const { config, siteLink } = store.getState();
271
316
  console.log('');
272
317
  console.log(` ${sparkle} ${BB('Orbit AI')}`);
273
- const spinner = ora({ text: DIM('Recupero contesto...'), color: 'blue', indent: 2 }).start();
318
+ console.log('');
319
+ const spinner = ora({ text: DIM('Recupero contesto...'), color: 'blue', indent: 4 }).start();
274
320
  const sm = new StreamStateMachine();
275
321
  try {
276
322
  store.startRequest();
@@ -292,17 +338,17 @@ async function handleAIChat(raw, store) {
292
338
  if (spinner.isSpinning) {
293
339
  spinner.stop();
294
340
  console.log('');
295
- process.stdout.write(' ');
341
+ process.stdout.write(' ');
296
342
  }
297
343
  const chunk = (event.data.content ?? '');
298
344
  if (chunk)
299
- process.stdout.write(chunk.replaceAll('\n', '\n '));
345
+ process.stdout.write(chunk.replaceAll('\n', '\n '));
300
346
  break;
301
347
  }
302
348
  case 'error':
303
349
  if (spinner.isSpinning)
304
350
  spinner.stop();
305
- console.log(`\n ${chalk.red('✗')} ${event.data.message}`);
351
+ console.log(`\n ${chalk.red('✗')} ${event.data.message}`);
306
352
  break;
307
353
  case 'done':
308
354
  if (spinner.isSpinning)
@@ -323,10 +369,10 @@ async function handleAIChat(raw, store) {
323
369
  else {
324
370
  console.log('');
325
371
  for (const line of (fallback.response ?? '').split('\n')) {
326
- console.log(` ${line}`);
372
+ console.log(` ${line}`);
327
373
  }
328
374
  if (fallback.provider_used) {
329
- console.log(`\n ${DIM(`(${fallback.provider_used})`)}`);
375
+ console.log(`\n ${DIM(`(${fallback.provider_used})`)}`);
330
376
  }
331
377
  }
332
378
  }
@@ -334,9 +380,9 @@ async function handleAIChat(raw, store) {
334
380
  if (contentStarted)
335
381
  process.stdout.write('\n');
336
382
  if (result.provider)
337
- console.log(` ${DIM(`(${result.provider})`)}`);
383
+ console.log(` ${DIM(`(${result.provider})`)}`);
338
384
  if (result.error)
339
- console.log(` ${chalk.red('✗')} ${result.error}`);
385
+ console.log(` ${chalk.red('✗')} ${result.error}`);
340
386
  }
341
387
  }
342
388
  catch (err) {
@@ -352,7 +398,7 @@ async function handleAIChat(raw, store) {
352
398
  else {
353
399
  console.log('');
354
400
  for (const line of (fallback.response ?? '').split('\n')) {
355
- console.log(` ${line}`);
401
+ console.log(` ${line}`);
356
402
  }
357
403
  }
358
404
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,7 @@
1
1
  /**
2
- * Bottom status bar for @orbitpanel/cli.
3
- *
4
- * Draws a colored status bar BELOW the readline prompt.
5
- * Uses cursor save/restore (\x1b7/\x1b8) — works in xterm.js (VS Code/Cursor).
6
- * NO scroll regions (DECSTBM) — broken in many terminal emulators.
7
- *
8
- * Pattern:
9
- * orbit ❯ _ ← prompt (readline)
10
- * ▎acme.com │ local-dev │ main │ ● 5m ← status bar (this module)
11
- *
12
- * The bar is redrawn before each rl.prompt() via refresh().
13
- * Non-TTY: all methods are no-ops.
2
+ * Status bar content renderer for @orbitpanel/cli.
3
+ * Pure function — no side effects, no ANSI cursor manipulation.
4
+ * Positioning is handled by shell-box.ts renderBelow().
14
5
  */
15
6
  export interface BarState {
16
7
  siteUrl?: string;
@@ -21,34 +12,7 @@ export interface BarState {
21
12
  connected: boolean;
22
13
  }
23
14
  /**
24
- * Render the status bar content string, padded to exactly `width` characters.
25
- * Pure function no side effects, fully testable.
15
+ * Render status bar content, padded to `width`.
16
+ * Format: 🌐 site 📁 env │ 🔀 branch │ ● session ▕
26
17
  */
27
18
  export declare function renderBarContent(state: BarState, width: number): string;
28
- export declare class StatusBar {
29
- private active;
30
- private cols;
31
- private lastState;
32
- get isActive(): boolean;
33
- /**
34
- * Initialize the bar. Just saves state — actual drawing happens in refresh().
35
- * No-op if not TTY.
36
- */
37
- init(state: BarState): void;
38
- /**
39
- * Draw the bar below the current cursor position.
40
- * Call this AFTER rl.prompt(). Uses cursor save/restore.
41
- *
42
- * Sequence:
43
- * 1. Save cursor (at end of prompt, where user will type)
44
- * 2. Write newline + bar content
45
- * 3. Restore cursor (back to prompt line)
46
- */
47
- refresh(state?: BarState): void;
48
- /** Update state and redraw. */
49
- update(state: BarState): void;
50
- /** Re-init after /clear. */
51
- reinit(): void;
52
- /** Clean exit. */
53
- destroy(): void;
54
- }
@@ -1,125 +1,69 @@
1
1
  /**
2
- * Bottom status bar for @orbitpanel/cli.
3
- *
4
- * Draws a colored status bar BELOW the readline prompt.
5
- * Uses cursor save/restore (\x1b7/\x1b8) — works in xterm.js (VS Code/Cursor).
6
- * NO scroll regions (DECSTBM) — broken in many terminal emulators.
7
- *
8
- * Pattern:
9
- * orbit ❯ _ ← prompt (readline)
10
- * ▎acme.com │ local-dev │ main │ ● 5m ← status bar (this module)
11
- *
12
- * The bar is redrawn before each rl.prompt() via refresh().
13
- * Non-TTY: all methods are no-ops.
2
+ * Status bar content renderer for @orbitpanel/cli.
3
+ * Pure function — no side effects, no ANSI cursor manipulation.
4
+ * Positioning is handled by shell-box.ts renderBelow().
14
5
  */
15
6
  import chalk from 'chalk';
16
- // Colors dark bg, full-width bar
7
+ // Dark bar with colored segments — high contrast
17
8
  const BG = chalk.bgHex('#1E293B').hex('#94A3B8');
18
- const BG_ACCENT = chalk.bgHex('#1E293B').hex('#60A5FA');
9
+ const BG_BRAND = chalk.bgHex('#1E293B').hex('#60A5FA');
19
10
  const BG_GREEN = chalk.bgHex('#1E293B').hex('#22C55E');
20
- const BG_YELLOW = chalk.bgHex('#1E293B').hex('#EAB308');
21
- const BG_DIM = chalk.bgHex('#1E293B').dim;
11
+ const BG_YELLOW = chalk.bgHex('#1E293B').hex('#FBBF24');
12
+ const BG_DIM = chalk.bgHex('#1E293B').hex('#64748B');
22
13
  const BG_RED = chalk.bgHex('#1E293B').hex('#EF4444');
23
14
  const BG_EDGE = chalk.bgHex('#1E293B').hex('#3B82F6');
15
+ const BG_ICON = chalk.bgHex('#1E293B');
24
16
  /**
25
- * Render the status bar content string, padded to exactly `width` characters.
26
- * Pure function no side effects, fully testable.
17
+ * Render status bar content, padded to `width`.
18
+ * Format: 🌐 site 📁 env │ 🔀 branch │ ● session ▕
27
19
  */
28
20
  export function renderBarContent(state, width) {
29
21
  const parts = [];
22
+ // Connection + site
30
23
  if (!state.connected) {
31
- parts.push(`${BG_RED('')} ${BG_DIM('non connesso')}`);
24
+ parts.push(`${BG_RED('')} ${BG_DIM('non connesso')}`);
32
25
  }
33
26
  else if (state.siteUrl) {
34
- const maxLen = Math.min(30, Math.floor(width * 0.35));
27
+ const maxLen = Math.min(28, Math.floor(width * 0.3));
35
28
  const display = state.siteUrl.length > maxLen
36
29
  ? state.siteUrl.slice(0, maxLen - 1) + '…'
37
30
  : state.siteUrl;
38
- parts.push(BG_ACCENT(display));
31
+ parts.push(`${BG_GREEN('●')} ${BG_BRAND(display)}`);
39
32
  }
40
33
  else {
41
- parts.push(BG_DIM('nessun sito'));
34
+ parts.push(`${BG_DIM('○')} ${BG_DIM('nessun sito')}`);
42
35
  }
36
+ // Environment
43
37
  if (state.environment) {
44
- parts.push(state.environment === 'production'
45
- ? BG_YELLOW('production')
46
- : BG_DIM(state.environment));
38
+ if (state.environment === 'production') {
39
+ parts.push(BG_YELLOW('production'));
40
+ }
41
+ else {
42
+ parts.push(BG_DIM(`◆ ${state.environment}`));
43
+ }
47
44
  }
45
+ // Git branch
48
46
  if (state.gitBranch) {
49
- const maxBranch = Math.min(25, Math.floor(width * 0.25));
47
+ const maxBranch = Math.min(22, Math.floor(width * 0.22));
50
48
  const branch = state.gitBranch.length > maxBranch
51
49
  ? state.gitBranch.slice(0, maxBranch - 1) + '…'
52
50
  : state.gitBranch;
53
- parts.push(BG_ACCENT(branch));
51
+ parts.push(`${BG_BRAND(`⎇ ${branch}`)}`);
54
52
  }
53
+ // Session
55
54
  if (state.sessionActive) {
56
55
  const mins = state.sessionMinutes ?? 0;
57
- parts.push(`${BG_GREEN('●')} ${BG_DIM('attiva')} ${BG_DIM(`${mins}min`)}`);
56
+ parts.push(`${BG_GREEN('● attiva')} ${BG_DIM(`${mins}min`)}`);
57
+ }
58
+ else {
59
+ parts.push(BG_DIM('○ idle'));
58
60
  }
59
61
  const sep = BG_DIM(' │ ');
60
- // Left edge accent
61
62
  const edge = BG_EDGE('▎');
62
63
  const content = edge + BG(' ') + parts.join(sep);
63
64
  // Pad to fill width
64
65
  const stripped = content.replace(/\x1b\[[0-9;]*m/g, '');
65
- const pad = Math.max(0, width - stripped.length);
66
- return content + BG(' '.repeat(pad));
67
- }
68
- export class StatusBar {
69
- active = false;
70
- cols = 0;
71
- lastState = null;
72
- get isActive() { return this.active; }
73
- /**
74
- * Initialize the bar. Just saves state — actual drawing happens in refresh().
75
- * No-op if not TTY.
76
- */
77
- init(state) {
78
- if (!process.stdout.isTTY)
79
- return;
80
- this.cols = process.stdout.columns ?? 80;
81
- this.lastState = state;
82
- this.active = true;
83
- // Update cols on resize
84
- process.stdout.on('resize', () => {
85
- this.cols = process.stdout.columns ?? 80;
86
- });
87
- }
88
- /**
89
- * Draw the bar below the current cursor position.
90
- * Call this AFTER rl.prompt(). Uses cursor save/restore.
91
- *
92
- * Sequence:
93
- * 1. Save cursor (at end of prompt, where user will type)
94
- * 2. Write newline + bar content
95
- * 3. Restore cursor (back to prompt line)
96
- */
97
- refresh(state) {
98
- if (!this.active)
99
- return;
100
- if (state)
101
- this.lastState = state;
102
- if (!this.lastState)
103
- return;
104
- this.cols = process.stdout.columns ?? 80;
105
- const bar = renderBarContent(this.lastState, this.cols);
106
- process.stdout.write('\x1b7'); // DEC save cursor
107
- process.stdout.write('\n' + bar); // newline + bar on next line
108
- process.stdout.write('\x1b8'); // DEC restore cursor (back to prompt)
109
- }
110
- /** Update state and redraw. */
111
- update(state) {
112
- this.lastState = state;
113
- // Don't refresh here — will be refreshed at next showPrompt()
114
- }
115
- /** Re-init after /clear. */
116
- reinit() {
117
- // Nothing to clean up — bar is just text, no scroll regions
118
- }
119
- /** Clean exit. */
120
- destroy() {
121
- this.active = false;
122
- // Nothing to reset — no scroll regions to undo
123
- }
66
+ const pad = Math.max(0, width - stripped.length - 1);
67
+ return content + BG(' '.repeat(pad)) + BG_EDGE('▕');
124
68
  }
125
69
  //# sourceMappingURL=status-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/lib/status-bar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/lib/status-bar.ts"],"names":[],"mappings":"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"}
@@ -749,5 +749,5 @@
749
749
  ]
750
750
  }
751
751
  },
752
- "version": "0.8.5"
752
+ "version": "0.9.0"
753
753
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitpanel/cli",
3
- "version": "0.8.5",
3
+ "version": "0.9.0",
4
4
  "description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,6 +37,7 @@
37
37
  "@oclif/plugin-help": "^6.0.0",
38
38
  "chalk": "^5.4.0",
39
39
  "gradient-string": "^3.0.0",
40
+ "mute-stream": "^3.0.0",
40
41
  "ora": "^9.3.0",
41
42
  "update-notifier": "^7.3.1"
42
43
  },