@mcptoolshop/venvkit 0.2.5 → 1.0.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 (73) hide show
  1. package/README.es.md +143 -132
  2. package/README.fr.md +143 -132
  3. package/README.hi.md +143 -136
  4. package/README.it.md +143 -132
  5. package/README.ja.md +143 -132
  6. package/README.md +15 -4
  7. package/README.pt-BR.md +143 -132
  8. package/README.zh.md +143 -132
  9. package/dist/doctorLite.d.ts +75 -0
  10. package/dist/doctorLite.d.ts.map +1 -0
  11. package/dist/doctorLite.js +705 -0
  12. package/dist/doctorLite.js.map +1 -0
  13. package/dist/doctorLite.test.d.ts +2 -0
  14. package/dist/doctorLite.test.d.ts.map +1 -0
  15. package/dist/doctorLite.test.js +268 -0
  16. package/dist/doctorLite.test.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +6 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/integration.test.d.ts +2 -0
  22. package/dist/integration.test.d.ts.map +1 -0
  23. package/dist/integration.test.js +245 -0
  24. package/dist/integration.test.js.map +1 -0
  25. package/dist/mapRender.d.ts +105 -0
  26. package/dist/mapRender.d.ts.map +1 -0
  27. package/dist/mapRender.js +718 -0
  28. package/dist/mapRender.js.map +1 -0
  29. package/dist/mapRender.test.d.ts +2 -0
  30. package/dist/mapRender.test.d.ts.map +1 -0
  31. package/dist/mapRender.test.js +571 -0
  32. package/dist/mapRender.test.js.map +1 -0
  33. package/dist/map_cli.d.ts +3 -0
  34. package/dist/map_cli.d.ts.map +1 -0
  35. package/dist/map_cli.js +278 -0
  36. package/dist/map_cli.js.map +1 -0
  37. package/dist/map_cli.test.d.ts +2 -0
  38. package/dist/map_cli.test.d.ts.map +1 -0
  39. package/dist/map_cli.test.js +320 -0
  40. package/dist/map_cli.test.js.map +1 -0
  41. package/dist/runLog.d.ts +71 -0
  42. package/dist/runLog.d.ts.map +1 -0
  43. package/dist/runLog.js +98 -0
  44. package/dist/runLog.js.map +1 -0
  45. package/dist/runLog.test.d.ts +2 -0
  46. package/dist/runLog.test.d.ts.map +1 -0
  47. package/dist/runLog.test.js +327 -0
  48. package/dist/runLog.test.js.map +1 -0
  49. package/dist/scanEnvPaths.d.ts +18 -0
  50. package/dist/scanEnvPaths.d.ts.map +1 -0
  51. package/dist/scanEnvPaths.js +177 -0
  52. package/dist/scanEnvPaths.js.map +1 -0
  53. package/dist/scanEnvPaths.test.d.ts +2 -0
  54. package/dist/scanEnvPaths.test.d.ts.map +1 -0
  55. package/dist/scanEnvPaths.test.js +250 -0
  56. package/dist/scanEnvPaths.test.js.map +1 -0
  57. package/dist/taskCluster.d.ts +62 -0
  58. package/dist/taskCluster.d.ts.map +1 -0
  59. package/dist/taskCluster.js +180 -0
  60. package/dist/taskCluster.js.map +1 -0
  61. package/dist/taskCluster.test.d.ts +2 -0
  62. package/dist/taskCluster.test.d.ts.map +1 -0
  63. package/dist/taskCluster.test.js +375 -0
  64. package/dist/taskCluster.test.js.map +1 -0
  65. package/dist/vitest.config.d.ts +3 -0
  66. package/dist/vitest.config.d.ts.map +1 -0
  67. package/dist/vitest.config.js +26 -0
  68. package/dist/vitest.config.js.map +1 -0
  69. package/dist/windows.test.d.ts +6 -0
  70. package/dist/windows.test.d.ts.map +1 -0
  71. package/dist/windows.test.js +121 -0
  72. package/dist/windows.test.js.map +1 -0
  73. package/package.json +6 -2
package/README.it.md CHANGED
@@ -1,74 +1,74 @@
1
- <p align="center">
2
- <a href="README.md">English</a> | <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
- </p>
4
-
1
+ <p align="center">
2
+ <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.md">English</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
+ </p>
4
+
5
5
  <p align="center">
6
6
  <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/venvkit/readme.png" alt="venvkit" width="400">
7
7
  </p>
8
-
9
- # venvkit
10
-
11
- > Parte di [MCP Tool Shop](https://mcptoolshop.com)
12
-
8
+
9
+ # venvkit
10
+
11
+ > Parte di [MCP Tool Shop](https://mcptoolshop.com)
12
+
13
13
  <p align="center">
14
14
  <a href="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
15
15
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square" alt="License: MIT"></a>
16
16
  <a href="https://mcp-tool-shop-org.github.io/venvkit/"><img src="https://img.shields.io/badge/Landing_Page-live-blue?style=flat-square" alt="Landing Page"></a>
17
17
  <a href="https://www.npmjs.com/package/@mcptoolshop/venvkit"><img src="https://img.shields.io/npm/v/@mcptoolshop/venvkit?style=flat-square&color=cb3837" alt="npm version"></a>
18
18
  </p>
19
-
20
- **Kit di strumenti diagnostici per ambienti virtuali Python per i flussi di lavoro di Machine Learning su Windows.**
21
-
22
- Scansiona il sistema alla ricerca di ambienti Python, diagnostica problemi di salute (SSL, DLL, incompatibilità ABI, perdite di percorsi), tiene traccia della cronologia di esecuzione delle attività, rileva attività instabili e genera una mappa dell'ecosistema.
23
-
24
- ## Guida rapida
25
-
19
+
20
+ **Kit di strumenti diagnostici per ambienti virtuali Python per i flussi di lavoro di machine learning su Windows.**
21
+
22
+ Scansiona il sistema alla ricerca di ambienti Python, diagnostica problemi di salute (SSL, DLL, incompatibilità ABI, perdite di percorsi), tiene traccia della cronologia di esecuzione delle attività, rileva attività instabili e genera una mappa dell'ecosistema.
23
+
24
+ ## Guida rapida
25
+
26
26
  ```bash
27
27
  git clone https://github.com/mcp-tool-shop-org/venvkit && cd venvkit
28
28
  npm install && npm run build
29
29
  node dist/map_cli.js --root C:\projects --httpsProbe
30
30
  # Open .venvkit/venv-map.html in your browser
31
31
  ```
32
-
33
- ## Funzionalità
34
-
35
- - **doctorLite** - Controllo rapido dello stato di salute per qualsiasi interprete Python
36
- - Verifica SSL/TLS
37
- - Errori di caricamento delle DLL (comuni con PyTorch/CUDA)
38
- - Incompatibilità ABI (ARM vs x86)
39
- - Controlli di sanità di pip
40
- - Rilevamento di perdite di `user-site` e `PYTHONPATH`
41
-
42
- - **scanEnvPaths** - Scopri tutti gli ambienti Python presenti nel tuo sistema
43
- - Trova ambienti virtuali (venv), ambienti conda, versioni pyenv, interpreti di base
44
- - Profondità e filtri configurabili
45
-
46
- - **mapRender** - Visualizza l'ecosistema Python
47
- - Output in formato JSON per l'uso programmatico
48
- - Diagrammi Mermaid per la documentazione
49
- - Raggruppamento degli interpreti di base con analisi del raggio di impatto
50
- - Visualizzazione del routing delle attività
51
-
52
- - **runLog** - Tieni traccia della cronologia di esecuzione delle attività
53
- - Formato JSONL solo per l'aggiunta di dati
54
- - Registra quale ambiente ha eseguito quale attività
55
- - Cattura successo/fallimento con classificazione degli errori
56
-
57
- - **taskCluster** - Aggrega le esecuzioni delle attività in base alla firma
58
- - Rilevamento di attività instabili (passaggi/fallimenti inconsistenti)
59
- - Rilevamento di instabilità dipendente dall'ambiente
60
- - Identificazione dei punti critici di errore
61
- - Analisi della contaminazione (cause radice condivise)
62
-
63
- ## Installazione
64
-
32
+
33
+ ## Funzionalità
34
+
35
+ - **doctorLite** - Controllo rapido dello stato di salute per qualsiasi interprete Python
36
+ - Verifica SSL/TLS
37
+ - Errori di caricamento delle DLL (comuni con PyTorch/CUDA)
38
+ - Incompatibilità ABI (ARM vs x86)
39
+ - Controlli di sanità di pip
40
+ - Rilevamento di perdite di user-site e PYTHONPATH
41
+
42
+ - **scanEnvPaths** - Scopri tutti gli ambienti Python presenti nel tuo sistema
43
+ - Trova venv, ambienti conda, versioni pyenv, interpreti di base
44
+ - Profondità e filtri configurabili
45
+
46
+ - **mapRender** - Visualizza il tuo ecosistema Python
47
+ - Output JSON per l'uso programmatico
48
+ - Diagrammi Mermaid per la documentazione
49
+ - Raggruppamento degli interpreti di base con analisi del raggio di impatto
50
+ - Visualizzazione del routing delle attività
51
+
52
+ - **runLog** - Tieni traccia della cronologia di esecuzione delle attività
53
+ - Formato JSONL solo per l'aggiunta
54
+ - Registra quale ambiente ha eseguito quale attività
55
+ - Cattura successo/fallimento con classificazione degli errori
56
+
57
+ - **taskCluster** - Aggrega le esecuzioni delle attività per firma
58
+ - Rilevamento di attività instabili (pass/fail inconsistenti)
59
+ - Rilevamento di instabilità dipendente dall'ambiente
60
+ - Identificazione dei punti critici di errore
61
+ - Analisi della contaminazione (cause radice condivise)
62
+
63
+ ## Installazione
64
+
65
65
  ```bash
66
66
  npm install
67
67
  npm run build
68
68
  ```
69
-
70
- ## Utilizzo della CLI
71
-
69
+
70
+ ## Utilizzo della CLI
71
+
72
72
  ```bash
73
73
  # Scan current directory and generate ecosystem map
74
74
  node dist/map_cli.js
@@ -82,33 +82,33 @@ node dist/map_cli.js --runlog .venvkit/runs.jsonl
82
82
  # Output options
83
83
  node dist/map_cli.js --out ./output --minScore 50 --strict --httpsProbe
84
84
  ```
85
-
86
- ### Opzioni della CLI
87
-
88
- | Flag | Descrizione |
89
- | ------ | ------------- |
90
- | `--root, -r` | Directory da scansionare (è possibile specificarne più di una) |
91
- | `--out` | Directory di output (predefinito: `.venvkit`) |
92
- | `--maxDepth` | Profondità massima delle directory da scansionare (predefinito: 5) |
93
- | `--strict` | Abilita i controlli in modalità rigorosa |
94
- | `--httpsProbe` | Testa la connettività HTTPS |
95
- | `--minScore` | Filtra gli ambienti con un punteggio di salute inferiore a questo valore |
96
- | `--concurrency` | Controlli paralleli (predefinito: numero di core della CPU) |
97
- | `--runlog` | Percorso del file di registro delle esecuzioni delle attività (JSONL) |
98
- | `--no-tasks` | Salta la visualizzazione delle attività |
99
-
100
- ### Output
101
-
102
- | File | Descrizione |
103
- | ------ | ------------- |
104
- | `venv-map.json` | Dati completi del grafico (nodi, archi, riepilogo) |
105
- | `venv-map.mmd` | Codice sorgente del diagramma Mermaid |
106
- | `venv-map.html` | Visualizzatore interattivo |
107
- | `reports.json` | Report raw di doctorLite |
108
- | `insights.json` | Raccomandazioni attuabili |
109
-
110
- ## Utilizzo programmatico
111
-
85
+
86
+ ### Opzioni della CLI
87
+
88
+ | Flag | Descrizione |
89
+ |------|-------------|
90
+ | `--root, -r` | Directory da scansionare (è possibile specificarne più di una) |
91
+ | `--out` | Directory di output (predefinito: `.venvkit`) |
92
+ | `--maxDepth` | Profondità massima della directory da scansionare (predefinito: 5) |
93
+ | `--strict` | Abilita i controlli in modalità rigorosa |
94
+ | `--httpsProbe` | Testa la connettività HTTPS |
95
+ | `--minScore` | Filtra gli ambienti con un punteggio di salute inferiore a questo valore |
96
+ | `--concurrency` | Controlli paralleli (predefinito: numero di core della CPU) |
97
+ | `--runlog` | Percorso del file di log delle esecuzioni delle attività (JSONL) |
98
+ | `--no-tasks` | Salta la visualizzazione delle attività |
99
+
100
+ ### Output
101
+
102
+ | File | Descrizione |
103
+ |------|-------------|
104
+ | `venv-map.json` | Dati completi del grafico (nodi, archi, riepilogo) |
105
+ | `venv-map.mmd` | Codice sorgente del diagramma Mermaid |
106
+ | `venv-map.html` | Visualizzatore interattivo |
107
+ | `reports.json` | Report dettagliati di doctorLite |
108
+ | `insights.json` | Raccomandazioni attuabili |
109
+
110
+ ## Utilizzo programmatico
111
+
112
112
  ```typescript
113
113
  import { doctorLite, scanEnvPaths, mapRender, readRunLog } from 'venvkit';
114
114
 
@@ -143,11 +143,11 @@ const { graph, mermaid, insights } = mapRender(reports, runs, {
143
143
  includeHotEdgeLabels: true,
144
144
  });
145
145
  ```
146
-
147
- ## Schema del registro delle attività
148
-
149
- Tieni traccia delle esecuzioni delle attività aggiungendo eventi a un file JSONL:
150
-
146
+
147
+ ## Schema del file di log
148
+
149
+ Tieni traccia delle esecuzioni delle attività aggiungendo eventi a un file JSONL:
150
+
151
151
  ```typescript
152
152
  import { appendRunLog, newRunId } from 'venvkit';
153
153
 
@@ -172,11 +172,11 @@ await appendRunLog('.venvkit/runs.jsonl', {
172
172
  },
173
173
  });
174
174
  ```
175
-
176
- ## Raggruppamento delle attività
177
-
178
- Quando si hanno molte esecuzioni di attività, venvkit le raggruppa in base alla firma:
179
-
175
+
176
+ ## Raggruppamento delle attività
177
+
178
+ Quando si hanno molte esecuzioni di attività, venvkit le raggruppa per firma:
179
+
180
180
  ```typescript
181
181
  import { clusterRuns, isFlaky, getFailingEnvs } from 'venvkit';
182
182
 
@@ -192,11 +192,11 @@ for (const c of clusters) {
192
192
  }
193
193
  }
194
194
  ```
195
-
196
- ## Schema del grafico
197
-
198
- L'output di `mapRender` segue uno schema JSON stabile:
199
-
195
+
196
+ ## Schema del grafico
197
+
198
+ L'output di `mapRender` segue uno schema JSON stabile:
199
+
200
200
  ```typescript
201
201
  type GraphJSONv1 = {
202
202
  version: '1.0';
@@ -217,47 +217,58 @@ type GraphJSONv1 = {
217
217
  edges: GraphEdge[];
218
218
  };
219
219
  ```
220
-
221
- ### Tipi di nodo
222
-
223
- | Type | Descrizione |
224
- | ------ | ------------- |
225
- | `base` | Interprete Python di base (ad esempio, `C:\Python311`) |
226
- | `venv` | Ambiente virtuale |
227
- | `task` | Firma dell'attività (esecuzioni raggruppate) |
228
-
229
- ### Tipi di arco
230
-
231
- | Type | Descrizione |
232
- | ------ | ------------- |
233
- | `USES_BASE` | Relazione venv → base |
234
- | `ROUTES_TASK_TO` | Routing attività → ambiente |
235
- | `FAILED_RUN` | Errore attività → ambiente (tratteggiato nei diagrammi Mermaid) |
236
-
237
- ## Codici di errore
238
-
239
- | Code | Gravità | Descrizione |
240
- | ------ | ---------- | ------------- |
241
- | `SSL_BROKEN` | bad | Impossibile importare il modulo SSL |
242
- | `CERT_STORE_FAIL` | warn | La verifica del certificato HTTPS non riesce |
243
- | `DLL_LOAD_FAIL` | bad | Impossibile caricare la DLL dell'estensione nativa |
244
- | `ABI_MISMATCH` | bad | Incompatibilità binaria (ARM/x86) |
245
- | `PIP_MISSING` | warn | pip non disponibile |
246
- | `PIP_CHECK_FAIL` | warn | Rilevati conflitti di dipendenze |
247
- | `USER_SITE_LEAK` | warn | I pacchetti utente sono abilitati nell'ambiente virtuale. |
248
- | `PYTHONPATH_INJECTED` | warn | Variabile d'ambiente PYTHONPATH impostata. |
249
- | `ARCH_MISMATCH` | bad | Versione a 32 bit di Python quando è richiesta la versione a 64 bit. |
250
- | `PYVENV_CFG_INVALID` | warn | File pyvenv.cfg corrotto o mancante. |
251
-
252
- ## Sviluppo
253
-
220
+
221
+ ### Tipi di nodo
222
+
223
+ | Tipo | Descrizione |
224
+ |------|-------------|
225
+ | `base` | Interprete Python di base (es. `C:\Python311`) |
226
+ | `venv` | Ambiente virtuale |
227
+ | `task` | Firma dell'attività (esecuzioni raggruppate) |
228
+
229
+ ### Tipi di arco
230
+
231
+ | Tipo | Descrizione |
232
+ |------|-------------|
233
+ | `USES_BASE` | Relazione venv → interprete di base |
234
+ | `ROUTES_TASK_TO` | Routing attività → ambiente |
235
+ | `FAILED_RUN` | Errore attività → ambiente (tratteggiato in Mermaid) |
236
+
237
+ ## Codici di errore
238
+
239
+ | Codice | Gravità | Descrizione |
240
+ |------|----------|-------------|
241
+ | `SSL_BROKEN` | bad | Il modulo SSL non riesce a essere importato |
242
+ | `CERT_STORE_FAIL` | warn | La verifica del certificato HTTPS non riesce |
243
+ | `DLL_LOAD_FAIL` | bad | Caricamento della DLL dell'estensione nativa non riesce |
244
+ | `ABI_MISMATCH` | bad | Incompatibilità binaria (ARM/x86) |
245
+ | `PIP_MISSING` | warn | pip non disponibile |
246
+ | `PIP_CHECK_FAIL` | warn | Conflitti di dipendenze rilevati |
247
+ | `USER_SITE_LEAK` | warn | user-site-packages abilitato nell'ambiente virtuale |
248
+ | `PYTHONPATH_INJECTED` | warn | Variabile d'ambiente PYTHONPATH impostata |
249
+ | `ARCH_MISMATCH` | bad | Python a 32 bit quando è richiesto a 64 bit |
250
+ | `PYVENV_CFG_INVALID` | warn | pyvenv.cfg danneggiato o mancante |
251
+
252
+ ## Sviluppo
253
+
254
254
  ```bash
255
255
  npm install
256
256
  npm run typecheck # Type check
257
257
  npm run test # Run tests
258
258
  npm run build # Build to dist/
259
259
  ```
260
-
261
- ## Licenza
262
-
263
- MIT.
260
+
261
+ ## Sicurezza e ambito dei dati
262
+
263
+ - **Scansolo in lettura:** I file eseguibili Python e il file pyvenv.cfg vengono letti, ma mai modificati.
264
+ - **Sottoprocessi:** avvia `python` con argomenti controllati, senza l'esecuzione tramite shell.
265
+ - **Rete:** l'opzione `--httpsProbe` (facoltativa) verifica i certificati SSL, ma non vengono effettuate altre richieste in uscita.
266
+ - **Nessun dato di telemetria** viene raccolto o trasmesso; consultare il file [SECURITY.md](SECURITY.md) per la politica completa.
267
+
268
+ ## Licenza
269
+
270
+ MIT
271
+
272
+ ---
273
+
274
+ Creato da [MCP Tool Shop](https://mcp-tool-shop.github.io/)
package/README.ja.md CHANGED
@@ -1,74 +1,74 @@
1
- <p align="center">
2
- <a href="README.md">English</a> | <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
- </p>
4
-
1
+ <p align="center">
2
+ <a href="README.md">English</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
+ </p>
4
+
5
5
  <p align="center">
6
6
  <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/venvkit/readme.png" alt="venvkit" width="400">
7
7
  </p>
8
-
9
- # venvkit
10
-
11
- > [MCP Tool Shop](https://mcptoolshop.com) の一部
12
-
8
+
9
+ # venvkit
10
+
11
+ > [MCP Tool Shop](https://mcptoolshop.com) の一部
12
+
13
13
  <p align="center">
14
14
  <a href="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
15
15
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square" alt="License: MIT"></a>
16
16
  <a href="https://mcp-tool-shop-org.github.io/venvkit/"><img src="https://img.shields.io/badge/Landing_Page-live-blue?style=flat-square" alt="Landing Page"></a>
17
17
  <a href="https://www.npmjs.com/package/@mcptoolshop/venvkit"><img src="https://img.shields.io/npm/v/@mcptoolshop/venvkit?style=flat-square&color=cb3837" alt="npm version"></a>
18
18
  </p>
19
-
20
- **Windows環境における機械学習ワークフロー向けのPython仮想環境診断ツールキット。**
21
-
22
- システム上のPython環境をスキャンし、問題箇所(SSL、DLL、ABIの不一致、パスの漏洩など)を診断し、タスクの実行履歴を追跡し、不安定なタスクを検出し、環境マップを表示します。
23
-
24
- ## 30秒で始める
25
-
19
+
20
+ **Windows環境における機械学習ワークフロー向けのPython仮想環境診断ツールキット。**
21
+
22
+ システム上のPython環境をスキャンし、問題箇所(SSL、DLL、ABIの不整合、パスの漏洩など)を診断し、タスクの実行履歴を追跡し、不安定なタスクを検出し、環境マップを生成します。
23
+
24
+ ## 30秒で始める
25
+
26
26
  ```bash
27
27
  git clone https://github.com/mcp-tool-shop-org/venvkit && cd venvkit
28
28
  npm install && npm run build
29
29
  node dist/map_cli.js --root C:\projects --httpsProbe
30
30
  # Open .venvkit/venv-map.html in your browser
31
31
  ```
32
-
33
- ## 機能
34
-
35
- - **doctorLite** - どのPythonインタプリタでも高速なヘルスチェック
36
- - SSL/TLSの検証
37
- - DLLのロード失敗(PyTorch/CUDAでよく発生)
38
- - ABIの不一致(ARM vs x86)
39
- - pipの健全性チェック
40
- - ユーザーサイトとPYTHONPATHの漏洩検出
41
-
42
- - **scanEnvPaths** - システム上のすべてのPython環境を検出
43
- - venv、conda環境、pyenvのバージョン、ベースインタプリタを検出
44
- - 設定可能な深度とフィルタリング
45
-
46
- - **mapRender** - Python環境を可視化
47
- - プログラムで使用するためのグラフJSON出力
48
- - ドキュメント用のMermaid図
49
- - ベースインタプリタのグループ化と影響範囲分析
50
- - タスクのルーティング可視化
51
-
52
- - **runLog** - タスクの実行履歴を追跡
53
- - 追記専用のJSONL形式
54
- - どの環境でどのタスクが実行されたかを記録
55
- - 成功/失敗を記録し、エラーを分類
56
-
57
- - **taskCluster** - シグネチャごとにタスクの実行をまとめる
58
- - 不安定なタスクの検出(一貫性のない成功/失敗)
59
- - 環境に依存する不安定なタスクの検出
60
- - 失敗のホットスポットの特定
61
- - 感染分析(共通の根本原因)
62
-
63
- ## インストール
64
-
32
+
33
+ ## 機能
34
+
35
+ - **doctorLite** - 任意のPythonインタプリタの高速ヘルスチェック
36
+ - SSL/TLSの検証
37
+ - DLLのロード失敗(PyTorch/CUDAでよく発生)
38
+ - ABIの不整合(ARM vs x86)
39
+ - pipの健全性チェック
40
+ - ユーザーサイトとPYTHONPATHの漏洩検出
41
+
42
+ - **scanEnvPaths** - システム上のすべてのPython環境を検出
43
+ - venv、conda環境、pyenvのバージョン、ベースインタプリタを検出
44
+ - 設定可能な深度とフィルタリング
45
+
46
+ - **mapRender** - Python環境を可視化
47
+ - プログラムでの利用を目的としたグラフのJSON出力
48
+ - ドキュメント用のMermaid図
49
+ - ベースインタプリタのグループ化と影響範囲分析
50
+ - タスクのルーティング可視化
51
+
52
+ - **runLog** - タスクの実行履歴を追跡
53
+ - 追記専用のJSONL形式
54
+ - どの環境でどのタスクが実行されたかを記録
55
+ - 成功/失敗を記録し、エラーを分類
56
+
57
+ - **taskCluster** - シグネチャごとにタスクの実行をまとめる
58
+ - 不安定なタスクの検出(一貫性のない成功/失敗)
59
+ - 環境に依存する不安定なタスクの検出
60
+ - 失敗のホットスポットの特定
61
+ - 感染分析(共通の根本原因)
62
+
63
+ ## インストール
64
+
65
65
  ```bash
66
66
  npm install
67
67
  npm run build
68
68
  ```
69
-
70
- ## CLIの使用方法
71
-
69
+
70
+ ## CLIの使用方法
71
+
72
72
  ```bash
73
73
  # Scan current directory and generate ecosystem map
74
74
  node dist/map_cli.js
@@ -82,33 +82,33 @@ node dist/map_cli.js --runlog .venvkit/runs.jsonl
82
82
  # Output options
83
83
  node dist/map_cli.js --out ./output --minScore 50 --strict --httpsProbe
84
84
  ```
85
-
86
- ### CLIオプション
87
-
88
- | Flag | 説明 |
89
- | ------ | ------------- |
90
- | `--root, -r` | スキャンするディレクトリ(複数指定可能) |
91
- | `--out` | 出力ディレクトリ(デフォルト:`.venvkit`) |
92
- | `--maxDepth` | スキャンする最大ディレクトリ深度(デフォルト:5) |
93
- | `--strict` | 厳格モードのチェックを有効にする |
94
- | `--httpsProbe` | HTTPS接続をテストする |
95
- | `--minScore` | このヘルススコア以下の環境をフィルタリングする |
96
- | `--concurrency` | 並列チェック(デフォルト:CPUコア数) |
97
- | `--runlog` | タスク実行ログ(JSONL)のパス |
98
- | `--no-tasks` | タスクの可視化をスキップする |
99
-
100
- ### 出力
101
-
102
- | File | 説明 |
103
- | ------ | ------------- |
104
- | `venv-map.json` | 完全なグラフデータ(ノード、エッジ、概要) |
105
- | `venv-map.mmd` | Mermaid図のソース |
106
- | `venv-map.html` | インタラクティブビューア |
107
- | `reports.json` | 生のdoctorLiteレポート |
108
- | `insights.json` | 実行可能な推奨事項 |
109
-
110
- ## プログラムによる使用方法
111
-
85
+
86
+ ### CLIオプション
87
+
88
+ | フラグ | 説明 |
89
+ |------|-------------|
90
+ | `--root, -r` | スキャンするディレクトリ(複数指定可能) |
91
+ | `--out` | 出力ディレクトリ(デフォルト:`.venvkit`) |
92
+ | `--maxDepth` | スキャンする最大ディレクトリ深度(デフォルト:5) |
93
+ | `--strict` | 厳格モードのチェックを有効にする |
94
+ | `--httpsProbe` | HTTPS接続をテストする |
95
+ | `--minScore` | このヘルススコア以下の環境をフィルタリングする |
96
+ | `--concurrency` | 並列チェック(デフォルト:CPUコア数) |
97
+ | `--runlog` | タスク実行ログ(JSONL)へのパス |
98
+ | `--no-tasks` | タスクの可視化をスキップする |
99
+
100
+ ### 出力ファイル
101
+
102
+ | ファイル | 説明 |
103
+ |------|-------------|
104
+ | `venv-map.json` | 完全なグラフデータ(ノード、エッジ、概要) |
105
+ | `venv-map.mmd` | Mermaid図のソース |
106
+ | `venv-map.html` | インタラクティブビューア |
107
+ | `reports.json` | 生のdoctorLiteレポート |
108
+ | `insights.json` | 実行可能な推奨事項 |
109
+
110
+ ## プログラムによる利用方法
111
+
112
112
  ```typescript
113
113
  import { doctorLite, scanEnvPaths, mapRender, readRunLog } from 'venvkit';
114
114
 
@@ -143,11 +143,11 @@ const { graph, mermaid, insights } = mapRender(reports, runs, {
143
143
  includeHotEdgeLabels: true,
144
144
  });
145
145
  ```
146
-
147
- ## 実行ログのスキーマ
148
-
149
- タスクの実行を追跡するために、イベントをJSONLファイルに追加します。
150
-
146
+
147
+ ## 実行ログのスキーマ
148
+
149
+ JSONLファイルにイベントを追記することで、タスクの実行を追跡します。
150
+
151
151
  ```typescript
152
152
  import { appendRunLog, newRunId } from 'venvkit';
153
153
 
@@ -172,11 +172,11 @@ await appendRunLog('.venvkit/runs.jsonl', {
172
172
  },
173
173
  });
174
174
  ```
175
-
176
- ## タスクのクラスタリング
177
-
178
- タスクの実行が多い場合、venvkitはシグネチャごとにそれらをクラスタリングします。
179
-
175
+
176
+ ## タスクのクラスタリング
177
+
178
+ タスクの実行が多い場合、venvkitはシグネチャごとにそれらをクラスタリングします。
179
+
180
180
  ```typescript
181
181
  import { clusterRuns, isFlaky, getFailingEnvs } from 'venvkit';
182
182
 
@@ -192,11 +192,11 @@ for (const c of clusters) {
192
192
  }
193
193
  }
194
194
  ```
195
-
196
- ## グラフのスキーマ
197
-
198
- `mapRender`の出力は、安定したJSONスキーマに従います。
199
-
195
+
196
+ ## グラフのスキーマ
197
+
198
+ `mapRender`の出力は、安定したJSONスキーマに従います。
199
+
200
200
  ```typescript
201
201
  type GraphJSONv1 = {
202
202
  version: '1.0';
@@ -217,47 +217,58 @@ type GraphJSONv1 = {
217
217
  edges: GraphEdge[];
218
218
  };
219
219
  ```
220
-
221
- ### ノードの種類
222
-
223
- | Type | 説明 |
224
- | ------ | ------------- |
225
- | `base` | ベースのPythonインタプリタ(例:`C:\Python311`) |
226
- | `venv` | 仮想環境 |
227
- | `task` | タスクのシグネチャ(クラスタリングされた実行) |
228
-
229
- ### エッジの種類
230
-
231
- | Type | 説明 |
232
- | ------ | ------------- |
233
- | `USES_BASE` | venvとベースの関係 |
234
- | `ROUTES_TASK_TO` | タスクと環境のルーティング |
235
- | `FAILED_RUN` | タスクと環境の失敗(Mermaidでは破線で表示) |
236
-
237
- ## エラーコード
238
-
239
- | Code | 重要度 | 説明 |
240
- | ------ | ---------- | ------------- |
241
- | `SSL_BROKEN` | bad | SSLモジュールのインポートに失敗 |
242
- | `CERT_STORE_FAIL` | warn | HTTPS証明書の検証に失敗 |
243
- | `DLL_LOAD_FAIL` | bad | ネイティブ拡張DLLのロードに失敗 |
244
- | `ABI_MISMATCH` | bad | バイナリの互換性がない(ARM/x86) |
245
- | `PIP_MISSING` | warn | pipが利用できない |
246
- | `PIP_CHECK_FAIL` | warn | 依存関係の競合が検出された |
247
- | `USER_SITE_LEAK` | warn | venv環境において、サイトパッケージが有効になっています。 |
248
- | `PYTHONPATH_INJECTED` | warn | PYTHONPATH環境変数が設定されています。 |
249
- | `ARCH_MISMATCH` | bad | 64ビットのPythonが必要な場合に、32ビットのPythonが使用されています。 |
250
- | `PYVENV_CFG_INVALID` | warn | pyvenv.cfgファイルが破損しているか、存在しません。 |
251
-
252
- ## 開発
253
-
220
+
221
+ ### ノードの種類
222
+
223
+ | 種類 | 説明 |
224
+ |------|-------------|
225
+ | `base` | ベースのPythonインタプリタ(例:`C:\Python311`) |
226
+ | `venv` | 仮想環境 |
227
+ | `task` | タスクのシグネチャ(クラスタリングされた実行) |
228
+
229
+ ### エッジの種類
230
+
231
+ | 種類 | 説明 |
232
+ |------|-------------|
233
+ | `USES_BASE` | venvとベースの関係 |
234
+ | `ROUTES_TASK_TO` | タスクと環境のルーティング |
235
+ | `FAILED_RUN` | タスクと環境の失敗(Mermaidでは破線で表示) |
236
+
237
+ ## エラーコード
238
+
239
+ | コード | 深刻度 | 説明 |
240
+ |------|----------|-------------|
241
+ | `SSL_BROKEN` | bad | SSLモジュールのインポートに失敗 |
242
+ | `CERT_STORE_FAIL` | warn | HTTPS証明書の検証に失敗 |
243
+ | `DLL_LOAD_FAIL` | bad | ネイティブ拡張DLLのロードに失敗 |
244
+ | `ABI_MISMATCH` | bad | バイナリの互換性がない(ARM/x86) |
245
+ | `PIP_MISSING` | warn | pipが利用できない |
246
+ | `PIP_CHECK_FAIL` | warn | 依存関係の競合が検出された |
247
+ | `USER_SITE_LEAK` | warn | venvでユーザーサイトパッケージが有効になっている |
248
+ | `PYTHONPATH_INJECTED` | warn | PYTHONPATH環境変数が設定されている |
249
+ | `ARCH_MISMATCH` | bad | 64ビットが必要な場合に32ビットのPythonが使用されている |
250
+ | `PYVENV_CFG_INVALID` | warn | 破損または紛失したpyvenv.cfg |
251
+
252
+ ## 開発
253
+
254
254
  ```bash
255
255
  npm install
256
256
  npm run typecheck # Type check
257
257
  npm run test # Run tests
258
258
  npm run build # Build to dist/
259
259
  ```
260
-
261
- ## ライセンス
262
-
263
- MITライセンス
260
+
261
+ ## セキュリティとデータ範囲
262
+
263
+ - **読み取り専用スキャン:** Pythonの実行ファイルとpyvenv.cfgファイルは読み込まれますが、変更されることはありません。
264
+ - **サブプロセス:** `python`を特定の引数で起動します。シェルによる実行は行われません。
265
+ - **ネットワーク:** オプションの`--httpsProbe`を使用すると、SSL証明書をテストできます。それ以外の外部へのリクエストは行われません。
266
+ - **テレメトリデータは収集も送信もされません。** 詳細については、[SECURITY.md](SECURITY.md) を参照してください。
267
+
268
+ ## ライセンス
269
+
270
+ MIT
271
+
272
+ ---
273
+
274
+ [MCP Tool Shop](https://mcp-tool-shop.github.io/) によって作成されました。