Skip to content

Commit 0178648

Browse files
docs: updated quickstart documentation to spanish
1 parent d9ccee5 commit 0178648

2 files changed

Lines changed: 123 additions & 1 deletion

File tree

README_ES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ Este código fuente **no es directamente compilable** solo desde este repositori
912912
- El `cli.js` compilado es un paquete autónomo de 12 MB que solo requiere Node.js >= 18.
913913
- Los mapas de origen (`cli.js.map`, 60 MB) apuntan de vuelta a estos archivos fuente para depuración.
914914

915-
**Consulta [QUICKSTART.md](QUICKSTART.md) para instrucciones de construcción y soluciones alternativas.**
915+
**Consulta [QUICKSTART.md](docs/es/QUICKSTART.md) para instrucciones de construcción y soluciones alternativas.**
916916

917917
---
918918

docs/es/QUICKSTART.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Inicio Rápido — Construcción desde el Código Fuente
2+
3+
> **Resumen (TL;DR)**: Una reconstrucción completa requiere **Bun** (no Node.js) por sus
4+
> intrínsecos de tiempo de compilación (`feature()`, `MACRO`, `bun:bundle`). Una construcción
5+
> de "mejor esfuerzo" con **esbuild** llega al ~95 % del camino, pero necesita correcciones
6+
> manuales para unos 108 módulos protegidos por flags de funciones.
7+
8+
## Opción A: Ejecutar el CLI pre-construido (Recomendado)
9+
10+
El paquete npm ya contiene un archivo `cli.js` compilado:
11+
12+
```bash
13+
cd /ruta/al/directorio/ # donde residen package.json y cli.js
14+
node cli.js --version # → 2.1.88 (Claude Code)
15+
node cli.js -p "Hola Claude" # Modo no interactivo
16+
```
17+
18+
**Autenticación requerida**: Establece la variable `ANTHROPIC_API_KEY` o ejecuta `node cli.js login`.
19+
20+
## Opción B: Construir desde el Código Fuente (Mejor Esfuerzo)
21+
22+
### Requisitos previos
23+
24+
```bash
25+
node --version # >= 18
26+
npm --version # >= 9
27+
```
28+
29+
### Pasos
30+
31+
1. **Instalar dependencias de construcción**:
32+
```bash
33+
npm install --save-dev esbuild
34+
```
35+
36+
2. **Ejecutar el script de construcción**:
37+
```bash
38+
node scripts/build.mjs
39+
```
40+
41+
3. **Si tiene éxito, ejecuta el resultado**:
42+
```bash
43+
node dist/cli.js --version
44+
```
45+
46+
### Qué hace el script de construcción
47+
48+
| Fase | Acción |
49+
|-------|--------|
50+
| **1. Copia** | `src/``build-src/` (el original no se toca) |
51+
| **2. Transformación** | `feature('X')``false` (habilita la eliminación de código muerto) |
52+
| **2b. Transformación** | `MACRO.VERSION``'2.1.88'` (inyección de versión en tiempo de compilación) |
53+
| **2c. Transformación** | `import from 'bun:bundle'` → importación simulada (stub) |
54+
| **3. Entrada** | Crea un envoltorio que inyecta las globales de MACRO |
55+
| **4. Empaquetado** | esbuild con creación iterativa de stubs para los módulos faltantes |
56+
57+
### Problemas Conocidos
58+
59+
El código fuente utiliza **intrínsecos de tiempo de compilación de Bun** que no pueden replicarse completamente con esbuild:
60+
61+
1. **`feature('FLAG')` de `bun:bundle`**: Bun resuelve esto en tiempo de compilación como `true`/`false` y elimina las ramas muertas. Nuestra transformación lo reemplaza con `false`, pero esbuild aún intenta resolver los `require()` dentro de esas ramas.
62+
63+
2. **`MACRO.X`**: El `--define` de Bun los reemplaza en tiempo de compilación. Nosotros usamos el reemplazo de cadenas, que funciona en la mayoría de los casos, pero puede fallar en expresiones complejas.
64+
65+
3. **108 módulos faltantes**: Estos son módulos internos protegidos por flags (daemon, asistente de puente, colapso de contexto, etc.) que no existen en el código fuente publicado. Normalmente son eliminados por Bun como código muerto, pero esbuild no puede eliminarlos porque las llamadas a `require()` siguen presentes sintácticamente.
66+
67+
4. **`bun:ffi`**: Utilizado para el soporte de proxies nativos. Se ha simulado (stubbed).
68+
69+
5. **TypeScript `import type` de archivos generados**: Algunos archivos de tipos generados no están en el código fuente publicado.
70+
71+
### Para corregir los problemas restantes
72+
73+
1. **Verifica qué falta todavía**:
74+
```bash
75+
npx esbuild build-src/entry.ts --bundle --platform=node \
76+
--packages=external --external:'bun:*' \
77+
--log-level=error --log-limit=0 --outfile=/dev/null 2>&1 | \
78+
grep "Could not resolve" | sort -u
79+
```
80+
81+
2. **Crea stubs para cada módulo faltante en `build-src/src/`**:
82+
- Para JS/TS: crea un archivo que exporte funciones vacías.
83+
- Para texto: crea un archivo vacío.
84+
85+
3. **Vuelve a ejecutar**:
86+
```bash
87+
node scripts/build.mjs
88+
```
89+
90+
## Opción C: Construir con Bun (Reconstrucción Completa — Requiere Acceso Interno)
91+
92+
```bash
93+
# Instalar Bun
94+
curl -fsSL https://bun.sh/install | bash
95+
96+
# La construcción real utiliza el empaquetador de Bun con flags de hito:
97+
# bun build src/entrypoints/cli.tsx \
98+
# --define:feature='(flag) => flag === "SOME_FLAG"' \
99+
# --define:MACRO.VERSION='"2.1.88"' \
100+
# --target=bun \
101+
# --outfile=dist/cli.js
102+
103+
# Sin embargo, la configuración de construcción interna no se incluye en el
104+
# paquete publicado. Necesitarías acceso al repositorio interno de Anthropic.
105+
```
106+
107+
## Estructura del Proyecto
108+
109+
```
110+
claude-code-2.1.88/
111+
├── src/ # Código fuente TypeScript original (1,884 archivos, 512K LOC)
112+
├── stubs/ # Stubs de construcción para intrínsecos de Bun
113+
│ ├── bun-bundle.ts # stub de feature() → siempre devuelve false
114+
│ ├── macros.ts # Constantes de versión MACRO
115+
│ └── global.d.ts # Declaraciones de tipos globales
116+
├── scripts/
117+
│ └── build.mjs # Script de construcción (basado en esbuild)
118+
├── node_modules/ # 192 dependencias npm
119+
├── vendor/ # Stubs de código fuente de módulos nativos
120+
├── build-src/ # Creado por el script de construcción (copia transformada)
121+
└── dist/ # Resultado de la construcción (creado por build.mjs)
122+
```

0 commit comments

Comments
 (0)