@orbitpanel/cli 0.1.1 → 0.2.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,8 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Shell extends Command {
3
+ static summary: string;
4
+ static description: string;
5
+ static args: {};
6
+ static flags: {};
7
+ run(): Promise<void>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ import { startShell } from '../lib/shell.js';
3
+ export default class Shell extends Command {
4
+ static summary = 'Avvia la shell interattiva di Orbit CLI';
5
+ static description = 'Apre un ambiente interattivo con menu navigabili per gestire sessioni, report e interventi.';
6
+ static args = {};
7
+ static flags = {};
8
+ async run() {
9
+ await startShell(this.config.version);
10
+ }
11
+ }
12
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/commands/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;IAC3D,MAAM,CAAC,WAAW,GAAG,6FAA6F,CAAC;IAEnH,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IAElB,KAAK,CAAC,GAAG;QACP,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Interactive shell for @orbitpanel/cli.
3
+ * Modern REPL with branded UI, menus, spinners.
4
+ */
5
+ export declare function startShell(version: string): Promise<void>;
@@ -0,0 +1,516 @@
1
+ /**
2
+ * Interactive shell for @orbitpanel/cli.
3
+ * Modern REPL with branded UI, menus, spinners.
4
+ */
5
+ import * as p from '@clack/prompts';
6
+ import chalk from 'chalk';
7
+ import gradient from 'gradient-string';
8
+ import boxen from 'boxen';
9
+ import ora from 'ora';
10
+ import { loadConfig } from './config.js';
11
+ import { OrbitClient } from './client.js';
12
+ import { loadSiteLink } from './site.js';
13
+ import { loadActiveSession, createSession, addNote, endSession } from './session.js';
14
+ import { getGitBranch, getGitCommitHead, getGitDiffStat } from './git.js';
15
+ import { buildReportPayload } from './report-builder.js';
16
+ const orbitGradient = gradient(['#0D9488', '#14B8A6', '#1B2A4A']);
17
+ const TEAL = chalk.hex('#0D9488');
18
+ const DIM_TEAL = chalk.hex('#0D9488').dim;
19
+ function showHeader(version) {
20
+ console.log('');
21
+ console.log(orbitGradient(' ┌──────────────────────────────────────────┐'));
22
+ console.log(orbitGradient(' │') + ' ' + orbitGradient('│'));
23
+ console.log(orbitGradient(' │') + ` ${chalk.bold.hex('#0D9488')('ORBIT')} ${chalk.hex('#CBD5E1')('Panel CLI')} ${chalk.dim(`v${version}`)} ` + orbitGradient('│'));
24
+ console.log(orbitGradient(' │') + chalk.hex('#64748B')(' Gestione hosting AI-powered') + ' ' + orbitGradient('│'));
25
+ console.log(orbitGradient(' │') + ' ' + orbitGradient('│'));
26
+ console.log(orbitGradient(' └──────────────────────────────────────────┘'));
27
+ console.log('');
28
+ }
29
+ async function showStatusPanel(config) {
30
+ const defaultSite = config.default_site;
31
+ const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
32
+ const siteLink = await loadSiteLink(process.cwd());
33
+ const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
34
+ const lines = [];
35
+ // Auth status
36
+ if (tokenEntry) {
37
+ const masked = `${tokenEntry.token.slice(0, 12)}...`;
38
+ lines.push(`${chalk.dim('Auth')} ${chalk.green('●')} ${chalk.dim('Connesso')} ${chalk.dim(`(${masked})`)}`);
39
+ }
40
+ else {
41
+ lines.push(`${chalk.dim('Auth')} ${chalk.red('●')} ${chalk.dim('Non configurato')}`);
42
+ }
43
+ // Site
44
+ if (siteLink) {
45
+ lines.push(`${chalk.dim('Sito')} ${TEAL(siteLink.orbit_site_id.slice(0, 16))} ${chalk.dim(`(${siteLink.platform})`)}`);
46
+ if (siteLink.final_url) {
47
+ lines.push(`${chalk.dim('URL')} ${chalk.underline.dim(siteLink.final_url)}`);
48
+ }
49
+ }
50
+ else {
51
+ lines.push(`${chalk.dim('Sito')} ${chalk.yellow('●')} ${chalk.dim('Non collegato')}`);
52
+ }
53
+ // Session
54
+ if (session) {
55
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
56
+ lines.push(`${chalk.dim('Sessione')} ${chalk.green('●')} ${chalk.green('Attiva')} ${chalk.dim(`(${elapsed}min · ${session.notes.length} note)`)} ${session.git_branch ? chalk.dim(`[${session.git_branch}]`) : ''}`);
57
+ }
58
+ else {
59
+ lines.push(`${chalk.dim('Sessione')} ${chalk.dim('●')} ${chalk.dim('Nessuna')}`);
60
+ }
61
+ console.log(boxen(lines.join('\n'), {
62
+ padding: { top: 0, bottom: 0, left: 1, right: 1 },
63
+ margin: { top: 0, bottom: 0, left: 2, right: 0 },
64
+ borderStyle: 'round',
65
+ borderColor: '#0D9488',
66
+ dimBorder: true,
67
+ }));
68
+ }
69
+ export async function startShell(version) {
70
+ showHeader(version);
71
+ const config = await loadConfig();
72
+ await showStatusPanel(config);
73
+ console.log('');
74
+ let running = true;
75
+ while (running) {
76
+ const action = await p.select({
77
+ message: TEAL('Cosa vuoi fare?'),
78
+ options: [
79
+ { value: 'status', label: `${chalk.bold('Stato')}`, hint: 'panoramica completa' },
80
+ { value: 'session', label: `${chalk.bold('Sessione')}`, hint: 'avvia · termina · note' },
81
+ { value: 'report', label: `${chalk.bold('Report')}`, hint: 'invia report a Orbit' },
82
+ { value: 'intervention', label: `${chalk.bold('Interventi')}`, hint: 'lista · dettaglio · modifica' },
83
+ { value: 'doctor', label: `${chalk.bold('Diagnostica')}`, hint: 'verifica configurazione' },
84
+ { value: 'config', label: `${chalk.bold('Configurazione')}`, hint: 'login · link · setup' },
85
+ { value: 'quit', label: chalk.dim('Esci'), hint: 'ctrl+c' },
86
+ ],
87
+ });
88
+ if (p.isCancel(action) || action === 'quit') {
89
+ p.outro(chalk.dim('Alla prossima! 👋'));
90
+ running = false;
91
+ continue;
92
+ }
93
+ switch (action) {
94
+ case 'status':
95
+ await handleStatus(config);
96
+ break;
97
+ case 'session':
98
+ await handleSession();
99
+ break;
100
+ case 'report':
101
+ await handleReport(config);
102
+ break;
103
+ case 'intervention':
104
+ await handleIntervention(config);
105
+ break;
106
+ case 'doctor':
107
+ await handleDoctor(config);
108
+ break;
109
+ case 'config':
110
+ await handleConfig();
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ async function handleStatus(config) {
116
+ const spinner = ora({ text: 'Caricamento stato...', color: 'cyan' }).start();
117
+ const defaultSite = config.default_site;
118
+ const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
119
+ if (!tokenEntry) {
120
+ spinner.warn('Nessun token configurato');
121
+ return;
122
+ }
123
+ const client = new OrbitClient(tokenEntry.token, config.api_url);
124
+ const validation = await client.validateToken();
125
+ if (!validation.valid) {
126
+ spinner.fail(`API non raggiungibile: ${validation.error}`);
127
+ return;
128
+ }
129
+ try {
130
+ const stats = await client.getStats();
131
+ const total = stats.total_interventions ?? 0;
132
+ const byStatus = stats.by_status ?? {};
133
+ spinner.succeed(`${total} interventi totali`);
134
+ if (total > 0) {
135
+ const parts = [];
136
+ if (byStatus.scheduled)
137
+ parts.push(chalk.blue(`${byStatus.scheduled} pianificati`));
138
+ if (byStatus.in_progress)
139
+ parts.push(chalk.yellow(`${byStatus.in_progress} in corso`));
140
+ if (byStatus.completed)
141
+ parts.push(chalk.green(`${byStatus.completed} completati`));
142
+ if (byStatus.verified)
143
+ parts.push(TEAL(`${byStatus.verified} verificati`));
144
+ p.log.info(parts.join(chalk.dim(' · ')));
145
+ }
146
+ }
147
+ catch {
148
+ spinner.fail('Stats non disponibili');
149
+ }
150
+ console.log('');
151
+ }
152
+ async function handleSession() {
153
+ const siteLink = await loadSiteLink(process.cwd());
154
+ if (!siteLink) {
155
+ p.log.warn('Nessun sito collegato. Vai in Configurazione > Link sito.');
156
+ return;
157
+ }
158
+ const session = await loadActiveSession(siteLink.orbit_site_id);
159
+ const action = await p.select({
160
+ message: TEAL('Sessione'),
161
+ options: session
162
+ ? [
163
+ { value: 'info', label: 'Info sessione attiva', hint: `${session.id} · ${session.notes.length} note` },
164
+ { value: 'note', label: 'Aggiungi nota', hint: 'registra un\'azione' },
165
+ { value: 'end', label: 'Chiudi sessione', hint: 'termina e prepara report' },
166
+ { value: 'back', label: chalk.dim('Indietro') },
167
+ ]
168
+ : [
169
+ { value: 'start', label: 'Avvia sessione', hint: 'inizia tracciamento' },
170
+ { value: 'back', label: chalk.dim('Indietro') },
171
+ ],
172
+ });
173
+ if (p.isCancel(action) || action === 'back')
174
+ return;
175
+ if (action === 'start') {
176
+ const branch = await getGitBranch();
177
+ const commit = await getGitCommitHead();
178
+ const note = await p.text({
179
+ message: 'Nota iniziale (opzionale)',
180
+ placeholder: 'es. Refactor homepage per nuovo design',
181
+ });
182
+ const spinner = ora({ text: 'Avvio sessione...', color: 'cyan' }).start();
183
+ const newSession = await createSession(siteLink.orbit_site_id, {
184
+ git_branch: branch ?? undefined,
185
+ git_commit: commit ?? undefined,
186
+ note: typeof note === 'string' ? note : undefined,
187
+ });
188
+ spinner.succeed(`Sessione avviata ${chalk.dim(`(${newSession.id})`)}`);
189
+ if (branch)
190
+ p.log.info(`Branch: ${chalk.bold(branch)}`);
191
+ }
192
+ if (action === 'note' && session) {
193
+ const text = await p.text({
194
+ message: 'Testo della nota',
195
+ placeholder: 'es. Fixato layout mobile homepage',
196
+ validate: (v) => !v || v.length === 0 ? 'Inserisci il testo' : undefined,
197
+ });
198
+ if (p.isCancel(text))
199
+ return;
200
+ const priority = await p.select({
201
+ message: 'Priorita',
202
+ options: [
203
+ { value: 'low', label: chalk.dim('Bassa') },
204
+ { value: 'medium', label: 'Media' },
205
+ { value: 'high', label: chalk.yellow('Alta') },
206
+ { value: 'critical', label: chalk.red('Critica') },
207
+ ],
208
+ });
209
+ if (p.isCancel(priority))
210
+ return;
211
+ await addNote(session.id, text, priority);
212
+ p.log.success(`Nota aggiunta ${chalk.dim(`(${session.notes.length + 1} totali)`)}`);
213
+ }
214
+ if (action === 'end' && session) {
215
+ const summary = await p.text({
216
+ message: 'Summary finale (opzionale)',
217
+ placeholder: 'es. Completato refactor homepage',
218
+ });
219
+ const commitEnd = await getGitCommitHead();
220
+ const spinner = ora({ text: 'Chiusura sessione...', color: 'cyan' }).start();
221
+ await endSession(session.id, {
222
+ git_commit_end: commitEnd ?? undefined,
223
+ summary: typeof summary === 'string' ? summary : undefined,
224
+ });
225
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
226
+ spinner.succeed(`Sessione chiusa ${chalk.dim(`(${elapsed}min · ${session.notes.length} note)`)}`);
227
+ p.log.info(chalk.dim('Usa "Report" per inviare a Orbit'));
228
+ }
229
+ if (action === 'info' && session) {
230
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
231
+ p.log.info(`ID: ${chalk.bold(session.id)}`);
232
+ p.log.info(`Durata: ${elapsed} min`);
233
+ if (session.git_branch)
234
+ p.log.info(`Branch: ${session.git_branch}`);
235
+ p.log.info(`Note: ${session.notes.length}`);
236
+ if (session.notes.length > 0) {
237
+ for (const note of session.notes.slice(-5)) {
238
+ p.log.message(` ${chalk.dim('·')} ${note.text}`);
239
+ }
240
+ }
241
+ }
242
+ console.log('');
243
+ }
244
+ async function handleReport(config) {
245
+ const defaultSite = config.default_site;
246
+ const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
247
+ if (!tokenEntry) {
248
+ p.log.warn('Token non configurato');
249
+ return;
250
+ }
251
+ const siteLink = await loadSiteLink(process.cwd());
252
+ if (!siteLink) {
253
+ p.log.warn('Nessun sito collegato');
254
+ return;
255
+ }
256
+ let session = await loadActiveSession(siteLink.orbit_site_id);
257
+ const title = await p.text({
258
+ message: 'Titolo del report',
259
+ placeholder: 'es. Fix homepage layout mobile',
260
+ validate: (v) => !v || v.length === 0 ? 'Inserisci un titolo' : undefined,
261
+ });
262
+ if (p.isCancel(title))
263
+ return;
264
+ const typeTag = await p.select({
265
+ message: 'Tipo di intervento',
266
+ options: [
267
+ { value: 'fix', label: '🔧 Fix', hint: 'correzione bug' },
268
+ { value: 'feature', label: '✨ Feature', hint: 'nuova funzionalita' },
269
+ { value: 'update', label: '📦 Update', hint: 'aggiornamento' },
270
+ { value: 'security', label: '🛡️ Security', hint: 'sicurezza' },
271
+ { value: 'optimization', label: '⚡ Optimization', hint: 'performance' },
272
+ { value: 'backup', label: '💾 Backup', hint: 'backup/ripristino' },
273
+ ],
274
+ });
275
+ if (p.isCancel(typeTag))
276
+ return;
277
+ const priority = await p.select({
278
+ message: 'Priorita',
279
+ options: [
280
+ { value: 'LOW', label: chalk.dim('Bassa') },
281
+ { value: 'MEDIUM', label: 'Media' },
282
+ { value: 'HIGH', label: chalk.yellow('Alta') },
283
+ { value: 'URGENT', label: chalk.red('Urgente') },
284
+ ],
285
+ });
286
+ if (p.isCancel(priority))
287
+ return;
288
+ const confirm = await p.confirm({
289
+ message: `Inviare "${title}" a Orbit?`,
290
+ });
291
+ if (!confirm || p.isCancel(confirm)) {
292
+ p.log.info('Annullato');
293
+ return;
294
+ }
295
+ // Close active session if exists
296
+ const commitEnd = await getGitCommitHead();
297
+ let filesChanged = 0;
298
+ if (session?.git_commit_start && commitEnd) {
299
+ const diff = await getGitDiffStat(session.git_commit_start, commitEnd);
300
+ filesChanged = diff.files_changed;
301
+ }
302
+ if (session && session.status === 'active') {
303
+ session = await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
304
+ }
305
+ const payload = buildReportPayload({
306
+ session: session ?? {
307
+ id: 'no-session',
308
+ site_id: siteLink.orbit_site_id,
309
+ started_at: new Date().toISOString(),
310
+ notes: [],
311
+ status: 'completed',
312
+ },
313
+ title: title,
314
+ priority: priority,
315
+ type_tag: typeTag,
316
+ git_commit_end: commitEnd ?? undefined,
317
+ files_changed: filesChanged,
318
+ });
319
+ payload.site_id = siteLink.orbit_site_id;
320
+ const spinner = ora({ text: 'Invio report a Orbit...', color: 'cyan' }).start();
321
+ const client = new OrbitClient(tokenEntry.token, config.api_url);
322
+ try {
323
+ const result = await client.createIntervention(payload);
324
+ spinner.succeed(`Report inviato ${chalk.dim(`(${String(result.id).slice(0, 8)})`)}`);
325
+ }
326
+ catch (err) {
327
+ const msg = err instanceof Error ? err.message : String(err);
328
+ spinner.fail(`Invio fallito: ${msg}`);
329
+ }
330
+ console.log('');
331
+ }
332
+ async function handleIntervention(config) {
333
+ const defaultSite = config.default_site;
334
+ const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
335
+ if (!tokenEntry) {
336
+ p.log.warn('Token non configurato');
337
+ return;
338
+ }
339
+ const action = await p.select({
340
+ message: TEAL('Interventi'),
341
+ options: [
342
+ { value: 'list', label: 'Lista interventi', hint: 'ultimi 10' },
343
+ { value: 'detail', label: 'Dettaglio intervento', hint: 'cerca per ID' },
344
+ { value: 'back', label: chalk.dim('Indietro') },
345
+ ],
346
+ });
347
+ if (p.isCancel(action) || action === 'back')
348
+ return;
349
+ const client = new OrbitClient(tokenEntry.token, config.api_url);
350
+ const siteLink = await loadSiteLink(process.cwd());
351
+ if (action === 'list') {
352
+ const spinner = ora({ text: 'Caricamento...', color: 'cyan' }).start();
353
+ try {
354
+ const filters = { limit: 10, sort: '-created_at' };
355
+ if (siteLink)
356
+ filters.site_id = siteLink.orbit_site_id;
357
+ const result = await client.listInterventions(filters);
358
+ spinner.stop();
359
+ if (result.items.length === 0) {
360
+ p.log.info('Nessun intervento trovato');
361
+ }
362
+ else {
363
+ console.log('');
364
+ for (const item of result.items) {
365
+ const id = chalk.dim(String(item.id ?? '').slice(0, 8));
366
+ const titleStr = String(item.title ?? '').slice(0, 45);
367
+ const status = item.status;
368
+ const statusIcon = status === 'completed' ? chalk.green('●') : status === 'in_progress' ? chalk.yellow('●') : status === 'verified' ? TEAL('●') : chalk.blue('●');
369
+ const date = chalk.dim(String(item.created_at ?? '').slice(0, 10));
370
+ const originStr = item.origin === 'cli' ? TEAL('CLI') : chalk.dim(String(item.origin));
371
+ console.log(` ${statusIcon} ${id} ${titleStr.padEnd(45)} ${originStr.padEnd(12)} ${date}`);
372
+ }
373
+ console.log('');
374
+ p.log.info(chalk.dim(`${result.total} interventi totali`));
375
+ }
376
+ }
377
+ catch (err) {
378
+ const msg = err instanceof Error ? err.message : String(err);
379
+ spinner.fail(msg);
380
+ }
381
+ }
382
+ if (action === 'detail') {
383
+ const id = await p.text({
384
+ message: 'ID intervento (UUID)',
385
+ placeholder: 'abc12345-...',
386
+ validate: (v) => !v || v.length < 4 ? 'ID troppo corto' : undefined,
387
+ });
388
+ if (p.isCancel(id))
389
+ return;
390
+ const spinner = ora({ text: 'Caricamento...', color: 'cyan' }).start();
391
+ try {
392
+ const item = await client.getIntervention(id);
393
+ spinner.stop();
394
+ console.log('');
395
+ console.log(boxen([
396
+ `${chalk.bold(String(item.title))}`,
397
+ '',
398
+ `${chalk.dim('Stato')} ${item.status}`,
399
+ `${chalk.dim('Priorita')} ${item.priority}`,
400
+ `${chalk.dim('Origin')} ${item.origin}`,
401
+ `${chalk.dim('Tipo')} ${item.type_tag ?? '-'}`,
402
+ `${chalk.dim('Creato')} ${item.created_at}`,
403
+ item.description ? `\n${chalk.dim(String(item.description).slice(0, 200))}` : '',
404
+ ].filter(Boolean).join('\n'), {
405
+ padding: 1,
406
+ margin: { top: 0, bottom: 0, left: 2, right: 0 },
407
+ borderStyle: 'round',
408
+ borderColor: '#0D9488',
409
+ dimBorder: true,
410
+ }));
411
+ }
412
+ catch (err) {
413
+ const msg = err instanceof Error ? err.message : String(err);
414
+ spinner.fail(msg);
415
+ }
416
+ }
417
+ console.log('');
418
+ }
419
+ async function handleDoctor(config) {
420
+ const checks = [
421
+ { label: 'Token', check: async () => !!config.default_site && !!config.tokens[config.default_site] },
422
+ { label: 'API', check: async () => {
423
+ const t = config.default_site ? config.tokens[config.default_site] : undefined;
424
+ if (!t)
425
+ return false;
426
+ const c = new OrbitClient(t.token, config.api_url);
427
+ return (await c.validateToken()).valid;
428
+ } },
429
+ { label: 'Sito (.orbit.json)', check: async () => !!(await loadSiteLink(process.cwd())) },
430
+ { label: 'Git', check: async () => !!(await getGitBranch()) },
431
+ ];
432
+ console.log('');
433
+ for (const { label, check } of checks) {
434
+ const spinner = ora({ text: label, color: 'cyan', indent: 2 }).start();
435
+ try {
436
+ const ok = await check();
437
+ if (ok) {
438
+ spinner.succeed(label);
439
+ }
440
+ else {
441
+ spinner.warn(`${label} ${chalk.dim('— non configurato')}`);
442
+ }
443
+ }
444
+ catch {
445
+ spinner.fail(label);
446
+ }
447
+ }
448
+ console.log('');
449
+ }
450
+ async function handleConfig() {
451
+ const action = await p.select({
452
+ message: TEAL('Configurazione'),
453
+ options: [
454
+ { value: 'login', label: 'Login', hint: 'configura token' },
455
+ { value: 'link', label: 'Link sito', hint: 'collega directory a sito Orbit' },
456
+ { value: 'logout', label: 'Logout', hint: 'rimuovi token' },
457
+ { value: 'unlink', label: 'Unlink sito', hint: 'rimuovi collegamento' },
458
+ { value: 'back', label: chalk.dim('Indietro') },
459
+ ],
460
+ });
461
+ if (p.isCancel(action) || action === 'back')
462
+ return;
463
+ if (action === 'login') {
464
+ const token = await p.text({
465
+ message: 'Token MCP',
466
+ placeholder: 'orbit_mcp_xxx...',
467
+ validate: (v) => !v || !v.startsWith('orbit_mcp_') ? 'Deve iniziare con orbit_mcp_' : undefined,
468
+ });
469
+ if (p.isCancel(token))
470
+ return;
471
+ const spinner = ora({ text: 'Validazione...', color: 'cyan' }).start();
472
+ const client = new OrbitClient(token, 'https://api.orbit.principi.it');
473
+ const validation = await client.validateToken();
474
+ if (validation.valid) {
475
+ const { setToken } = await import('./config.js');
476
+ await setToken('default', {
477
+ token: token,
478
+ label: 'default',
479
+ site_id: 'default',
480
+ created_at: new Date().toISOString(),
481
+ });
482
+ spinner.succeed('Autenticazione riuscita');
483
+ }
484
+ else {
485
+ spinner.fail(`Token non valido: ${validation.error}`);
486
+ }
487
+ }
488
+ if (action === 'link') {
489
+ const siteId = await p.text({
490
+ message: 'Site ID (UUID)',
491
+ placeholder: 'uuid-del-sito-su-orbit',
492
+ validate: (v) => !v || v.length < 4 ? 'ID troppo corto' : undefined,
493
+ });
494
+ if (p.isCancel(siteId))
495
+ return;
496
+ const { saveSiteLink, detectPlatform } = await import('./site.js');
497
+ const platform = await detectPlatform(process.cwd());
498
+ await saveSiteLink(process.cwd(), {
499
+ orbit_site_id: siteId,
500
+ platform,
501
+ });
502
+ p.log.success(`Sito collegato ${chalk.dim(`(${platform})`)}`);
503
+ }
504
+ if (action === 'logout') {
505
+ const { removeToken } = await import('./config.js');
506
+ await removeToken('default');
507
+ p.log.success('Token rimosso');
508
+ }
509
+ if (action === 'unlink') {
510
+ const { removeSiteLink } = await import('./site.js');
511
+ await removeSiteLink(process.cwd());
512
+ p.log.success('Collegamento rimosso');
513
+ }
514
+ console.log('');
515
+ }
516
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"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"}
@@ -198,6 +198,27 @@
198
198
  "serve.js"
199
199
  ]
200
200
  },
201
+ "shell": {
202
+ "aliases": [],
203
+ "args": {},
204
+ "description": "Apre un ambiente interattivo con menu navigabili per gestire sessioni, report e interventi.",
205
+ "flags": {},
206
+ "hasDynamicHelp": false,
207
+ "hiddenAliases": [],
208
+ "id": "shell",
209
+ "pluginAlias": "@orbitpanel/cli",
210
+ "pluginName": "@orbitpanel/cli",
211
+ "pluginType": "core",
212
+ "strict": true,
213
+ "summary": "Avvia la shell interattiva di Orbit CLI",
214
+ "enableJsonFlag": false,
215
+ "isESM": true,
216
+ "relativePath": [
217
+ "dist",
218
+ "commands",
219
+ "shell.js"
220
+ ]
221
+ },
201
222
  "status": {
202
223
  "aliases": [],
203
224
  "args": {},
@@ -728,5 +749,5 @@
728
749
  ]
729
750
  }
730
751
  },
731
- "version": "0.1.1"
752
+ "version": "0.2.0"
732
753
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitpanel/cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,13 +32,19 @@
32
32
  "author": "PrincipiADV",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
+ "@clack/prompts": "^1.2.0",
35
36
  "@modelcontextprotocol/sdk": "^1.12.0",
36
37
  "@oclif/core": "^4.0.0",
37
38
  "@oclif/plugin-help": "^6.0.0",
38
- "chalk": "^5.4.0"
39
+ "boxen": "^8.0.1",
40
+ "chalk": "^5.4.0",
41
+ "gradient-string": "^3.0.0",
42
+ "ora": "^9.3.0",
43
+ "terminal-link": "^5.0.0"
39
44
  },
40
45
  "devDependencies": {
41
46
  "@oclif/test": "^4.0.0",
47
+ "@types/gradient-string": "^1.1.6",
42
48
  "@types/node": "^22.0.0",
43
49
  "oclif": "^4.0.0",
44
50
  "tsx": "^4.19.0",
@@ -52,6 +58,7 @@
52
58
  "bin": "orbit",
53
59
  "dirname": "orbit",
54
60
  "commands": "./dist/commands",
61
+ "default": "shell",
55
62
  "topicSeparator": " ",
56
63
  "topics": {
57
64
  "session": {