@orbitpanel/cli 0.2.2 → 0.3.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.
@@ -1,6 +1,6 @@
1
1
  import { Hook } from '@oclif/core';
2
2
  /**
3
- * Init hook — redirects bare `orbit` (no args) to `orbit shell`.
3
+ * Init hook — redirects bare `orbit` (no args) to the interactive shell.
4
4
  */
5
5
  declare const hook: Hook.Init;
6
6
  export default hook;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Init hook — redirects bare `orbit` (no args) to `orbit shell`.
2
+ * Init hook — redirects bare `orbit` (no args) to the interactive shell.
3
3
  */
4
4
  const hook = async function (options) {
5
- // If no command was specified (bare `orbit`), run the shell
6
5
  if (!options.id && (!options.argv || options.argv.length === 0)) {
7
6
  const { startShell } = await import('../lib/shell.js');
8
7
  await startShell(options.config.version);
8
+ // Shell has exited cleanly — stop oclif from showing help
9
9
  process.exit(0);
10
10
  }
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,IAAI,GAAc,KAAK,WAAW,OAAO;IAC7C,4DAA4D;IAC5D,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,IAAI,GAAc,KAAK,WAAW,OAAO;IAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Interactive REPL shell for @orbitpanel/cli.
3
- * Stile Gemini CLI / Claude Code: input testuale libero, output inline.
3
+ * Built with React + Ink — same stack as Claude Code, Gemini CLI, Codex CLI.
4
4
  */
5
5
  export declare function startShell(version: string): Promise<void>;
package/dist/lib/shell.js CHANGED
@@ -1,30 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  /**
2
3
  * Interactive REPL shell for @orbitpanel/cli.
3
- * Stile Gemini CLI / Claude Code: input testuale libero, output inline.
4
+ * Built with React + Ink — same stack as Claude Code, Gemini CLI, Codex CLI.
4
5
  */
5
- import chalk from 'chalk';
6
+ import React, { useState, useEffect } from 'react';
7
+ import { render, Box, Text, useApp, useInput } from 'ink';
8
+ import TextInput from 'ink-text-input';
9
+ import Spinner from 'ink-spinner';
6
10
  import gradient from 'gradient-string';
7
- import { createInterface } from 'node:readline';
8
- import ora from 'ora';
9
11
  import { loadConfig } from './config.js';
10
12
  import { OrbitClient } from './client.js';
11
13
  import { loadSiteLink } from './site.js';
12
14
  import { loadActiveSession, createSession, addNote, endSession, } from './session.js';
13
15
  import { getGitBranch, getGitCommitHead, getGitDiffStat } from './git.js';
14
16
  import { buildReportPayload } from './report-builder.js';
15
- // Brand colors
16
- const B = chalk.rgb(37, 99, 235);
17
- const BL = chalk.hex('#60A5FA');
18
- const BB = chalk.bold.rgb(37, 99, 235);
19
- const GREEN = chalk.hex('#22C55E');
20
- const YELLOW = chalk.hex('#EAB308');
21
- const DIM = chalk.dim;
22
- const WHITE = chalk.white;
23
17
  const orbitGrad = gradient(['#2563EB', '#3B82F6', '#60A5FA', '#0D9488']);
24
- const sparkle = BL('✦');
25
- function sleep(ms) {
26
- return new Promise(r => setTimeout(r, ms));
27
- }
28
18
  const logoLines = [
29
19
  ' ██████╗ ██████╗ ██████╗ ██╗████████╗',
30
20
  ' ██╔═══██╗██╔══██╗██╔══██╗██║╚══██╔══╝',
@@ -33,461 +23,419 @@ const logoLines = [
33
23
  ' ╚██████╔╝██║ ██║██████╔╝██║ ██║ ',
34
24
  ' ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ',
35
25
  ];
36
- async function showHeader(version) {
37
- console.clear();
38
- console.log('');
39
- for (const line of logoLines) {
40
- console.log(orbitGrad(line));
41
- await sleep(60);
42
- }
43
- console.log('');
44
- console.log(` ${chalk.bgRgb(37, 99, 235).white.bold(' CLI ')} ${chalk.bgHex('#1E293B').hex('#60A5FA')(` v${version} `)} ${DIM('·')} ${BL('Gestione Orbit Panel AI-powered')}`);
45
- }
46
- async function showStatus() {
47
- const config = await loadConfig();
48
- const defaultSite = config.default_site;
49
- const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
50
- const siteLink = await loadSiteLink(process.cwd());
51
- const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
52
- const parts = [];
53
- if (tokenEntry)
54
- parts.push(`${GREEN('●')} Connesso`);
55
- else
56
- parts.push(`${chalk.red('●')} Non connesso`);
57
- if (siteLink)
58
- parts.push(BL(siteLink.final_url ?? siteLink.orbit_site_id.slice(0, 16)));
59
- if (session) {
60
- const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
61
- parts.push(`${GREEN('●')} Sessione ${DIM(`${elapsed}min`)}`);
62
- if (session.git_branch)
63
- parts.push(BL(session.git_branch));
64
- }
65
- console.log('');
66
- console.log(` ${parts.join(` ${DIM('│')} `)}`);
26
+ function Header({ version }) {
27
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [logoLines.map((line, i) => (_jsx(Text, { children: orbitGrad(line) }, i))), _jsx(Text, { children: '' }), _jsxs(Text, { children: [_jsx(Text, { backgroundColor: "#2563EB", color: "white", bold: true, children: ' CLI ' }), _jsx(Text, { backgroundColor: "#1E293B", color: "#60A5FA", children: ` v${version} ` }), _jsx(Text, { dimColor: true, children: " \u00B7 " }), _jsx(Text, { color: "#60A5FA", children: "Gestione Orbit Panel AI-powered" })] })] }));
67
28
  }
68
- function sep() {
69
- console.log(orbitGrad(' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
70
- }
71
- function getClient(config) {
72
- const t = config.default_site ? config.tokens[config.default_site] : undefined;
73
- if (!t)
29
+ function StatusBar() {
30
+ const [status, setStatus] = useState([]);
31
+ useEffect(() => {
32
+ (async () => {
33
+ const config = await loadConfig();
34
+ const tokenEntry = config.default_site ? config.tokens[config.default_site] : undefined;
35
+ const siteLink = await loadSiteLink(process.cwd());
36
+ const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
37
+ const parts = [];
38
+ parts.push(tokenEntry ? '● Connesso' : '○ Non connesso');
39
+ if (siteLink)
40
+ parts.push(siteLink.final_url ?? siteLink.orbit_site_id.slice(0, 16));
41
+ if (session) {
42
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
43
+ parts.push(`● Sessione ${elapsed}min`);
44
+ if (session.git_branch)
45
+ parts.push(session.git_branch);
46
+ }
47
+ setStatus(parts);
48
+ })();
49
+ }, []);
50
+ if (status.length === 0)
74
51
  return null;
75
- return new OrbitClient(t.token, config.api_url);
52
+ return (_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { children: " " }), status.map((s, i) => (_jsxs(React.Fragment, { children: [i > 0 && _jsx(Text, { dimColor: true, children: " \u2502 " }), _jsx(Text, { color: s.startsWith('●') ? '#22C55E' : s.startsWith('○') ? '#EF4444' : '#60A5FA', children: s })] }, i)))] }));
76
53
  }
77
- export async function startShell(version) {
78
- await showHeader(version);
79
- await showStatus();
80
- console.log('');
81
- sep();
82
- console.log('');
83
- console.log(` ${DIM('Digita un comando o')} ${WHITE('help')} ${DIM('per la lista completa.')}`);
84
- console.log('');
85
- const rl = createInterface({
86
- input: process.stdin,
87
- output: process.stdout,
88
- prompt: ` ${B('orbit')} ${DIM('›')} `,
54
+ function OutputArea({ lines }) {
55
+ return (_jsx(Box, { flexDirection: "column", children: lines.map((line, i) => (_jsx(Text, { color: line.color, dimColor: line.dim, bold: line.bold, children: line.text }, i))) }));
56
+ }
57
+ function Shell({ version }) {
58
+ const { exit } = useApp();
59
+ const [input, setInput] = useState('');
60
+ const [output, setOutput] = useState([]);
61
+ const [loading, setLoading] = useState(false);
62
+ const [loadingText, setLoadingText] = useState('');
63
+ const [history, setHistory] = useState([]);
64
+ const addOutput = (...lines) => {
65
+ setOutput(prev => [...prev, ...lines]);
66
+ };
67
+ const clearOutput = () => setOutput([]);
68
+ useInput((input, key) => {
69
+ if (key.ctrl && input === 'c') {
70
+ addOutput({ text: '', dim: true }, { text: ' Alla prossima!', dim: true }, { text: '' });
71
+ setTimeout(() => exit(), 100);
72
+ }
89
73
  });
90
- rl.prompt();
91
- rl.on('line', async (input) => {
92
- const raw = input.trim();
74
+ const handleSubmit = async (value) => {
75
+ const raw = value.trim();
76
+ setInput('');
77
+ if (!raw)
78
+ return;
79
+ setHistory(prev => [...prev, raw]);
93
80
  const cmd = raw.toLowerCase();
94
- if (!cmd) {
95
- rl.prompt();
81
+ // Exit
82
+ if (cmd === '/exit' || cmd === '/quit' || cmd === '/q') {
83
+ addOutput({ text: '' }, { text: ' Alla prossima!', dim: true }, { text: '' });
84
+ setTimeout(() => exit(), 100);
96
85
  return;
97
86
  }
98
- if (cmd === 'exit' || cmd === 'quit' || cmd === 'q') {
99
- console.log(`\n ${DIM('Alla prossima!')}\n`);
100
- rl.close();
101
- process.exit(0);
87
+ // Clear
88
+ if (cmd === '/clear' || cmd === '/cls') {
89
+ clearOutput();
90
+ return;
102
91
  }
103
- if (cmd === 'clear' || cmd === 'cls') {
104
- console.clear();
105
- rl.prompt();
92
+ // Help / List
93
+ if (cmd === '/help' || cmd === '/list' || cmd === '/h' || cmd === '/l') {
94
+ addOutput({ text: '' }, { text: ' ✦ Comandi disponibili', color: '#60A5FA', bold: true }, { text: '' }, { text: ' /status /s panoramica completa', dim: false }, { text: ' /doctor /doc verifica configurazione', dim: false }, { text: ' /session start /ss avvia sessione di lavoro', dim: false }, { text: ' /session end /se chiudi sessione', dim: false }, { text: ' /session info sessione attiva', dim: false }, { text: ' /note <testo> aggiungi nota', dim: false }, { text: ' /report /r invia report a Orbit', dim: false }, { text: ' /list /ls lista interventi', dim: false }, { text: ' /get <id> dettaglio intervento', dim: false }, { text: ' /login <token> configura token', dim: false }, { text: ' /link <site_id> collega directory', dim: false }, { text: ' /clear pulisci schermo', dim: false }, { text: ' /exit /q esci', dim: false }, { text: '' });
106
95
  return;
107
96
  }
108
- if (cmd === 'help' || cmd === 'h') {
109
- showHelp();
110
- rl.prompt();
97
+ // Status
98
+ if (cmd === '/status' || cmd === '/s') {
99
+ setLoading(true);
100
+ setLoadingText('Caricamento stato...');
101
+ try {
102
+ const config = await loadConfig();
103
+ const client = getClient(config);
104
+ const lines = [{ text: '' }, { text: ' ✦ Stato', color: '#2563EB', bold: true }, { text: '' }];
105
+ if (!client) {
106
+ lines.push({ text: ' ✗ Token non configurato', color: '#EF4444' });
107
+ lines.push({ text: ' Esegui: /login <token>', dim: true });
108
+ }
109
+ else {
110
+ const t = config.tokens[config.default_site];
111
+ const v = await client.validateToken();
112
+ lines.push({ text: ` ✓ Token ${t.token.slice(0, 15)}...`, color: v.valid ? '#22C55E' : '#EF4444' });
113
+ lines.push({ text: ` ✓ API ${v.valid ? 'raggiungibile' : v.error}`, color: v.valid ? '#22C55E' : '#EF4444' });
114
+ const siteLink = await loadSiteLink(process.cwd());
115
+ if (siteLink)
116
+ lines.push({ text: ` ✓ Sito ${siteLink.final_url ?? siteLink.orbit_site_id}`, color: '#60A5FA' });
117
+ const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
118
+ if (session) {
119
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
120
+ lines.push({ text: ` ✓ Sessione attiva (${elapsed}min · ${session.notes.length} note)`, color: '#22C55E' });
121
+ }
122
+ if (v.valid) {
123
+ try {
124
+ const stats = await client.getStats();
125
+ const total = stats.total_interventions ?? 0;
126
+ lines.push({ text: '' });
127
+ lines.push({ text: ` ${total} interventi totali`, color: '#60A5FA' });
128
+ }
129
+ catch { }
130
+ }
131
+ }
132
+ lines.push({ text: '' });
133
+ addOutput(...lines);
134
+ }
135
+ finally {
136
+ setLoading(false);
137
+ }
111
138
  return;
112
139
  }
113
- if (cmd === 'status' || cmd === 's') {
114
- await cmdStatus();
115
- rl.prompt();
140
+ // Doctor
141
+ if (cmd === '/doctor' || cmd === '/doc') {
142
+ setLoading(true);
143
+ setLoadingText('Diagnostica...');
144
+ try {
145
+ const config = await loadConfig();
146
+ const lines = [{ text: '' }, { text: ' ✦ Diagnostica', color: '#2563EB', bold: true }, { text: '' }];
147
+ const t = config.default_site ? config.tokens[config.default_site] : undefined;
148
+ lines.push({ text: ` ${t ? '✓' : '!'} Token ${t ? t.token.slice(0, 15) + '...' : 'non configurato'}`, color: t ? '#22C55E' : '#EAB308' });
149
+ if (t) {
150
+ const c = new OrbitClient(t.token, config.api_url);
151
+ const start = Date.now();
152
+ const v = await c.validateToken();
153
+ lines.push({ text: ` ${v.valid ? '✓' : '✗'} API ${v.valid ? `raggiungibile (${Date.now() - start}ms)` : v.error}`, color: v.valid ? '#22C55E' : '#EF4444' });
154
+ }
155
+ const site = await loadSiteLink(process.cwd());
156
+ lines.push({ text: ` ${site ? '✓' : '!'} Sito ${site ? '.orbit.json presente' : 'non collegato'}`, color: site ? '#22C55E' : '#EAB308' });
157
+ const branch = await getGitBranch();
158
+ lines.push({ text: ` ${branch ? '✓' : '!'} Git ${branch ?? 'nessun repository'}`, color: branch ? '#22C55E' : '#EAB308' });
159
+ const allOk = !!(t && site && branch);
160
+ lines.push({ text: '' });
161
+ lines.push({ text: allOk ? ' ✓ Tutto ok — pronto per lavorare' : ' ! Attenzione — vedi sopra', color: allOk ? '#22C55E' : '#EAB308', bold: true });
162
+ lines.push({ text: '' });
163
+ addOutput(...lines);
164
+ }
165
+ finally {
166
+ setLoading(false);
167
+ }
116
168
  return;
117
169
  }
118
- if (cmd === 'doctor' || cmd === 'doc') {
119
- await cmdDoctor();
120
- rl.prompt();
170
+ // Session start
171
+ if (cmd === '/session start' || cmd === '/ss') {
172
+ setLoading(true);
173
+ setLoadingText('Avvio sessione...');
174
+ try {
175
+ const siteLink = await loadSiteLink(process.cwd());
176
+ if (!siteLink) {
177
+ addOutput({ text: '' }, { text: ' ✗ Nessun sito collegato. Esegui: /link <site_id>', color: '#EF4444' }, { text: '' });
178
+ return;
179
+ }
180
+ const existing = await loadActiveSession(siteLink.orbit_site_id);
181
+ if (existing) {
182
+ addOutput({ text: '' }, { text: ` ! Sessione gia attiva (${existing.id}). Chiudi con: /session end`, color: '#EAB308' }, { text: '' });
183
+ return;
184
+ }
185
+ const branch = await getGitBranch();
186
+ const commit = await getGitCommitHead();
187
+ const s = await createSession(siteLink.orbit_site_id, { git_branch: branch ?? undefined, git_commit: commit ?? undefined });
188
+ addOutput({ text: '' }, { text: ' ✦ Sessione avviata', color: '#2563EB', bold: true }, { text: '' }, { text: ` ID ${s.id}`, color: '#60A5FA' }, ...(branch ? [{ text: ` Branch ${branch}` }] : []), ...(commit ? [{ text: ` Commit ${commit}`, color: '#60A5FA' }] : []), { text: ` Inizio ${new Date().toLocaleTimeString('it-IT', { hour: '2-digit', minute: '2-digit' })}` }, { text: '' });
189
+ }
190
+ finally {
191
+ setLoading(false);
192
+ }
121
193
  return;
122
194
  }
123
- if (cmd === 'session start' || cmd === 'ss') {
124
- await cmdSessionStart();
125
- rl.prompt();
195
+ // Session end
196
+ if (cmd === '/session end' || cmd === '/se') {
197
+ setLoading(true);
198
+ setLoadingText('Chiusura sessione...');
199
+ try {
200
+ const siteLink = await loadSiteLink(process.cwd());
201
+ if (!siteLink) {
202
+ addOutput({ text: ' ✗ Nessun sito collegato', color: '#EF4444' });
203
+ return;
204
+ }
205
+ const session = await loadActiveSession(siteLink.orbit_site_id);
206
+ if (!session) {
207
+ addOutput({ text: ' Nessuna sessione attiva', dim: true });
208
+ return;
209
+ }
210
+ const commitEnd = await getGitCommitHead();
211
+ await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
212
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
213
+ addOutput({ text: '' }, { text: ` ✓ Sessione chiusa (${elapsed}min · ${session.notes.length} note)`, color: '#22C55E', bold: true }, { text: ' Invia il report con: /report', dim: true }, { text: '' });
214
+ }
215
+ finally {
216
+ setLoading(false);
217
+ }
126
218
  return;
127
219
  }
128
- if (cmd === 'session end' || cmd === 'se') {
129
- await cmdSessionEnd();
130
- rl.prompt();
220
+ // Session info
221
+ if (cmd === '/session' || cmd === '/session info') {
222
+ const siteLink = await loadSiteLink(process.cwd());
223
+ if (!siteLink) {
224
+ addOutput({ text: ' Nessun sito collegato', dim: true });
225
+ return;
226
+ }
227
+ const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
228
+ if (!session) {
229
+ addOutput({ text: ' Nessuna sessione attiva', dim: true });
230
+ return;
231
+ }
232
+ const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
233
+ const lines = [
234
+ { text: '' },
235
+ { text: ' ✦ Sessione attiva', color: '#2563EB', bold: true },
236
+ { text: '' },
237
+ { text: ` ID ${session.id}`, color: '#60A5FA' },
238
+ { text: ` Durata ${elapsed} min` },
239
+ ];
240
+ if (session.git_branch)
241
+ lines.push({ text: ` Branch ${session.git_branch}`, color: '#60A5FA' });
242
+ lines.push({ text: ` Note ${session.notes.length}` });
243
+ for (const n of session.notes.slice(-5)) {
244
+ lines.push({ text: ` · ${n.text}` });
245
+ }
246
+ lines.push({ text: '' });
247
+ addOutput(...lines);
131
248
  return;
132
249
  }
133
- if (cmd === 'session' || cmd === 'session info') {
134
- await cmdSessionInfo();
135
- rl.prompt();
250
+ // Note
251
+ if (cmd.startsWith('/note ') || cmd.startsWith('/n ')) {
252
+ const text = raw.slice(raw.indexOf(' ') + 1);
253
+ const siteLink = await loadSiteLink(process.cwd());
254
+ if (!siteLink) {
255
+ addOutput({ text: ' ✗ Nessun sito collegato', color: '#EF4444' });
256
+ return;
257
+ }
258
+ const session = await loadActiveSession(siteLink.orbit_site_id);
259
+ if (!session) {
260
+ addOutput({ text: ' Nessuna sessione attiva. /session start', dim: true });
261
+ return;
262
+ }
263
+ await addNote(session.id, text, 'medium');
264
+ addOutput({ text: '' }, { text: ` ✓ Nota aggiunta (${session.notes.length + 1} totali)`, color: '#22C55E', bold: true }, { text: ` │ ${text}`, color: '#2563EB' }, { text: '' });
136
265
  return;
137
266
  }
138
- if (cmd.startsWith('note ') || cmd.startsWith('n ')) {
139
- await cmdNoteAdd(raw.slice(raw.indexOf(' ') + 1));
140
- rl.prompt();
267
+ // Report
268
+ if (cmd === '/report' || cmd === '/r') {
269
+ setLoading(true);
270
+ setLoadingText('Invio report a Orbit...');
271
+ try {
272
+ const config = await loadConfig();
273
+ const client = getClient(config);
274
+ if (!client) {
275
+ addOutput({ text: ' ✗ Token non configurato', color: '#EF4444' });
276
+ return;
277
+ }
278
+ const siteLink = await loadSiteLink(process.cwd());
279
+ if (!siteLink) {
280
+ addOutput({ text: ' ✗ Nessun sito collegato', color: '#EF4444' });
281
+ return;
282
+ }
283
+ let session = await loadActiveSession(siteLink.orbit_site_id);
284
+ const commitEnd = await getGitCommitHead();
285
+ let filesChanged = 0;
286
+ if (session?.git_commit_start && commitEnd) {
287
+ const diff = await getGitDiffStat(session.git_commit_start, commitEnd);
288
+ filesChanged = diff.files_changed;
289
+ }
290
+ if (session && session.status === 'active') {
291
+ session = await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
292
+ }
293
+ const payload = buildReportPayload({
294
+ session: session ?? { id: 'no-session', site_id: siteLink.orbit_site_id, started_at: new Date().toISOString(), notes: [], status: 'completed' },
295
+ git_commit_end: commitEnd ?? undefined, files_changed: filesChanged,
296
+ });
297
+ payload.site_id = siteLink.orbit_site_id;
298
+ const result = await client.createIntervention(payload);
299
+ addOutput({ text: '' }, { text: ` ✓ Report inviato ${String(result.id).slice(0, 8)}`, color: '#22C55E', bold: true }, { text: '' });
300
+ }
301
+ catch (err) {
302
+ addOutput({ text: ` ✗ Invio fallito: ${err instanceof Error ? err.message : String(err)}`, color: '#EF4444' });
303
+ }
304
+ finally {
305
+ setLoading(false);
306
+ }
141
307
  return;
142
308
  }
143
- if (cmd === 'report' || cmd === 'r') {
144
- await cmdReport();
145
- rl.prompt();
309
+ // List interventions
310
+ if (cmd === '/list' || cmd === '/ls' || cmd === '/interventions') {
311
+ setLoading(true);
312
+ setLoadingText('Caricamento interventi...');
313
+ try {
314
+ const config = await loadConfig();
315
+ const client = getClient(config);
316
+ if (!client) {
317
+ addOutput({ text: ' ✗ Token non configurato', color: '#EF4444' });
318
+ return;
319
+ }
320
+ const siteLink = await loadSiteLink(process.cwd());
321
+ const filters = { limit: 10, sort: '-created_at' };
322
+ if (siteLink)
323
+ filters.site_id = siteLink.orbit_site_id;
324
+ const result = await client.listInterventions(filters);
325
+ const lines = [{ text: '' }, { text: ' ✦ Interventi', color: '#2563EB', bold: true }, { text: '' }];
326
+ if (result.items.length === 0) {
327
+ lines.push({ text: ' Nessun intervento trovato', dim: true });
328
+ }
329
+ else {
330
+ for (const item of result.items) {
331
+ const id = String(item.id ?? '').slice(0, 8);
332
+ const t = String(item.title ?? '').slice(0, 35).padEnd(35);
333
+ const s = item.status;
334
+ const sIcon = s === 'completed' ? '●' : s === 'in_progress' ? '●' : '●';
335
+ const sColor = s === 'completed' ? '#22C55E' : s === 'in_progress' ? '#EAB308' : '#60A5FA';
336
+ const sLabel = s === 'completed' ? 'completato' : s === 'in_progress' ? 'in corso' : s === 'verified' ? 'verificato' : 'pianificato';
337
+ const date = String(item.created_at ?? '').slice(5, 10);
338
+ const origin = item.origin === 'cli' ? 'CLI' : String(item.origin);
339
+ lines.push({ text: ` ${sIcon} ${id} ${t} ${sLabel.padEnd(12)} ${origin.padEnd(6)} ${date}`, color: sColor });
340
+ }
341
+ lines.push({ text: '' });
342
+ lines.push({ text: ` ${result.total} interventi`, dim: true });
343
+ }
344
+ lines.push({ text: '' });
345
+ addOutput(...lines);
346
+ }
347
+ catch (err) {
348
+ addOutput({ text: ` ✗ ${err instanceof Error ? err.message : String(err)}`, color: '#EF4444' });
349
+ }
350
+ finally {
351
+ setLoading(false);
352
+ }
146
353
  return;
147
354
  }
148
- if (cmd === 'list' || cmd === 'ls' || cmd === 'l') {
149
- await cmdList();
150
- rl.prompt();
355
+ // Get intervention
356
+ if (cmd.startsWith('/get ') || cmd.startsWith('/g ')) {
357
+ const id = raw.split(' ')[1];
358
+ if (!id) {
359
+ addOutput({ text: ' Uso: /get <intervention_id>', dim: true });
360
+ return;
361
+ }
362
+ setLoading(true);
363
+ setLoadingText('Caricamento...');
364
+ try {
365
+ const config = await loadConfig();
366
+ const client = getClient(config);
367
+ if (!client) {
368
+ addOutput({ text: ' ✗ Token non configurato', color: '#EF4444' });
369
+ return;
370
+ }
371
+ const item = await client.getIntervention(id);
372
+ addOutput({ text: '' }, { text: ` ✦ ${String(item.title)}`, color: '#2563EB', bold: true }, { text: '' }, { text: ` ID ${String(item.id)}`, color: '#60A5FA' }, { text: ` Stato ${String(item.status)}` }, { text: ` Priorita ${String(item.priority)}` }, { text: ` Origin ${item.origin === 'cli' ? 'CLI' : String(item.origin)}`, color: item.origin === 'cli' ? '#2563EB' : undefined }, ...(item.type_tag ? [{ text: ` Tipo ${String(item.type_tag)}`, color: '#60A5FA' }] : []), { text: ` Creato ${String(item.created_at)}`, dim: true }, { text: '' });
373
+ }
374
+ catch (err) {
375
+ addOutput({ text: ` ✗ ${err instanceof Error ? err.message : String(err)}`, color: '#EF4444' });
376
+ }
377
+ finally {
378
+ setLoading(false);
379
+ }
151
380
  return;
152
381
  }
153
- if (cmd.startsWith('get ') || cmd.startsWith('g ')) {
154
- await cmdGet(raw.split(' ')[1]);
155
- rl.prompt();
382
+ // Login
383
+ if (cmd.startsWith('/login ')) {
384
+ const token = raw.split(' ')[1];
385
+ if (!token?.startsWith('orbit_mcp_')) {
386
+ addOutput({ text: ' Uso: /login orbit_mcp_xxx', dim: true });
387
+ return;
388
+ }
389
+ setLoading(true);
390
+ setLoadingText('Validazione token...');
391
+ try {
392
+ const client = new OrbitClient(token, 'https://api.orbit.principi.it');
393
+ const v = await client.validateToken();
394
+ if (v.valid) {
395
+ const { setToken } = await import('./config.js');
396
+ await setToken('default', { token, label: 'default', site_id: 'default', created_at: new Date().toISOString() });
397
+ addOutput({ text: '' }, { text: ' ✓ Autenticazione riuscita', color: '#22C55E', bold: true }, { text: '' });
398
+ }
399
+ else {
400
+ addOutput({ text: ` ✗ Token non valido: ${v.error}`, color: '#EF4444' });
401
+ }
402
+ }
403
+ finally {
404
+ setLoading(false);
405
+ }
156
406
  return;
157
407
  }
158
- if (cmd.startsWith('login ')) {
159
- await cmdLogin(raw.split(' ')[1]);
160
- rl.prompt();
408
+ // Link
409
+ if (cmd.startsWith('/link ')) {
410
+ const siteId = raw.split(' ')[1];
411
+ if (!siteId) {
412
+ addOutput({ text: ' Uso: /link <site_id>', dim: true });
413
+ return;
414
+ }
415
+ const { saveSiteLink, detectPlatform } = await import('./site.js');
416
+ const platform = await detectPlatform(process.cwd());
417
+ await saveSiteLink(process.cwd(), { orbit_site_id: siteId, platform });
418
+ addOutput({ text: '' }, { text: ` ✓ Sito collegato (${platform})`, color: '#22C55E', bold: true }, { text: '' });
161
419
  return;
162
420
  }
163
- if (cmd.startsWith('link ')) {
164
- await cmdLink(raw.split(' ')[1]);
165
- rl.prompt();
421
+ // Unknown command
422
+ if (cmd.startsWith('/')) {
423
+ addOutput({ text: '' }, { text: ` Comando sconosciuto: ${cmd} — digita /help`, dim: true }, { text: '' });
166
424
  return;
167
425
  }
168
- console.log(`\n ${DIM('Comando non riconosciuto:')} ${WHITE(cmd)} ${DIM('— digita')} ${WHITE('help')}\n`);
169
- rl.prompt();
170
- });
171
- }
172
- function showHelp() {
173
- console.log('');
174
- console.log(` ${sparkle} ${BB('Comandi disponibili')}`);
175
- console.log('');
176
- console.log(` ${WHITE('status')} ${DIM('s')} ${DIM('panoramica completa')}`);
177
- console.log(` ${WHITE('doctor')} ${DIM('doc')} ${DIM('verifica configurazione')}`);
178
- console.log(` ${WHITE('session start')} ${DIM('ss')} ${DIM('avvia sessione di lavoro')}`);
179
- console.log(` ${WHITE('session end')} ${DIM('se')} ${DIM('chiudi sessione')}`);
180
- console.log(` ${WHITE('session')} ${DIM('info sessione attiva')}`);
181
- console.log(` ${WHITE('note')} ${BL('<testo>')} ${DIM('aggiungi nota alla sessione')}`);
182
- console.log(` ${WHITE('report')} ${DIM('r')} ${DIM('invia report a Orbit')}`);
183
- console.log(` ${WHITE('list')} ${DIM('ls')} ${DIM('lista interventi')}`);
184
- console.log(` ${WHITE('get')} ${BL('<id>')} ${DIM('dettaglio intervento')}`);
185
- console.log(` ${WHITE('login')} ${BL('<token>')} ${DIM('configura token')}`);
186
- console.log(` ${WHITE('link')} ${BL('<site_id>')} ${DIM('collega directory a sito')}`);
187
- console.log(` ${WHITE('clear')} ${DIM('pulisci schermo')}`);
188
- console.log(` ${WHITE('exit')} ${DIM('q')} ${DIM('esci')}`);
189
- console.log('');
190
- }
191
- async function cmdStatus() {
192
- const config = await loadConfig();
193
- const client = getClient(config);
194
- console.log('');
195
- console.log(` ${sparkle} ${BB('Stato')}`);
196
- console.log('');
197
- if (!client) {
198
- console.log(` ${chalk.red('✗')} ${WHITE('Token')} ${DIM('non configurato')}`);
199
- console.log(` ${DIM('Esegui: login <token>')}`);
200
- console.log('');
201
- return;
202
- }
203
- const tokenEntry = config.tokens[config.default_site];
204
- const spinner = ora({ text: 'Verifica connessione...', color: 'blue', indent: 5 }).start();
205
- const v = await client.validateToken();
206
- if (!v.valid) {
207
- spinner.fail(`API: ${v.error}`);
208
- console.log('');
209
- return;
210
- }
211
- spinner.stop();
212
- console.log(` ${GREEN('✓')} ${WHITE('Token')} ${DIM(tokenEntry.token.slice(0, 15) + '...')}`);
213
- console.log(` ${GREEN('✓')} ${WHITE('API')} ${GREEN('raggiungibile')}`);
214
- const siteLink = await loadSiteLink(process.cwd());
215
- if (siteLink) {
216
- console.log(` ${GREEN('✓')} ${WHITE('Sito')} ${BL(siteLink.final_url ?? siteLink.orbit_site_id)}`);
217
- }
218
- const session = siteLink ? await loadActiveSession(siteLink.orbit_site_id) : null;
219
- if (session) {
220
- const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
221
- console.log(` ${GREEN('✓')} ${WHITE('Sessione')} ${GREEN('attiva')} ${DIM(`${elapsed}min · ${session.notes.length} note`)}`);
222
- }
223
- try {
224
- const stats = await client.getStats();
225
- const total = stats.total_interventions ?? 0;
226
- const by = stats.by_status ?? {};
227
- console.log('');
228
- console.log(` ${BL(String(total))} interventi totali`);
229
- const parts = [];
230
- if (by.completed)
231
- parts.push(GREEN(`${by.completed} completati`));
232
- if (by.in_progress)
233
- parts.push(YELLOW(`${by.in_progress} in corso`));
234
- if (by.scheduled)
235
- parts.push(BL(`${by.scheduled} pianificati`));
236
- if (parts.length)
237
- console.log(` ${parts.join(DIM(' · '))}`);
238
- }
239
- catch { }
240
- console.log('');
426
+ // Free text (future: LLM integration)
427
+ addOutput({ text: '' }, { text: ` ${raw}`, dim: true }, { text: ' Input libero sara supportato con integrazione LLM.', dim: true }, { text: ' Per ora usa /help per i comandi disponibili.', dim: true }, { text: '' });
428
+ };
429
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { version: version }), _jsx(Text, { children: orbitGrad(' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') }), _jsx(StatusBar, {}), _jsx(Text, { children: orbitGrad(' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') }), _jsx(Text, { dimColor: true, children: " Digita /help per la lista comandi." }), _jsx(Text, { children: '' }), _jsx(OutputArea, { lines: output }), loading ? (_jsxs(Box, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: "#2563EB", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { children: [" ", loadingText] })] })) : (_jsxs(Box, { children: [_jsx(Text, { color: "#2563EB", bold: true, children: " orbit" }), _jsx(Text, { dimColor: true, children: " \u203A " }), _jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit })] }))] }));
241
430
  }
242
- async function cmdDoctor() {
243
- const config = await loadConfig();
244
- console.log('');
245
- console.log(` ${sparkle} ${BB('Diagnostica')}`);
246
- console.log('');
431
+ function getClient(config) {
247
432
  const t = config.default_site ? config.tokens[config.default_site] : undefined;
248
- console.log(` ${t ? GREEN('✓') : YELLOW('!')} ${WHITE('Token')} ${t ? DIM(t.token.slice(0, 15) + '...') : DIM('non configurato')}`);
249
- if (t) {
250
- const c = new OrbitClient(t.token, config.api_url);
251
- const start = Date.now();
252
- const v = await c.validateToken();
253
- const ms = Date.now() - start;
254
- console.log(` ${v.valid ? GREEN('✓') : chalk.red('✗')} ${WHITE('API')} ${v.valid ? `${GREEN('raggiungibile')} ${DIM(`(${ms}ms)`)}` : DIM(v.error ?? 'errore')}`);
255
- }
256
- const site = await loadSiteLink(process.cwd());
257
- console.log(` ${site ? GREEN('✓') : YELLOW('!')} ${WHITE('Sito')} ${site ? `${BL('.orbit.json')} ${DIM('presente')}` : DIM('non collegato')}`);
258
- const branch = await getGitBranch();
259
- console.log(` ${branch ? GREEN('✓') : YELLOW('!')} ${WHITE('Git')} ${branch ? BL(branch) : DIM('nessun repository')}`);
260
- console.log('');
261
- const allOk = !!(t && site && branch);
262
- console.log(` ${allOk ? GREEN.bold('✓ Tutto ok') : YELLOW('! Attenzione')} ${DIM(allOk ? '— pronto per lavorare' : '— vedi sopra')}`);
263
- console.log('');
264
- }
265
- async function cmdSessionStart() {
266
- const siteLink = await loadSiteLink(process.cwd());
267
- if (!siteLink) {
268
- console.log(`\n ${chalk.red('✗')} ${DIM('Nessun sito collegato. Esegui: link <site_id>')}\n`);
269
- return;
270
- }
271
- const existing = await loadActiveSession(siteLink.orbit_site_id);
272
- if (existing) {
273
- console.log(`\n ${YELLOW('!')} ${DIM(`Sessione gia attiva (${existing.id}). Chiudi con: session end`)}\n`);
274
- return;
275
- }
276
- const branch = await getGitBranch();
277
- const commit = await getGitCommitHead();
278
- const s = await createSession(siteLink.orbit_site_id, { git_branch: branch ?? undefined, git_commit: commit ?? undefined });
279
- console.log('');
280
- console.log(` ${sparkle} ${BB('Sessione avviata')}`);
281
- console.log('');
282
- console.log(` ${DIM('ID')} ${BL(s.id)}`);
283
- if (branch)
284
- console.log(` ${DIM('Branch')} ${WHITE(branch)}`);
285
- if (commit)
286
- console.log(` ${DIM('Commit')} ${BL(commit)}`);
287
- console.log(` ${DIM('Inizio')} ${WHITE(new Date().toLocaleTimeString('it-IT', { hour: '2-digit', minute: '2-digit' }))}`);
288
- console.log('');
289
- }
290
- async function cmdSessionEnd() {
291
- const siteLink = await loadSiteLink(process.cwd());
292
- if (!siteLink) {
293
- console.log(`\n ${chalk.red('✗')} ${DIM('Nessun sito collegato')}\n`);
294
- return;
295
- }
296
- const session = await loadActiveSession(siteLink.orbit_site_id);
297
- if (!session) {
298
- console.log(`\n ${DIM('Nessuna sessione attiva. Avvia con: session start')}\n`);
299
- return;
300
- }
301
- const commitEnd = await getGitCommitHead();
302
- await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
303
- const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
304
- console.log('');
305
- console.log(` ${GREEN('✓')} ${GREEN.bold('Sessione chiusa')} ${DIM(`(${elapsed}min · ${session.notes.length} note)`)}`);
306
- console.log(` ${DIM('Invia il report con: report')}`);
307
- console.log('');
308
- }
309
- async function cmdSessionInfo() {
310
- const siteLink = await loadSiteLink(process.cwd());
311
- if (!siteLink) {
312
- console.log(`\n ${DIM('Nessun sito collegato')}\n`);
313
- return;
314
- }
315
- const session = await loadActiveSession(siteLink.orbit_site_id);
316
- if (!session) {
317
- console.log(`\n ${DIM('Nessuna sessione attiva')}\n`);
318
- return;
319
- }
320
- const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
321
- console.log('');
322
- console.log(` ${sparkle} ${BB('Sessione attiva')}`);
323
- console.log('');
324
- console.log(` ${DIM('ID')} ${BL(session.id)}`);
325
- console.log(` ${DIM('Durata')} ${WHITE(`${elapsed} min`)}`);
326
- if (session.git_branch)
327
- console.log(` ${DIM('Branch')} ${BL(session.git_branch)}`);
328
- console.log(` ${DIM('Note')} ${WHITE(String(session.notes.length))}`);
329
- for (const note of session.notes.slice(-5)) {
330
- console.log(` ${DIM('·')} ${WHITE(note.text)}`);
331
- }
332
- console.log('');
333
- }
334
- async function cmdNoteAdd(text) {
335
- const siteLink = await loadSiteLink(process.cwd());
336
- if (!siteLink) {
337
- console.log(`\n ${chalk.red('✗')} ${DIM('Nessun sito collegato')}\n`);
338
- return;
339
- }
340
- const session = await loadActiveSession(siteLink.orbit_site_id);
341
- if (!session) {
342
- console.log(`\n ${DIM('Nessuna sessione attiva. Avvia con: session start')}\n`);
343
- return;
344
- }
345
- await addNote(session.id, text, 'medium');
346
- console.log('');
347
- console.log(` ${GREEN('✓')} ${GREEN.bold('Nota aggiunta')} ${DIM(`(${session.notes.length + 1} totali)`)}`);
348
- console.log(` ${B('│')} ${WHITE(text)}`);
349
- console.log('');
350
- }
351
- async function cmdReport() {
352
- const config = await loadConfig();
353
- const client = getClient(config);
354
- if (!client) {
355
- console.log(`\n ${chalk.red('✗')} ${DIM('Token non configurato. Esegui: login <token>')}\n`);
356
- return;
357
- }
358
- const siteLink = await loadSiteLink(process.cwd());
359
- if (!siteLink) {
360
- console.log(`\n ${chalk.red('✗')} ${DIM('Nessun sito collegato')}\n`);
361
- return;
362
- }
363
- let session = await loadActiveSession(siteLink.orbit_site_id);
364
- const commitEnd = await getGitCommitHead();
365
- let filesChanged = 0;
366
- if (session?.git_commit_start && commitEnd) {
367
- const diff = await getGitDiffStat(session.git_commit_start, commitEnd);
368
- filesChanged = diff.files_changed;
369
- }
370
- if (session && session.status === 'active') {
371
- session = await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
372
- }
373
- const payload = buildReportPayload({
374
- session: session ?? { id: 'no-session', site_id: siteLink.orbit_site_id, started_at: new Date().toISOString(), notes: [], status: 'completed' },
375
- git_commit_end: commitEnd ?? undefined,
376
- files_changed: filesChanged,
377
- });
378
- payload.site_id = siteLink.orbit_site_id;
379
- const spinner = ora({ text: 'Invio report a Orbit...', color: 'blue', indent: 2 }).start();
380
- try {
381
- const result = await client.createIntervention(payload);
382
- spinner.succeed(`${GREEN.bold('Report inviato')} ${DIM(String(result.id).slice(0, 8))}`);
383
- }
384
- catch (err) {
385
- spinner.fail(`Invio fallito: ${err instanceof Error ? err.message : String(err)}`);
386
- }
387
- console.log('');
388
- }
389
- async function cmdList() {
390
- const config = await loadConfig();
391
- const client = getClient(config);
392
- if (!client) {
393
- console.log(`\n ${chalk.red('✗')} ${DIM('Token non configurato')}\n`);
394
- return;
395
- }
396
- const siteLink = await loadSiteLink(process.cwd());
397
- const filters = { limit: 10, sort: '-created_at' };
398
- if (siteLink)
399
- filters.site_id = siteLink.orbit_site_id;
400
- const spinner = ora({ text: 'Caricamento...', color: 'blue', indent: 2 }).start();
401
- try {
402
- const result = await client.listInterventions(filters);
403
- spinner.stop();
404
- console.log('');
405
- console.log(` ${sparkle} ${BB('Interventi')}`);
406
- console.log('');
407
- if (result.items.length === 0) {
408
- console.log(` ${DIM('Nessun intervento trovato')}`);
409
- }
410
- else {
411
- for (const item of result.items) {
412
- const id = DIM(String(item.id ?? '').slice(0, 8));
413
- const t = WHITE(String(item.title ?? '').slice(0, 35).padEnd(35));
414
- const s = item.status;
415
- const sIcon = s === 'completed' ? GREEN('●') : s === 'in_progress' ? YELLOW('●') : s === 'verified' ? B('●') : BL('●');
416
- const sLabel = s === 'completed' ? GREEN('completato') : s === 'in_progress' ? YELLOW('in corso') : s === 'verified' ? B('verificato') : BL('pianificato');
417
- const date = DIM(String(item.created_at ?? '').slice(5, 10));
418
- const origin = item.origin === 'cli' ? B('CLI') : DIM(String(item.origin));
419
- console.log(` ${sIcon} ${id} ${t} ${sLabel.padEnd(22)} ${origin.padEnd(10)} ${date}`);
420
- }
421
- console.log('');
422
- console.log(` ${DIM(`${result.total} interventi`)}`);
423
- }
424
- }
425
- catch (err) {
426
- spinner.fail(err instanceof Error ? err.message : String(err));
427
- }
428
- console.log('');
429
- }
430
- async function cmdGet(id) {
431
- if (!id) {
432
- console.log(`\n ${DIM('Uso: get <intervention_id>')}\n`);
433
- return;
434
- }
435
- const config = await loadConfig();
436
- const client = getClient(config);
437
- if (!client) {
438
- console.log(`\n ${chalk.red('✗')} ${DIM('Token non configurato')}\n`);
439
- return;
440
- }
441
- const spinner = ora({ text: 'Caricamento...', color: 'blue', indent: 2 }).start();
442
- try {
443
- const item = await client.getIntervention(id);
444
- spinner.stop();
445
- console.log('');
446
- console.log(` ${sparkle} ${BB(String(item.title))}`);
447
- console.log('');
448
- console.log(` ${DIM('ID')} ${BL(String(item.id))}`);
449
- console.log(` ${DIM('Stato')} ${WHITE(String(item.status))}`);
450
- console.log(` ${DIM('Priorita')} ${WHITE(String(item.priority))}`);
451
- console.log(` ${DIM('Origin')} ${item.origin === 'cli' ? B('CLI') : DIM(String(item.origin))}`);
452
- if (item.type_tag)
453
- console.log(` ${DIM('Tipo')} ${BL(String(item.type_tag))}`);
454
- console.log(` ${DIM('Creato')} ${DIM(String(item.created_at))}`);
455
- if (item.description) {
456
- console.log('');
457
- console.log(` ${DIM(String(item.description).slice(0, 300))}`);
458
- }
459
- }
460
- catch (err) {
461
- spinner.fail(err instanceof Error ? err.message : String(err));
462
- }
463
- console.log('');
464
- }
465
- async function cmdLogin(token) {
466
- if (!token || !token.startsWith('orbit_mcp_')) {
467
- console.log(`\n ${DIM('Uso: login orbit_mcp_xxx')}\n`);
468
- return;
469
- }
470
- const spinner = ora({ text: 'Validazione...', color: 'blue', indent: 2 }).start();
471
- const client = new OrbitClient(token, 'https://api.orbit.principi.it');
472
- const v = await client.validateToken();
473
- if (v.valid) {
474
- const { setToken } = await import('./config.js');
475
- await setToken('default', { token, label: 'default', site_id: 'default', created_at: new Date().toISOString() });
476
- spinner.succeed(`${GREEN.bold('Autenticazione riuscita')}`);
477
- }
478
- else {
479
- spinner.fail(`Token non valido: ${v.error}`);
480
- }
481
- console.log('');
433
+ if (!t)
434
+ return null;
435
+ return new OrbitClient(t.token, config.api_url);
482
436
  }
483
- async function cmdLink(siteId) {
484
- if (!siteId) {
485
- console.log(`\n ${DIM('Uso: link <site_id>')}\n`);
486
- return;
487
- }
488
- const { saveSiteLink, detectPlatform } = await import('./site.js');
489
- const platform = await detectPlatform(process.cwd());
490
- await saveSiteLink(process.cwd(), { orbit_site_id: siteId, platform });
491
- console.log(`\n ${GREEN('✓')} ${GREEN.bold('Sito collegato')} ${DIM(`(${platform})`)}\n`);
437
+ export async function startShell(version) {
438
+ const { waitUntilExit } = render(_jsx(Shell, { version: version }));
439
+ await waitUntilExit();
492
440
  }
493
441
  //# sourceMappingURL=shell.js.map
@@ -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.tsx"],"names":[],"mappings":"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"}
@@ -544,6 +544,76 @@
544
544
  "update.js"
545
545
  ]
546
546
  },
547
+ "session:end": {
548
+ "aliases": [],
549
+ "args": {},
550
+ "description": "Chiude la sessione attiva, cattura il commit finale\ne mostra un riepilogo del lavoro svolto.",
551
+ "examples": [
552
+ "<%= config.bin %> session end",
553
+ "<%= config.bin %> session end --summary \"Completato refactor homepage\""
554
+ ],
555
+ "flags": {
556
+ "summary": {
557
+ "char": "s",
558
+ "description": "Summary finale del lavoro svolto",
559
+ "name": "summary",
560
+ "hasDynamicHelp": false,
561
+ "multiple": false,
562
+ "type": "option"
563
+ }
564
+ },
565
+ "hasDynamicHelp": false,
566
+ "hiddenAliases": [],
567
+ "id": "session:end",
568
+ "pluginAlias": "@orbitpanel/cli",
569
+ "pluginName": "@orbitpanel/cli",
570
+ "pluginType": "core",
571
+ "strict": true,
572
+ "summary": "Chiude la sessione di lavoro corrente",
573
+ "enableJsonFlag": false,
574
+ "isESM": true,
575
+ "relativePath": [
576
+ "dist",
577
+ "commands",
578
+ "session",
579
+ "end.js"
580
+ ]
581
+ },
582
+ "session:start": {
583
+ "aliases": [],
584
+ "args": {},
585
+ "description": "Avvia una sessione di lavoro collegata al sito Orbit.\nCattura automaticamente branch git e commit corrente.",
586
+ "examples": [
587
+ "<%= config.bin %> session start",
588
+ "<%= config.bin %> session start --note \"Refactor homepage\""
589
+ ],
590
+ "flags": {
591
+ "note": {
592
+ "char": "n",
593
+ "description": "Nota iniziale sulla sessione",
594
+ "name": "note",
595
+ "hasDynamicHelp": false,
596
+ "multiple": false,
597
+ "type": "option"
598
+ }
599
+ },
600
+ "hasDynamicHelp": false,
601
+ "hiddenAliases": [],
602
+ "id": "session:start",
603
+ "pluginAlias": "@orbitpanel/cli",
604
+ "pluginName": "@orbitpanel/cli",
605
+ "pluginType": "core",
606
+ "strict": true,
607
+ "summary": "Inizia una sessione di lavoro locale",
608
+ "enableJsonFlag": false,
609
+ "isESM": true,
610
+ "relativePath": [
611
+ "dist",
612
+ "commands",
613
+ "session",
614
+ "start.js"
615
+ ]
616
+ },
547
617
  "note:add": {
548
618
  "aliases": [],
549
619
  "args": {
@@ -677,77 +747,7 @@
677
747
  "report",
678
748
  "send.js"
679
749
  ]
680
- },
681
- "session:end": {
682
- "aliases": [],
683
- "args": {},
684
- "description": "Chiude la sessione attiva, cattura il commit finale\ne mostra un riepilogo del lavoro svolto.",
685
- "examples": [
686
- "<%= config.bin %> session end",
687
- "<%= config.bin %> session end --summary \"Completato refactor homepage\""
688
- ],
689
- "flags": {
690
- "summary": {
691
- "char": "s",
692
- "description": "Summary finale del lavoro svolto",
693
- "name": "summary",
694
- "hasDynamicHelp": false,
695
- "multiple": false,
696
- "type": "option"
697
- }
698
- },
699
- "hasDynamicHelp": false,
700
- "hiddenAliases": [],
701
- "id": "session:end",
702
- "pluginAlias": "@orbitpanel/cli",
703
- "pluginName": "@orbitpanel/cli",
704
- "pluginType": "core",
705
- "strict": true,
706
- "summary": "Chiude la sessione di lavoro corrente",
707
- "enableJsonFlag": false,
708
- "isESM": true,
709
- "relativePath": [
710
- "dist",
711
- "commands",
712
- "session",
713
- "end.js"
714
- ]
715
- },
716
- "session:start": {
717
- "aliases": [],
718
- "args": {},
719
- "description": "Avvia una sessione di lavoro collegata al sito Orbit.\nCattura automaticamente branch git e commit corrente.",
720
- "examples": [
721
- "<%= config.bin %> session start",
722
- "<%= config.bin %> session start --note \"Refactor homepage\""
723
- ],
724
- "flags": {
725
- "note": {
726
- "char": "n",
727
- "description": "Nota iniziale sulla sessione",
728
- "name": "note",
729
- "hasDynamicHelp": false,
730
- "multiple": false,
731
- "type": "option"
732
- }
733
- },
734
- "hasDynamicHelp": false,
735
- "hiddenAliases": [],
736
- "id": "session:start",
737
- "pluginAlias": "@orbitpanel/cli",
738
- "pluginName": "@orbitpanel/cli",
739
- "pluginType": "core",
740
- "strict": true,
741
- "summary": "Inizia una sessione di lavoro locale",
742
- "enableJsonFlag": false,
743
- "isESM": true,
744
- "relativePath": [
745
- "dist",
746
- "commands",
747
- "session",
748
- "start.js"
749
- ]
750
750
  }
751
751
  },
752
- "version": "0.2.2"
752
+ "version": "0.3.0"
753
753
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitpanel/cli",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,13 +41,18 @@
41
41
  "chalk": "^5.4.0",
42
42
  "chalk-animation": "^2.0.3",
43
43
  "gradient-string": "^3.0.0",
44
+ "ink": "^6.8.0",
45
+ "ink-spinner": "^5.0.0",
46
+ "ink-text-input": "^6.0.0",
44
47
  "ora": "^9.3.0",
48
+ "react": "^19.2.4",
45
49
  "terminal-link": "^5.0.0"
46
50
  },
47
51
  "devDependencies": {
48
52
  "@oclif/test": "^4.0.0",
49
53
  "@types/gradient-string": "^1.1.6",
50
54
  "@types/node": "^22.0.0",
55
+ "@types/react": "^19.2.14",
51
56
  "oclif": "^4.0.0",
52
57
  "tsx": "^4.19.0",
53
58
  "typescript": "^5.7.0",