@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.
- package/README.es.md +143 -132
- package/README.fr.md +143 -132
- package/README.hi.md +143 -136
- package/README.it.md +143 -132
- package/README.ja.md +143 -132
- package/README.md +15 -4
- package/README.pt-BR.md +143 -132
- package/README.zh.md +143 -132
- package/dist/doctorLite.d.ts +75 -0
- package/dist/doctorLite.d.ts.map +1 -0
- package/dist/doctorLite.js +705 -0
- package/dist/doctorLite.js.map +1 -0
- package/dist/doctorLite.test.d.ts +2 -0
- package/dist/doctorLite.test.d.ts.map +1 -0
- package/dist/doctorLite.test.js +268 -0
- package/dist/doctorLite.test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/integration.test.d.ts +2 -0
- package/dist/integration.test.d.ts.map +1 -0
- package/dist/integration.test.js +245 -0
- package/dist/integration.test.js.map +1 -0
- package/dist/mapRender.d.ts +105 -0
- package/dist/mapRender.d.ts.map +1 -0
- package/dist/mapRender.js +718 -0
- package/dist/mapRender.js.map +1 -0
- package/dist/mapRender.test.d.ts +2 -0
- package/dist/mapRender.test.d.ts.map +1 -0
- package/dist/mapRender.test.js +571 -0
- package/dist/mapRender.test.js.map +1 -0
- package/dist/map_cli.d.ts +3 -0
- package/dist/map_cli.d.ts.map +1 -0
- package/dist/map_cli.js +278 -0
- package/dist/map_cli.js.map +1 -0
- package/dist/map_cli.test.d.ts +2 -0
- package/dist/map_cli.test.d.ts.map +1 -0
- package/dist/map_cli.test.js +320 -0
- package/dist/map_cli.test.js.map +1 -0
- package/dist/runLog.d.ts +71 -0
- package/dist/runLog.d.ts.map +1 -0
- package/dist/runLog.js +98 -0
- package/dist/runLog.js.map +1 -0
- package/dist/runLog.test.d.ts +2 -0
- package/dist/runLog.test.d.ts.map +1 -0
- package/dist/runLog.test.js +327 -0
- package/dist/runLog.test.js.map +1 -0
- package/dist/scanEnvPaths.d.ts +18 -0
- package/dist/scanEnvPaths.d.ts.map +1 -0
- package/dist/scanEnvPaths.js +177 -0
- package/dist/scanEnvPaths.js.map +1 -0
- package/dist/scanEnvPaths.test.d.ts +2 -0
- package/dist/scanEnvPaths.test.d.ts.map +1 -0
- package/dist/scanEnvPaths.test.js +250 -0
- package/dist/scanEnvPaths.test.js.map +1 -0
- package/dist/taskCluster.d.ts +62 -0
- package/dist/taskCluster.d.ts.map +1 -0
- package/dist/taskCluster.js +180 -0
- package/dist/taskCluster.js.map +1 -0
- package/dist/taskCluster.test.d.ts +2 -0
- package/dist/taskCluster.test.d.ts.map +1 -0
- package/dist/taskCluster.test.js +375 -0
- package/dist/taskCluster.test.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +26 -0
- package/dist/vitest.config.js.map +1 -0
- package/dist/windows.test.d.ts +6 -0
- package/dist/windows.test.d.ts.map +1 -0
- package/dist/windows.test.js +121 -0
- package/dist/windows.test.js.map +1 -0
- package/package.json +6 -2
package/README.es.md
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="README.
|
|
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
|
|
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
|
|
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
|
-
|
|
|
89
|
-
|
|
90
|
-
| `--root, -r` | Directorio a analizar (se
|
|
91
|
-
| `--out` | Directorio de salida (por defecto: `.venvkit`) |
|
|
92
|
-
| `--maxDepth` | Profundidad máxima del directorio a analizar (por defecto: 5) |
|
|
93
|
-
| `--strict` |
|
|
94
|
-
| `--httpsProbe` |
|
|
95
|
-
| `--minScore` |
|
|
96
|
-
| `--concurrency` | Comprobaciones
|
|
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
|
-
|
|
|
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
|
-
|
|
|
224
|
-
|
|
225
|
-
| `base` | Intérprete de Python base (
|
|
226
|
-
| `venv` | Entorno virtual |
|
|
227
|
-
| `task` | Firma de tarea (ejecuciones agrupadas) |
|
|
228
|
-
|
|
229
|
-
### Tipos de aristas
|
|
230
|
-
|
|
231
|
-
|
|
|
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
|
-
|
|
|
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 |
|
|
248
|
-
| `PYTHONPATH_INJECTED` | warn | La variable de entorno PYTHONPATH está
|
|
249
|
-
| `ARCH_MISMATCH` | bad |
|
|
250
|
-
| `PYVENV_CFG_INVALID` | warn |
|
|
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
|
-
##
|
|
262
|
-
|
|
263
|
-
|
|
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/)
|