@orbitpanel/cli 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/doctor.js +19 -26
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/intervention/list.js +9 -13
- package/dist/commands/intervention/list.js.map +1 -1
- package/dist/commands/login.js +15 -12
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/session/end.js +17 -20
- package/dist/commands/session/end.js.map +1 -1
- package/dist/commands/session/start.js +16 -18
- package/dist/commands/session/start.js.map +1 -1
- package/dist/commands/status.js +56 -19
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/ui.d.ts +34 -0
- package/dist/lib/ui.js +113 -0
- package/dist/lib/ui.js.map +1 -0
- package/oclif.manifest.json +3 -3
- package/package.json +21 -6
package/dist/commands/doctor.js
CHANGED
|
@@ -4,21 +4,13 @@ import { existsSync } from 'node:fs';
|
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { loadConfig } from '../lib/config.js';
|
|
6
6
|
import { OrbitClient } from '../lib/client.js';
|
|
7
|
-
|
|
8
|
-
return ` ${chalk.green('[OK]')} ${msg}`;
|
|
9
|
-
}
|
|
10
|
-
function fail(msg) {
|
|
11
|
-
return ` ${chalk.red('[!!]')} ${msg}`;
|
|
12
|
-
}
|
|
13
|
-
function info(msg) {
|
|
14
|
-
return ` ${chalk.blue('[--]')} ${msg}`;
|
|
15
|
-
}
|
|
7
|
+
import { banner, section, success, error, info, hint, separator } from '../lib/ui.js';
|
|
16
8
|
export default class Doctor extends Command {
|
|
17
9
|
static summary = 'Verifica che tutto funzioni correttamente';
|
|
18
10
|
static examples = ['<%= config.bin %> doctor'];
|
|
19
11
|
async run() {
|
|
20
|
-
this.log(
|
|
21
|
-
this.log(
|
|
12
|
+
this.log(banner(this.config.version));
|
|
13
|
+
this.log(section('Diagnostica'));
|
|
22
14
|
this.log('');
|
|
23
15
|
let allOk = true;
|
|
24
16
|
// 1. Token check
|
|
@@ -26,11 +18,11 @@ export default class Doctor extends Command {
|
|
|
26
18
|
const defaultSite = config.default_site;
|
|
27
19
|
const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
|
|
28
20
|
if (tokenEntry) {
|
|
29
|
-
this.log(
|
|
21
|
+
this.log(success(`Token configurato ${chalk.dim(`(${tokenEntry.token.slice(0, 15)}...)`)}`));
|
|
30
22
|
}
|
|
31
23
|
else {
|
|
32
|
-
this.log(
|
|
33
|
-
this.log(
|
|
24
|
+
this.log(error('Nessun token configurato'));
|
|
25
|
+
this.log(hint('orbit login --token <token>'));
|
|
34
26
|
allOk = false;
|
|
35
27
|
}
|
|
36
28
|
// 2. API reachability
|
|
@@ -40,45 +32,46 @@ export default class Doctor extends Command {
|
|
|
40
32
|
const validation = await client.validateToken();
|
|
41
33
|
const elapsed = Date.now() - start;
|
|
42
34
|
if (validation.valid) {
|
|
43
|
-
this.log(
|
|
35
|
+
this.log(success(`API raggiungibile ${chalk.dim(`(${elapsed}ms)`)}`));
|
|
44
36
|
}
|
|
45
37
|
else {
|
|
46
|
-
this.log(
|
|
38
|
+
this.log(error(`API non raggiungibile: ${validation.error}`));
|
|
47
39
|
allOk = false;
|
|
48
40
|
}
|
|
49
41
|
}
|
|
50
42
|
else {
|
|
51
43
|
this.log(info('API non verificata (nessun token)'));
|
|
52
44
|
}
|
|
53
|
-
// 3. .orbit.json
|
|
45
|
+
// 3. .orbit.json
|
|
54
46
|
const orbitJsonPath = join(process.cwd(), '.orbit.json');
|
|
55
47
|
if (existsSync(orbitJsonPath)) {
|
|
56
|
-
this.log(
|
|
48
|
+
this.log(success('Sito collegato (.orbit.json)'));
|
|
57
49
|
}
|
|
58
50
|
else {
|
|
59
|
-
this.log(info('Nessun
|
|
60
|
-
this.log(
|
|
51
|
+
this.log(info('Nessun sito collegato'));
|
|
52
|
+
this.log(hint('orbit link --site <site_id>'));
|
|
61
53
|
}
|
|
62
|
-
// 4. Git
|
|
54
|
+
// 4. Git
|
|
63
55
|
const gitDir = join(process.cwd(), '.git');
|
|
64
56
|
if (existsSync(gitDir)) {
|
|
65
|
-
this.log(
|
|
57
|
+
this.log(success('Repository git rilevato'));
|
|
66
58
|
}
|
|
67
59
|
else {
|
|
68
60
|
this.log(info('Nessun repository git'));
|
|
69
61
|
}
|
|
70
|
-
// 5. WordPress
|
|
62
|
+
// 5. WordPress
|
|
71
63
|
const wpConfigPath = join(process.cwd(), 'wp-config.php');
|
|
72
64
|
if (existsSync(wpConfigPath)) {
|
|
73
|
-
this.log(
|
|
65
|
+
this.log(success('WordPress rilevato'));
|
|
74
66
|
}
|
|
75
67
|
// Summary
|
|
76
68
|
this.log('');
|
|
69
|
+
this.log(separator());
|
|
77
70
|
if (allOk) {
|
|
78
|
-
this.log(chalk.green('Tutto ok — pronto per lavorare
|
|
71
|
+
this.log(` ${chalk.green.bold('Tutto ok')} ${chalk.dim('— pronto per lavorare')}`);
|
|
79
72
|
}
|
|
80
73
|
else {
|
|
81
|
-
this.log(chalk.yellow('
|
|
74
|
+
this.log(` ${chalk.yellow.bold('Attenzione')} ${chalk.dim('— segui i suggerimenti sopra')}`);
|
|
82
75
|
}
|
|
83
76
|
this.log('');
|
|
84
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { loadConfig } from '../../lib/config.js';
|
|
4
4
|
import { OrbitClient } from '../../lib/client.js';
|
|
5
5
|
import { loadSiteLink } from '../../lib/site.js';
|
|
6
|
+
import { banner, section, info, separator, interventionRow } from '../../lib/ui.js';
|
|
6
7
|
export default class InterventionList extends Command {
|
|
7
8
|
static summary = 'Lista interventi del sito su Orbit';
|
|
8
9
|
static examples = [
|
|
@@ -52,7 +53,6 @@ export default class InterventionList extends Command {
|
|
|
52
53
|
this.error('Nessun token configurato. Esegui: orbit login --token <token>');
|
|
53
54
|
}
|
|
54
55
|
const client = new OrbitClient(tokenEntry.token, config.api_url);
|
|
55
|
-
// Build filters
|
|
56
56
|
const filters = {
|
|
57
57
|
limit: flags.limit,
|
|
58
58
|
sort: flags.sort,
|
|
@@ -73,25 +73,21 @@ export default class InterventionList extends Command {
|
|
|
73
73
|
this.log(JSON.stringify(result, null, 2));
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
+
this.log(banner(this.config.version));
|
|
76
77
|
if (result.items.length === 0) {
|
|
77
|
-
this.log(
|
|
78
|
+
this.log(info('Nessun intervento trovato.'));
|
|
79
|
+
this.log('');
|
|
78
80
|
return;
|
|
79
81
|
}
|
|
80
|
-
this.log('');
|
|
81
|
-
this.log(chalk.bold('Interventi'));
|
|
82
|
+
this.log(section('Interventi'));
|
|
82
83
|
this.log('');
|
|
83
84
|
for (const item of result.items) {
|
|
84
|
-
|
|
85
|
-
const title = String(item.title ?? '').slice(0, 50);
|
|
86
|
-
const status = String(item.status ?? '');
|
|
87
|
-
const priority = String(item.priority ?? '');
|
|
88
|
-
const origin = String(item.origin ?? '');
|
|
89
|
-
const date = String(item.created_at ?? '').slice(0, 10);
|
|
90
|
-
const statusColor = status === 'completed' ? chalk.green : status === 'in_progress' ? chalk.yellow : chalk.dim;
|
|
91
|
-
this.log(` ${chalk.dim(id)} ${title.padEnd(50)} ${statusColor(status.padEnd(12))} ${priority.padEnd(8)} ${chalk.dim(origin.padEnd(8))} ${chalk.dim(date)}`);
|
|
85
|
+
this.log(interventionRow(item));
|
|
92
86
|
}
|
|
93
87
|
this.log('');
|
|
94
|
-
this.log(
|
|
88
|
+
this.log(separator());
|
|
89
|
+
this.log(chalk.dim(` ${result.total} interventi totali`));
|
|
90
|
+
this.log('');
|
|
95
91
|
}
|
|
96
92
|
catch (err) {
|
|
97
93
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/intervention/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/intervention/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.js
CHANGED
|
@@ -2,13 +2,14 @@ import { Command, Flags } from '@oclif/core';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { OrbitClient } from '../lib/client.js';
|
|
4
4
|
import { setToken, DEFAULT_API_URL } from '../lib/config.js';
|
|
5
|
+
import { banner, section, kv, success, separator } from '../lib/ui.js';
|
|
5
6
|
export default class Login extends Command {
|
|
6
7
|
static summary = 'Autentica la CLI con un token MCP di Orbit';
|
|
7
8
|
static description = 'Salva il token MCP per autenticarsi con il backend Orbit.\n' +
|
|
8
|
-
'Il token si genera dalla UI di Orbit
|
|
9
|
+
'Il token si genera dalla UI di Orbit > Sito > Token MCP > Crea Token.';
|
|
9
10
|
static examples = [
|
|
10
11
|
'<%= config.bin %> login --token orbit_mcp_xxx',
|
|
11
|
-
'<%= config.bin %> login
|
|
12
|
+
'ORBIT_TOKEN=orbit_mcp_xxx <%= config.bin %> login',
|
|
12
13
|
];
|
|
13
14
|
static flags = {
|
|
14
15
|
token: Flags.string({
|
|
@@ -29,20 +30,20 @@ export default class Login extends Command {
|
|
|
29
30
|
};
|
|
30
31
|
async run() {
|
|
31
32
|
const { flags } = await this.parse(Login);
|
|
32
|
-
// Validate token prefix
|
|
33
33
|
if (!flags.token.startsWith('orbit_mcp_')) {
|
|
34
|
-
this.error('Il token deve iniziare con "orbit_mcp_"
|
|
34
|
+
this.error('Il token deve iniziare con "orbit_mcp_".\n' +
|
|
35
35
|
'Genera un token dalla UI di Orbit.');
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
this.log(
|
|
37
|
+
this.log(banner(this.config.version));
|
|
38
|
+
this.log(section('Login'));
|
|
39
|
+
this.log('');
|
|
40
|
+
this.log(chalk.dim(' Validazione token...'));
|
|
39
41
|
const client = new OrbitClient(flags.token, flags['api-url']);
|
|
40
42
|
const validation = await client.validateToken();
|
|
41
43
|
if (!validation.valid) {
|
|
42
44
|
this.error(`Token non valido: ${validation.error}\n` +
|
|
43
|
-
'Verifica il token e riprova.
|
|
45
|
+
'Verifica il token e riprova.');
|
|
44
46
|
}
|
|
45
|
-
// Save token
|
|
46
47
|
await setToken(flags['site-id'], {
|
|
47
48
|
token: flags.token,
|
|
48
49
|
label: flags['site-id'],
|
|
@@ -50,12 +51,14 @@ export default class Login extends Command {
|
|
|
50
51
|
created_at: new Date().toISOString(),
|
|
51
52
|
});
|
|
52
53
|
this.log('');
|
|
53
|
-
this.log(
|
|
54
|
+
this.log(success('Autenticazione riuscita'));
|
|
55
|
+
this.log('');
|
|
56
|
+
this.log(kv('API', flags['api-url']));
|
|
57
|
+
this.log(kv('Token', `${flags.token.slice(0, 15)}...${flags.token.slice(-4)}`));
|
|
58
|
+
this.log(kv('Config', '~/.orbit/config.json'));
|
|
54
59
|
this.log('');
|
|
55
|
-
this.log(
|
|
56
|
-
this.log(` Token: ${flags.token.slice(0, 15)}...${flags.token.slice(-4)}`);
|
|
60
|
+
this.log(separator());
|
|
57
61
|
this.log('');
|
|
58
|
-
this.log(chalk.dim(`Token salvato in ~/.orbit/config.json`));
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { loadSiteLink } from '../../lib/site.js';
|
|
4
4
|
import { loadActiveSession, endSession } from '../../lib/session.js';
|
|
5
5
|
import { getGitCommitHead } from '../../lib/git.js';
|
|
6
|
+
import { banner, kv, success, hint, separator } from '../../lib/ui.js';
|
|
6
7
|
export default class SessionEnd extends Command {
|
|
7
8
|
static summary = 'Chiude la sessione di lavoro corrente';
|
|
8
9
|
static description = 'Chiude la sessione attiva, cattura il commit finale\n' +
|
|
@@ -20,42 +21,38 @@ export default class SessionEnd extends Command {
|
|
|
20
21
|
async run() {
|
|
21
22
|
const { flags } = await this.parse(SessionEnd);
|
|
22
23
|
const cwd = process.cwd();
|
|
23
|
-
// Verify site link
|
|
24
24
|
const siteLink = await loadSiteLink(cwd);
|
|
25
25
|
if (!siteLink) {
|
|
26
|
-
this.error('Nessun .orbit.json trovato
|
|
26
|
+
this.error('Nessun .orbit.json trovato.');
|
|
27
27
|
}
|
|
28
|
-
// Find active session
|
|
29
28
|
const session = await loadActiveSession(siteLink.orbit_site_id);
|
|
30
29
|
if (!session) {
|
|
31
|
-
this.error('Nessuna sessione attiva.\
|
|
32
|
-
'Avvia una sessione con: orbit session start');
|
|
30
|
+
this.error('Nessuna sessione attiva.\nAvvia con: orbit session start');
|
|
33
31
|
}
|
|
34
|
-
// Capture final git state
|
|
35
32
|
const commitEnd = await getGitCommitHead();
|
|
36
|
-
// End session
|
|
37
33
|
const ended = await endSession(session.id, {
|
|
38
34
|
git_commit_end: commitEnd ?? undefined,
|
|
39
35
|
summary: flags.summary,
|
|
40
36
|
});
|
|
41
|
-
// Calculate duration
|
|
42
37
|
const startTime = new Date(ended.started_at).getTime();
|
|
43
|
-
const
|
|
44
|
-
|
|
38
|
+
const durationMin = Math.round((Date.now() - startTime) / 60_000);
|
|
39
|
+
this.log(banner(this.config.version));
|
|
40
|
+
this.log(success('Sessione conclusa'));
|
|
45
41
|
this.log('');
|
|
46
|
-
this.log(
|
|
47
|
-
this.log('');
|
|
48
|
-
this.log(
|
|
49
|
-
this.log(` Durata: ${durationMin} minuti`);
|
|
50
|
-
this.log(` Note: ${ended.notes.length}`);
|
|
42
|
+
this.log(kv('ID', ended.id));
|
|
43
|
+
this.log(kv('Durata', `${durationMin} min`));
|
|
44
|
+
this.log(kv('Note', `${ended.notes.length}`));
|
|
51
45
|
if (ended.git_branch)
|
|
52
|
-
this.log(
|
|
53
|
-
if (ended.git_commit_start)
|
|
54
|
-
this.log(
|
|
46
|
+
this.log(kv('Branch', ended.git_branch));
|
|
47
|
+
if (ended.git_commit_start) {
|
|
48
|
+
this.log(kv('Commit', `${ended.git_commit_start} ${chalk.dim('->')} ${commitEnd ?? '?'}`));
|
|
49
|
+
}
|
|
55
50
|
if (flags.summary)
|
|
56
|
-
this.log(
|
|
51
|
+
this.log(kv('Summary', flags.summary));
|
|
52
|
+
this.log('');
|
|
53
|
+
this.log(separator());
|
|
54
|
+
this.log(hint('orbit report send per inviare il report a Orbit'));
|
|
57
55
|
this.log('');
|
|
58
|
-
this.log(chalk.dim('Invia il report con: orbit report send'));
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
//# sourceMappingURL=end.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/commands/session/end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/commands/session/end.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Command, Flags } from '@oclif/core';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
2
|
import { loadSiteLink } from '../../lib/site.js';
|
|
4
3
|
import { createSession, loadActiveSession } from '../../lib/session.js';
|
|
5
4
|
import { getGitBranch, getGitCommitHead } from '../../lib/git.js';
|
|
5
|
+
import { banner, kv, success, hint, separator } from '../../lib/ui.js';
|
|
6
6
|
export default class SessionStart extends Command {
|
|
7
7
|
static summary = 'Inizia una sessione di lavoro locale';
|
|
8
8
|
static description = 'Avvia una sessione di lavoro collegata al sito Orbit.\n' +
|
|
@@ -20,42 +20,40 @@ export default class SessionStart extends Command {
|
|
|
20
20
|
async run() {
|
|
21
21
|
const { flags } = await this.parse(SessionStart);
|
|
22
22
|
const cwd = process.cwd();
|
|
23
|
-
// Verify site link
|
|
24
23
|
const siteLink = await loadSiteLink(cwd);
|
|
25
24
|
if (!siteLink) {
|
|
26
|
-
this.error('Nessun .orbit.json trovato
|
|
25
|
+
this.error('Nessun .orbit.json trovato.\n' +
|
|
27
26
|
'Esegui: orbit link --site <site_id>');
|
|
28
27
|
}
|
|
29
|
-
// Check for existing active session
|
|
30
28
|
const existing = await loadActiveSession(siteLink.orbit_site_id);
|
|
31
29
|
if (existing) {
|
|
32
|
-
this.error(`Sessione gia attiva (${existing.id})
|
|
33
|
-
'Chiudi
|
|
30
|
+
this.error(`Sessione gia attiva (${existing.id}).\n` +
|
|
31
|
+
'Chiudi con: orbit session end');
|
|
34
32
|
}
|
|
35
|
-
// Capture git state
|
|
36
33
|
const branch = await getGitBranch();
|
|
37
34
|
const commit = await getGitCommitHead();
|
|
38
|
-
// Create session
|
|
39
35
|
const session = await createSession(siteLink.orbit_site_id, {
|
|
40
36
|
git_branch: branch ?? undefined,
|
|
41
37
|
git_commit: commit ?? undefined,
|
|
42
38
|
note: flags.note,
|
|
43
39
|
});
|
|
40
|
+
this.log(banner(this.config.version));
|
|
41
|
+
this.log(success('Sessione avviata'));
|
|
44
42
|
this.log('');
|
|
45
|
-
this.log(
|
|
46
|
-
this.log('');
|
|
47
|
-
this.log(` ID: ${session.id}`);
|
|
48
|
-
this.log(` Sito: ${siteLink.orbit_site_id}`);
|
|
43
|
+
this.log(kv('ID', session.id));
|
|
44
|
+
this.log(kv('Sito', siteLink.orbit_site_id));
|
|
49
45
|
if (branch)
|
|
50
|
-
this.log(
|
|
46
|
+
this.log(kv('Branch', branch));
|
|
51
47
|
if (commit)
|
|
52
|
-
this.log(
|
|
53
|
-
this.log(
|
|
48
|
+
this.log(kv('Commit', commit));
|
|
49
|
+
this.log(kv('Inizio', session.started_at));
|
|
54
50
|
if (flags.note)
|
|
55
|
-
this.log(
|
|
51
|
+
this.log(kv('Nota', flags.note));
|
|
52
|
+
this.log('');
|
|
53
|
+
this.log(separator());
|
|
54
|
+
this.log(hint('orbit note add "testo" per aggiungere note'));
|
|
55
|
+
this.log(hint('orbit session end per chiudere'));
|
|
56
56
|
this.log('');
|
|
57
|
-
this.log(chalk.dim('Usa "orbit note add" per aggiungere note.'));
|
|
58
|
-
this.log(chalk.dim('Usa "orbit session end" per chiudere.'));
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/session/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/session/start.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -2,55 +2,92 @@ import { Command } from '@oclif/core';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { loadConfig } from '../lib/config.js';
|
|
4
4
|
import { OrbitClient } from '../lib/client.js';
|
|
5
|
+
import { loadSiteLink } from '../lib/site.js';
|
|
6
|
+
import { loadActiveSession } from '../lib/session.js';
|
|
7
|
+
import { banner, section, kv, warn, info, hint, separator } from '../lib/ui.js';
|
|
5
8
|
export default class Status extends Command {
|
|
6
9
|
static summary = 'Mostra lo stato corrente: sito, sessione, token';
|
|
7
10
|
static examples = ['<%= config.bin %> status'];
|
|
8
11
|
async run() {
|
|
12
|
+
this.log(banner(this.config.version));
|
|
9
13
|
const config = await loadConfig();
|
|
10
|
-
this.log('');
|
|
11
|
-
this.log(chalk.bold(`Orbit CLI v${this.config.version}`));
|
|
12
|
-
this.log('');
|
|
13
|
-
// Token info
|
|
14
14
|
const defaultSite = config.default_site;
|
|
15
15
|
const tokenEntry = defaultSite ? config.tokens[defaultSite] : undefined;
|
|
16
|
+
// Auth section
|
|
17
|
+
this.log(section('Autenticazione'));
|
|
16
18
|
if (!tokenEntry) {
|
|
17
|
-
this.log(
|
|
18
|
-
this.log(
|
|
19
|
+
this.log(warn('Nessun token configurato'));
|
|
20
|
+
this.log(hint('orbit login --token <token>'));
|
|
21
|
+
this.log('');
|
|
19
22
|
return;
|
|
20
23
|
}
|
|
21
24
|
const maskedToken = `${tokenEntry.token.slice(0, 15)}...${tokenEntry.token.slice(-4)}`;
|
|
22
|
-
// Validate connection
|
|
23
25
|
const client = new OrbitClient(tokenEntry.token, config.api_url);
|
|
24
26
|
const validation = await client.validateToken();
|
|
25
|
-
this.log(
|
|
26
|
-
this.log(
|
|
27
|
-
|
|
27
|
+
this.log(kv('Token', `${maskedToken} ${validation.valid ? chalk.green('valido') : chalk.red('non valido')}`));
|
|
28
|
+
this.log(kv('API', `${config.api_url} ${validation.valid ? chalk.green('ok') : chalk.red('errore')}`));
|
|
29
|
+
// Site section
|
|
30
|
+
this.log(section('Sito'));
|
|
31
|
+
const siteLink = await loadSiteLink(process.cwd());
|
|
32
|
+
if (siteLink) {
|
|
33
|
+
this.log(kv('Site ID', siteLink.orbit_site_id));
|
|
34
|
+
this.log(kv('Piattaforma', siteLink.platform));
|
|
35
|
+
if (siteLink.final_url)
|
|
36
|
+
this.log(kv('URL', siteLink.final_url));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.log(info('Nessun sito collegato in questa directory'));
|
|
40
|
+
this.log(hint('orbit link --site <site_id>'));
|
|
41
|
+
}
|
|
42
|
+
// Session section
|
|
43
|
+
this.log(section('Sessione'));
|
|
44
|
+
if (siteLink) {
|
|
45
|
+
const session = await loadActiveSession(siteLink.orbit_site_id);
|
|
46
|
+
if (session) {
|
|
47
|
+
const elapsed = Math.round((Date.now() - new Date(session.started_at).getTime()) / 60_000);
|
|
48
|
+
this.log(kv('Stato', chalk.green('attiva')));
|
|
49
|
+
this.log(kv('ID', session.id));
|
|
50
|
+
this.log(kv('Durata', `${elapsed} min`));
|
|
51
|
+
if (session.git_branch)
|
|
52
|
+
this.log(kv('Branch', session.git_branch));
|
|
53
|
+
this.log(kv('Note', `${session.notes.length}`));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.log(info('Nessuna sessione attiva'));
|
|
57
|
+
this.log(hint('orbit session start'));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.log(info('Collega un sito per avviare sessioni'));
|
|
62
|
+
}
|
|
63
|
+
// Stats section
|
|
28
64
|
if (validation.valid) {
|
|
29
65
|
try {
|
|
30
66
|
const stats = await client.getStats();
|
|
31
67
|
const total = stats.total_interventions ?? 0;
|
|
32
68
|
const byStatus = stats.by_status ?? {};
|
|
33
|
-
this.log('');
|
|
34
|
-
this.log(
|
|
69
|
+
this.log(section('Interventi'));
|
|
70
|
+
this.log(kv('Totale', String(total)));
|
|
35
71
|
if (total > 0) {
|
|
36
72
|
const parts = [];
|
|
37
73
|
if (byStatus.in_progress)
|
|
38
|
-
parts.push(`${byStatus.in_progress} in corso`);
|
|
74
|
+
parts.push(chalk.yellow(`${byStatus.in_progress} in corso`));
|
|
39
75
|
if (byStatus.completed)
|
|
40
|
-
parts.push(`${byStatus.completed} completati`);
|
|
76
|
+
parts.push(chalk.green(`${byStatus.completed} completati`));
|
|
41
77
|
if (byStatus.scheduled)
|
|
42
|
-
parts.push(`${byStatus.scheduled} pianificati`);
|
|
78
|
+
parts.push(chalk.blue(`${byStatus.scheduled} pianificati`));
|
|
43
79
|
if (parts.length > 0) {
|
|
44
|
-
this.log(
|
|
80
|
+
this.log(kv('Dettaglio', parts.join(chalk.dim(' · '))));
|
|
45
81
|
}
|
|
46
82
|
}
|
|
47
83
|
}
|
|
48
|
-
catch
|
|
49
|
-
|
|
50
|
-
this.log(chalk.dim(` Stats non disponibili: ${msg}`));
|
|
84
|
+
catch {
|
|
85
|
+
// Stats non disponibili
|
|
51
86
|
}
|
|
52
87
|
}
|
|
53
88
|
this.log('');
|
|
89
|
+
this.log(separator());
|
|
90
|
+
this.log('');
|
|
54
91
|
}
|
|
55
92
|
}
|
|
56
93
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ui.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI helpers for @orbitpanel/cli.
|
|
3
|
+
* Consistent branding, colors, and formatting across all commands.
|
|
4
|
+
*/
|
|
5
|
+
/** Print the Orbit CLI banner. */
|
|
6
|
+
export declare function banner(version: string): string;
|
|
7
|
+
/** Section header with teal accent. */
|
|
8
|
+
export declare function section(title: string): string;
|
|
9
|
+
/** Key-value pair with aligned formatting. */
|
|
10
|
+
export declare function kv(key: string, value: string, width?: number): string;
|
|
11
|
+
/** Success message with green checkmark. */
|
|
12
|
+
export declare function success(msg: string): string;
|
|
13
|
+
/** Error message with red cross. */
|
|
14
|
+
export declare function error(msg: string): string;
|
|
15
|
+
/** Warning message with yellow triangle. */
|
|
16
|
+
export declare function warn(msg: string): string;
|
|
17
|
+
/** Info message with dim bullet. */
|
|
18
|
+
export declare function info(msg: string): string;
|
|
19
|
+
/** Hint text (dim, indented). */
|
|
20
|
+
export declare function hint(msg: string): string;
|
|
21
|
+
/** Status badge with color. */
|
|
22
|
+
export declare function badge(label: string, color?: 'green' | 'yellow' | 'red' | 'blue' | 'dim' | 'teal'): string;
|
|
23
|
+
/** Priority badge. */
|
|
24
|
+
export declare function priorityBadge(priority: string): string;
|
|
25
|
+
/** Status badge. */
|
|
26
|
+
export declare function statusBadge(status: string): string;
|
|
27
|
+
/** Origin badge. */
|
|
28
|
+
export declare function originBadge(origin: string): string;
|
|
29
|
+
/** Format a table row for intervention list. */
|
|
30
|
+
export declare function interventionRow(item: Record<string, unknown>): string;
|
|
31
|
+
/** Separator line. */
|
|
32
|
+
export declare function separator(): string;
|
|
33
|
+
/** Empty line. */
|
|
34
|
+
export declare function blank(): string;
|
package/dist/lib/ui.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI helpers for @orbitpanel/cli.
|
|
3
|
+
* Consistent branding, colors, and formatting across all commands.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
// Brand colors
|
|
7
|
+
const BRAND = chalk.hex('#0D9488'); // Teal (Orbit accent)
|
|
8
|
+
const BRAND_DIM = chalk.hex('#0D9488').dim;
|
|
9
|
+
const HEADER = chalk.hex('#1B2A4A').bold; // Navy (Orbit primary)
|
|
10
|
+
const SEPARATOR = chalk.dim('─'.repeat(50));
|
|
11
|
+
/** Print the Orbit CLI banner. */
|
|
12
|
+
export function banner(version) {
|
|
13
|
+
const lines = [
|
|
14
|
+
'',
|
|
15
|
+
` ${BRAND.bold('ORBIT')} ${chalk.dim('CLI')} ${chalk.dim(`v${version}`)}`,
|
|
16
|
+
` ${chalk.dim('Strumento locale per sviluppatori OrbitPanel')}`,
|
|
17
|
+
SEPARATOR,
|
|
18
|
+
];
|
|
19
|
+
return lines.join('\n');
|
|
20
|
+
}
|
|
21
|
+
/** Section header with teal accent. */
|
|
22
|
+
export function section(title) {
|
|
23
|
+
return `\n ${BRAND.bold(title)}`;
|
|
24
|
+
}
|
|
25
|
+
/** Key-value pair with aligned formatting. */
|
|
26
|
+
export function kv(key, value, width = 14) {
|
|
27
|
+
return ` ${chalk.dim(key.padEnd(width))} ${value}`;
|
|
28
|
+
}
|
|
29
|
+
/** Success message with green checkmark. */
|
|
30
|
+
export function success(msg) {
|
|
31
|
+
return ` ${chalk.green('✓')} ${msg}`;
|
|
32
|
+
}
|
|
33
|
+
/** Error message with red cross. */
|
|
34
|
+
export function error(msg) {
|
|
35
|
+
return ` ${chalk.red('✗')} ${msg}`;
|
|
36
|
+
}
|
|
37
|
+
/** Warning message with yellow triangle. */
|
|
38
|
+
export function warn(msg) {
|
|
39
|
+
return ` ${chalk.yellow('!')} ${msg}`;
|
|
40
|
+
}
|
|
41
|
+
/** Info message with dim bullet. */
|
|
42
|
+
export function info(msg) {
|
|
43
|
+
return ` ${chalk.dim('·')} ${msg}`;
|
|
44
|
+
}
|
|
45
|
+
/** Hint text (dim, indented). */
|
|
46
|
+
export function hint(msg) {
|
|
47
|
+
return ` ${chalk.dim(msg)}`;
|
|
48
|
+
}
|
|
49
|
+
/** Status badge with color. */
|
|
50
|
+
export function badge(label, color = 'dim') {
|
|
51
|
+
const colors = {
|
|
52
|
+
green: chalk.bgGreen.black,
|
|
53
|
+
yellow: chalk.bgYellow.black,
|
|
54
|
+
red: chalk.bgRed.white,
|
|
55
|
+
blue: chalk.bgBlue.white,
|
|
56
|
+
teal: chalk.bgHex('#0D9488').white,
|
|
57
|
+
dim: chalk.dim,
|
|
58
|
+
};
|
|
59
|
+
return (colors[color] ?? chalk.dim)(` ${label} `);
|
|
60
|
+
}
|
|
61
|
+
/** Priority badge. */
|
|
62
|
+
export function priorityBadge(priority) {
|
|
63
|
+
const map = {
|
|
64
|
+
LOW: ['BASSA', 'dim'],
|
|
65
|
+
MEDIUM: ['MEDIA', 'blue'],
|
|
66
|
+
HIGH: ['ALTA', 'yellow'],
|
|
67
|
+
URGENT: ['URGENTE', 'red'],
|
|
68
|
+
};
|
|
69
|
+
const [label, color] = map[priority] ?? [priority, 'dim'];
|
|
70
|
+
return badge(label, color);
|
|
71
|
+
}
|
|
72
|
+
/** Status badge. */
|
|
73
|
+
export function statusBadge(status) {
|
|
74
|
+
const map = {
|
|
75
|
+
scheduled: ['Pianificato', 'blue'],
|
|
76
|
+
in_progress: ['In Corso', 'yellow'],
|
|
77
|
+
completed: ['Completato', 'green'],
|
|
78
|
+
verified: ['Verificato', 'teal'],
|
|
79
|
+
};
|
|
80
|
+
const [label, color] = map[status] ?? [status, 'dim'];
|
|
81
|
+
return badge(label, color);
|
|
82
|
+
}
|
|
83
|
+
/** Origin badge. */
|
|
84
|
+
export function originBadge(origin) {
|
|
85
|
+
const map = {
|
|
86
|
+
manual: ['Manuale', 'dim'],
|
|
87
|
+
ticket: ['Ticket', 'blue'],
|
|
88
|
+
protocol: ['Protocollo', 'dim'],
|
|
89
|
+
agent: ['Agent', 'green'],
|
|
90
|
+
cli: ['CLI', 'teal'],
|
|
91
|
+
};
|
|
92
|
+
const [label, color] = map[origin] ?? [origin, 'dim'];
|
|
93
|
+
return badge(label, color);
|
|
94
|
+
}
|
|
95
|
+
/** Format a table row for intervention list. */
|
|
96
|
+
export function interventionRow(item) {
|
|
97
|
+
const id = chalk.dim(String(item.id ?? '').slice(0, 8));
|
|
98
|
+
const title = String(item.title ?? '').slice(0, 40).padEnd(40);
|
|
99
|
+
const status = statusBadge(String(item.status ?? ''));
|
|
100
|
+
const priority = priorityBadge(String(item.priority ?? ''));
|
|
101
|
+
const origin = originBadge(String(item.origin ?? ''));
|
|
102
|
+
const date = chalk.dim(String(item.created_at ?? '').slice(0, 10));
|
|
103
|
+
return ` ${id} ${title} ${status} ${priority} ${origin} ${date}`;
|
|
104
|
+
}
|
|
105
|
+
/** Separator line. */
|
|
106
|
+
export function separator() {
|
|
107
|
+
return SEPARATOR;
|
|
108
|
+
}
|
|
109
|
+
/** Empty line. */
|
|
110
|
+
export function blank() {
|
|
111
|
+
return '';
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/lib/ui.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
"login": {
|
|
90
90
|
"aliases": [],
|
|
91
91
|
"args": {},
|
|
92
|
-
"description": "Salva il token MCP per autenticarsi con il backend Orbit.\nIl token si genera dalla UI di Orbit
|
|
92
|
+
"description": "Salva il token MCP per autenticarsi con il backend Orbit.\nIl token si genera dalla UI di Orbit > Sito > Token MCP > Crea Token.",
|
|
93
93
|
"examples": [
|
|
94
94
|
"<%= config.bin %> login --token orbit_mcp_xxx",
|
|
95
|
-
"<%= config.bin %> login
|
|
95
|
+
"ORBIT_TOKEN=orbit_mcp_xxx <%= config.bin %> login"
|
|
96
96
|
],
|
|
97
97
|
"flags": {
|
|
98
98
|
"token": {
|
|
@@ -728,5 +728,5 @@
|
|
|
728
728
|
]
|
|
729
729
|
}
|
|
730
730
|
},
|
|
731
|
-
"version": "0.1.
|
|
731
|
+
"version": "0.1.1"
|
|
732
732
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orbitpanel/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,7 +21,14 @@
|
|
|
21
21
|
"postpack": "rm -f oclif.manifest.json",
|
|
22
22
|
"prepack": "npm run build"
|
|
23
23
|
},
|
|
24
|
-
"keywords": [
|
|
24
|
+
"keywords": [
|
|
25
|
+
"orbit",
|
|
26
|
+
"cli",
|
|
27
|
+
"mcp",
|
|
28
|
+
"wordpress",
|
|
29
|
+
"hosting",
|
|
30
|
+
"maintenance"
|
|
31
|
+
],
|
|
25
32
|
"author": "PrincipiADV",
|
|
26
33
|
"license": "MIT",
|
|
27
34
|
"dependencies": {
|
|
@@ -47,10 +54,18 @@
|
|
|
47
54
|
"commands": "./dist/commands",
|
|
48
55
|
"topicSeparator": " ",
|
|
49
56
|
"topics": {
|
|
50
|
-
"session": {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
57
|
+
"session": {
|
|
58
|
+
"description": "Gestione sessioni di lavoro"
|
|
59
|
+
},
|
|
60
|
+
"intervention": {
|
|
61
|
+
"description": "Gestione interventi Orbit"
|
|
62
|
+
},
|
|
63
|
+
"report": {
|
|
64
|
+
"description": "Invio report a Orbit"
|
|
65
|
+
},
|
|
66
|
+
"note": {
|
|
67
|
+
"description": "Note sessione"
|
|
68
|
+
}
|
|
54
69
|
},
|
|
55
70
|
"hooks": {
|
|
56
71
|
"prerun": "./dist/hooks/prerun"
|