@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.
Files changed (41) hide show
  1. package/dist/lib/ai-chat.js +2 -0
  2. package/dist/lib/ai-chat.js.map +1 -1
  3. package/dist/lib/ai-stream.js +2 -0
  4. package/dist/lib/ai-stream.js.map +1 -1
  5. package/dist/lib/command-router.js +21 -0
  6. package/dist/lib/command-router.js.map +1 -1
  7. package/dist/lib/intelligence/action-executor.d.ts +45 -0
  8. package/dist/lib/intelligence/action-executor.js +77 -0
  9. package/dist/lib/intelligence/action-executor.js.map +1 -0
  10. package/dist/lib/intelligence/action-parser.d.ts +63 -0
  11. package/dist/lib/intelligence/action-parser.js +149 -0
  12. package/dist/lib/intelligence/action-parser.js.map +1 -0
  13. package/dist/lib/intelligence/agent-prompt.d.ts +28 -0
  14. package/dist/lib/intelligence/agent-prompt.js +179 -0
  15. package/dist/lib/intelligence/agent-prompt.js.map +1 -0
  16. package/dist/lib/intelligence/capability-map.d.ts +53 -0
  17. package/dist/lib/intelligence/capability-map.js +266 -0
  18. package/dist/lib/intelligence/capability-map.js.map +1 -0
  19. package/dist/lib/intelligence/chat-enrichment.d.ts +32 -0
  20. package/dist/lib/intelligence/chat-enrichment.js +130 -0
  21. package/dist/lib/intelligence/chat-enrichment.js.map +1 -0
  22. package/dist/lib/intelligence/context-packet.d.ts +157 -0
  23. package/dist/lib/intelligence/context-packet.js +129 -0
  24. package/dist/lib/intelligence/context-packet.js.map +1 -0
  25. package/dist/lib/intelligence/diagnose-wiring.d.ts +20 -0
  26. package/dist/lib/intelligence/diagnose-wiring.js +157 -0
  27. package/dist/lib/intelligence/diagnose-wiring.js.map +1 -0
  28. package/dist/lib/intelligence/diagnose.d.ts +116 -0
  29. package/dist/lib/intelligence/diagnose.js +312 -0
  30. package/dist/lib/intelligence/diagnose.js.map +1 -0
  31. package/dist/lib/intelligence/model-config.d.ts +18 -0
  32. package/dist/lib/intelligence/model-config.js +27 -0
  33. package/dist/lib/intelligence/model-config.js.map +1 -0
  34. package/dist/lib/shell-ink.js +23 -1
  35. package/dist/lib/shell-ink.js.map +1 -1
  36. package/dist/lib/shell-render.js +1 -0
  37. package/dist/lib/shell-render.js.map +1 -1
  38. package/dist/lib/shell.js +62 -3
  39. package/dist/lib/shell.js.map +1 -1
  40. package/oclif.manifest.json +1 -1
  41. 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":"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"}
@@ -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"}
@@ -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(raw, config, siteLink, {
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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAExE,MAAM,cAAc,GAAY;IAC9B,UAAU;IACV,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;IAChD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC;IAChE,YAAY;CACb,CAAC;AAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzE,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;IAC9N,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,aAAa;IACb,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAEpF,0CAA0C;IAC1C,MAAM,SAAS,GAAc;QAC3B,QAAQ,EAAE,CAAC,CAAC,UAAU;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,UAAU,EAAE,CAAC,CAAC,OAAO;QACrB,WAAW,EAAE,CAAC,CAAC,QAAQ;QACvB,WAAW,EAAE,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,IAAI;QACrD,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,QAAQ,EAAE,WAAW,IAAI,IAAI;QACnE,WAAW,EAAE,aAAa,CAAC,KAAK;KACjC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,6EAA6E;IAC7E,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,SAAiC,EAAE,UAA6D,EAAiB,EAAE;QAC7J,oEAAoE;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACrD,SAAS,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAElF,6DAA6D;QAC7D,MAAM,aAAa,GAAG,UAAU;YAC9B,CAAC,CAAC,KAAK,EAAE,OAAe,EAAoB,EAAE;gBAC1C,MAAM,KAAK,GAAG,OAAO,IAAI,qBAAqB,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;oBACrC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;oBAClE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;iBAChE,CAAC,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,KAAK,KAAK,CAAC;YAC9B,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,sCAAsC;QACtC,MAAM,GAAG,GAAmB;YAC1B,KAAK;YACL,GAAG;YACH,KAAK;YACL,MAAM,EAAE,SAAS;YACjB,aAAa;YACb,UAAU;SACX,CAAC;QAEF,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QAEvC,qCAAqC;QACrC,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO,CAAC,2BAA2B;QAC1D,IAAI,MAAM,CAAC,YAAY;YAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElD,8BAA8B;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACrF,SAAS,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;YAChG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,2CAA2C;IAC7C,CAAC,CAAC;IAEF,iBAAiB;IACjB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC5B,KAAK;QACL,OAAO;QACP,SAAS,EAAE,aAAa;KACzB,CAAC,CACH,CAAC;IAEF,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,KAAiB,EAAE,SAAiC;IAC3F,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE9C,6DAA6D;IAC7D,IAAI,eAAe,GAAG,GAAG,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QACvF,eAAe,GAAG,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAE3C,SAAS,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE9C,KAAK,CAAC,YAAY,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;QACxE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,KAAK,CAAC,UAAU,EAAE,CAAC;IAEnB,+DAA+D;IAC/D,8FAA8F;IAC9F,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YAC/H,MAAM,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,GAAG,EAAE,CAAC;oBACR,SAAS,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,EAAE,CAAC,CAAC;AAChB,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,gBAAgB,CAC7B,KAAiB,EACjB,GAAW,EACX,SAAiC,EACjC,UAA4D;IAE5D,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,SAAS,CAAC,KAAK,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;YAC1D,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;YAC7D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;YAC7D,IAAI,EAAG,IAAI,CAAC,MAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACtD,SAAS,EAAG,IAAI,CAAC,MAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SAClE,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,YAAY,CAAC,GAAG,EAAE;YACtB,aAAa,EAAE,QAAQ,CAAC,EAAE;YAC1B,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACxD,CAAC,CAAC;QAEH,SAAS,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpH,SAAS,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}
@@ -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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"}