@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.fr.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.md">English</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
- > Fait partie de [MCP Tool Shop](https://mcptoolshop.com)
12
-
8
+
9
+ # venvkit
10
+
11
+ > Fait partie de [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
- **Outil de diagnostic pour les environnements virtuels Python, conçu pour les flux de travail d'apprentissage automatique (ML) sous Windows.**
21
-
22
- Analyse votre système pour détecter les environnements Python, diagnostique les problèmes de santé (SSL, DLL, incompatibilités ABI, fuites de chemins), suit l'historique d'exécution des tâches, détecte les tâches instables et génère une carte de l'écosystème.
23
-
24
- ## Démarrage rapide en 30 secondes
25
-
19
+
20
+ **Outil de diagnostic pour les environnements virtuels Python, conçu pour les flux de travail de Machine Learning sous Windows.**
21
+
22
+ Analyse votre système pour détecter les environnements Python, diagnostique les problèmes (SSL, DLL, incompatibilités ABI, fuites de chemins), suit l'historique d'exécution des tâches, détecte les tâches instables et génère une carte de l'écosystème.
23
+
24
+ ## Démarrage rapide en 30 secondes
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
- ## Fonctionnalités
34
-
35
- - **doctorLite** - Vérification rapide de l'état de santé de n'importe quel interpréteur Python
36
- - Vérification SSL/TLS
37
- - Échecs de chargement des DLL (courant avec PyTorch/CUDA)
38
- - Incompatibilités ABI (ARM vs x86)
39
- - Vérifications de l'intégrité de pip
40
- - Détection des fuites de `user-site` et de `PYTHONPATH`
41
-
42
- - **scanEnvPaths** - Découvre tous les environnements Python de votre système
43
- - Trouve les environnements venv, conda, les versions pyenv et les interpréteurs de base.
44
- - Profondeur et filtrage configurables.
45
-
46
- - **mapRender** - Visualise votre écosystème Python
47
- - Sortie JSON pour une utilisation programmatique.
48
- - Diagrammes Mermaid pour la documentation.
49
- - Groupement des interpréteurs de base avec analyse du rayon d'impact.
50
- - Visualisation du routage des tâches.
51
-
52
- - **runLog** - Suit l'historique d'exécution des tâches
53
- - Format JSONL uniquement en ajout.
54
- - Enregistre quel environnement a exécuté quelle tâche.
55
- - Enregistre les succès/échecs avec la classification des erreurs.
56
-
57
- - **taskCluster** - Regroupe les exécutions de tâches par signature
58
- - Détection des tâches instables (échec/succès incohérents).
59
- - Détection des instabilités dépendantes de l'environnement.
60
- - Identification des points chauds d'échec.
61
- - Analyse de la contagion (causes profondes partagées).
62
-
63
- ## Installation
64
-
32
+
33
+ ## Fonctionnalités
34
+
35
+ - **doctorLite** - Vérification rapide de l'état de santé de n'importe quel interpréteur Python
36
+ - Vérification SSL/TLS
37
+ - Échecs de chargement des DLL (courant avec PyTorch/CUDA)
38
+ - Incompatibilités ABI (ARM vs x86)
39
+ - Vérifications de l'intégrité de pip
40
+ - Détection de fuites des répertoires utilisateur et de la variable PYTHONPATH
41
+
42
+ - **scanEnvPaths** - Découvre tous les environnements Python de votre système
43
+ - Trouve les environnements venv, conda, les versions pyenv et les interpréteurs de base.
44
+ - Profondeur et filtrage configurables.
45
+
46
+ - **mapRender** - Visualise votre écosystème Python
47
+ - Sortie JSON pour une utilisation programmatique
48
+ - Diagrammes Mermaid pour la documentation
49
+ - Groupement des interpréteurs de base avec analyse du rayon d'impact
50
+ - Visualisation du routage des tâches
51
+
52
+ - **runLog** - Suit l'historique d'exécution des tâches
53
+ - Format JSONL uniquement en ajout
54
+ - Enregistre quel environnement a exécuté quelle tâche
55
+ - Enregistre les succès/échecs avec la classification des erreurs
56
+
57
+ - **taskCluster** - Regroupe les exécutions de tâches par signature
58
+ - Détection des tâches instables (échec/succès incohérents)
59
+ - Détection des instabilités dépendantes de l'environnement
60
+ - Identification des points chauds d'échec
61
+ - Analyse de la contagion (causes profondes partagées)
62
+
63
+ ## Installation
64
+
65
65
  ```bash
66
66
  npm install
67
67
  npm run build
68
68
  ```
69
-
70
- ## Utilisation de l'interface en ligne de commande (CLI)
71
-
69
+
70
+ ## Utilisation de la ligne de commande
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
- ### Options de l'interface en ligne de commande (CLI)
87
-
88
- | Flag | Description |
89
- | ------ | ------------- |
90
- | `--root, -r` | Répertoire à analyser (peut spécifier plusieurs) |
91
- | `--out` | Répertoire de sortie (par défaut : `.venvkit`) |
92
- | `--maxDepth` | Profondeur maximale du répertoire à analyser (par défaut : 5) |
93
- | `--strict` | Activer les vérifications strictes |
94
- | `--httpsProbe` | Tester la connectivité HTTPS |
95
- | `--minScore` | Filtrer les environnements en fonction de leur score de santé |
96
- | `--concurrency` | Vérifications parallèles (par défaut : nombre de cœurs CPU) |
97
- | `--runlog` | Chemin vers le fichier journal d'exécution des tâches (JSONL) |
98
- | `--no-tasks` | Ignorer la visualisation des tâches |
99
-
100
- ### Sorties
101
-
102
- | File | Description |
103
- | ------ | ------------- |
104
- | `venv-map.json` | Données complètes du graphique (nœuds, arêtes, résumé) |
105
- | `venv-map.mmd` | Source du diagramme Mermaid |
106
- | `venv-map.html` | Visualiseur interactif |
107
- | `reports.json` | Rapports doctorLite bruts |
108
- | `insights.json` | Recommandations exploitables |
109
-
110
- ## Utilisation programmatique
111
-
85
+
86
+ ### Options de la ligne de commande
87
+
88
+ | Option | Description |
89
+ |------|-------------|
90
+ | `--root, -r` | Répertoire à analyser (peut spécifier plusieurs) |
91
+ | `--out` | Répertoire de sortie (par défaut : `.venvkit`) |
92
+ | `--maxDepth` | Profondeur maximale du répertoire à analyser (par défaut : 5) |
93
+ | `--strict` | Activer les vérifications strictes |
94
+ | `--httpsProbe` | Tester la connectivité HTTPS |
95
+ | `--minScore` | Filtrer les environnements en fonction de leur score de santé |
96
+ | `--concurrency` | Vérifications parallèles (par défaut : nombre de cœurs CPU) |
97
+ | `--runlog` | Chemin vers le fichier journal des exécutions de tâches (JSONL) |
98
+ | `--no-tasks` | Ignorer la visualisation des tâches |
99
+
100
+ ### Sorties
101
+
102
+ | Fichier | Description |
103
+ |------|-------------|
104
+ | `venv-map.json` | Données complètes du graphe (nœuds, arêtes, résumé) |
105
+ | `venv-map.mmd` | Source du diagramme Mermaid |
106
+ | `venv-map.html` | Visualiseur interactif |
107
+ | `reports.json` | Rapports doctorLite bruts |
108
+ | `insights.json` | Recommandations exploitables |
109
+
110
+ ## Utilisation programmatique
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
- ## Schéma du journal d'exécution
148
-
149
- Suivez les exécutions de tâches en ajoutant des événements à un fichier JSONL :
150
-
146
+
147
+ ## Schéma du journal des exécutions
148
+
149
+ Suivez les exécutions de tâches en ajoutant des événements à un fichier 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
- ## Regroupement des tâches
177
-
178
- Lorsque vous avez de nombreuses exécutions de tâches, venvkit les regroupe par signature :
179
-
175
+
176
+ ## Regroupement des tâches
177
+
178
+ Lorsque vous avez de nombreuses exécutions de tâches, venvkit les regroupe par signature :
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
- ## Schéma du graphique
197
-
198
- La sortie de `mapRender` suit un schéma JSON stable :
199
-
195
+
196
+ ## Schéma du graphe
197
+
198
+ La sortie de `mapRender` suit un schéma JSON stable :
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
- ### Types de nœuds
222
-
223
- | Type | Description |
224
- | ------ | ------------- |
225
- | `base` | Interpréteur Python de base (par exemple, `C:\Python311`) |
226
- | `venv` | Environnement virtuel |
227
- | `task` | Signature de la tâche (exécutions regroupées) |
228
-
229
- ### Types d'arêtes
230
-
231
- | Type | Description |
232
- | ------ | ------------- |
233
- | `USES_BASE` | Relation venv → base |
234
- | `ROUTES_TASK_TO` | Routage tâche → environnement |
235
- | `FAILED_RUN` | Échec de la tâche → environnement (pointillé dans Mermaid) |
236
-
237
- ## Codes d'erreur
238
-
239
- | Code | Gravité | Description |
240
- | ------ | ---------- | ------------- |
241
- | `SSL_BROKEN` | bad | Le module SSL ne parvient pas à s'importer |
242
- | `CERT_STORE_FAIL` | warn | La vérification du certificat HTTPS échoue |
243
- | `DLL_LOAD_FAIL` | bad | Le chargement de l'extension DLL native échoue |
244
- | `ABI_MISMATCH` | bad | Incompatibilité binaire (ARM/x86) |
245
- | `PIP_MISSING` | warn | pip n'est pas disponible |
246
- | `PIP_CHECK_FAIL` | warn | Conflits de dépendances détectés |
247
- | `USER_SITE_LEAK` | warn | L'installation des packages utilisateur est activée dans l'environnement virtuel. |
248
- | `PYTHONPATH_INJECTED` | warn | La variable d'environnement PYTHONPATH est définie. |
249
- | `ARCH_MISMATCH` | bad | Version 32 bits de Python utilisée alors qu'une version 64 bits est requise. |
250
- | `PYVENV_CFG_INVALID` | warn | Fichier pyvenv.cfg corrompu ou manquant. |
251
-
252
- ## Développement
253
-
220
+
221
+ ### Types de nœuds
222
+
223
+ | Type | Description |
224
+ |------|-------------|
225
+ | `base` | Interpréteur Python de base (par exemple, `C:\Python311`) |
226
+ | `venv` | Environnement virtuel |
227
+ | `task` | Signature de tâche (exécutions regroupées) |
228
+
229
+ ### Types d'arêtes
230
+
231
+ | Type | Description |
232
+ |------|-------------|
233
+ | `USES_BASE` | Relation venv → base |
234
+ | `ROUTES_TASK_TO` | Routage tâche → environnement |
235
+ | `FAILED_RUN` | Échec de tâche → environnement (pointillé dans Mermaid) |
236
+
237
+ ## Codes d'erreur
238
+
239
+ | Code | Gravité | Description |
240
+ |------|----------|-------------|
241
+ | `SSL_BROKEN` | bad | L'importation du module SSL échoue |
242
+ | `CERT_STORE_FAIL` | warn | La vérification du certificat HTTPS échoue |
243
+ | `DLL_LOAD_FAIL` | bad | Le chargement de l'extension DLL native échoue |
244
+ | `ABI_MISMATCH` | bad | Incompatibilité binaire (ARM/x86) |
245
+ | `PIP_MISSING` | warn | pip n'est pas disponible |
246
+ | `PIP_CHECK_FAIL` | warn | Conflits de dépendances détectés |
247
+ | `USER_SITE_LEAK` | warn | Les packages utilisateur sont activés dans l'environnement virtuel |
248
+ | `PYTHONPATH_INJECTED` | warn | La variable d'environnement PYTHONPATH est définie |
249
+ | `ARCH_MISMATCH` | bad | Python 32 bits alors que 64 bits est requis |
250
+ | `PYVENV_CFG_INVALID` | warn | pyvenv.cfg corrompu ou manquant |
251
+
252
+ ## Développement
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
- ## Licence
262
-
263
- MIT.
260
+
261
+ ## Sécurité et portée des données
262
+
263
+ - **Analyse en lecture seule :** Les exécutables Python et le fichier pyvenv.cfg sont lus, mais jamais modifiés.
264
+ - **Sous-processus :** Lance `python` avec des arguments contrôlés — aucune exécution via un shell.
265
+ - **Réseau :** L'option `--httpsProbe` (facultative) teste les certificats SSL — aucune autre requête sortante n'est effectuée.
266
+ - **Aucune télémétrie** n'est collectée ou envoyée — consultez le fichier [SECURITY.md](SECURITY.md) pour connaître la politique complète.
267
+
268
+ ## Licence
269
+
270
+ MIT
271
+
272
+ ---
273
+
274
+ Créé par [MCP Tool Shop](https://mcp-tool-shop.github.io/)