@vidiemme/copilot-proxy 0.3.1 → 0.3.3
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/README.md +124 -28
- package/dist/agentRuntime.d.ts +43 -0
- package/dist/agentRuntime.js +204 -0
- package/dist/agentRuntime.js.map +1 -0
- package/dist/cli.js +75 -5
- package/dist/cli.js.map +1 -1
- package/dist/collector/forwarder.d.ts +8 -0
- package/dist/collector/forwarder.js +8 -1
- package/dist/collector/forwarder.js.map +1 -1
- package/dist/editors.d.ts +6 -1
- package/dist/editors.js +18 -5
- package/dist/editors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ il pacchetto contiene i default aziendali Vidiemme, ma puo' usare un altro endpo
|
|
|
45
45
|
| JetBrains / Android Studio, Eclipse, Xcode, Visual Studio | Non supportati: nessuna intercettazione TLS / `CONNECT` implementata. |
|
|
46
46
|
| macOS | Avvio automatico tramite LaunchAgent `launchd` dell'utente. |
|
|
47
47
|
| Linux | Avvio automatico tramite servizio utente `systemd`. |
|
|
48
|
-
| Windows | Percorsi
|
|
48
|
+
| Windows | Percorsi, impostazioni editor e `COPILOT_API_URL` gestiti. `--autostart` non registra un servizio: stampa il comando da aggiungere a Esecuzione automatica. Rilevamento dei path coperto dai test, da verificare su una postazione reale. |
|
|
49
49
|
|
|
50
50
|
> Le impostazioni di override di Copilot sono opzioni di **debug non supportate**:
|
|
51
51
|
> possono cambiare con gli aggiornamenti dell'estensione. Verifica periodicamente
|
|
@@ -93,7 +93,8 @@ npx @vidiemme/copilot-proxy@latest start
|
|
|
93
93
|
|
|
94
94
|
`start` resta in primo piano: lascia il terminale aperto e usa `Ctrl+C` per fermarlo.
|
|
95
95
|
Con questa modalita' il proxy va avviato prima di usare gli editor configurati.
|
|
96
|
-
Su Windows usa questa modalita'
|
|
96
|
+
Su Windows usa questa modalita', oppure aggiungi a Esecuzione automatica il comando
|
|
97
|
+
che `setup --autostart` stampa.
|
|
97
98
|
|
|
98
99
|
### Un collector diverso da quello aziendale
|
|
99
100
|
|
|
@@ -130,6 +131,17 @@ Il token Copilot e la conversazione vanno all'upstream, **non al collector**.
|
|
|
130
131
|
Il proxy non effettua login o rinnovo delle credenziali Copilot: se ne occupa
|
|
131
132
|
il client o il proxy intermedio gia' utilizzato.
|
|
132
133
|
|
|
134
|
+
### Ciclo di vita di una richiesta
|
|
135
|
+
|
|
136
|
+

|
|
137
|
+
|
|
138
|
+
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/lifecycle.html)
|
|
139
|
+
|
|
140
|
+
La risposta arriva al client **mentre** passa: il parser legge una copia dello stream e non
|
|
141
|
+
lo rallenta. L'evento nasce solo a fine stream, e solo se la risposta conteneva contatori.
|
|
142
|
+
Il formato dell'evento e le risposte del collector sono specificati nel
|
|
143
|
+
[contratto](https://github.com/vidiemme/copilot-usage/tree/main/packages/shared#readme).
|
|
144
|
+
|
|
133
145
|
### Protocolli e contatori
|
|
134
146
|
|
|
135
147
|
| Formato di risposta | Origine dei contatori |
|
|
@@ -155,7 +167,10 @@ puo' essere parziale.
|
|
|
155
167
|
|
|
156
168
|
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/attribution.html)
|
|
157
169
|
|
|
158
|
-
|
|
170
|
+
### Progetto
|
|
171
|
+
|
|
172
|
+
Il progetto viene risolto con questa precedenza. I segnali 1-4 sono espliciti e vincono
|
|
173
|
+
sempre; il rilevamento dai path parte solo se nessuno di loro e' presente.
|
|
159
174
|
|
|
160
175
|
| Priorita' | Segnale | `projectSource` |
|
|
161
176
|
| --- | --- | --- |
|
|
@@ -189,15 +204,42 @@ In loro assenza la chiave e' il developer: in quel caso progetti paralleli
|
|
|
189
204
|
possono condividere il fallback. Il rilevamento ispeziona al massimo i primi
|
|
190
205
|
4 MiB del corpo della richiesta.
|
|
191
206
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
207
|
+
### Developer
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/identity.html)
|
|
212
|
+
|
|
213
|
+
| Priorita' | Segnale | `developerSource` |
|
|
214
|
+
| --- | --- | --- |
|
|
215
|
+
| 1 | Prefisso URL `/u/<developer>` | `path` |
|
|
216
|
+
| 2 | Header `X-Developer-Id` | `header` |
|
|
217
|
+
| 3 | Mappa statica `ATTRIBUTION_TOKENS` | `token` |
|
|
218
|
+
| 4 | Pseudonimo del token upstream | `pseudonym` |
|
|
219
|
+
| 5 | Nessun segnale: `unknown` | `fallback` |
|
|
220
|
+
|
|
221
|
+
Lo pseudonimo e' un hash SHA-256 con salt, troncato a 16 caratteri esadecimali, del
|
|
222
|
+
**campo stabile** del token Copilot: il primo presente fra `u`, `tid`, `oid` e `sid`. Il
|
|
223
|
+
token ruota ogni pochi minuti e l'hash dell'intero token creerebbe una persona nuova a ogni
|
|
224
|
+
rotazione. Un token che non e' nel formato `chiave=valore;...` viene usato per intero.
|
|
225
|
+
|
|
226
|
+
Il salt e' una costante del pacchetto e deve restare uguale su tutte le postazioni: e' cio'
|
|
227
|
+
che rende confrontabile la stessa persona fra macchine. Cambiarlo interrompe la continuita'
|
|
228
|
+
degli ID.
|
|
229
|
+
|
|
230
|
+
Nome ed email confermati al setup non entrano nell'evento: viaggiano negli header
|
|
231
|
+
`X-Developer-Name` e `X-Developer-Email` di ogni batch, e il collector non li usa se un
|
|
232
|
+
amministratore ha gia' assegnato un nome dalla dashboard.
|
|
198
233
|
|
|
199
234
|
## Configurare editor, CLI e harness
|
|
200
235
|
|
|
236
|
+

|
|
237
|
+
|
|
238
|
+
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/routing.html)
|
|
239
|
+
|
|
240
|
+
Ogni famiglia di client ha un meccanismo diverso per cambiare l'URL di Copilot, e ignora
|
|
241
|
+
quello degli altri. `setup --vscode` copre le prime due righe; le altre si configurano a mano.
|
|
242
|
+
|
|
201
243
|
### VS Code e derivati
|
|
202
244
|
|
|
203
245
|
`setup --vscode` imposta queste due chiavi nelle **impostazioni utente**:
|
|
@@ -217,6 +259,25 @@ Il setup salva un backup con suffisso `.bak` prima di modificare un file esisten
|
|
|
217
259
|
Se il file contiene commenti, virgole finali o non e' JSON valido, non lo riscrive
|
|
218
260
|
e stampa lo snippet da inserire manualmente. Poi riavvia l'editor.
|
|
219
261
|
|
|
262
|
+
### Copilot CLI e sessioni agentiche in VS Code
|
|
263
|
+
|
|
264
|
+
Copilot CLI e le sessioni "Copilot CLI" dentro VS Code girano nel runtime
|
|
265
|
+
agentico di Copilot (`copilot-runtime`), un processo separato che **ignora**
|
|
266
|
+
`overrideCapiUrl` e parla direttamente con GitHub. Si indirizza al proxy con la
|
|
267
|
+
variabile d'ambiente `COPILOT_API_URL`, che il runtime eredita dall'editor.
|
|
268
|
+
|
|
269
|
+
`setup --vscode` la imposta a livello di sessione utente, in modo persistente:
|
|
270
|
+
|
|
271
|
+
| Sistema | Dove |
|
|
272
|
+
| --- | --- |
|
|
273
|
+
| macOS | `launchctl setenv` + LaunchAgent `~/Library/LaunchAgents/com.vidiemme.copilot-proxy.env.plist` |
|
|
274
|
+
| Linux | `~/.config/environment.d/copilot-proxy.conf` |
|
|
275
|
+
| Windows | variabile utente (`setx`) |
|
|
276
|
+
|
|
277
|
+
Vale per le applicazioni avviate dopo il setup: **chiudi e riapri VS Code** (non
|
|
278
|
+
basta ricaricare la finestra) e i terminali. `doctor` verifica che sia impostata.
|
|
279
|
+
`uninstall` la rimuove, altrimenti senza proxy il runtime non raggiungerebbe Copilot.
|
|
280
|
+
|
|
220
281
|
### CLI: attribuzione esplicita
|
|
221
282
|
|
|
222
283
|
Per un client compatibile con l'upstream e con base URL configurabile:
|
|
@@ -240,18 +301,38 @@ un client Anthropic richiede un upstream che esponga Messages, o un traduttore.
|
|
|
240
301
|
|
|
241
302
|
### Harness con proxy intermedio
|
|
242
303
|
|
|
243
|
-
Se usi Claude Code, Codex o altri harness tramite un traduttore/provider Copilot
|
|
244
|
-
|
|
304
|
+
Se usi Claude Code, Codex o altri harness tramite un traduttore/provider Copilot
|
|
305
|
+
(`copilot-api`, LiteLLM, ...), metti `copilot-proxy` **per ultimo**, subito prima di Copilot:
|
|
245
306
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
307
|
+

|
|
308
|
+
|
|
309
|
+
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/harness.html)
|
|
249
310
|
|
|
250
|
-
Nel proxy intermedio cambia l'URL del provider Copilot in `http://127.0.0.1:8787
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
311
|
+
1. Nel proxy intermedio cambia l'URL del provider Copilot in `http://127.0.0.1:8787`,
|
|
312
|
+
senza path aggiuntivi. Il nome dell'opzione dipende dallo strumento (`baseURL`,
|
|
313
|
+
`api_base`, ...).
|
|
314
|
+
2. Lascia `UPSTREAM_BASE_URL` del proxy di misura al suo default Copilot. Se il proxy
|
|
315
|
+
intermedio usava un host del piano (per esempio `api.business.githubcopilot.com`),
|
|
316
|
+
metti quello in `UPSTREAM_BASE_URL`.
|
|
317
|
+
3. Il proxy intermedio continua a gestire login, rinnovo token e traduzione;
|
|
318
|
+
`copilot-proxy` inoltra `Authorization` senza toccarlo.
|
|
319
|
+
|
|
320
|
+
In questa posizione il proxy vede richieste gia' in formato Copilot con il token vero: lo
|
|
321
|
+
pseudonimo coincide con quello del traffico VS Code della stessa persona e il modello
|
|
322
|
+
registrato e' quello fatturato. Il progetto si ricava dai path citati nei messaggi, finche'
|
|
323
|
+
il proxy intermedio ne conserva il contenuto; altrimenti dichiaralo con
|
|
324
|
+
`http://127.0.0.1:8787/p/<progetto>`. Nel reporting il traffico si distingue per
|
|
325
|
+
`clientName`, che e' lo user-agent del proxy intermedio.
|
|
326
|
+
|
|
327
|
+
**Ripiego**, se il proxy intermedio non permette di cambiare l'URL di Copilot: una seconda
|
|
328
|
+
istanza di `copilot-proxy` prima di lui, con `UPSTREAM_BASE_URL` puntato al proxy
|
|
329
|
+
intermedio, una porta (`--port`) e una cartella (`COPILOT_PROXY_HOME`) proprie, avviata con
|
|
330
|
+
`start` perche' l'avvio automatico gestisce una sola istanza. L'harness manda una chiave
|
|
331
|
+
fittizia, quindi il developer va dichiarato nell'URL (`http://127.0.0.1:8788/u/mario.rossi`);
|
|
332
|
+
se il proxy intermedio rimappa i modelli, controlla `/_usage/unknown-models` sul collector.
|
|
333
|
+
|
|
334
|
+
Se `copilot-proxy` non e' nella catena, quel consumo non viene misurato e si vede solo come
|
|
335
|
+
differenza fra la fattura GitHub e il costo misurato.
|
|
255
336
|
|
|
256
337
|
`copilot-proxy` e' un **reverse proxy HTTP**, non un forward proxy generico:
|
|
257
338
|
impostare soltanto `HTTP_PROXY` / `HTTPS_PROXY` non garantisce il funzionamento.
|
|
@@ -265,10 +346,10 @@ con `npx @vidiemme/copilot-proxy@latest`.
|
|
|
265
346
|
| --- | --- |
|
|
266
347
|
| `setup` | Crea la configurazione della postazione. |
|
|
267
348
|
| `start` | Avvia il proxy in primo piano (comando predefinito se non ne indichi uno). |
|
|
268
|
-
| `status` | Mostra versione installata e in esecuzione, contatori e spool. |
|
|
269
|
-
| `doctor` | Controlla configurazione, cartelle, collector, editor, spool e processo. |
|
|
349
|
+
| `status` | Mostra versione installata e in esecuzione, instradamento di editor e Copilot CLI, contatori per client e spool. |
|
|
350
|
+
| `doctor` | Controlla configurazione, cartelle, collector, editor (anche override commentati), `COPILOT_API_URL` e runtime da riavviare, spool e processo. |
|
|
270
351
|
| `restart` | Riavvia il servizio automatico gia' registrato. |
|
|
271
|
-
| `uninstall` | Rimuove l'avvio automatico
|
|
352
|
+
| `uninstall` | Rimuove l'avvio automatico e `COPILOT_API_URL`; lascia configurazione e impostazioni editor. |
|
|
272
353
|
| `--version` | Mostra la versione del CLI. |
|
|
273
354
|
| `--help` | Mostra comandi e opzioni. |
|
|
274
355
|
|
|
@@ -276,7 +357,7 @@ con `npx @vidiemme/copilot-proxy@latest`.
|
|
|
276
357
|
|
|
277
358
|
| Opzione | Uso |
|
|
278
359
|
| --- | --- |
|
|
279
|
-
| `--vscode` | Configura VS Code e derivati installati. |
|
|
360
|
+
| `--vscode` | Configura VS Code e derivati installati, e `COPILOT_API_URL` per Copilot CLI e sessioni agentiche. |
|
|
280
361
|
| `--autostart` | Registra e avvia il servizio utente su macOS/Linux. |
|
|
281
362
|
| `--port <n>` | Porta locale, default `8787`. |
|
|
282
363
|
| `--workspace-roots <a,b>` | Directory assolute in cui risolvere i progetti. |
|
|
@@ -357,6 +438,10 @@ interna, non un sistema di attribuzione non ripudiabile o una fattura ufficiale.
|
|
|
357
438
|
|
|
358
439
|
### Collector non disponibile
|
|
359
440
|
|
|
441
|
+

|
|
442
|
+
|
|
443
|
+
[Sorgente HTML del diagramma](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/docs/diagrams/delivery.html)
|
|
444
|
+
|
|
360
445
|
La disponibilita' del collector non blocca le richieste Copilot. Errori di rete,
|
|
361
446
|
timeout, errori server e HTTP `401`, `403`, `408`, `429` fanno conservare gli eventi
|
|
362
447
|
in uno spool JSONL locale, ritentato ai flush successivi e al riavvio.
|
|
@@ -385,20 +470,27 @@ curl http://127.0.0.1:8787/_health
|
|
|
385
470
|
```
|
|
386
471
|
|
|
387
472
|
`/_health` restituisce versione, avvio, URL upstream/collector, stato del rilevamento,
|
|
388
|
-
statistiche `usage`
|
|
473
|
+
statistiche `usage` (con `lastEventByClient`, l'ultimo evento per tipo di client) e
|
|
474
|
+
`spoolBytes`. I contatori sono **del processo corrente**,
|
|
389
475
|
non uno storico completo; `ok: true` non dimostra che il collector sia raggiungibile.
|
|
390
476
|
|
|
477
|
+
`status` mostra anche l'instradamento: per ogni editor se passa dal proxy (o se
|
|
478
|
+
l'override e' commentato), se `COPILOT_API_URL` e' impostata, e l'ultimo evento
|
|
479
|
+
dell'estensione Copilot Chat e di Copilot CLI / runtime agentico.
|
|
480
|
+
|
|
391
481
|
`doctor` esce con codice non zero in presenza di `FAIL`. Un `WARN` da solo non
|
|
392
482
|
fa fallire il comando: versione del processo diversa dal CLI, editor non tutti
|
|
393
|
-
configurati
|
|
483
|
+
configurati, `COPILOT_API_URL` mancante, runtime agentici avviati prima del setup
|
|
484
|
+
o assenza prolungata di traffico richiedono comunque attenzione.
|
|
394
485
|
Il controllo degli editor resta attivo anche se usi esclusivamente CLI:
|
|
395
486
|
in quel caso un `FAIL` sugli editor non dimostra un errore dell'inoltro CLI.
|
|
396
487
|
|
|
397
488
|
| Sintomo | Verifica / azione |
|
|
398
489
|
| --- | --- |
|
|
399
|
-
| Copilot non risponde dopo il setup | Verifica che il proxy sia avviato; se devi tornare al collegamento diretto rimuovi le due chiavi di override e riavvia l'editor. |
|
|
490
|
+
| Copilot non risponde dopo il setup | Verifica che il proxy sia avviato; se devi tornare al collegamento diretto esegui `uninstall` (toglie anche `COPILOT_API_URL`), rimuovi le due chiavi di override e riavvia l'editor. |
|
|
400
491
|
| Porta occupata | Ripeti il setup con `--force --port 9000 --vscode` e, se usato, `--autostart`. |
|
|
401
|
-
| Nessun evento misurato | Riavvia l'editor, controlla gli override e il protocollo di usage; le risposte senza contatori non sono misurabili. |
|
|
492
|
+
| Nessun evento misurato | Riavvia l'editor, controlla gli override (non devono essere commentati) e il protocollo di usage; le risposte senza contatori non sono misurabili. |
|
|
493
|
+
| Solo eventi `gpt-4o-mini` a costo zero | Le chat girano nelle sessioni Copilot CLI / agentiche, che ignorano l'override dell'editor: esegui `setup --vscode --force`, poi chiudi e riapri l'editor. `doctor` segnala i runtime avviati senza `COPILOT_API_URL`. |
|
|
402
494
|
| Progetti `unassigned` | Controlla `WORKSPACE_ROOTS`, path visibili sulla macchina del proxy e marker; per i CLI usa un prefisso o un header esplicito. |
|
|
403
495
|
| Spool in crescita / collector `unreachable` | Controlla rete, URL del collector e log. |
|
|
404
496
|
| Collector `401` / `403` | Token ruotato: vedi [Cambiare il token](#cambiare-il-token). Gli eventi restano in attesa entro i limiti dello spool. |
|
|
@@ -427,6 +519,10 @@ o cambia il percorso di Node, registra nuovamente il servizio:
|
|
|
427
519
|
copilot-proxy setup --force --vscode --autostart
|
|
428
520
|
```
|
|
429
521
|
|
|
522
|
+
Dalla versione che introduce `COPILOT_API_URL`, le postazioni gia' configurate
|
|
523
|
+
vanno aggiornate con lo stesso comando (l'aggiornamento del pacchetto da solo non
|
|
524
|
+
la imposta), poi chiudendo e riaprendo l'editor. `doctor` segnala se manca.
|
|
525
|
+
|
|
430
526
|
### Cambiare il token
|
|
431
527
|
|
|
432
528
|
`setup --force` riusa il token gia' salvato e non lo richiede. Per sostituirlo,
|
|
@@ -459,7 +555,7 @@ il proxy lasciando gli editor configurati: Copilot non raggiungerebbe l'upstream
|
|
|
459
555
|
|
|
460
556
|
- [Codice sorgente e documentazione del progetto](https://github.com/vidiemme/copilot-usage)
|
|
461
557
|
- [Segnalazioni e richieste](https://github.com/vidiemme/copilot-usage/issues)
|
|
462
|
-
- [Contratto degli eventi](https://github.com/vidiemme/copilot-usage/tree/main/packages/shared)
|
|
558
|
+
- [Contratto degli eventi: protocollo, campi e risposte](https://github.com/vidiemme/copilot-usage/tree/main/packages/shared#readme)
|
|
463
559
|
- [Licenza MIT](https://github.com/vidiemme/copilot-usage/blob/main/packages/client/LICENSE)
|
|
464
560
|
|
|
465
561
|
I diagrammi sono creati con `diagram-design`, con palette ispirata a
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variabile con cui il runtime agentico di Copilot (Copilot CLI e le sessioni
|
|
3
|
+
* "Copilot CLI" / Copilot SDK dentro VS Code) sceglie l'endpoint. Quel runtime
|
|
4
|
+
* e' un processo a se': ignora `github.copilot.advanced.debug.overrideCapiUrl`
|
|
5
|
+
* e, senza questa variabile, parla direttamente con GitHub saltando il proxy.
|
|
6
|
+
* Lo eredita dall'ambiente dell'editor, quindi va impostata a livello di
|
|
7
|
+
* sessione utente, non solo nella shell.
|
|
8
|
+
*/
|
|
9
|
+
export declare const API_URL_VAR = "COPILOT_API_URL";
|
|
10
|
+
export declare function proxyUrl(port: number): string;
|
|
11
|
+
export interface RuntimeRoutingResult {
|
|
12
|
+
/** Dove e' stata resa persistente la variabile. */
|
|
13
|
+
persistedIn: string;
|
|
14
|
+
removeHint: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Indirizza il runtime agentico al proxy per tutte le applicazioni avviate da
|
|
18
|
+
* qui in avanti, e anche dopo un riavvio della macchina.
|
|
19
|
+
*/
|
|
20
|
+
export declare function installRuntimeRouting(port: number): RuntimeRoutingResult;
|
|
21
|
+
/** Rimuove l'instradamento; `false` se non era attivo. */
|
|
22
|
+
export declare function uninstallRuntimeRouting(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Valore che riceveranno le applicazioni avviate d'ora in poi; `undefined` se
|
|
25
|
+
* non impostato. La shell corrente non fa testo: puo' essere stata aperta prima.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readRuntimeRouting(): string | undefined;
|
|
28
|
+
export interface RuntimeProcess {
|
|
29
|
+
pid: number;
|
|
30
|
+
/** Valore di `COPILOT_API_URL` con cui il processo e' partito, se presente. */
|
|
31
|
+
apiUrl: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** Runtime agentico dentro l'editor (`copilot-runtime`) o binario nativo di Copilot CLI. */
|
|
34
|
+
export declare function isRuntimeCommand(command: string): boolean;
|
|
35
|
+
/** Estrae `COPILOT_API_URL` dall'output di `ps eww`, dove l'ambiente segue gli argomenti. */
|
|
36
|
+
export declare function apiUrlFromPsLine(line: string): string | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Processi del runtime agentico gia' in esecuzione, con l'URL che hanno
|
|
39
|
+
* ereditato. L'ambiente si legge solo all'avvio: un processo partito prima del
|
|
40
|
+
* setup resta fuori dal proxy finche' non si riavvia l'editor.
|
|
41
|
+
* `undefined` dove non si sa leggere l'ambiente degli altri processi.
|
|
42
|
+
*/
|
|
43
|
+
export declare function runningRuntimes(): RuntimeProcess[] | undefined;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Variabile con cui il runtime agentico di Copilot (Copilot CLI e le sessioni
|
|
7
|
+
* "Copilot CLI" / Copilot SDK dentro VS Code) sceglie l'endpoint. Quel runtime
|
|
8
|
+
* e' un processo a se': ignora `github.copilot.advanced.debug.overrideCapiUrl`
|
|
9
|
+
* e, senza questa variabile, parla direttamente con GitHub saltando il proxy.
|
|
10
|
+
* Lo eredita dall'ambiente dell'editor, quindi va impostata a livello di
|
|
11
|
+
* sessione utente, non solo nella shell.
|
|
12
|
+
*/
|
|
13
|
+
export const API_URL_VAR = 'COPILOT_API_URL';
|
|
14
|
+
const LABEL = 'com.vidiemme.copilot-proxy.env';
|
|
15
|
+
export function proxyUrl(port) {
|
|
16
|
+
return `http://127.0.0.1:${port}`;
|
|
17
|
+
}
|
|
18
|
+
function launchAgentFile() {
|
|
19
|
+
return join(homedir(), 'Library', 'LaunchAgents', `${LABEL}.plist`);
|
|
20
|
+
}
|
|
21
|
+
function environmentDFile() {
|
|
22
|
+
const xdg = process.env.XDG_CONFIG_HOME?.trim();
|
|
23
|
+
return join(xdg || join(homedir(), '.config'), 'environment.d', 'copilot-proxy.conf');
|
|
24
|
+
}
|
|
25
|
+
function escapeXml(value) {
|
|
26
|
+
return value.replace(/[&<>]/g, (char) => (char === '&' ? '&' : char === '<' ? '<' : '>'));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Indirizza il runtime agentico al proxy per tutte le applicazioni avviate da
|
|
30
|
+
* qui in avanti, e anche dopo un riavvio della macchina.
|
|
31
|
+
*/
|
|
32
|
+
export function installRuntimeRouting(port) {
|
|
33
|
+
const url = proxyUrl(port);
|
|
34
|
+
if (process.platform === 'darwin') {
|
|
35
|
+
// `launchctl setenv` vale fino al logout: un LaunchAgent lo ripete a ogni accesso.
|
|
36
|
+
const file = launchAgentFile();
|
|
37
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
38
|
+
writeFileSync(file, `<?xml version="1.0" encoding="UTF-8"?>
|
|
39
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
40
|
+
<plist version="1.0">
|
|
41
|
+
<dict>
|
|
42
|
+
<key>Label</key><string>${LABEL}</string>
|
|
43
|
+
<key>ProgramArguments</key>
|
|
44
|
+
<array>
|
|
45
|
+
<string>/bin/launchctl</string>
|
|
46
|
+
<string>setenv</string>
|
|
47
|
+
<string>${API_URL_VAR}</string>
|
|
48
|
+
<string>${escapeXml(url)}</string>
|
|
49
|
+
</array>
|
|
50
|
+
<key>RunAtLoad</key><true/>
|
|
51
|
+
</dict>
|
|
52
|
+
</plist>
|
|
53
|
+
`);
|
|
54
|
+
execFileSync('launchctl', ['setenv', API_URL_VAR, url], { stdio: 'pipe' });
|
|
55
|
+
return {
|
|
56
|
+
persistedIn: file,
|
|
57
|
+
removeHint: `launchctl unsetenv ${API_URL_VAR} && rm ${file}`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (process.platform === 'linux') {
|
|
61
|
+
const file = environmentDFile();
|
|
62
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
63
|
+
writeFileSync(file, `${API_URL_VAR}=${url}\n`);
|
|
64
|
+
try {
|
|
65
|
+
execFileSync('systemctl', ['--user', 'set-environment', `${API_URL_VAR}=${url}`], { stdio: 'ignore' });
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
/* senza systemd vale dal prossimo accesso */
|
|
69
|
+
}
|
|
70
|
+
return { persistedIn: file, removeHint: `rm ${file}` };
|
|
71
|
+
}
|
|
72
|
+
if (process.platform === 'win32') {
|
|
73
|
+
execFileSync('setx', [API_URL_VAR, url], { stdio: 'pipe' });
|
|
74
|
+
return {
|
|
75
|
+
persistedIn: 'variabili d\'ambiente utente',
|
|
76
|
+
removeHint: `reg delete HKCU\\Environment /v ${API_URL_VAR} /f`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
throw new Error(`piattaforma ${process.platform} non gestita`);
|
|
80
|
+
}
|
|
81
|
+
/** Rimuove l'instradamento; `false` se non era attivo. */
|
|
82
|
+
export function uninstallRuntimeRouting() {
|
|
83
|
+
if (process.platform === 'darwin') {
|
|
84
|
+
const file = launchAgentFile();
|
|
85
|
+
const present = existsSync(file);
|
|
86
|
+
rmSync(file, { force: true });
|
|
87
|
+
try {
|
|
88
|
+
execFileSync('launchctl', ['unsetenv', API_URL_VAR], { stdio: 'ignore' });
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
/* gia' assente */
|
|
92
|
+
}
|
|
93
|
+
return present;
|
|
94
|
+
}
|
|
95
|
+
if (process.platform === 'linux') {
|
|
96
|
+
const file = environmentDFile();
|
|
97
|
+
const present = existsSync(file);
|
|
98
|
+
rmSync(file, { force: true });
|
|
99
|
+
try {
|
|
100
|
+
execFileSync('systemctl', ['--user', 'unset-environment', API_URL_VAR], { stdio: 'ignore' });
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
/* senza systemd */
|
|
104
|
+
}
|
|
105
|
+
return present;
|
|
106
|
+
}
|
|
107
|
+
if (process.platform === 'win32') {
|
|
108
|
+
try {
|
|
109
|
+
execFileSync('reg', ['delete', 'HKCU\\Environment', '/v', API_URL_VAR, '/f'], { stdio: 'ignore' });
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Valore che riceveranno le applicazioni avviate d'ora in poi; `undefined` se
|
|
120
|
+
* non impostato. La shell corrente non fa testo: puo' essere stata aperta prima.
|
|
121
|
+
*/
|
|
122
|
+
export function readRuntimeRouting() {
|
|
123
|
+
try {
|
|
124
|
+
if (process.platform === 'darwin') {
|
|
125
|
+
const value = execFileSync('launchctl', ['getenv', API_URL_VAR], { encoding: 'utf-8' }).trim();
|
|
126
|
+
return value || undefined;
|
|
127
|
+
}
|
|
128
|
+
if (process.platform === 'linux') {
|
|
129
|
+
const match = new RegExp(`^${API_URL_VAR}=(.*)$`, 'm').exec(readFileSync(environmentDFile(), 'utf-8'));
|
|
130
|
+
return match?.[1]?.trim() || undefined;
|
|
131
|
+
}
|
|
132
|
+
if (process.platform === 'win32') {
|
|
133
|
+
const output = execFileSync('reg', ['query', 'HKCU\\Environment', '/v', API_URL_VAR], {
|
|
134
|
+
encoding: 'utf-8',
|
|
135
|
+
});
|
|
136
|
+
return /REG_\w+\s+(\S+)/.exec(output)?.[1];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
/** Runtime agentico dentro l'editor (`copilot-runtime`) o binario nativo di Copilot CLI. */
|
|
145
|
+
export function isRuntimeCommand(command) {
|
|
146
|
+
return /(^|\/)copilot-runtime(\s|$)/.test(command) || /\/@github\/copilot-[a-z0-9-]+\/copilot(\.exe)?(\s|$)/.test(command);
|
|
147
|
+
}
|
|
148
|
+
/** Estrae `COPILOT_API_URL` dall'output di `ps eww`, dove l'ambiente segue gli argomenti. */
|
|
149
|
+
export function apiUrlFromPsLine(line) {
|
|
150
|
+
return new RegExp(`(?:^|\\s)${API_URL_VAR}=(\\S+)`).exec(line)?.[1];
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Processi del runtime agentico gia' in esecuzione, con l'URL che hanno
|
|
154
|
+
* ereditato. L'ambiente si legge solo all'avvio: un processo partito prima del
|
|
155
|
+
* setup resta fuori dal proxy finche' non si riavvia l'editor.
|
|
156
|
+
* `undefined` dove non si sa leggere l'ambiente degli altri processi.
|
|
157
|
+
*/
|
|
158
|
+
export function runningRuntimes() {
|
|
159
|
+
try {
|
|
160
|
+
if (process.platform === 'darwin') {
|
|
161
|
+
const list = execFileSync('ps', ['-x', '-o', 'pid=,command='], { encoding: 'utf-8' });
|
|
162
|
+
const result = [];
|
|
163
|
+
for (const row of list.split('\n')) {
|
|
164
|
+
const match = /^\s*(\d+)\s+(.*)$/.exec(row);
|
|
165
|
+
if (!match || !isRuntimeCommand(match[2]))
|
|
166
|
+
continue;
|
|
167
|
+
const pid = Number(match[1]);
|
|
168
|
+
let line = '';
|
|
169
|
+
try {
|
|
170
|
+
line = execFileSync('ps', ['eww', '-o', 'command=', '-p', String(pid)], { encoding: 'utf-8' });
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
continue; // terminato nel frattempo
|
|
174
|
+
}
|
|
175
|
+
result.push({ pid, apiUrl: apiUrlFromPsLine(line) });
|
|
176
|
+
}
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
if (process.platform === 'linux') {
|
|
180
|
+
const result = [];
|
|
181
|
+
for (const entry of readdirSync('/proc')) {
|
|
182
|
+
if (!/^\d+$/.test(entry))
|
|
183
|
+
continue;
|
|
184
|
+
try {
|
|
185
|
+
const command = readFileSync(`/proc/${entry}/cmdline`, 'utf-8').split('\0').join(' ');
|
|
186
|
+
if (!isRuntimeCommand(command))
|
|
187
|
+
continue;
|
|
188
|
+
const env = readFileSync(`/proc/${entry}/environ`, 'utf-8').split('\0');
|
|
189
|
+
const value = env.find((item) => item.startsWith(`${API_URL_VAR}=`));
|
|
190
|
+
result.push({ pid: Number(entry), apiUrl: value?.slice(API_URL_VAR.length + 1) });
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
/* processo di un altro utente o gia' terminato */
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=agentRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentRuntime.js","sourceRoot":"","sources":["../src/agentRuntime.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import { mkdirSync, readFileSync, writeFileSync, statSync } from 'node:fs';
|
|
3
3
|
import { createInterface } from 'node:readline/promises';
|
|
4
4
|
import { parseArgs } from 'node:util';
|
|
5
|
+
import { API_URL_VAR, installRuntimeRouting, proxyUrl, readRuntimeRouting, runningRuntimes, uninstallRuntimeRouting, } from './agentRuntime.js';
|
|
5
6
|
import { installAutostart, isAutostartInstalled, restartAutostart, uninstallAutostart } from './autostart.js';
|
|
6
7
|
import { loadConfig } from './config.js';
|
|
7
|
-
import { applyEditorSettings, editorSnippet, installedEditors, knownEditors, pointsToProxy, readOverride, } from './editors.js';
|
|
8
|
+
import { applyEditorSettings, editorSnippet, installedEditors, isOverrideCommented, knownEditors, pointsToProxy, readOverride, } from './editors.js';
|
|
8
9
|
import { configDir, configFile } from './paths.js';
|
|
9
10
|
import { buildApp } from './server.js';
|
|
10
11
|
import { gitIdentity, portStatus } from './setupHelpers.js';
|
|
@@ -24,7 +25,9 @@ al progetto su cui si sta lavorando.
|
|
|
24
25
|
|
|
25
26
|
Opzioni di setup:
|
|
26
27
|
--vscode scrive le impostazioni di VS Code e derivati (Insiders,
|
|
27
|
-
VSCodium, Cursor, Windsurf, Antigravity) installati
|
|
28
|
+
VSCodium, Cursor, Windsurf, Antigravity) installati, e
|
|
29
|
+
imposta COPILOT_API_URL per Copilot CLI e le sessioni
|
|
30
|
+
agentiche (Copilot CLI / SDK) dentro l'editor
|
|
28
31
|
--autostart avvia il proxy a ogni accesso, senza doverlo lanciare
|
|
29
32
|
--port <n> porta locale del proxy (default 8787; chiesta se interattivo)
|
|
30
33
|
--name <nome> nome da mostrare nella dashboard (default: git user.name)
|
|
@@ -233,10 +236,13 @@ async function commandSetup(flags) {
|
|
|
233
236
|
console.log(config.developerName
|
|
234
237
|
? `Nella dashboard comparirai come ${config.developerName}`
|
|
235
238
|
: 'Nella dashboard comparirai con uno pseudonimo');
|
|
236
|
-
if (flags.vscode === true)
|
|
239
|
+
if (flags.vscode === true) {
|
|
237
240
|
applyEditors(config.port);
|
|
238
|
-
|
|
241
|
+
applyRuntimeRouting(config.port);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
239
244
|
printEditorSettings(config.port);
|
|
245
|
+
}
|
|
240
246
|
if (flags.autostart === true) {
|
|
241
247
|
try {
|
|
242
248
|
const service = installAutostart();
|
|
@@ -258,7 +264,20 @@ async function commandSetup(flags) {
|
|
|
258
264
|
function printEditorSettings(port, editor) {
|
|
259
265
|
console.log(`\nAggiungi alle impostazioni utente di ${editor?.name ?? 'VS Code (e dei suoi derivati)'} (Preferences: Open User Settings (JSON)):\n` +
|
|
260
266
|
`${JSON.stringify(editorSnippet(port), null, 2)}\n` +
|
|
261
|
-
(editor
|
|
267
|
+
(editor
|
|
268
|
+
? ''
|
|
269
|
+
: `Imposta anche ${API_URL_VAR}=${proxyUrl(port)} nell'ambiente utente, per Copilot CLI e le sessioni agentiche.\n` +
|
|
270
|
+
'Oppure rilancia il setup con --vscode per far fare tutto al comando.'));
|
|
271
|
+
}
|
|
272
|
+
function applyRuntimeRouting(port) {
|
|
273
|
+
try {
|
|
274
|
+
const result = installRuntimeRouting(port);
|
|
275
|
+
console.log(`Copilot CLI e sessioni agentiche: ${API_URL_VAR}=${proxyUrl(port)} (in ${result.persistedIn})`);
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
console.log(`\nNon riesco a impostare ${API_URL_VAR} (${error.message}): impostala a mano a ${proxyUrl(port)}, ` +
|
|
279
|
+
'altrimenti Copilot CLI e le sessioni agentiche non vengono misurate.');
|
|
280
|
+
}
|
|
262
281
|
}
|
|
263
282
|
function applyEditors(port) {
|
|
264
283
|
const found = installedEditors();
|
|
@@ -367,6 +386,8 @@ async function commandDoctor() {
|
|
|
367
386
|
const value = readOverride(editor);
|
|
368
387
|
if (value && pointsToProxy(value, config.port))
|
|
369
388
|
configured.push(editor.name);
|
|
389
|
+
else if (!value && isOverrideCommented(editor))
|
|
390
|
+
notConfigured.push(`${editor.name} (impostazione commentata)`);
|
|
370
391
|
else
|
|
371
392
|
notConfigured.push(value ? `${editor.name} (punta a ${value}, atteso ${expected})` : editor.name);
|
|
372
393
|
}
|
|
@@ -380,6 +401,20 @@ async function commandDoctor() {
|
|
|
380
401
|
? `nessun editor passa dal proxy (${notConfigured.join(', ')}): rilancia "setup --vscode --force"`
|
|
381
402
|
: 'nessun editor della famiglia VS Code trovato su questa macchina');
|
|
382
403
|
}
|
|
404
|
+
const runtimeUrl = readRuntimeRouting();
|
|
405
|
+
if (runtimeUrl && pointsToProxy(runtimeUrl, config.port)) {
|
|
406
|
+
check(true, `Copilot CLI e sessioni agentiche passano dal proxy (${API_URL_VAR})`);
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
warn(runtimeUrl
|
|
410
|
+
? `${API_URL_VAR} punta a ${runtimeUrl}, atteso ${expected}: rilancia "setup --vscode --force"`
|
|
411
|
+
: `${API_URL_VAR} non impostata: Copilot CLI e le sessioni agentiche in VS Code non vengono misurate. Rilancia "setup --vscode --force"`);
|
|
412
|
+
}
|
|
413
|
+
const stale = staleRuntimes(config.port);
|
|
414
|
+
if (stale.length > 0) {
|
|
415
|
+
warn(`${stale.length} processi Copilot CLI / runtime agentico avviati senza ${API_URL_VAR} (pid ${stale.join(', ')}): ` +
|
|
416
|
+
"chiudi e riapri l'editor (non basta ricaricare la finestra) e i terminali con Copilot CLI");
|
|
417
|
+
}
|
|
383
418
|
const pending = spoolSize(config.spoolPath);
|
|
384
419
|
check(pending === 0, pending === 0 ? 'nessun evento in attesa di consegna' : `${pending} byte di eventi in attesa nello spool`);
|
|
385
420
|
// L'avvio automatico interessa solo se il proxy non sta gia' girando: chi
|
|
@@ -402,6 +437,16 @@ async function commandDoctor() {
|
|
|
402
437
|
report(results);
|
|
403
438
|
return results.every(([level]) => level !== 'fail') ? 0 : 1;
|
|
404
439
|
}
|
|
440
|
+
/** Pid dei runtime agentici in esecuzione che non passano dal proxy. */
|
|
441
|
+
function staleRuntimes(port) {
|
|
442
|
+
return (runningRuntimes() ?? [])
|
|
443
|
+
.filter((runtime) => !runtime.apiUrl || !pointsToProxy(runtime.apiUrl, port))
|
|
444
|
+
.map((runtime) => runtime.pid);
|
|
445
|
+
}
|
|
446
|
+
const CLIENT_LABELS = {
|
|
447
|
+
GitHubCopilotChat: 'estensione Copilot Chat',
|
|
448
|
+
copilot: 'Copilot CLI / runtime agentico',
|
|
449
|
+
};
|
|
405
450
|
async function readHealth(port) {
|
|
406
451
|
try {
|
|
407
452
|
const response = await fetch(`http://127.0.0.1:${port}/_health`, {
|
|
@@ -438,6 +483,24 @@ async function commandStatus() {
|
|
|
438
483
|
console.log(`copilot-proxy ${CLIENT_VERSION}`);
|
|
439
484
|
console.log(`nome in dashboard: ${config.developerName ?? 'nessuno (pseudonimo)'}`);
|
|
440
485
|
console.log(`avvio automatico: ${isAutostartInstalled() ? 'attivo' : 'non installato'}`);
|
|
486
|
+
// Instradamento: e' cio' che decide se il traffico passa di qui.
|
|
487
|
+
for (const editor of installedEditors()) {
|
|
488
|
+
const value = readOverride(editor);
|
|
489
|
+
const state = value && pointsToProxy(value, config.port)
|
|
490
|
+
? 'passa dal proxy'
|
|
491
|
+
: !value && isOverrideCommented(editor)
|
|
492
|
+
? 'NON passa dal proxy (impostazione commentata)'
|
|
493
|
+
: value
|
|
494
|
+
? `NON passa dal proxy (punta a ${value})`
|
|
495
|
+
: 'NON passa dal proxy (impostazione assente)';
|
|
496
|
+
console.log(`${editor.name}: ${state}`);
|
|
497
|
+
}
|
|
498
|
+
const runtimeUrl = readRuntimeRouting();
|
|
499
|
+
console.log(`Copilot CLI / sessioni agentiche (${API_URL_VAR}): ${runtimeUrl && pointsToProxy(runtimeUrl, config.port) ? 'passano dal proxy' : `NON passano dal proxy (${runtimeUrl ?? 'non impostata'})`}`);
|
|
500
|
+
const stale = staleRuntimes(config.port);
|
|
501
|
+
if (stale.length > 0) {
|
|
502
|
+
console.log(` ${stale.length} processi avviati prima del setup (pid ${stale.join(', ')}): riavvia l'editor`);
|
|
503
|
+
}
|
|
441
504
|
if (!health) {
|
|
442
505
|
console.log(`proxy: non in ascolto sulla porta ${config.port}`);
|
|
443
506
|
return 1;
|
|
@@ -447,6 +510,9 @@ async function commandStatus() {
|
|
|
447
510
|
if (usage) {
|
|
448
511
|
console.log(`eventi misurati: ${usage.recorded}, consegnati: ${usage.delivered}, scartati: ${usage.dropped}`);
|
|
449
512
|
console.log(`ultimo evento: ${usage.lastEventAt ?? 'nessuno'}`);
|
|
513
|
+
for (const [family, at] of Object.entries(usage.lastEventByClient ?? {})) {
|
|
514
|
+
console.log(` ${CLIENT_LABELS[family] ?? family}: ${at}`);
|
|
515
|
+
}
|
|
450
516
|
console.log(`ultima consegna: ${usage.lastDeliveryAt ?? 'nessuna'}`);
|
|
451
517
|
if (usage.lastError)
|
|
452
518
|
console.log(`ultimo errore del collector: ${usage.lastError}`);
|
|
@@ -466,6 +532,10 @@ function commandRestart() {
|
|
|
466
532
|
return 0;
|
|
467
533
|
}
|
|
468
534
|
function commandUninstall() {
|
|
535
|
+
// Senza proxy in ascolto il runtime agentico non raggiungerebbe piu' Copilot.
|
|
536
|
+
if (uninstallRuntimeRouting()) {
|
|
537
|
+
console.log(`${API_URL_VAR} rimossa: Copilot CLI e sessioni agentiche tornano a parlare con GitHub.`);
|
|
538
|
+
}
|
|
469
539
|
if (!uninstallAutostart()) {
|
|
470
540
|
console.log('Avvio automatico non installato: niente da rimuovere.');
|
|
471
541
|
return 0;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,15 @@ export interface ForwarderStats {
|
|
|
15
15
|
lastDeliveryAt: string | null;
|
|
16
16
|
/** Ultimo stato HTTP di errore del collector, o `unreachable`. */
|
|
17
17
|
lastError: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Ultimo evento per famiglia di client (`GitHubCopilotChat`, `copilot`, ...).
|
|
20
|
+
* Distingue l'estensione dal runtime agentico: se ne arriva uno solo, l'altro
|
|
21
|
+
* probabilmente scavalca il proxy.
|
|
22
|
+
*/
|
|
23
|
+
lastEventByClient: Record<string, string>;
|
|
18
24
|
}
|
|
25
|
+
/** Nome del client senza versione: `GitHubCopilotChat/0.72.0` -> `GitHubCopilotChat`. */
|
|
26
|
+
export declare function clientFamily(clientName: string | null | undefined): string;
|
|
19
27
|
/**
|
|
20
28
|
* Inoltra gli eventi di consumo al servizio di raccolta.
|
|
21
29
|
*
|
|
@@ -10,6 +10,11 @@ const MAX_SPOOL_EVENTS = 50_000;
|
|
|
10
10
|
* timeout, rate limit. Gli eventi restano nello spool invece di andare persi.
|
|
11
11
|
*/
|
|
12
12
|
const RETRYABLE_CLIENT_ERRORS = new Set([401, 403, 408, 429]);
|
|
13
|
+
/** Nome del client senza versione: `GitHubCopilotChat/0.72.0` -> `GitHubCopilotChat`. */
|
|
14
|
+
export function clientFamily(clientName) {
|
|
15
|
+
const name = clientName?.trim().split(/[/\s]/, 1)[0];
|
|
16
|
+
return name || 'sconosciuto';
|
|
17
|
+
}
|
|
13
18
|
function chunk(items, size) {
|
|
14
19
|
const chunks = [];
|
|
15
20
|
for (let index = 0; index < items.length; index += size) {
|
|
@@ -40,6 +45,7 @@ export class UsageForwarder {
|
|
|
40
45
|
lastEventAt: null,
|
|
41
46
|
lastDeliveryAt: null,
|
|
42
47
|
lastError: null,
|
|
48
|
+
lastEventByClient: {},
|
|
43
49
|
};
|
|
44
50
|
batchSize;
|
|
45
51
|
spoolPath;
|
|
@@ -74,6 +80,7 @@ export class UsageForwarder {
|
|
|
74
80
|
enqueue(event) {
|
|
75
81
|
this.counters.recorded += 1;
|
|
76
82
|
this.counters.lastEventAt = new Date().toISOString();
|
|
83
|
+
this.counters.lastEventByClient[clientFamily(event.clientName)] = this.counters.lastEventAt;
|
|
77
84
|
if (this.queue.length >= MAX_QUEUE_LENGTH) {
|
|
78
85
|
this.dropped += 1;
|
|
79
86
|
this.counters.dropped += 1;
|
|
@@ -121,7 +128,7 @@ export class UsageForwarder {
|
|
|
121
128
|
await this.spool(this.queue.splice(0));
|
|
122
129
|
}
|
|
123
130
|
stats() {
|
|
124
|
-
return { ...this.counters };
|
|
131
|
+
return { ...this.counters, lastEventByClient: { ...this.counters.lastEventByClient } };
|
|
125
132
|
}
|
|
126
133
|
async send(events) {
|
|
127
134
|
if (events.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/collector/forwarder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAA0B,MAAM,kCAAkC,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/collector/forwarder.ts"],"names":[],"mappings":"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"}
|
package/dist/editors.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export type ApplyResult = {
|
|
|
13
13
|
status: 'unparsable';
|
|
14
14
|
};
|
|
15
15
|
export declare function applyEditorSettings(editor: Editor, port: number): ApplyResult;
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Valore di override letto dal file, senza `JSON.parse`: il file puo' contenere
|
|
18
|
+
* commenti. Una riga commentata non conta: per l'editor l'override non c'e'.
|
|
19
|
+
*/
|
|
17
20
|
export declare function readOverride(editor: Editor): string | null | undefined;
|
|
21
|
+
/** L'override c'e' ma e' disattivato con `//`: tipico quando si esclude il proxy "per un attimo". */
|
|
22
|
+
export declare function isOverrideCommented(editor: Editor): boolean;
|
|
18
23
|
export declare function pointsToProxy(value: string, port: number): boolean;
|
package/dist/editors.js
CHANGED
|
@@ -57,18 +57,31 @@ export function applyEditorSettings(editor, port) {
|
|
|
57
57
|
writeFileSync(file, `${JSON.stringify({ ...current, ...editorSnippet(port) }, null, 2)}\n`);
|
|
58
58
|
return { status: 'updated', backup };
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
let raw;
|
|
60
|
+
const OVERRIDE_PATTERN = OVERRIDE_KEY.replace(/\./g, '\\.');
|
|
61
|
+
function readSettings(editor) {
|
|
63
62
|
try {
|
|
64
|
-
|
|
63
|
+
return readFileSync(editor.settingsFile, 'utf-8');
|
|
65
64
|
}
|
|
66
65
|
catch {
|
|
67
66
|
return undefined;
|
|
68
67
|
}
|
|
69
|
-
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Valore di override letto dal file, senza `JSON.parse`: il file puo' contenere
|
|
71
|
+
* commenti. Una riga commentata non conta: per l'editor l'override non c'e'.
|
|
72
|
+
*/
|
|
73
|
+
export function readOverride(editor) {
|
|
74
|
+
const raw = readSettings(editor);
|
|
75
|
+
if (raw === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
const match = new RegExp(`^[ \\t{,]*"${OVERRIDE_PATTERN}"\\s*:\\s*"([^"]*)"`, 'm').exec(raw);
|
|
70
78
|
return match ? (match[1] ?? '') : null;
|
|
71
79
|
}
|
|
80
|
+
/** L'override c'e' ma e' disattivato con `//`: tipico quando si esclude il proxy "per un attimo". */
|
|
81
|
+
export function isOverrideCommented(editor) {
|
|
82
|
+
const raw = readSettings(editor);
|
|
83
|
+
return raw !== undefined && new RegExp(`^\\s*//.*"${OVERRIDE_PATTERN}"`, 'm').test(raw);
|
|
84
|
+
}
|
|
72
85
|
export function pointsToProxy(value, port) {
|
|
73
86
|
return new RegExp(`^https?://(127\\.0\\.0\\.1|localhost):${port}/?$`).test(value);
|
|
74
87
|
}
|
package/dist/editors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editors.js","sourceRoot":"","sources":["../src/editors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"editors.js","sourceRoot":"","sources":["../src/editors.ts"],"names":[],"mappings":"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"}
|