@orbitpanel/cli 0.8.5 → 0.9.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.
@@ -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 on first render, light separator on subsequent
6
+ * - Real-time slash suggestions with arrow key navigation (gum-style)
7
+ * - Status bar below prompt (always visible)
8
+ * - Key interception via _ttyWrite override for suggestion navigation
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 on first render, light separator on subsequent
6
+ * - Real-time slash suggestions with arrow key navigation (gum-style)
7
+ * - Status bar below prompt (always visible)
8
+ * - Key interception via _ttyWrite override for suggestion navigation
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,11 @@ 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, formatSuggestionList } from './shell-completer.js';
27
27
  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
28
+ import { topBorder, bottomBorder, boxedPromptString, renderBelow, clearBelow, resetBelow, } from './shell-box.js';
29
+ import { renderBarContent } from './status-bar.js';
30
+ // IO adapter
31
31
  const defaultStoreIO = {
32
32
  loadConfig,
33
33
  loadSiteLink: (cwd) => loadSiteLink(cwd),
@@ -40,7 +40,6 @@ function sleep(ms) {
40
40
  function completer(line) {
41
41
  return enhancedCompleter(line, SLASH_COMMANDS);
42
42
  }
43
- /** Build BarState from store. Single source of truth. */
44
43
  function buildBarState(store) {
45
44
  const { tokenEntry, siteLink, session, gitBranch } = store.getState();
46
45
  const sessionMinutes = session
@@ -55,9 +54,18 @@ function buildBarState(store) {
55
54
  sessionMinutes,
56
55
  };
57
56
  }
57
+ /** Format a suggestion line. `active` = highlighted with pointer. */
58
+ function fmtSuggestion(cmd, active) {
59
+ if (active) {
60
+ const bg = chalk.bgHex('#1E3A5F');
61
+ return ` ${bg(chalk.hex('#60A5FA')(' ❯ '))}${bg(chalk.white.bold(` ${cmd.cmd.padEnd(18)}`))}${bg(chalk.dim(` ${cmd.desc} `))}`;
62
+ }
63
+ return ` ${chalk.white(cmd.cmd.padEnd(18))} ${DIM(cmd.desc)}`;
64
+ }
58
65
  export async function startShell(version) {
59
66
  const isTTY = process.stdin.isTTY === true;
60
- // Header
67
+ const getCols = () => process.stdout.columns ?? 80;
68
+ // ── Header ──
61
69
  console.clear();
62
70
  console.log('');
63
71
  for (const line of logoLines) {
@@ -68,24 +76,20 @@ export async function startShell(version) {
68
76
  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
77
  console.log('');
70
78
  sep();
71
- // Init state
79
+ // ── State ──
72
80
  const cwd = process.cwd();
73
81
  const store = new OrbitStore(defaultStoreIO);
74
82
  await store.init(cwd);
75
83
  const { tokenEntry, siteLink, session } = store.getState();
76
- // Welcome hint
77
84
  const welcomeHint = getWelcomeHint({
78
85
  hasToken: !!tokenEntry,
79
86
  hasSite: !!siteLink,
80
87
  hasSession: !!session,
81
88
  });
82
- console.log(` ${DIM(welcomeHint)}`);
83
89
  console.log('');
84
- // --- Status bar ---
85
- const bar = new StatusBar();
86
- bar.init(buildBarState(store));
87
- // REPL
88
- const promptStr = buildPromptString();
90
+ console.log(` ${DIM(welcomeHint)}`);
91
+ // ── REPL ──
92
+ const promptStr = boxedPromptString();
89
93
  const rl = createInterface({
90
94
  input: process.stdin,
91
95
  output: process.stdout,
@@ -93,22 +97,52 @@ export async function startShell(version) {
93
97
  completer,
94
98
  terminal: isTTY,
95
99
  });
96
- /**
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
100
- */
100
+ // ── Suggestion state ──
101
+ let suggestions = [];
102
+ let selectedIdx = 0;
103
+ let suggestionsActive = false;
104
+ let isFirstPrompt = true;
105
+ /** Build the lines to show below the prompt. */
106
+ const buildBelow = () => {
107
+ const w = getCols();
108
+ const lines = [];
109
+ // Bottom border (only on first prompt with box)
110
+ if (isFirstPrompt) {
111
+ lines.push(bottomBorder(w));
112
+ }
113
+ // Suggestions
114
+ if (suggestionsActive && suggestions.length > 0) {
115
+ lines.push(''); // spacing
116
+ for (let i = 0; i < suggestions.length; i++) {
117
+ lines.push(fmtSuggestion(suggestions[i], i === selectedIdx));
118
+ }
119
+ lines.push('');
120
+ lines.push(` ${DIM('↑↓ naviga · Enter seleziona · Esc chiudi')}`);
121
+ }
122
+ // Status bar
123
+ lines.push(renderBarContent(buildBarState(store), w));
124
+ return lines;
125
+ };
126
+ /** Refresh below-prompt content. */
127
+ const refreshBelow = () => {
128
+ renderBelow(buildBelow());
129
+ };
130
+ /** Show prompt (first time = box, subsequent = light separator). */
101
131
  const showPrompt = () => {
132
+ const w = getCols();
133
+ console.log(''); // breathing room
134
+ if (isFirstPrompt) {
135
+ console.log(topBorder(w));
136
+ }
137
+ else {
138
+ // Light separator — just a thin line
139
+ console.log(` ${DIM('─'.repeat(w - 4))}`);
140
+ }
102
141
  rl.prompt();
103
- bar.refresh();
104
- };
105
- /** Update bar state from store and refresh. */
106
- const updateBar = () => {
107
- bar.update(buildBarState(store));
142
+ refreshBelow();
108
143
  };
109
- /** Clean exit. */
110
144
  const exitShell = () => {
111
- bar.destroy();
145
+ clearBelow();
112
146
  console.log(`\n ${DIM('Alla prossima!')}\n`);
113
147
  rl.close();
114
148
  };
@@ -122,23 +156,94 @@ export async function startShell(version) {
122
156
  });
123
157
  });
124
158
  };
159
+ // ── Key interception: arrow navigation for suggestions ──
160
+ // Override readline's _ttyWrite to intercept keys BEFORE readline processes them.
161
+ // This enables gum-style arrow navigation in the suggestion dropdown.
162
+ const rlAny = rl;
163
+ if (isTTY && typeof rlAny._ttyWrite === 'function') {
164
+ const origTtyWrite = rlAny._ttyWrite.bind(rl);
165
+ rlAny._ttyWrite = function (s, key) {
166
+ // When suggestions are active, intercept navigation keys
167
+ if (suggestionsActive && suggestions.length > 0) {
168
+ if (key?.name === 'up') {
169
+ selectedIdx = selectedIdx <= 0 ? suggestions.length - 1 : selectedIdx - 1;
170
+ refreshBelow();
171
+ return; // swallow — don't let readline do history
172
+ }
173
+ if (key?.name === 'down') {
174
+ selectedIdx = selectedIdx >= suggestions.length - 1 ? 0 : selectedIdx + 1;
175
+ refreshBelow();
176
+ return; // swallow
177
+ }
178
+ if (key?.name === 'return' && selectedIdx >= 0) {
179
+ // Select the suggestion: replace line content with selected command
180
+ const selected = suggestions[selectedIdx];
181
+ rlAny.line = '';
182
+ rlAny.cursor = 0;
183
+ rlAny._refreshLine();
184
+ rl.write(selected.cmd);
185
+ suggestionsActive = false;
186
+ suggestions = [];
187
+ selectedIdx = 0;
188
+ refreshBelow();
189
+ return; // swallow — don't submit
190
+ }
191
+ if (key?.name === 'escape') {
192
+ suggestionsActive = false;
193
+ suggestions = [];
194
+ selectedIdx = 0;
195
+ refreshBelow();
196
+ return;
197
+ }
198
+ }
199
+ // Normal processing — let readline handle the key
200
+ origTtyWrite(s, key);
201
+ // After readline updates rl.line, recalculate suggestions
202
+ const line = rlAny.line ?? '';
203
+ if (line.startsWith('/') && line.length >= 1) {
204
+ const matches = getSuggestions(line, SLASH_COMMANDS).slice(0, 6);
205
+ if (matches.length > 0) {
206
+ suggestions = matches;
207
+ suggestionsActive = true;
208
+ selectedIdx = 0;
209
+ }
210
+ else {
211
+ suggestionsActive = false;
212
+ suggestions = [];
213
+ }
214
+ }
215
+ else {
216
+ suggestionsActive = false;
217
+ suggestions = [];
218
+ }
219
+ refreshBelow();
220
+ };
221
+ }
125
222
  showPrompt();
126
223
  return new Promise((resolve) => {
127
224
  rl.on('close', () => resolve());
128
225
  rl.on('line', async (input) => {
129
226
  const raw = input.trim();
130
227
  const cmd = raw.toLowerCase();
228
+ // Clear below-prompt content and suggestions
229
+ clearBelow();
230
+ suggestionsActive = false;
231
+ suggestions = [];
232
+ selectedIdx = 0;
233
+ isFirstPrompt = false; // subsequent prompts are lighter
131
234
  if (!cmd) {
132
235
  showPrompt();
133
236
  return;
134
237
  }
238
+ // ── Command routing ──
135
239
  if (cmd === '/exit' || cmd === '/quit' || cmd === '/q') {
136
240
  exitShell();
137
241
  return;
138
242
  }
139
243
  if (cmd === '/clear' || cmd === '/cls') {
140
244
  console.clear();
141
- bar.reinit();
245
+ resetBelow();
246
+ isFirstPrompt = true;
142
247
  showPrompt();
143
248
  return;
144
249
  }
@@ -160,14 +265,12 @@ export async function startShell(version) {
160
265
  if (cmd === '/session start' || cmd === '/ss') {
161
266
  await cmdSessionStart();
162
267
  await store.refresh(cwd);
163
- updateBar();
164
268
  showPrompt();
165
269
  return;
166
270
  }
167
271
  if (cmd === '/session end' || cmd === '/se') {
168
272
  await cmdSessionEnd();
169
273
  await store.refresh(cwd);
170
- updateBar();
171
274
  showPrompt();
172
275
  return;
173
276
  }
@@ -184,7 +287,6 @@ export async function startShell(version) {
184
287
  if (cmd === '/report' || cmd === '/r') {
185
288
  await cmdReport(promptConfirm);
186
289
  await store.refresh(cwd);
187
- updateBar();
188
290
  showPrompt();
189
291
  return;
190
292
  }
@@ -206,28 +308,24 @@ export async function startShell(version) {
206
308
  if (cmd === '/sites' || cmd.startsWith('/sites ')) {
207
309
  await cmdSites(cmd.split(' ')[1]);
208
310
  await store.refresh(cwd);
209
- updateBar();
210
311
  showPrompt();
211
312
  return;
212
313
  }
213
314
  if (cmd === '/auth') {
214
315
  await cmdAuth();
215
316
  await store.refresh(cwd);
216
- updateBar();
217
317
  showPrompt();
218
318
  return;
219
319
  }
220
320
  if (cmd.startsWith('/login ')) {
221
321
  await cmdLogin(raw.split(' ')[1]);
222
322
  await store.refresh(cwd);
223
- updateBar();
224
323
  showPrompt();
225
324
  return;
226
325
  }
227
326
  if (cmd.startsWith('/link ')) {
228
327
  await cmdLink(raw.split(' ')[1]);
229
328
  await store.refresh(cwd);
230
- updateBar();
231
329
  showPrompt();
232
330
  return;
233
331
  }
@@ -237,40 +335,43 @@ export async function startShell(version) {
237
335
  console.log('');
238
336
  console.log(formatSuggestionList(SLASH_COMMANDS));
239
337
  console.log('');
240
- console.log(` ${DIM('Premi Tab per completare, o scrivi in linguaggio naturale.')}`);
241
- console.log('');
338
+ console.log(` ${DIM('Digita / e usa ↑↓ per navigare, Enter per selezionare.')}`);
242
339
  showPrompt();
243
340
  return;
244
341
  }
245
342
  if (cmd.startsWith('/')) {
246
343
  const hint = getUnknownCommandHint(cmd);
247
- console.log(`\n ${DIM('Comando sconosciuto:')} ${WHITE(cmd)}`);
248
- console.log(` ${DIM(hint)}\n`);
344
+ console.log('');
345
+ console.log(` ${DIM('Comando sconosciuto:')} ${WHITE(cmd)}`);
346
+ console.log(` ${DIM(hint)}`);
249
347
  showPrompt();
250
348
  return;
251
349
  }
350
+ // Free text → AI chat
252
351
  await handleAIChat(raw, store);
253
352
  showPrompt();
254
353
  });
255
354
  });
256
355
  }
356
+ // ── Help ──
257
357
  function printHelp() {
258
358
  console.log('');
259
359
  console.log(` ${sparkle} ${BB('Comandi disponibili')}`);
260
360
  console.log('');
261
361
  for (const c of SLASH_COMMANDS) {
262
362
  const alias = c.alias ? DIM(` ${c.alias}`) : '';
263
- console.log(` ${WHITE(c.cmd.padEnd(18))}${alias.padEnd(12)}${DIM(c.desc)}`);
363
+ console.log(` ${WHITE(c.cmd.padEnd(18))}${alias.padEnd(10)}${DIM(c.desc)}`);
264
364
  }
265
365
  console.log('');
266
- console.log(` ${DIM('Oppure scrivi in linguaggio naturale per parlare con Orbit AI.')}`);
267
- console.log('');
366
+ console.log(` ${DIM('Digita / e usa ↑↓ per navigare. Oppure scrivi in linguaggio naturale.')}`);
268
367
  }
368
+ // ── AI Chat ──
269
369
  async function handleAIChat(raw, store) {
270
370
  const { config, siteLink } = store.getState();
271
371
  console.log('');
272
372
  console.log(` ${sparkle} ${BB('Orbit AI')}`);
273
- const spinner = ora({ text: DIM('Recupero contesto...'), color: 'blue', indent: 2 }).start();
373
+ console.log('');
374
+ const spinner = ora({ text: DIM('Recupero contesto...'), color: 'blue', indent: 4 }).start();
274
375
  const sm = new StreamStateMachine();
275
376
  try {
276
377
  store.startRequest();
@@ -292,17 +393,17 @@ async function handleAIChat(raw, store) {
292
393
  if (spinner.isSpinning) {
293
394
  spinner.stop();
294
395
  console.log('');
295
- process.stdout.write(' ');
396
+ process.stdout.write(' ');
296
397
  }
297
398
  const chunk = (event.data.content ?? '');
298
399
  if (chunk)
299
- process.stdout.write(chunk.replaceAll('\n', '\n '));
400
+ process.stdout.write(chunk.replaceAll('\n', '\n '));
300
401
  break;
301
402
  }
302
403
  case 'error':
303
404
  if (spinner.isSpinning)
304
405
  spinner.stop();
305
- console.log(`\n ${chalk.red('✗')} ${event.data.message}`);
406
+ console.log(`\n ${chalk.red('✗')} ${event.data.message}`);
306
407
  break;
307
408
  case 'done':
308
409
  if (spinner.isSpinning)
@@ -323,10 +424,10 @@ async function handleAIChat(raw, store) {
323
424
  else {
324
425
  console.log('');
325
426
  for (const line of (fallback.response ?? '').split('\n')) {
326
- console.log(` ${line}`);
427
+ console.log(` ${line}`);
327
428
  }
328
429
  if (fallback.provider_used) {
329
- console.log(`\n ${DIM(`(${fallback.provider_used})`)}`);
430
+ console.log(`\n ${DIM(`(${fallback.provider_used})`)}`);
330
431
  }
331
432
  }
332
433
  }
@@ -334,9 +435,9 @@ async function handleAIChat(raw, store) {
334
435
  if (contentStarted)
335
436
  process.stdout.write('\n');
336
437
  if (result.provider)
337
- console.log(` ${DIM(`(${result.provider})`)}`);
438
+ console.log(` ${DIM(`(${result.provider})`)}`);
338
439
  if (result.error)
339
- console.log(` ${chalk.red('✗')} ${result.error}`);
440
+ console.log(` ${chalk.red('✗')} ${result.error}`);
340
441
  }
341
442
  }
342
443
  catch (err) {
@@ -351,9 +452,8 @@ async function handleAIChat(raw, store) {
351
452
  }
352
453
  else {
353
454
  console.log('');
354
- for (const line of (fallback.response ?? '').split('\n')) {
355
- console.log(` ${line}`);
356
- }
455
+ for (const line of (fallback.response ?? '').split('\n'))
456
+ console.log(` ${line}`);
357
457
  }
358
458
  }
359
459
  catch (e2) {
@@ -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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EACL,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAClB,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,GACnD,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EACpE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GACzF,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAC1C,WAAW,EAAE,UAAU,EAAE,UAAU,GACpC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAiB,MAAM,iBAAiB,CAAC;AAElE,aAAa;AACb,MAAM,cAAc,GAAY;IAC9B,UAAU;IACV,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;IAChD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC;IAChE,YAAY;CACb,CAAC;AAEF,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACtE,MAAM,cAAc,GAAG,OAAO;QAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC;QAC5E,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,WAAW,EAAE,QAAQ,EAAE,WAAW;QAClC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC,IAAI,SAAS;QAC1D,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,QAAQ;QAC3C,cAAc;KACf,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,aAAa,CAAC,GAAiD,EAAE,MAAe;IACvF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;IAClI,CAAC;IACD,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnD,eAAe;IACf,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;IAChL,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,EAAE,CAAC;IAEN,cAAc;IACd,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE3D,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,QAAQ,EAAE,CAAC,CAAC,UAAU;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,UAAU,EAAE,CAAC,CAAC,OAAO;KACtB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAErC,aAAa;IACb,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,SAAS;QACjB,SAAS;QACT,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,WAAW,GAAmD,EAAE,CAAC;IACrE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,gDAAgD;IAChD,MAAM,UAAU,GAAG,GAAa,EAAE;QAChC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,gDAAgD;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,cAAc;QACd,IAAI,iBAAiB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,oCAAoC;IACpC,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,oEAAoE;IACpE,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;QAElC,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,EAAE,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,CAAC,OAAe,EAAoB,EAAE;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,2DAA2D;IAC3D,kFAAkF;IAClF,sEAAsE;IACtE,MAAM,KAAK,GAAG,EAAS,CAAC;IACxB,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9C,KAAK,CAAC,SAAS,GAAG,UAAU,CAAS,EAAE,GAAQ;YAC7C,yDAAyD;YACzD,IAAI,iBAAiB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvB,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC1E,YAAY,EAAE,CAAC;oBACf,OAAO,CAAC,0CAA0C;gBACpD,CAAC;gBACD,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC1E,YAAY,EAAE,CAAC;oBACf,OAAO,CAAC,UAAU;gBACpB,CAAC;gBACD,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;oBAC/C,oEAAoE;oBACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC1C,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;oBAChB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBACjB,KAAK,CAAC,YAAY,EAAE,CAAC;oBACrB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACvB,iBAAiB,GAAG,KAAK,CAAC;oBAC1B,WAAW,GAAG,EAAE,CAAC;oBACjB,WAAW,GAAG,CAAC,CAAC;oBAChB,YAAY,EAAE,CAAC;oBACf,OAAO,CAAC,yBAAyB;gBACnC,CAAC;gBACD,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,iBAAiB,GAAG,KAAK,CAAC;oBAC1B,WAAW,GAAG,EAAE,CAAC;oBACjB,WAAW,GAAG,CAAC,CAAC;oBAChB,YAAY,EAAE,CAAC;oBACf,OAAO;gBACT,CAAC;YACH,CAAC;YAED,kDAAkD;YAClD,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAErB,0DAA0D;YAC1D,MAAM,IAAI,GAAW,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,WAAW,GAAG,OAAO,CAAC;oBACtB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,WAAW,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,iBAAiB,GAAG,KAAK,CAAC;oBAC1B,WAAW,GAAG,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,KAAK,CAAC;gBAC1B,WAAW,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,EAAE,CAAC;IAEb,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAE9B,6CAA6C;YAC7C,UAAU,EAAE,CAAC;YACb,iBAAiB,GAAG,KAAK,CAAC;YAC1B,WAAW,GAAG,EAAE,CAAC;YACjB,WAAW,GAAG,CAAC,CAAC;YAChB,aAAa,GAAG,KAAK,CAAC,CAAC,iCAAiC;YAExD,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEnC,wBAAwB;YACxB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAChF,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,aAAa,GAAG,IAAI,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACtH,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3E,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,SAAS,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACnF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAAC,MAAM,SAAS,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACrF,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAAC,MAAM,eAAe,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3H,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAAC,MAAM,aAAa,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACvH,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;gBAAC,MAAM,cAAc,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACpG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACnI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC1H,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;gBAAC,MAAM,OAAO,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC5G,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAAC,MAAM,UAAU,EAAE,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACxF,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAChH,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzI,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAAC,MAAM,OAAO,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzF,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACrH,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAC,UAAU,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEnH,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,wDAAwD,CAAC,EAAE,CAAC,CAAC;gBAClF,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,sBAAsB;YACtB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,aAAa;AAEb,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,uEAAuE,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,gBAAgB;AAEhB,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,KAAiB;IACxD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7F,MAAM,EAAE,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAW,CAAC;oBACrE,IAAI,OAAO,CAAC,UAAU;wBAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBAChD,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU;oBACb,IAAI,OAAO,CAAC,UAAU;wBAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAClE,MAAM;gBACR,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBACvB,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;oBACD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAW,CAAC;oBACnD,IAAI,KAAK;wBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAClE,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO;oBACV,IAAI,OAAO,CAAC,UAAU;wBAAE,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7D,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,OAAO,CAAC,UAAU;wBAAE,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvC,MAAM;YACV,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAErB,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACvC,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,KAAK,YAAY,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC;QAE5E,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,cAAc;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACvC,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,mCAAmC;AACnC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAWtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAe,EAAE,KAAa;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;YAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,YAAY;YAC3C,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;YACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS;YAC/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG;YAC/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,mBAAmB;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjD,oBAAoB;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,SAAS;IACZ,MAAM,GAAG,KAAK,CAAC;IACf,IAAI,GAAG,CAAC,CAAC;IACT,SAAS,GAAoB,IAAI,CAAC;IAE1C,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C;;;OAGG;IACH,IAAI,CAAC,KAAe;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,wBAAwB;QACxB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAO,kBAAkB;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAI,6BAA6B;QAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAO,sCAAsC;IAC7E,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,8DAA8D;IAChE,CAAC;IAED,4BAA4B;IAC5B,MAAM;QACJ,4DAA4D;IAC9D,CAAC;IAED,kBAAkB;IAClB,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,+CAA+C;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/lib/status-bar.ts"],"names":[],"mappings":"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"}
@@ -544,54 +544,6 @@
544
544
  "update.js"
545
545
  ]
546
546
  },
547
- "note:add": {
548
- "aliases": [],
549
- "args": {
550
- "text": {
551
- "description": "Testo della nota",
552
- "name": "text",
553
- "required": true
554
- }
555
- },
556
- "description": "Registra un appunto o un'azione nella sessione attiva.",
557
- "examples": [
558
- "<%= config.bin %> note add \"Fixato layout mobile\"",
559
- "<%= config.bin %> note add \"Aggiornato plugin sicurezza\" --priority critical"
560
- ],
561
- "flags": {
562
- "priority": {
563
- "char": "p",
564
- "description": "Priorita della nota",
565
- "name": "priority",
566
- "default": "medium",
567
- "hasDynamicHelp": false,
568
- "multiple": false,
569
- "options": [
570
- "low",
571
- "medium",
572
- "high",
573
- "critical"
574
- ],
575
- "type": "option"
576
- }
577
- },
578
- "hasDynamicHelp": false,
579
- "hiddenAliases": [],
580
- "id": "note:add",
581
- "pluginAlias": "@orbitpanel/cli",
582
- "pluginName": "@orbitpanel/cli",
583
- "pluginType": "core",
584
- "strict": true,
585
- "summary": "Aggiunge una nota alla sessione corrente",
586
- "enableJsonFlag": false,
587
- "isESM": true,
588
- "relativePath": [
589
- "dist",
590
- "commands",
591
- "note",
592
- "add.js"
593
- ]
594
- },
595
547
  "report:send": {
596
548
  "aliases": [],
597
549
  "args": {},
@@ -678,6 +630,54 @@
678
630
  "send.js"
679
631
  ]
680
632
  },
633
+ "note:add": {
634
+ "aliases": [],
635
+ "args": {
636
+ "text": {
637
+ "description": "Testo della nota",
638
+ "name": "text",
639
+ "required": true
640
+ }
641
+ },
642
+ "description": "Registra un appunto o un'azione nella sessione attiva.",
643
+ "examples": [
644
+ "<%= config.bin %> note add \"Fixato layout mobile\"",
645
+ "<%= config.bin %> note add \"Aggiornato plugin sicurezza\" --priority critical"
646
+ ],
647
+ "flags": {
648
+ "priority": {
649
+ "char": "p",
650
+ "description": "Priorita della nota",
651
+ "name": "priority",
652
+ "default": "medium",
653
+ "hasDynamicHelp": false,
654
+ "multiple": false,
655
+ "options": [
656
+ "low",
657
+ "medium",
658
+ "high",
659
+ "critical"
660
+ ],
661
+ "type": "option"
662
+ }
663
+ },
664
+ "hasDynamicHelp": false,
665
+ "hiddenAliases": [],
666
+ "id": "note:add",
667
+ "pluginAlias": "@orbitpanel/cli",
668
+ "pluginName": "@orbitpanel/cli",
669
+ "pluginType": "core",
670
+ "strict": true,
671
+ "summary": "Aggiunge una nota alla sessione corrente",
672
+ "enableJsonFlag": false,
673
+ "isESM": true,
674
+ "relativePath": [
675
+ "dist",
676
+ "commands",
677
+ "note",
678
+ "add.js"
679
+ ]
680
+ },
681
681
  "session:end": {
682
682
  "aliases": [],
683
683
  "args": {},
@@ -749,5 +749,5 @@
749
749
  ]
750
750
  }
751
751
  },
752
- "version": "0.8.5"
752
+ "version": "0.9.1"
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.1",
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
  },