@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.es.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.md">English</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
- > Parte de [MCP Tool Shop](https://mcptoolshop.com)
12
-
8
+
9
+ # venvkit
10
+
11
+ > Parte 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
- **Herramienta de diagnóstico para entornos virtuales de Python en flujos de trabajo de aprendizaje automático para Windows.**
21
-
22
- Analiza su sistema en busca de entornos de Python, diagnostica problemas de salud (SSL, DLL, incompatibilidades de ABI, fugas de rutas), realiza un seguimiento del historial de ejecución de tareas, detecta tareas inestables y genera un mapa del ecosistema.
23
-
24
- ## Guía de inicio rápido en 30 segundos
25
-
19
+
20
+ **Herramienta de diagnóstico para entornos virtuales de Python para flujos de trabajo de aprendizaje automático en Windows.**
21
+
22
+ Analiza su sistema en busca de entornos de Python, diagnostica problemas de salud (SSL, DLL, incompatibilidades de ABI, fugas de rutas), realiza un seguimiento del historial de ejecución de tareas, detecta tareas inestables y genera un mapa del ecosistema.
23
+
24
+ ## Guía de inicio rápido en 30 segundos
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
- ## Características
34
-
35
- - **doctorLite** - Comprobación rápida de la salud para cualquier intérprete de Python
36
- - Verificación SSL/TLS
37
- - Fallos al cargar DLL (común con PyTorch/CUDA)
38
- - Incompatibilidades de ABI (ARM vs x86)
39
- - Comprobaciones de integridad de pip
40
- - Detección de fugas de `user-site` y `PYTHONPATH`
41
-
42
- - **scanEnvPaths** - Descubre todos los entornos de Python en tu sistema
43
- - Encuentra entornos venv, entornos conda, versiones pyenv, intérpretes base
44
- - Profundidad y filtrado configurables
45
-
46
- - **mapRender** - Visualiza tu ecosistema de Python
47
- - Salida de gráfico en formato JSON para uso programático
48
- - Diagramas Mermaid para documentación
49
- - Agrupación de intérpretes base con análisis de radio de impacto
50
- - Visualización de enrutamiento de tareas
51
-
52
- - **runLog** - Realiza un seguimiento del historial de ejecución de tareas
53
- - Formato JSONL de solo anexión
54
- - Registra qué entorno ejecutó qué tarea
55
- - Captura el éxito/fracaso con clasificación de errores
56
-
57
- - **taskCluster** - Agrupa las ejecuciones de tareas por firma
58
- - Detección de tareas inestables (fallos/éxitos inconsistentes)
59
- - Detección de inestabilidad dependiente del entorno
60
- - Identificación de puntos críticos de fallo
61
- - Análisis de contagio (causas raíz compartidas)
62
-
63
- ## Instalación
64
-
32
+
33
+ ## Características
34
+
35
+ - **doctorLite** - Comprobación rápida de la salud para cualquier intérprete de Python
36
+ - Verificación SSL/TLS
37
+ - Fallos al cargar DLL (común con PyTorch/CUDA)
38
+ - Incompatibilidades de ABI (ARM vs x86)
39
+ - Comprobaciones de integridad de pip
40
+ - Detección de fugas de `user-site` y `PYTHONPATH`
41
+
42
+ - **scanEnvPaths** - Descubre todos los entornos de Python en tu sistema
43
+ - Encuentra entornos virtuales, entornos conda, versiones de pyenv, intérpretes base
44
+ - Profundidad y filtrado configurables
45
+
46
+ - **mapRender** - Visualiza tu ecosistema de Python
47
+ - Salida de gráfico en formato JSON para uso programático
48
+ - Diagramas Mermaid para documentación
49
+ - Agrupación de intérpretes base con análisis de radio de impacto
50
+ - Visualización de enrutamiento de tareas
51
+
52
+ - **runLog** - Realiza un seguimiento del historial de ejecución de tareas
53
+ - Formato JSONL de solo anexión
54
+ - Registra qué entorno ejecutó qué tarea
55
+ - Captura el éxito/fracaso con clasificación de errores
56
+
57
+ - **taskCluster** - Agrupa las ejecuciones de tareas por firma
58
+ - Detección de tareas inestables (fallos/éxitos inconsistentes)
59
+ - Detección de inestabilidad dependiente del entorno
60
+ - Identificación de puntos críticos de fallo
61
+ - Análisis de contagio (causas raíz compartidas)
62
+
63
+ ## Instalación
64
+
65
65
  ```bash
66
66
  npm install
67
67
  npm run build
68
68
  ```
69
-
70
- ## Uso de la línea de comandos
71
-
69
+
70
+ ## Uso de la línea de comandos
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
- ### Opciones de la línea de comandos
87
-
88
- | Flag | Descripción |
89
- | ------ | ------------- |
90
- | `--root, -r` | Directorio a analizar (se puede especificar varios) |
91
- | `--out` | Directorio de salida (por defecto: `.venvkit`) |
92
- | `--maxDepth` | Profundidad máxima del directorio a analizar (por defecto: 5) |
93
- | `--strict` | Habilitar comprobaciones de modo estricto |
94
- | `--httpsProbe` | Probar la conectividad HTTPS |
95
- | `--minScore` | Filtrar entornos por debajo de esta puntuación de salud |
96
- | `--concurrency` | Comprobaciones paralelas (por defecto: número de núcleos de la CPU) |
97
- | `--runlog` | Ruta al registro de ejecución de tareas (JSONL) |
98
- | `--no-tasks` | Omitir la visualización de tareas |
99
-
100
- ### Salidas
101
-
102
- | File | Descripción |
103
- | ------ | ------------- |
104
- | `venv-map.json` | Datos completos del gráfico (nodos, aristas, resumen) |
105
- | `venv-map.mmd` | Código fuente del diagrama Mermaid |
106
- | `venv-map.html` | Visor interactivo |
107
- | `reports.json` | Informes raw de doctorLite |
108
- | `insights.json` | Recomendaciones prácticas |
109
-
110
- ## Uso programático
111
-
85
+
86
+ ### Opciones de la línea de comandos
87
+
88
+ | Parámetro | Descripción |
89
+ |------|-------------|
90
+ | `--root, -r` | Directorio a analizar (se pueden especificar múltiples) |
91
+ | `--out` | Directorio de salida (por defecto: `.venvkit`) |
92
+ | `--maxDepth` | Profundidad máxima del directorio a analizar (por defecto: 5) |
93
+ | `--strict` | Habilita las comprobaciones de modo estricto |
94
+ | `--httpsProbe` | Prueba la conectividad HTTPS |
95
+ | `--minScore` | Filtra los entornos con una puntuación de salud inferior a esta |
96
+ | `--concurrency` | Comprobaciones en paralelo (por defecto: número de núcleos de la CPU) |
97
+ | `--runlog` | Ruta al registro de ejecución de tareas (JSONL) |
98
+ | `--no-tasks` | Omitir la visualización de tareas |
99
+
100
+ ### Salidas
101
+
102
+ | Archivo | Descripción |
103
+ |------|-------------|
104
+ | `venv-map.json` | Datos completos del gráfico (nodos, aristas, resumen) |
105
+ | `venv-map.mmd` | Código fuente del diagrama Mermaid |
106
+ | `venv-map.html` | Visor interactivo |
107
+ | `reports.json` | Informes raw de doctorLite |
108
+ | `insights.json` | Recomendaciones prácticas |
109
+
110
+ ## Uso programático
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
- ## Esquema del registro
148
-
149
- Realiza un seguimiento de las ejecuciones de tareas añadiendo eventos a un archivo JSONL:
150
-
146
+
147
+ ## Esquema del registro
148
+
149
+ Realiza un seguimiento de las ejecuciones de tareas añadiendo eventos a un archivo 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
- ## Agrupación de tareas
177
-
178
- Cuando tienes muchas ejecuciones de tareas, venvkit las agrupa por firma:
179
-
175
+
176
+ ## Agrupación de tareas
177
+
178
+ Cuando tienes muchas ejecuciones de tareas, venvkit las agrupa por 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
- ## Esquema del gráfico
197
-
198
- La salida de `mapRender` sigue un esquema JSON estable:
199
-
195
+
196
+ ## Esquema del gráfico
197
+
198
+ La salida de `mapRender` sigue un esquema JSON estable:
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
- ### Tipos de nodos
222
-
223
- | Type | Descripción |
224
- | ------ | ------------- |
225
- | `base` | Intérprete de Python base (por ejemplo, `C:\Python311`) |
226
- | `venv` | Entorno virtual |
227
- | `task` | Firma de tarea (ejecuciones agrupadas) |
228
-
229
- ### Tipos de aristas
230
-
231
- | Type | Descripción |
232
- | ------ | ------------- |
233
- | `USES_BASE` | Relación venv → base |
234
- | `ROUTES_TASK_TO` | Enrutamiento de tarea → entorno |
235
- | `FAILED_RUN` | Fallo de tarea → entorno (con líneas discontinuas en Mermaid) |
236
-
237
- ## Códigos de error
238
-
239
- | Code | Severidad | Descripción |
240
- | ------ | ---------- | ------------- |
241
- | `SSL_BROKEN` | bad | El módulo SSL no se puede importar |
242
- | `CERT_STORE_FAIL` | warn | La verificación del certificado HTTPS falla |
243
- | `DLL_LOAD_FAIL` | bad | La carga de la DLL de la extensión nativa falla |
244
- | `ABI_MISMATCH` | bad | Incompatibilidad binaria (ARM/x86) |
245
- | `PIP_MISSING` | warn | pip no está disponible |
246
- | `PIP_CHECK_FAIL` | warn | Se detectan conflictos de dependencias |
247
- | `USER_SITE_LEAK` | warn | Los paquetes del usuario están habilitados en el entorno virtual. |
248
- | `PYTHONPATH_INJECTED` | warn | La variable de entorno PYTHONPATH está configurada. |
249
- | `ARCH_MISMATCH` | bad | Se está utilizando una versión de Python de 32 bits cuando se requiere una versión de 64 bits. |
250
- | `PYVENV_CFG_INVALID` | warn | Archivo pyvenv.cfg dañado o faltante. |
251
-
252
- ## Desarrollo
253
-
220
+
221
+ ### Tipos de nodos
222
+
223
+ | Tipo | Descripción |
224
+ |------|-------------|
225
+ | `base` | Intérprete de Python base (ej., `C:\Python311`) |
226
+ | `venv` | Entorno virtual |
227
+ | `task` | Firma de tarea (ejecuciones agrupadas) |
228
+
229
+ ### Tipos de aristas
230
+
231
+ | Tipo | Descripción |
232
+ |------|-------------|
233
+ | `USES_BASE` | Relación venv → base |
234
+ | `ROUTES_TASK_TO` | Enrutamiento de tarea → entorno |
235
+ | `FAILED_RUN` | Fallo de tarea → entorno (con líneas discontinuas en Mermaid) |
236
+
237
+ ## Códigos de error
238
+
239
+ | Código | Severidad | Descripción |
240
+ |------|----------|-------------|
241
+ | `SSL_BROKEN` | bad | El módulo SSL no se puede importar |
242
+ | `CERT_STORE_FAIL` | warn | La verificación del certificado HTTPS falla |
243
+ | `DLL_LOAD_FAIL` | bad | La carga de la DLL de la extensión nativa falla |
244
+ | `ABI_MISMATCH` | bad | Incompatibilidad binaria (ARM/x86) |
245
+ | `PIP_MISSING` | warn | pip no está disponible |
246
+ | `PIP_CHECK_FAIL` | warn | Se detectan conflictos de dependencias |
247
+ | `USER_SITE_LEAK` | warn | `user-site-packages` habilitado en el entorno virtual |
248
+ | `PYTHONPATH_INJECTED` | warn | La variable de entorno `PYTHONPATH` está establecida |
249
+ | `ARCH_MISMATCH` | bad | Python de 32 bits cuando se requiere 64 bits |
250
+ | `PYVENV_CFG_INVALID` | warn | `pyvenv.cfg` corrupto o faltante |
251
+
252
+ ## Desarrollo
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
- ## Licencia
262
-
263
- MIT.
260
+
261
+ ## Seguridad y ámbito de datos
262
+
263
+ - **Escaneo de solo lectura:** Los archivos ejecutables de Python y pyvenv.cfg se leen, pero nunca se modifican.
264
+ - **Subprocesos:** Inicia `python` con argumentos controlados; no se ejecuta ningún comando a través de la shell.
265
+ - **Red:** La opción `--httpsProbe` permite probar los certificados SSL; no se realizan otras solicitudes de salida.
266
+ - **No se recopilan ni se envían datos de telemetría:** Consulte el archivo [SECURITY.md](SECURITY.md) para obtener la política completa.
267
+
268
+ ## Licencia
269
+
270
+ MIT
271
+
272
+ ---
273
+
274
+ Creado por [MCP Tool Shop](https://mcp-tool-shop.github.io/)