@orbitpanel/cli 0.2.0 → 0.2.2

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,6 @@
1
+ import { Hook } from '@oclif/core';
2
+ /**
3
+ * Init hook — redirects bare `orbit` (no args) to `orbit shell`.
4
+ */
5
+ declare const hook: Hook.Init;
6
+ export default hook;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Init hook — redirects bare `orbit` (no args) to `orbit shell`.
3
+ */
4
+ const hook = async function (options) {
5
+ // If no command was specified (bare `orbit`), run the shell
6
+ if (!options.id && (!options.argv || options.argv.length === 0)) {
7
+ const { startShell } = await import('../lib/shell.js');
8
+ await startShell(options.config.version);
9
+ process.exit(0);
10
+ }
11
+ };
12
+ export default hook;
13
+ //# sourceMappingURL=init.js.map
@@ -0,0 +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,5 +1,5 @@
1
1
  /**
2
- * Interactive shell for @orbitpanel/cli.
3
- * Modern REPL with branded UI, menus, spinners.
2
+ * Interactive REPL shell for @orbitpanel/cli.
3
+ * Stile Gemini CLI / Claude Code: input testuale libero, output inline.
4
4
  */
5
5
  export declare function startShell(version: string): Promise<void>;
package/dist/lib/shell.js CHANGED
@@ -1,298 +1,366 @@
1
1
  /**
2
- * Interactive shell for @orbitpanel/cli.
3
- * Modern REPL with branded UI, menus, spinners.
2
+ * Interactive REPL shell for @orbitpanel/cli.
3
+ * Stile Gemini CLI / Claude Code: input testuale libero, output inline.
4
4
  */
5
- import * as p from '@clack/prompts';
6
5
  import chalk from 'chalk';
7
6
  import gradient from 'gradient-string';
8
- import boxen from 'boxen';
7
+ import { createInterface } from 'node:readline';
9
8
  import ora from 'ora';
10
9
  import { loadConfig } from './config.js';
11
10
  import { OrbitClient } from './client.js';
12
11
  import { loadSiteLink } from './site.js';
13
- import { loadActiveSession, createSession, addNote, endSession } from './session.js';
12
+ import { loadActiveSession, createSession, addNote, endSession, } from './session.js';
14
13
  import { getGitBranch, getGitCommitHead, getGitDiffStat } from './git.js';
15
14
  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) {
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
+ 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
+ const logoLines = [
29
+ ' ██████╗ ██████╗ ██████╗ ██╗████████╗',
30
+ ' ██╔═══██╗██╔══██╗██╔══██╗██║╚══██╔══╝',
31
+ ' ██║ ██║██████╔╝██████╔╝██║ ██║ ',
32
+ ' ██║ ██║██╔══██╗██╔══██╗██║ ██║ ',
33
+ ' ╚██████╔╝██║ ██║██████╔╝██║ ██║ ',
34
+ ' ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ',
35
+ ];
36
+ async function showHeader(version) {
37
+ console.clear();
20
38
  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(' └──────────────────────────────────────────┘'));
39
+ for (const line of logoLines) {
40
+ console.log(orbitGrad(line));
41
+ await sleep(60);
42
+ }
27
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')}`);
28
45
  }
29
- async function showStatusPanel(config) {
46
+ async function showStatus() {
47
+ const config = await loadConfig();
30
48
  const defaultSite = config.default_site;
31
49
  const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
32
50
  const siteLink = await loadSiteLink(process.cwd());
33
51
  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
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)));
54
59
  if (session) {
55
60
  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}]`) : ''}`);
61
+ parts.push(`${GREEN('●')} Sessione ${DIM(`${elapsed}min`)}`);
62
+ if (session.git_branch)
63
+ parts.push(BL(session.git_branch));
57
64
  }
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
- }));
65
+ console.log('');
66
+ console.log(` ${parts.join(` ${DIM('')} `)}`);
67
+ }
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)
74
+ return null;
75
+ return new OrbitClient(t.token, config.api_url);
68
76
  }
69
77
  export async function startShell(version) {
70
- showHeader(version);
71
- const config = await loadConfig();
72
- await showStatusPanel(config);
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.')}`);
73
84
  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;
85
+ const rl = createInterface({
86
+ input: process.stdin,
87
+ output: process.stdout,
88
+ prompt: ` ${B('orbit')} ${DIM('›')} `,
89
+ });
90
+ rl.prompt();
91
+ rl.on('line', async (input) => {
92
+ const raw = input.trim();
93
+ const cmd = raw.toLowerCase();
94
+ if (!cmd) {
95
+ rl.prompt();
96
+ return;
92
97
  }
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;
98
+ if (cmd === 'exit' || cmd === 'quit' || cmd === 'q') {
99
+ console.log(`\n ${DIM('Alla prossima!')}\n`);
100
+ rl.close();
101
+ process.exit(0);
112
102
  }
113
- }
103
+ if (cmd === 'clear' || cmd === 'cls') {
104
+ console.clear();
105
+ rl.prompt();
106
+ return;
107
+ }
108
+ if (cmd === 'help' || cmd === 'h') {
109
+ showHelp();
110
+ rl.prompt();
111
+ return;
112
+ }
113
+ if (cmd === 'status' || cmd === 's') {
114
+ await cmdStatus();
115
+ rl.prompt();
116
+ return;
117
+ }
118
+ if (cmd === 'doctor' || cmd === 'doc') {
119
+ await cmdDoctor();
120
+ rl.prompt();
121
+ return;
122
+ }
123
+ if (cmd === 'session start' || cmd === 'ss') {
124
+ await cmdSessionStart();
125
+ rl.prompt();
126
+ return;
127
+ }
128
+ if (cmd === 'session end' || cmd === 'se') {
129
+ await cmdSessionEnd();
130
+ rl.prompt();
131
+ return;
132
+ }
133
+ if (cmd === 'session' || cmd === 'session info') {
134
+ await cmdSessionInfo();
135
+ rl.prompt();
136
+ return;
137
+ }
138
+ if (cmd.startsWith('note ') || cmd.startsWith('n ')) {
139
+ await cmdNoteAdd(raw.slice(raw.indexOf(' ') + 1));
140
+ rl.prompt();
141
+ return;
142
+ }
143
+ if (cmd === 'report' || cmd === 'r') {
144
+ await cmdReport();
145
+ rl.prompt();
146
+ return;
147
+ }
148
+ if (cmd === 'list' || cmd === 'ls' || cmd === 'l') {
149
+ await cmdList();
150
+ rl.prompt();
151
+ return;
152
+ }
153
+ if (cmd.startsWith('get ') || cmd.startsWith('g ')) {
154
+ await cmdGet(raw.split(' ')[1]);
155
+ rl.prompt();
156
+ return;
157
+ }
158
+ if (cmd.startsWith('login ')) {
159
+ await cmdLogin(raw.split(' ')[1]);
160
+ rl.prompt();
161
+ return;
162
+ }
163
+ if (cmd.startsWith('link ')) {
164
+ await cmdLink(raw.split(' ')[1]);
165
+ rl.prompt();
166
+ return;
167
+ }
168
+ console.log(`\n ${DIM('Comando non riconosciuto:')} ${WHITE(cmd)} ${DIM('— digita')} ${WHITE('help')}\n`);
169
+ rl.prompt();
170
+ });
114
171
  }
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');
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('');
121
201
  return;
122
202
  }
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}`);
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('');
127
209
  return;
128
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
+ }
129
223
  try {
130
224
  const stats = await client.getStats();
131
225
  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
- }
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(' · '))}`);
146
238
  }
147
- catch {
148
- spinner.fail('Stats non disponibili');
239
+ catch { }
240
+ console.log('');
241
+ }
242
+ async function cmdDoctor() {
243
+ const config = await loadConfig();
244
+ console.log('');
245
+ console.log(` ${sparkle} ${BB('Diagnostica')}`);
246
+ console.log('');
247
+ 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')}`);
149
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')}`);
150
263
  console.log('');
151
264
  }
152
- async function handleSession() {
265
+ async function cmdSessionStart() {
153
266
  const siteLink = await loadSiteLink(process.cwd());
154
267
  if (!siteLink) {
155
- p.log.warn('Nessun sito collegato. Vai in Configurazione > Link sito.');
268
+ console.log(`\n ${chalk.red('✗')} ${DIM('Nessun sito collegato. Esegui: link <site_id>')}\n`);
156
269
  return;
157
270
  }
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')
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`);
174
274
  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
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' }))}`);
242
288
  console.log('');
243
289
  }
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');
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`);
249
299
  return;
250
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() {
251
310
  const siteLink = await loadSiteLink(process.cwd());
252
311
  if (!siteLink) {
253
- p.log.warn('Nessun sito collegato');
312
+ console.log(`\n ${DIM('Nessun sito collegato')}\n`);
254
313
  return;
255
314
  }
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))
315
+ const session = await loadActiveSession(siteLink.orbit_site_id);
316
+ if (!session) {
317
+ console.log(`\n ${DIM('Nessuna sessione attiva')}\n`);
263
318
  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))
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`);
276
338
  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))
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`);
287
343
  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');
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`);
293
356
  return;
294
357
  }
295
- // Close active session if exists
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);
296
364
  const commitEnd = await getGitCommitHead();
297
365
  let filesChanged = 0;
298
366
  if (session?.git_commit_start && commitEnd) {
@@ -303,214 +371,123 @@ async function handleReport(config) {
303
371
  session = await endSession(session.id, { git_commit_end: commitEnd ?? undefined });
304
372
  }
305
373
  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,
374
+ session: session ?? { id: 'no-session', site_id: siteLink.orbit_site_id, started_at: new Date().toISOString(), notes: [], status: 'completed' },
316
375
  git_commit_end: commitEnd ?? undefined,
317
376
  files_changed: filesChanged,
318
377
  });
319
378
  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);
379
+ const spinner = ora({ text: 'Invio report a Orbit...', color: 'blue', indent: 2 }).start();
322
380
  try {
323
381
  const result = await client.createIntervention(payload);
324
- spinner.succeed(`Report inviato ${chalk.dim(`(${String(result.id).slice(0, 8)})`)}`);
382
+ spinner.succeed(`${GREEN.bold('Report inviato')} ${DIM(String(result.id).slice(0, 8))}`);
325
383
  }
326
384
  catch (err) {
327
- const msg = err instanceof Error ? err.message : String(err);
328
- spinner.fail(`Invio fallito: ${msg}`);
385
+ spinner.fail(`Invio fallito: ${err instanceof Error ? err.message : String(err)}`);
329
386
  }
330
387
  console.log('');
331
388
  }
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');
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`);
337
394
  return;
338
395
  }
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
396
  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);
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')}`);
380
409
  }
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();
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
+ }
394
421
  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);
422
+ console.log(` ${DIM(`${result.total} interventi`)}`);
415
423
  }
416
424
  }
425
+ catch (err) {
426
+ spinner.fail(err instanceof Error ? err.message : String(err));
427
+ }
417
428
  console.log('');
418
429
  }
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);
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))}`);
446
458
  }
447
459
  }
460
+ catch (err) {
461
+ spinner.fail(err instanceof Error ? err.message : String(err));
462
+ }
448
463
  console.log('');
449
464
  }
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')
465
+ async function cmdLogin(token) {
466
+ if (!token || !token.startsWith('orbit_mcp_')) {
467
+ console.log(`\n ${DIM('Uso: login orbit_mcp_xxx')}\n`);
462
468
  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
469
  }
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');
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}`);
513
480
  }
514
481
  console.log('');
515
482
  }
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`);
492
+ }
516
493
  //# 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.ts"],"names":[],"mappings":"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"}
@@ -749,5 +749,5 @@
749
749
  ]
750
750
  }
751
751
  },
752
- "version": "0.2.0"
752
+ "version": "0.2.2"
753
753
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitpanel/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,7 +37,9 @@
37
37
  "@oclif/core": "^4.0.0",
38
38
  "@oclif/plugin-help": "^6.0.0",
39
39
  "boxen": "^8.0.1",
40
+ "cfonts": "^3.3.1",
40
41
  "chalk": "^5.4.0",
42
+ "chalk-animation": "^2.0.3",
41
43
  "gradient-string": "^3.0.0",
42
44
  "ora": "^9.3.0",
43
45
  "terminal-link": "^5.0.0"
@@ -75,6 +77,7 @@
75
77
  }
76
78
  },
77
79
  "hooks": {
80
+ "init": "./dist/hooks/init",
78
81
  "prerun": "./dist/hooks/prerun"
79
82
  },
80
83
  "plugins": [