@orbitpanel/cli 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/ai-chat.js +2 -0
- package/dist/lib/ai-chat.js.map +1 -1
- package/dist/lib/ai-stream.js +2 -0
- package/dist/lib/ai-stream.js.map +1 -1
- package/dist/lib/command-router.js +21 -0
- package/dist/lib/command-router.js.map +1 -1
- package/dist/lib/intelligence/action-executor.d.ts +45 -0
- package/dist/lib/intelligence/action-executor.js +77 -0
- package/dist/lib/intelligence/action-executor.js.map +1 -0
- package/dist/lib/intelligence/action-parser.d.ts +63 -0
- package/dist/lib/intelligence/action-parser.js +149 -0
- package/dist/lib/intelligence/action-parser.js.map +1 -0
- package/dist/lib/intelligence/agent-prompt.d.ts +28 -0
- package/dist/lib/intelligence/agent-prompt.js +179 -0
- package/dist/lib/intelligence/agent-prompt.js.map +1 -0
- package/dist/lib/intelligence/capability-map.d.ts +53 -0
- package/dist/lib/intelligence/capability-map.js +266 -0
- package/dist/lib/intelligence/capability-map.js.map +1 -0
- package/dist/lib/intelligence/chat-enrichment.d.ts +32 -0
- package/dist/lib/intelligence/chat-enrichment.js +130 -0
- package/dist/lib/intelligence/chat-enrichment.js.map +1 -0
- package/dist/lib/intelligence/context-packet.d.ts +157 -0
- package/dist/lib/intelligence/context-packet.js +129 -0
- package/dist/lib/intelligence/context-packet.js.map +1 -0
- package/dist/lib/intelligence/diagnose-wiring.d.ts +20 -0
- package/dist/lib/intelligence/diagnose-wiring.js +157 -0
- package/dist/lib/intelligence/diagnose-wiring.js.map +1 -0
- package/dist/lib/intelligence/diagnose.d.ts +116 -0
- package/dist/lib/intelligence/diagnose.js +312 -0
- package/dist/lib/intelligence/diagnose.js.map +1 -0
- package/dist/lib/intelligence/model-config.d.ts +18 -0
- package/dist/lib/intelligence/model-config.js +27 -0
- package/dist/lib/intelligence/model-config.js.map +1 -0
- package/dist/lib/shell-ink.js +23 -1
- package/dist/lib/shell-ink.js.map +1 -1
- package/dist/lib/shell-render.js +1 -0
- package/dist/lib/shell-render.js.map +1 -1
- package/dist/lib/shell.js +62 -3
- package/dist/lib/shell.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /diagnose — Diagnostica aggregata per il CLI Intelligence Layer.
|
|
3
|
+
*
|
|
4
|
+
* v1 PERIMETRO:
|
|
5
|
+
* - 5 check (3 locali + 2 remoti opzionali)
|
|
6
|
+
* - Aggrega risultati in un DiagnoseReport
|
|
7
|
+
* - NON auto-fixa
|
|
8
|
+
* - NON fa loop complessi
|
|
9
|
+
* - NON tocca memoria backend
|
|
10
|
+
* - NON scrive task automaticamente
|
|
11
|
+
*
|
|
12
|
+
* ARCHITETTURA:
|
|
13
|
+
* - Pure data collection (check functions)
|
|
14
|
+
* - Report aggregation (buildDiagnoseReport)
|
|
15
|
+
* - Suggestion generation (suggerimenti per l'utente)
|
|
16
|
+
* - Integration con SessionEngine opzionale (propone task)
|
|
17
|
+
*/
|
|
18
|
+
export type CheckStatus = 'pass' | 'warn' | 'fail' | 'skip';
|
|
19
|
+
export interface DiagnoseCheck {
|
|
20
|
+
/** Identificatore del check */
|
|
21
|
+
id: string;
|
|
22
|
+
/** Nome leggibile */
|
|
23
|
+
label: string;
|
|
24
|
+
/** Risultato */
|
|
25
|
+
status: CheckStatus;
|
|
26
|
+
/** Dettaglio del risultato */
|
|
27
|
+
detail: string;
|
|
28
|
+
/** Se il check è locale o remoto */
|
|
29
|
+
scope: 'local' | 'remote';
|
|
30
|
+
/** Tempo di esecuzione in ms */
|
|
31
|
+
durationMs: number;
|
|
32
|
+
}
|
|
33
|
+
export interface DiagnoseSuggestion {
|
|
34
|
+
/** Priorità: alta (problemi bloccanti) > media > bassa (miglioramenti) */
|
|
35
|
+
priority: 'high' | 'medium' | 'low';
|
|
36
|
+
/** Testo della raccomandazione */
|
|
37
|
+
text: string;
|
|
38
|
+
/** Comando da eseguire (se applicabile) */
|
|
39
|
+
command: string | null;
|
|
40
|
+
/** Se proporre la creazione di un task */
|
|
41
|
+
proposeTask: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface DiagnoseReport {
|
|
44
|
+
/** Timestamp di generazione */
|
|
45
|
+
generatedAt: string;
|
|
46
|
+
/** Risultato complessivo */
|
|
47
|
+
overallStatus: CheckStatus;
|
|
48
|
+
/** Check eseguiti */
|
|
49
|
+
checks: DiagnoseCheck[];
|
|
50
|
+
/** Suggerimenti ordinati per priorità */
|
|
51
|
+
suggestions: DiagnoseSuggestion[];
|
|
52
|
+
/** Durata totale in ms */
|
|
53
|
+
totalDurationMs: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* I/O adapter per i check — injectable per testing.
|
|
57
|
+
* Permette di testare la logica di diagnose senza I/O reale.
|
|
58
|
+
*/
|
|
59
|
+
export interface DiagnoseIO {
|
|
60
|
+
/** Verifica se il token è valido via API */
|
|
61
|
+
validateToken(): Promise<{
|
|
62
|
+
valid: boolean;
|
|
63
|
+
error?: string;
|
|
64
|
+
}>;
|
|
65
|
+
/** Verifica raggiungibilità backend */
|
|
66
|
+
pingBackend(): Promise<{
|
|
67
|
+
reachable: boolean;
|
|
68
|
+
latencyMs: number;
|
|
69
|
+
error?: string;
|
|
70
|
+
}>;
|
|
71
|
+
/** Verifica branch git */
|
|
72
|
+
getGitBranch(): Promise<string | null>;
|
|
73
|
+
/** Verifica se ci sono modifiche non committate */
|
|
74
|
+
getGitDirty(): Promise<boolean | null>;
|
|
75
|
+
}
|
|
76
|
+
/** Input per il diagnose engine */
|
|
77
|
+
export interface DiagnoseInput {
|
|
78
|
+
/** Se c'è un token configurato */
|
|
79
|
+
hasToken: boolean;
|
|
80
|
+
/** Se c'è un sito collegato */
|
|
81
|
+
hasSite: boolean;
|
|
82
|
+
/** Se c'è un manifest */
|
|
83
|
+
hasManifest: boolean;
|
|
84
|
+
/** Livello di salute contesto */
|
|
85
|
+
healthLevel: string;
|
|
86
|
+
/** Problemi di salute contesto */
|
|
87
|
+
healthIssues: string[];
|
|
88
|
+
/** Se c'è una sessione attiva */
|
|
89
|
+
hasSession: boolean;
|
|
90
|
+
/** Durata sessione in minuti (null se nessuna) */
|
|
91
|
+
sessionDurationMinutes: number | null;
|
|
92
|
+
/** Task aperti (0 se nessuna sessione) */
|
|
93
|
+
tasksOpen: number;
|
|
94
|
+
/** Se includere check remoti (backend API) */
|
|
95
|
+
includeRemoteChecks: boolean;
|
|
96
|
+
}
|
|
97
|
+
/** Check 1: Configurazione locale (token + sito + manifest) */
|
|
98
|
+
export declare function checkLocalConfig(input: DiagnoseInput): DiagnoseCheck;
|
|
99
|
+
/** Check 2: Salute del contesto (health issues) */
|
|
100
|
+
export declare function checkContextHealth(input: DiagnoseInput): DiagnoseCheck;
|
|
101
|
+
/** Check 3: Stato sessione */
|
|
102
|
+
export declare function checkSessionState(input: DiagnoseInput): DiagnoseCheck;
|
|
103
|
+
/** Check 4: Connettività backend (remoto, opzionale) */
|
|
104
|
+
export declare function checkBackendConnectivity(io: DiagnoseIO): Promise<DiagnoseCheck>;
|
|
105
|
+
/** Check 5: Validità token (remoto, opzionale) */
|
|
106
|
+
export declare function checkTokenValidity(io: DiagnoseIO): Promise<DiagnoseCheck>;
|
|
107
|
+
/** Calcola lo status complessivo dai check */
|
|
108
|
+
export declare function computeOverallStatus(checks: DiagnoseCheck[]): CheckStatus;
|
|
109
|
+
/** Genera suggerimenti basati sui risultati dei check */
|
|
110
|
+
export declare function generateSuggestions(checks: DiagnoseCheck[], input: DiagnoseInput): DiagnoseSuggestion[];
|
|
111
|
+
/**
|
|
112
|
+
* Esegue la diagnostica completa e produce un DiagnoseReport.
|
|
113
|
+
*
|
|
114
|
+
* v1: 3 check locali (sempre) + 2 check remoti (se includeRemoteChecks)
|
|
115
|
+
*/
|
|
116
|
+
export declare function runDiagnose(input: DiagnoseInput, io: DiagnoseIO): Promise<DiagnoseReport>;
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /diagnose — Diagnostica aggregata per il CLI Intelligence Layer.
|
|
3
|
+
*
|
|
4
|
+
* v1 PERIMETRO:
|
|
5
|
+
* - 5 check (3 locali + 2 remoti opzionali)
|
|
6
|
+
* - Aggrega risultati in un DiagnoseReport
|
|
7
|
+
* - NON auto-fixa
|
|
8
|
+
* - NON fa loop complessi
|
|
9
|
+
* - NON tocca memoria backend
|
|
10
|
+
* - NON scrive task automaticamente
|
|
11
|
+
*
|
|
12
|
+
* ARCHITETTURA:
|
|
13
|
+
* - Pure data collection (check functions)
|
|
14
|
+
* - Report aggregation (buildDiagnoseReport)
|
|
15
|
+
* - Suggestion generation (suggerimenti per l'utente)
|
|
16
|
+
* - Integration con SessionEngine opzionale (propone task)
|
|
17
|
+
*/
|
|
18
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
|
+
// CHECK RUNNERS
|
|
20
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
21
|
+
/** Check 1: Configurazione locale (token + sito + manifest) */
|
|
22
|
+
export function checkLocalConfig(input) {
|
|
23
|
+
const start = Date.now();
|
|
24
|
+
if (!input.hasToken) {
|
|
25
|
+
return {
|
|
26
|
+
id: 'local_config',
|
|
27
|
+
label: 'Configurazione locale',
|
|
28
|
+
status: 'fail',
|
|
29
|
+
detail: 'Nessun token configurato. Esegui /auth o /login.',
|
|
30
|
+
scope: 'local',
|
|
31
|
+
durationMs: Date.now() - start,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (!input.hasSite && !input.hasManifest) {
|
|
35
|
+
return {
|
|
36
|
+
id: 'local_config',
|
|
37
|
+
label: 'Configurazione locale',
|
|
38
|
+
status: 'warn',
|
|
39
|
+
detail: 'Token presente ma nessun sito collegato. Esegui /sites o /link.',
|
|
40
|
+
scope: 'local',
|
|
41
|
+
durationMs: Date.now() - start,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const manifestStatus = input.hasManifest ? 'manifest presente' : 'solo link legacy';
|
|
45
|
+
return {
|
|
46
|
+
id: 'local_config',
|
|
47
|
+
label: 'Configurazione locale',
|
|
48
|
+
status: input.hasManifest ? 'pass' : 'warn',
|
|
49
|
+
detail: `Token ok, sito collegato (${manifestStatus}).`,
|
|
50
|
+
scope: 'local',
|
|
51
|
+
durationMs: Date.now() - start,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Check 2: Salute del contesto (health issues) */
|
|
55
|
+
export function checkContextHealth(input) {
|
|
56
|
+
const start = Date.now();
|
|
57
|
+
if (input.healthLevel === 'ok' || input.healthLevel === 'info') {
|
|
58
|
+
return {
|
|
59
|
+
id: 'context_health',
|
|
60
|
+
label: 'Salute contesto',
|
|
61
|
+
status: 'pass',
|
|
62
|
+
detail: 'Contesto coerente, nessuna incoerenza rilevata.',
|
|
63
|
+
scope: 'local',
|
|
64
|
+
durationMs: Date.now() - start,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
id: 'context_health',
|
|
69
|
+
label: 'Salute contesto',
|
|
70
|
+
status: input.healthLevel === 'critical' ? 'fail' : 'warn',
|
|
71
|
+
detail: `Contesto ${input.healthLevel}: ${input.healthIssues.join('; ') || 'dettagli in /context'}.`,
|
|
72
|
+
scope: 'local',
|
|
73
|
+
durationMs: Date.now() - start,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/** Check 3: Stato sessione */
|
|
77
|
+
export function checkSessionState(input) {
|
|
78
|
+
const start = Date.now();
|
|
79
|
+
if (!input.hasSession) {
|
|
80
|
+
return {
|
|
81
|
+
id: 'session_state',
|
|
82
|
+
label: 'Sessione di lavoro',
|
|
83
|
+
status: 'warn',
|
|
84
|
+
detail: 'Nessuna sessione attiva. Avvia con /session start per tracciare il lavoro.',
|
|
85
|
+
scope: 'local',
|
|
86
|
+
durationMs: Date.now() - start,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const issues = [];
|
|
90
|
+
if (input.sessionDurationMinutes !== null && input.sessionDurationMinutes > 240) {
|
|
91
|
+
issues.push(`sessione molto lunga (${input.sessionDurationMinutes}min)`);
|
|
92
|
+
}
|
|
93
|
+
if (input.tasksOpen > 5) {
|
|
94
|
+
issues.push(`${input.tasksOpen} task ancora aperti`);
|
|
95
|
+
}
|
|
96
|
+
if (issues.length > 0) {
|
|
97
|
+
return {
|
|
98
|
+
id: 'session_state',
|
|
99
|
+
label: 'Sessione di lavoro',
|
|
100
|
+
status: 'warn',
|
|
101
|
+
detail: `Sessione attiva con attenzioni: ${issues.join(', ')}.`,
|
|
102
|
+
scope: 'local',
|
|
103
|
+
durationMs: Date.now() - start,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
id: 'session_state',
|
|
108
|
+
label: 'Sessione di lavoro',
|
|
109
|
+
status: 'pass',
|
|
110
|
+
detail: `Sessione attiva (${input.sessionDurationMinutes ?? '?'}min), ${input.tasksOpen} task aperti.`,
|
|
111
|
+
scope: 'local',
|
|
112
|
+
durationMs: Date.now() - start,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/** Check 4: Connettività backend (remoto, opzionale) */
|
|
116
|
+
export async function checkBackendConnectivity(io) {
|
|
117
|
+
const start = Date.now();
|
|
118
|
+
try {
|
|
119
|
+
const result = await io.pingBackend();
|
|
120
|
+
if (result.reachable) {
|
|
121
|
+
return {
|
|
122
|
+
id: 'backend_connectivity',
|
|
123
|
+
label: 'Connettività backend',
|
|
124
|
+
status: result.latencyMs > 2000 ? 'warn' : 'pass',
|
|
125
|
+
detail: `Backend raggiungibile (${result.latencyMs}ms).${result.latencyMs > 2000 ? ' Latenza alta.' : ''}`,
|
|
126
|
+
scope: 'remote',
|
|
127
|
+
durationMs: Date.now() - start,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
id: 'backend_connectivity',
|
|
132
|
+
label: 'Connettività backend',
|
|
133
|
+
status: 'fail',
|
|
134
|
+
detail: `Backend non raggiungibile: ${result.error ?? 'timeout'}.`,
|
|
135
|
+
scope: 'remote',
|
|
136
|
+
durationMs: Date.now() - start,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
return {
|
|
141
|
+
id: 'backend_connectivity',
|
|
142
|
+
label: 'Connettività backend',
|
|
143
|
+
status: 'fail',
|
|
144
|
+
detail: `Errore verifica backend: ${err instanceof Error ? err.message : 'sconosciuto'}.`,
|
|
145
|
+
scope: 'remote',
|
|
146
|
+
durationMs: Date.now() - start,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/** Check 5: Validità token (remoto, opzionale) */
|
|
151
|
+
export async function checkTokenValidity(io) {
|
|
152
|
+
const start = Date.now();
|
|
153
|
+
try {
|
|
154
|
+
const result = await io.validateToken();
|
|
155
|
+
return {
|
|
156
|
+
id: 'token_validity',
|
|
157
|
+
label: 'Validità token',
|
|
158
|
+
status: result.valid ? 'pass' : 'fail',
|
|
159
|
+
detail: result.valid ? 'Token valido e attivo.' : `Token non valido: ${result.error ?? 'scaduto o revocato'}.`,
|
|
160
|
+
scope: 'remote',
|
|
161
|
+
durationMs: Date.now() - start,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
return {
|
|
166
|
+
id: 'token_validity',
|
|
167
|
+
label: 'Validità token',
|
|
168
|
+
status: 'skip',
|
|
169
|
+
detail: `Verifica token non disponibile: ${err instanceof Error ? err.message : 'errore'}.`,
|
|
170
|
+
scope: 'remote',
|
|
171
|
+
durationMs: Date.now() - start,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
176
|
+
// REPORT BUILDER
|
|
177
|
+
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
178
|
+
/** Calcola lo status complessivo dai check */
|
|
179
|
+
export function computeOverallStatus(checks) {
|
|
180
|
+
if (checks.some(c => c.status === 'fail'))
|
|
181
|
+
return 'fail';
|
|
182
|
+
if (checks.some(c => c.status === 'warn'))
|
|
183
|
+
return 'warn';
|
|
184
|
+
if (checks.every(c => c.status === 'skip'))
|
|
185
|
+
return 'skip';
|
|
186
|
+
return 'pass';
|
|
187
|
+
}
|
|
188
|
+
/** Genera suggerimenti basati sui risultati dei check */
|
|
189
|
+
export function generateSuggestions(checks, input) {
|
|
190
|
+
const suggestions = [];
|
|
191
|
+
for (const check of checks) {
|
|
192
|
+
if (check.status === 'pass' || check.status === 'skip')
|
|
193
|
+
continue;
|
|
194
|
+
switch (check.id) {
|
|
195
|
+
case 'local_config':
|
|
196
|
+
if (!input.hasToken) {
|
|
197
|
+
suggestions.push({
|
|
198
|
+
priority: 'high',
|
|
199
|
+
text: 'Configura l\'autenticazione per collegare la CLI a Orbit.',
|
|
200
|
+
command: '/auth',
|
|
201
|
+
proposeTask: false,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else if (!input.hasSite && !input.hasManifest) {
|
|
205
|
+
suggestions.push({
|
|
206
|
+
priority: 'medium',
|
|
207
|
+
text: 'Collega un sito per abilitare sessioni e report.',
|
|
208
|
+
command: '/sites',
|
|
209
|
+
proposeTask: false,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
else if (!input.hasManifest) {
|
|
213
|
+
suggestions.push({
|
|
214
|
+
priority: 'low',
|
|
215
|
+
text: 'Inizializza il manifesto progetto per una configurazione più robusta.',
|
|
216
|
+
command: '/init',
|
|
217
|
+
proposeTask: false,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
break;
|
|
221
|
+
case 'context_health':
|
|
222
|
+
suggestions.push({
|
|
223
|
+
priority: check.status === 'fail' ? 'high' : 'medium',
|
|
224
|
+
text: `Contesto ${input.healthLevel} — verifica e correggi le incoerenze.`,
|
|
225
|
+
command: '/context',
|
|
226
|
+
proposeTask: check.status === 'fail',
|
|
227
|
+
});
|
|
228
|
+
break;
|
|
229
|
+
case 'session_state':
|
|
230
|
+
if (!input.hasSession) {
|
|
231
|
+
suggestions.push({
|
|
232
|
+
priority: 'medium',
|
|
233
|
+
text: 'Nessuna sessione attiva — il lavoro non viene tracciato.',
|
|
234
|
+
command: '/session start',
|
|
235
|
+
proposeTask: false,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
if (input.sessionDurationMinutes !== null && input.sessionDurationMinutes > 240) {
|
|
240
|
+
suggestions.push({
|
|
241
|
+
priority: 'medium',
|
|
242
|
+
text: 'Sessione molto lunga — valuta di chiudere e inviare un report.',
|
|
243
|
+
command: '/report',
|
|
244
|
+
proposeTask: true,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
if (input.tasksOpen > 5) {
|
|
248
|
+
suggestions.push({
|
|
249
|
+
priority: 'medium',
|
|
250
|
+
text: `${input.tasksOpen} task ancora aperti — rivedi con /session info.`,
|
|
251
|
+
command: '/session info',
|
|
252
|
+
proposeTask: false,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
break;
|
|
257
|
+
case 'backend_connectivity':
|
|
258
|
+
suggestions.push({
|
|
259
|
+
priority: 'high',
|
|
260
|
+
text: 'Backend non raggiungibile — lavora in locale, il report sarà possibile quando tornerà online.',
|
|
261
|
+
command: null,
|
|
262
|
+
proposeTask: true,
|
|
263
|
+
});
|
|
264
|
+
break;
|
|
265
|
+
case 'token_validity':
|
|
266
|
+
suggestions.push({
|
|
267
|
+
priority: 'high',
|
|
268
|
+
text: 'Token non valido — riautentica per ripristinare la connessione.',
|
|
269
|
+
command: '/auth',
|
|
270
|
+
proposeTask: false,
|
|
271
|
+
});
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Sort by priority
|
|
276
|
+
const order = { high: 0, medium: 1, low: 2 };
|
|
277
|
+
suggestions.sort((a, b) => order[a.priority] - order[b.priority]);
|
|
278
|
+
return suggestions;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Esegue la diagnostica completa e produce un DiagnoseReport.
|
|
282
|
+
*
|
|
283
|
+
* v1: 3 check locali (sempre) + 2 check remoti (se includeRemoteChecks)
|
|
284
|
+
*/
|
|
285
|
+
export async function runDiagnose(input, io) {
|
|
286
|
+
const start = Date.now();
|
|
287
|
+
// Check locali (sincroni, sempre eseguiti)
|
|
288
|
+
const localChecks = [
|
|
289
|
+
checkLocalConfig(input),
|
|
290
|
+
checkContextHealth(input),
|
|
291
|
+
checkSessionState(input),
|
|
292
|
+
];
|
|
293
|
+
// Check remoti (asincroni, opzionali)
|
|
294
|
+
let remoteChecks = [];
|
|
295
|
+
if (input.includeRemoteChecks && input.hasToken) {
|
|
296
|
+
const [connectivity, tokenCheck] = await Promise.all([
|
|
297
|
+
checkBackendConnectivity(io),
|
|
298
|
+
checkTokenValidity(io),
|
|
299
|
+
]);
|
|
300
|
+
remoteChecks = [connectivity, tokenCheck];
|
|
301
|
+
}
|
|
302
|
+
const allChecks = [...localChecks, ...remoteChecks];
|
|
303
|
+
const suggestions = generateSuggestions(allChecks, input);
|
|
304
|
+
return {
|
|
305
|
+
generatedAt: new Date().toISOString(),
|
|
306
|
+
overallStatus: computeOverallStatus(allChecks),
|
|
307
|
+
checks: allChecks,
|
|
308
|
+
suggestions,
|
|
309
|
+
totalDurationMs: Date.now() - start,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=diagnose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/lib/intelligence/diagnose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAwFH,qEAAqE;AACrE,gBAAgB;AAChB,qEAAqE;AAErE,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,kDAAkD;YAC1D,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iEAAiE;YACzE,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACpF,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC3C,MAAM,EAAE,6BAA6B,cAAc,IAAI;QACvD,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO;YACL,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iDAAiD;YACzD,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC1D,MAAM,EAAE,YAAY,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,GAAG;QACpG,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,4EAA4E;YACpF,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,KAAK,CAAC,sBAAsB,KAAK,IAAI,IAAI,KAAK,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,sBAAsB,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,qBAAqB,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,mCAAmC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/D,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,oBAAoB,KAAK,CAAC,sBAAsB,IAAI,GAAG,SAAS,KAAK,CAAC,SAAS,eAAe;QACtG,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAc;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,sBAAsB;gBAC1B,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACjD,MAAM,EAAE,0BAA0B,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1G,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,8BAA8B,MAAM,CAAC,KAAK,IAAI,SAAS,GAAG;YAClE,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,GAAG;YACzF,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAc;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO;YACL,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACtC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,KAAK,IAAI,oBAAoB,GAAG;YAC9G,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG;YAC3F,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,iBAAiB;AACjB,qEAAqE;AAErE,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CAAC,MAAuB,EAAE,KAAoB;IAC/E,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAEjE,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;YACjB,KAAK,cAAc;gBACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpB,WAAW,CAAC,IAAI,CAAC;wBACf,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,2DAA2D;wBACjE,OAAO,EAAE,OAAO;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAChD,WAAW,CAAC,IAAI,CAAC;wBACf,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,kDAAkD;wBACxD,OAAO,EAAE,QAAQ;wBACjB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC9B,WAAW,CAAC,IAAI,CAAC;wBACf,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,uEAAuE;wBAC7E,OAAO,EAAE,OAAO;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,gBAAgB;gBACnB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;oBACrD,IAAI,EAAE,YAAY,KAAK,CAAC,WAAW,uCAAuC;oBAC1E,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,MAAM;iBACrC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;oBACtB,WAAW,CAAC,IAAI,CAAC;wBACf,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,0DAA0D;wBAChE,OAAO,EAAE,gBAAgB;wBACzB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,KAAK,CAAC,sBAAsB,KAAK,IAAI,IAAI,KAAK,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC;wBAChF,WAAW,CAAC,IAAI,CAAC;4BACf,QAAQ,EAAE,QAAQ;4BAClB,IAAI,EAAE,gEAAgE;4BACtE,OAAO,EAAE,SAAS;4BAClB,WAAW,EAAE,IAAI;yBAClB,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;wBACxB,WAAW,CAAC,IAAI,CAAC;4BACf,QAAQ,EAAE,QAAQ;4BAClB,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,iDAAiD;4BACzE,OAAO,EAAE,eAAe;4BACxB,WAAW,EAAE,KAAK;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,sBAAsB;gBACzB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,+FAA+F;oBACrG,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,gBAAgB;gBACnB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,iEAAiE;oBACvE,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACrE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAoB,EACpB,EAAc;IAEd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,2CAA2C;IAC3C,MAAM,WAAW,GAAoB;QACnC,gBAAgB,CAAC,KAAK,CAAC;QACvB,kBAAkB,CAAC,KAAK,CAAC;QACzB,iBAAiB,CAAC,KAAK,CAAC;KACzB,CAAC;IAEF,sCAAsC;IACtC,IAAI,YAAY,GAAoB,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,wBAAwB,CAAC,EAAE,CAAC;YAC5B,kBAAkB,CAAC,EAAE,CAAC;SACvB,CAAC,CAAC;QACH,YAAY,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE1D,OAAO;QACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,aAAa,EAAE,oBAAoB,CAAC,SAAS,CAAC;QAC9C,MAAM,EAAE,SAAS;QACjB,WAAW;QACX,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model configuration — Single source of truth per il modello LLM della CLI.
|
|
3
|
+
*
|
|
4
|
+
* La CLI invia un `model` hint al backend. Il backend può usarlo o ignorarlo.
|
|
5
|
+
* Non c'è model routing complesso — solo un default e un override opzionale.
|
|
6
|
+
*/
|
|
7
|
+
/** Default model per il CLI Intelligence Layer */
|
|
8
|
+
export declare const CLI_DEFAULT_MODEL = "gpt-5.4";
|
|
9
|
+
/** Modello fallback/economico */
|
|
10
|
+
export declare const CLI_FALLBACK_MODEL = "gpt-5.4-mini";
|
|
11
|
+
/** Modelli supportati dalla CLI */
|
|
12
|
+
export declare const CLI_SUPPORTED_MODELS: readonly ["gpt-5.4", "gpt-5.4-mini"];
|
|
13
|
+
export type CLISupportedModel = typeof CLI_SUPPORTED_MODELS[number];
|
|
14
|
+
/**
|
|
15
|
+
* Risolve il modello da usare.
|
|
16
|
+
* Priority: override esplicito > env var > default.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveModel(override?: string): string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model configuration — Single source of truth per il modello LLM della CLI.
|
|
3
|
+
*
|
|
4
|
+
* La CLI invia un `model` hint al backend. Il backend può usarlo o ignorarlo.
|
|
5
|
+
* Non c'è model routing complesso — solo un default e un override opzionale.
|
|
6
|
+
*/
|
|
7
|
+
/** Default model per il CLI Intelligence Layer */
|
|
8
|
+
export const CLI_DEFAULT_MODEL = 'gpt-5.4';
|
|
9
|
+
/** Modello fallback/economico */
|
|
10
|
+
export const CLI_FALLBACK_MODEL = 'gpt-5.4-mini';
|
|
11
|
+
/** Modelli supportati dalla CLI */
|
|
12
|
+
export const CLI_SUPPORTED_MODELS = [CLI_DEFAULT_MODEL, CLI_FALLBACK_MODEL];
|
|
13
|
+
/**
|
|
14
|
+
* Risolve il modello da usare.
|
|
15
|
+
* Priority: override esplicito > env var > default.
|
|
16
|
+
*/
|
|
17
|
+
export function resolveModel(override) {
|
|
18
|
+
if (override && CLI_SUPPORTED_MODELS.includes(override)) {
|
|
19
|
+
return override;
|
|
20
|
+
}
|
|
21
|
+
const envModel = typeof process !== 'undefined' ? process.env.ORBIT_CLI_MODEL : undefined;
|
|
22
|
+
if (envModel && CLI_SUPPORTED_MODELS.includes(envModel)) {
|
|
23
|
+
return envModel;
|
|
24
|
+
}
|
|
25
|
+
return CLI_DEFAULT_MODEL;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=model-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../../src/lib/intelligence/model-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,iCAAiC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,mCAAmC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAU,CAAC;AAIrF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAiB;IAC5C,IAAI,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
|
package/dist/lib/shell-ink.js
CHANGED
|
@@ -116,9 +116,16 @@ export async function startInkShell(version) {
|
|
|
116
116
|
async function handleAIChat(raw, store, addOutput) {
|
|
117
117
|
const { executeAIChat } = await import('./ai-handler.js');
|
|
118
118
|
const { config, siteLink } = store.getState();
|
|
119
|
+
// Enrich message with CLI context (fallback to raw on error)
|
|
120
|
+
let enrichedMessage = raw;
|
|
121
|
+
try {
|
|
122
|
+
const { enrichMessageWithContext } = await import('./intelligence/chat-enrichment.js');
|
|
123
|
+
enrichedMessage = enrichMessageWithContext(raw, store.getState(), process.cwd());
|
|
124
|
+
}
|
|
125
|
+
catch { /* fallback: use raw message */ }
|
|
119
126
|
addOutput(` ${sparkle} ${BB('Orbit AI')}\n`);
|
|
120
127
|
store.startRequest();
|
|
121
|
-
await executeAIChat(
|
|
128
|
+
const chatResult = await executeAIChat(enrichedMessage, config, siteLink, {
|
|
122
129
|
onComplete: (text) => {
|
|
123
130
|
const indented = text.split('\n').map(l => ` ${l}`).join('\n');
|
|
124
131
|
addOutput(indented);
|
|
@@ -127,6 +134,21 @@ async function handleAIChat(raw, store, addOutput) {
|
|
|
127
134
|
onEmpty: () => addOutput(` ${DIM('Nessuna risposta ricevuta.')}`),
|
|
128
135
|
});
|
|
129
136
|
store.endRequest();
|
|
137
|
+
// Action parser — process structured actions from LLM response
|
|
138
|
+
// Ink mode: no interactive readline confirm, so we show the proposed action without executing
|
|
139
|
+
if (chatResult.success && chatResult.rawText) {
|
|
140
|
+
try {
|
|
141
|
+
const { parseActionFromResponse, isOperativeAction, getConfirmationMessage } = await import('./intelligence/action-parser.js');
|
|
142
|
+
const parsed = parseActionFromResponse(chatResult.rawText);
|
|
143
|
+
if (parsed.action && isOperativeAction(parsed.action)) {
|
|
144
|
+
const msg = getConfirmationMessage(parsed.action);
|
|
145
|
+
if (msg) {
|
|
146
|
+
addOutput(`\n ${chalk.cyan('?')} ${msg} ${DIM('(usa il comando slash per eseguire)')}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch { /* fallback: no action processing */ }
|
|
151
|
+
}
|
|
130
152
|
addOutput('');
|
|
131
153
|
}
|
|
132
154
|
// Interactive site selection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-ink.js","sourceRoot":"","sources":["../../src/lib/shell-ink.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shell-ink.js","sourceRoot":"","sources":["../../src/lib/shell-ink.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/shell-render.js
CHANGED
|
@@ -44,6 +44,7 @@ export const SLASH_COMMANDS = [
|
|
|
44
44
|
{ cmd: '/link', alias: '', desc: 'collega directory (+ site_id)' },
|
|
45
45
|
{ cmd: '/unlink', alias: '', desc: 'scollega sito dalla directory' },
|
|
46
46
|
{ cmd: '/init', alias: '', desc: 'inizializza progetto .orbit/' },
|
|
47
|
+
{ cmd: '/diagnose', alias: '/diag', desc: 'diagnostica aggregata' },
|
|
47
48
|
{ cmd: '/context', alias: '/ctx', desc: 'mostra contesto progetto' },
|
|
48
49
|
{ cmd: '/clear', alias: '', desc: 'pulisci schermo' },
|
|
49
50
|
{ cmd: '/help', alias: '/h', desc: 'lista comandi' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-render.js","sourceRoot":"","sources":["../../src/lib/shell-render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shell-render.js","sourceRoot":"","sources":["../../src/lib/shell-render.ts"],"names":[],"mappings":"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"}
|