@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.
- package/dist/lib/shell-box.d.ts +35 -0
- package/dist/lib/shell-box.js +78 -0
- package/dist/lib/shell-box.js.map +1 -0
- package/dist/lib/shell.d.ts +7 -7
- package/dist/lib/shell.js +97 -51
- package/dist/lib/shell.js.map +1 -1
- package/dist/lib/status-bar.d.ts +5 -41
- package/dist/lib/status-bar.js +32 -88
- package/dist/lib/status-bar.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +2 -1
|
@@ -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"}
|
package/dist/lib/shell.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* - AI chat with
|
|
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
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* - AI chat with
|
|
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,
|
|
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 {
|
|
29
|
-
import {
|
|
30
|
-
//
|
|
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.
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
|
98
|
-
*
|
|
99
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
248
|
-
console.log(` ${DIM(
|
|
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(
|
|
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
|
-
|
|
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
|
|
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(`
|
|
372
|
+
console.log(` ${line}`);
|
|
327
373
|
}
|
|
328
374
|
if (fallback.provider_used) {
|
|
329
|
-
console.log(`\n
|
|
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(`
|
|
383
|
+
console.log(` ${DIM(`(${result.provider})`)}`);
|
|
338
384
|
if (result.error)
|
|
339
|
-
console.log(`
|
|
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(`
|
|
401
|
+
console.log(` ${line}`);
|
|
356
402
|
}
|
|
357
403
|
}
|
|
358
404
|
}
|
package/dist/lib/shell.js.map
CHANGED
|
@@ -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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"}
|
package/dist/lib/status-bar.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
|
25
|
-
*
|
|
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
|
-
}
|
package/dist/lib/status-bar.js
CHANGED
|
@@ -1,125 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
//
|
|
7
|
+
// Dark bar with colored segments — high contrast
|
|
17
8
|
const BG = chalk.bgHex('#1E293B').hex('#94A3B8');
|
|
18
|
-
const
|
|
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('#
|
|
21
|
-
const BG_DIM = chalk.bgHex('#1E293B').
|
|
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
|
|
26
|
-
*
|
|
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('
|
|
24
|
+
parts.push(`${BG_RED('○')} ${BG_DIM('non connesso')}`);
|
|
32
25
|
}
|
|
33
26
|
else if (state.siteUrl) {
|
|
34
|
-
const maxLen = Math.min(
|
|
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(
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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(
|
|
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(
|
|
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('●
|
|
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
|
|
1
|
+
{"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/lib/status-bar.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orbitpanel/cli",
|
|
3
|
-
"version": "0.
|
|
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
|
},
|