theus-cli 0.1.3 → 0.1.5

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 (4) hide show
  1. package/LICENSE +78 -0
  2. package/README.md +112 -174
  3. package/cli.js +35539 -40831
  4. package/package.json +3 -1
package/LICENSE ADDED
@@ -0,0 +1,78 @@
1
+ LICENCIA COMERCIAL PROPIETARIA DE THEUS
2
+ Copyright (c) 2026 Marketrix / Theus (theus.pe). Todos los derechos reservados.
3
+
4
+ 1. TITULARIDAD
5
+ Este software, denominado "Theus CLI" o "Theus", incluyendo su codigo
6
+ fuente, binarios, bundles compilados, documentacion, marcas, logotipos,
7
+ arte y demas materiales asociados (en conjunto, el "Software"), es
8
+ propiedad exclusiva de Marketrix ("el Titular"), operador del dominio
9
+ comercial theus.pe.
10
+
11
+ 2. LICENCIA LIMITADA DE USO
12
+ Sujeto al cumplimiento de estos terminos y, cuando corresponda, al pago
13
+ del plan de suscripcion vigente contratado a traves de theus.pe, el
14
+ Titular concede al usuario una licencia limitada, personal, revocable,
15
+ no exclusiva, no transferible y no sublicenciable para instalar y
16
+ ejecutar el Software con fines de uso del producto Theus.
17
+
18
+ 3. RESTRICCIONES
19
+ Salvo autorizacion previa, expresa y por escrito del Titular, el usuario
20
+ NO puede:
21
+ a) copiar, distribuir, publicar, alquilar, prestar, vender o revender el
22
+ Software, en todo o en parte;
23
+ b) modificar, traducir, adaptar o crear obras derivadas del Software;
24
+ c) realizar ingenieria inversa, descompilar o desensamblar el Software,
25
+ salvo en la medida en que la ley aplicable lo permita de forma
26
+ imperativa;
27
+ d) eliminar, ocultar o alterar avisos de derechos de autor, marcas o
28
+ atribuciones incluidos en el Software;
29
+ e) usar el Software para construir un producto o servicio que compita
30
+ con Theus;
31
+ f) usar las marcas "Theus", "theus.pe" o el arte asociado fuera del uso
32
+ normal del producto.
33
+
34
+ 4. SUSCRIPCIONES Y SERVICIOS
35
+ Determinadas funciones del Software dependen de servicios en linea del
36
+ Titular (por ejemplo, el gateway de modelos y la consola de theus.pe) y
37
+ pueden requerir una suscripcion de pago activa. El Titular puede
38
+ modificar, suspender o descontinuar dichos servicios conforme a los
39
+ terminos comerciales publicados en theus.pe.
40
+
41
+ 5. CODIGO DE TERCEROS
42
+ El Software puede incluir componentes de terceros sujetos a sus propias
43
+ licencias. Nada en esta licencia limita los derechos que dichas
44
+ licencias otorgan sobre esos componentes; sus avisos se conservan en los
45
+ archivos correspondientes.
46
+
47
+ 6. PROPIEDAD INTELECTUAL
48
+ El Software se licencia, no se vende. El Titular conserva todos los
49
+ derechos, titulos e intereses sobre el Software que no se conceden
50
+ expresamente en esta licencia.
51
+
52
+ 7. SIN GARANTIAS
53
+ EL SOFTWARE SE ENTREGA "TAL CUAL" Y "SEGUN DISPONIBILIDAD", SIN
54
+ GARANTIAS DE NINGUN TIPO, EXPRESAS O IMPLICITAS, INCLUYENDO SIN
55
+ LIMITACION GARANTIAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPOSITO
56
+ PARTICULAR Y NO INFRACCION.
57
+
58
+ 8. LIMITACION DE RESPONSABILIDAD
59
+ EN LA MAXIMA MEDIDA PERMITIDA POR LA LEY, EL TITULAR NO SERA RESPONSABLE
60
+ POR DANOS INDIRECTOS, INCIDENTALES, ESPECIALES, PUNITIVOS O
61
+ CONSECUENTES, NI POR PERDIDA DE DATOS, LUCRO CESANTE O INTERRUPCION DE
62
+ NEGOCIO, DERIVADOS DEL USO O LA IMPOSIBILIDAD DE USO DEL SOFTWARE.
63
+
64
+ 9. TERMINACION
65
+ Esta licencia termina automaticamente si el usuario incumple cualquiera
66
+ de sus terminos o si finaliza la suscripcion que la habilita. Al
67
+ terminar, el usuario debe cesar todo uso del Software y eliminar las
68
+ copias en su poder.
69
+
70
+ 10. LEY APLICABLE
71
+ Esta licencia se rige por las leyes de la Republica del Peru. Cualquier
72
+ controversia se somete a la jurisdiccion de los tribunales de Lima,
73
+ Peru.
74
+
75
+ Para licencias corporativas, redistribucion u otros permisos, contacta al
76
+ Titular a traves de theus.pe.
77
+
78
+ THEUS — HECHO EN PERU · AD ASTRA PER ASPERA
package/README.md CHANGED
@@ -1,96 +1,60 @@
1
- # THEUS
1
+ # THEUS — CLI
2
2
 
3
- **THEUS HECHO EN PERU**
4
- **AD ASTRA PER ASPERA**
5
- Dominio comercial: `theus.pe`
3
+ > **THEUS HECHO EN PERÚ · AD ASTRA PER ASPERA**
4
+ > Dominio: [`theus.pe`](https://theus.pe) · Docs: [`docs.theus.pe`](https://docs.theus.pe)
6
5
 
7
- Theus es un agente CLI local-first para programar, entender proyectos, levantar memoria de codigo, visualizar grafos y explorar bases de datos. El producto nace para que cada usuario conecte su propio modelo local o su propia API key, sin depender de una marca externa ni de un proveedor unico.
6
+ **Theus** es un agente de código **local-first y multimodelo**: abre una sesión interactiva desde cualquier proyecto, lo indexa en tu propia máquina, mantiene memoria y un grafo del código, levanta un dashboard visual, y ejecuta tareas de programación con el modelo que elijas.
8
7
 
9
- Esto ya no es un documento de estudio ni una propuesta de rebrand. Este repositorio es la base del producto Theus.
8
+ Este repo es el **producto principal**: el CLI `theus` (Bun + Ink/React en TSX). El lado servidor (web, gateway y consola) vive en [`MarketrixPE/theus-pe`](https://github.com/MarketrixPE/theus-pe).
10
9
 
11
- ## Que hace Theus
10
+ ---
12
11
 
13
- - Abre una sesion interactiva desde cualquier proyecto con `theus`.
14
- - Indexa el proyecto localmente para reducir contexto repetido y mejorar memoria.
15
- - Levanta una API local en `127.0.0.1` con estado, grafo y esquema de base de datos.
16
- - Abre un dashboard visual del proyecto con mapa neuronal, archivos, simbolos, entidades, base de datos y memoria.
17
- - Permite conectar modelos locales, endpoints OpenAI-compatible o proveedores BYOK.
18
- - Mantiene paquetes propios en `vendor/theus-packages/` para preparar exports SDK, tipos y stubs de producto.
19
- - Usa identidad Theus: `.theus`, variables `THEUS_*`, dominio `theus.pe` y copy en espanol primero.
12
+ ## 🧠 Cómo encaja en el negocio
20
13
 
21
- ## Instalacion para usuarios
14
+ Theus se puede usar de dos maneras, y las dos son ciudadanas de primera clase:
22
15
 
23
- Requisito de runtime: **Bun**. Theus se compila y se ejecuta con Bun (`cli.js` es
24
- un bundle con target `bun`, no corre bajo Node). Si no tienes Bun, cualquiera de
25
- las opciones de abajo lo instala por ti, o hazlo manualmente:
16
+ 1. **Local-first / BYOK** — apunta el CLI a cualquier endpoint OpenAI-compatible (Ollama, LM Studio, un gateway propio, tu propia key). Todo corre en tu máquina; ningún servicio remoto es obligatorio para arrancar.
17
+ 2. **Suscripción Theus (gateway gestionado)** — `theus login` conecta el CLI al gateway de `theus.pe`. Con **una sola API key de Theus** accedes a los **~20 mejores modelos** (Claude, GPT, Gemini, DeepSeek, Grok, Qwen, GLM…). **Theus** administra centralmente las keys de cada proveedor; tú solo usas tu suscripción — **no traes tus propias keys de proveedor**.
26
18
 
27
- ```bash
28
- curl -fsSL https://bun.sh/install | bash
29
- ```
30
-
31
- ### Opcion A — npm (global)
32
-
33
- ```bash
34
- npm install -g theus-cli
35
- theus --version
36
- ```
37
-
38
- Uso normal:
39
-
40
- ```bash
41
- cd /ruta/de/tu/proyecto
42
- theus
43
- ```
19
+ En el modo suscripción, el modelo por defecto es **`titan`**: el orquestador propio de Theus que analiza cada petición, decide si la resuelve con **un modelo** o la **descompone entre varios**, y **sintetiza** la respuesta final. (Toda la lógica de TITAN, el catálogo y la gestión de keys está documentada en el README de [`theus-pe`](https://github.com/MarketrixPE/theus-pe).)
44
20
 
45
- Actualizar Theus cuando publiquemos una nueva version:
21
+ > **Regla de producto:** el copy visible es **español-first** y **sin marcas externas**. La única excepción es el catálogo de modelos, donde sí aparecen los nombres reales.
46
22
 
47
- ```bash
48
- theus update
49
- # o dentro del chat:
50
- /update
51
- ```
52
-
53
- Ejecucion puntual sin instalar (descarga temporal):
54
-
55
- ```bash
56
- npx theus-cli --help
57
- ```
58
-
59
- > Nota: el paquete publica un unico bundle self-contained (`cli.js`) con shebang
60
- > `#!/usr/bin/env bun`. `npm install -g` crea el enlace `theus` apuntando a ese
61
- > bundle; necesitas Bun en el PATH para ejecutarlo.
23
+ ---
62
24
 
63
- ### Opcion B — instalador (curl | bash)
25
+ ## 🚀 Instalación (usuarios)
64
26
 
65
- Instala Bun si falta, clona el CLI, compila el bundle y enlaza `theus` en tu PATH:
27
+ Requisito de runtime: **Bun** (`cli.js` es un bundle con target `bun`, no corre bajo Node). El instalador oficial instala Bun por ti si falta, verificando su checksum SHA-256.
66
28
 
67
29
  ```bash
68
30
  curl -fsSL https://theus.pe/install.sh | bash
31
+ theus --version
69
32
  ```
70
33
 
71
- Variables opcionales del instalador: `THEUS_REPO_URL`, `THEUS_REF`, `THEUS_HOME`,
72
- `THEUS_BIN_DIR`. El script vive en `scripts/install.sh`.
34
+ El instalador detecta tu plataforma (macOS/Linux, x64/arm64), descarga el tarball del último release (primario desde `theus.pe/dl`, con GitHub Releases como respaldo — el repo es privado), lo instala en `~/.theus/app` y enlaza `theus` en tu PATH. Es idempotente: para actualizar, vuelve a ejecutarlo.
73
35
 
74
- ### Opcion C — desde el repositorio (desarrollo)
36
+ **Alternativa vía npm** (también requiere Bun):
75
37
 
76
38
  ```bash
77
- bun install
78
- bun run build # genera cli.js self-contained
79
- ./cli.js --version # o: bun run dev
39
+ npm install -g theus-cli
80
40
  ```
81
41
 
82
- Para escribir `theus` desde cualquier proyecto durante el desarrollo, enlaza el
83
- bundle compilado:
42
+ Variables del instalador: `THEUS_INSTALL_MODE` (`auto`|`release`|`source`), `THEUS_VERSION` (`latest` o `vX.Y.Z`), `THEUS_HOME`, `THEUS_BIN_DIR`.
43
+
44
+ ### Primer uso
84
45
 
85
46
  ```bash
86
- ln -sf "$(pwd)/cli.js" /usr/local/bin/theus
47
+ cd /ruta/de/tu/proyecto
48
+ theus # sesión interactiva
49
+ theus -p "tu prompt" # modo no interactivo
50
+ theus login # conectar la suscripción Theus
87
51
  ```
88
52
 
89
- ## Conectar un modelo
53
+ ---
90
54
 
91
- Theus lee primero variables `THEUS_*`. Puedes apuntar a Ollama, LM Studio, LiteLLM, OpenRouter, un gateway propio o cualquier servidor OpenAI-compatible.
55
+ ## 🧩 Conectar un modelo
92
56
 
93
- Ejemplo con endpoint local:
57
+ Theus lee primero las variables `THEUS_*`. Apunta a cualquier endpoint OpenAI-compatible:
94
58
 
95
59
  ```bash
96
60
  export THEUS_BASE_URL="http://127.0.0.1:11434/v1"
@@ -99,155 +63,129 @@ export THEUS_API_KEY="local"
99
63
  theus
100
64
  ```
101
65
 
102
- Ejemplo con archivo de proveedores:
66
+ O define proveedores en `~/.theus/providers.json`:
103
67
 
104
68
  ```json
105
69
  {
106
70
  "providers": [
107
- {
108
- "id": "ollama",
109
- "adapter": "openai-compatible",
110
- "enabled": true,
111
- "options": {
112
- "baseURL": "http://127.0.0.1:11434/v1",
113
- "model": "llama3.1",
114
- "apiKey": "local"
115
- }
116
- }
71
+ { "id": "ollama", "adapter": "openai-compatible", "enabled": true,
72
+ "options": { "baseURL": "http://127.0.0.1:11434/v1", "model": "llama3.1", "apiKey": "local" } }
117
73
  ],
118
- "policy": {
119
- "text": ["ollama"]
120
- }
74
+ "policy": { "text": ["ollama"] }
121
75
  }
122
76
  ```
123
77
 
124
- Ruta esperada del archivo:
78
+ **`theus login`** hace el flujo OAuth/PKCE contra `theus.pe`, intercambia el código por token y deja instalado el proveedor `theus-official` (`https://theus.pe/v1`, modelo `titan`) en `~/.theus/providers.json`. A partir de ahí basta con `theus`.
125
79
 
126
- ```text
127
- ~/.theus/providers.json
128
- ```
80
+ **Orden de selección de proveedor** (`services/api/theus.ts`): `THEUS_DISABLE_MAIN_PROVIDER=1` → env `THEUS_BASE_URL`/`THEUS_OPENAI_BASE_URL` → primer proveedor con texto en `providers.json` → motor de compatibilidad. Ningún servicio remoto es obligatorio para arrancar.
129
81
 
130
- ## Dashboard local
82
+ ### Variables útiles
131
83
 
132
- Al iniciar Theus dentro de un proyecto, el servicio de inteligencia local:
84
+ | Variable | Uso |
85
+ | --- | --- |
86
+ | `THEUS_BASE_URL` / `THEUS_OPENAI_BASE_URL` | endpoint OpenAI-compatible |
87
+ | `THEUS_MODEL` / `THEUS_API_KEY` / `THEUS_PROVIDER_ID` | modelo, key y nombre del proveedor |
88
+ | `THEUS_DISABLE_MAIN_PROVIDER=1` | fuerza el motor de compatibilidad |
89
+ | `THEUS_NO_PROJECT_INTELLIGENCE=1` | no levanta índice/API/dashboard |
90
+ | `THEUS_NO_OPEN_DASHBOARD=1` | levanta la API sin abrir el navegador |
91
+ | `PROJECT_API_PORT` / `INDEX_MAX_FILES` | puerto local / límite de archivos indexados |
133
92
 
134
- - recorre archivos relevantes,
135
- - extrae simbolos,
136
- - construye nodos y relaciones,
137
- - detecta esquemas SQL/Prisma,
138
- - guarda indice y memoria bajo `~/.theus/knowledge/`,
139
- - expone un dashboard local.
93
+ ---
140
94
 
141
- Endpoints disponibles:
95
+ ## 📊 Dashboard e inteligencia local
96
+
97
+ Al iniciar dentro de un proyecto, el servicio de inteligencia local indexa archivos, extrae símbolos, construye el grafo, detecta esquemas SQL/Prisma, guarda índice y memoria en `~/.theus/knowledge/` y expone un dashboard en `127.0.0.1`:
142
98
 
143
99
  ```text
144
- /dashboard
145
- /api/health
146
- /api/status
147
- /api/graph
148
- /api/database
149
- /api/db
150
- /api/schema
100
+ /dashboard /api/status /api/graph /api/database /api/schema /api/health
151
101
  ```
152
102
 
153
- ## Login y cuenta Theus
103
+ ---
154
104
 
155
- El flujo remoto usa la arquitectura OAuth heredada, pero servida por `theus.pe`.
105
+ ## 🛠️ Desarrollo
156
106
 
157
- ```text
158
- GET https://theus.pe/cai/oauth/authorize
159
- POST https://theus.pe/v1/oauth/token
160
- GET https://theus.pe/api/oauth/profile
161
- GET https://theus.pe/api/oauth/theus_cli/roles
162
- POST https://theus.pe/api/oauth/theus_cli/create_api_key
107
+ ```bash
108
+ bun install
109
+ bun run dev # corre desde fuente (entrypoints/cli.tsx)
110
+ ./bin/theus --version # vía el launcher (preload de shims)
111
+ bun run build # bundle → ./cli.js (usa el macro feature(); --define feature=false)
112
+ bun run typecheck # tsc --noEmit — ⚠️ ver caveat
163
113
  ```
164
114
 
165
- Uso directo:
115
+ **Smoke tests** (la verificación real, no el typecheck):
166
116
 
167
117
  ```bash
168
- theus login
118
+ THEUS_NO_PROJECT_INTELLIGENCE=1 ./bin/theus --help
119
+ THEUS_NO_OPEN_DASHBOARD=1 ./bin/theus
120
+ curl http://127.0.0.1:<puerto>/api/status
121
+ curl http://127.0.0.1:<puerto>/api/database
169
122
  ```
170
123
 
171
- Ese comando abre `https://theus.pe/cai/oauth/authorize`, recibe el callback local, intercambia `code` por token OAuth y crea una API key Theus para configurar la terminal. La ruta de suscripcion dentro del CLI tambien apunta a `https://theus.pe/cai/oauth/authorize`; no debe abrir dominios externos como flujo principal de producto.
124
+ > **Caveat de typecheck:** `bun run typecheck` aún falla por deuda de tipos heredada y stubs reconstruidos. **No** lo trates como gate. Valida con tests enfocados + smoke tests del CLI + chequeos del dashboard.
172
125
 
173
- Variables utiles:
126
+ ### Flujo de arranque
174
127
 
175
- | Variable | Uso |
176
- | --- | --- |
177
- | `THEUS_BASE_URL` | URL base del proveedor OpenAI-compatible |
178
- | `THEUS_OPENAI_BASE_URL` | Alias compatible para proveedor OpenAI-compatible |
179
- | `THEUS_MODEL` | Modelo principal |
180
- | `THEUS_OPENAI_MODEL` | Alias compatible de modelo |
181
- | `THEUS_API_KEY` | API key del proveedor |
182
- | `THEUS_PROVIDER_ID` | Nombre visible del proveedor activo |
183
- | `THEUS_DISABLE_MAIN_PROVIDER=1` | Fuerza el motor de compatibilidad |
184
- | `THEUS_DISABLE_TOOLS=1` | Desactiva tool-calling para endpoints simples |
185
- | `THEUS_NO_PROJECT_INTELLIGENCE=1` | No levanta indice/API/dashboard |
186
- | `THEUS_NO_OPEN_DASHBOARD=1` | Levanta API sin abrir el navegador |
187
- | `PROJECT_API_PORT=65235` | Fija el puerto local |
188
- | `INDEX_MAX_FILES=2500` | Limite de archivos indexados |
189
- | `THEUS_ENABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1` | Opt-in para marketplace oficial |
190
-
191
- ## Comandos principales
192
-
193
- | Comando | Proposito |
194
- | --- | --- |
195
- | `theus` | Inicia la sesion interactiva |
196
- | `theus -p "prompt"` | Ejecuta en modo no interactivo |
197
- | `theus --help` | Muestra ayuda |
198
- | `/help` | Ayuda dentro del REPL |
199
- | `/login` | Configuracion de acceso cuando se usa una cuenta remota |
200
- | `/model` | Seleccion de modelo |
201
- | `/mcp` | Servidores MCP |
202
- | `/permissions` | Permisos de herramientas |
203
- | `/init` | Inicializa documentacion de proyecto |
128
+ ```
129
+ bin/theus → entrypoints/cli.tsx → main.tsx → setup.ts → replLauncher.tsx → screens/REPL.tsx → query.ts
130
+ ```
204
131
 
205
- El copy visible debe mantenerse en espanol primero. Cuando haga sentido, una etiqueta corta en ingles puede aparecer como apoyo: `Iniciar / Start`, `Base de datos / Database`, `Mapa neuronal / Neural map`.
132
+ `bin/theus` corre Bun con `--preload bun-shims/preload.ts` (registra el shim del macro `feature()`/`bun:bundle` y stubs internos para correr sin bundlear). `login`/`signin`/`entrar` los intercepta el launcher y los enruta a `entrypoints/theus-login.ts`.
206
133
 
207
- ## Estructura importante
134
+ ### Mapa de arquitectura
208
135
 
209
136
  ```text
210
- bin/theus launcher local
211
- entrypoints/cli.tsx entrada del CLI
212
- main.tsx entrada UI heredada, evitar editar en bloque
213
- screens/REPL.tsx REPL interactivo
214
- components/Theus/ banner, menu, setup de proveedor
215
- services/api/theus.ts router OpenAI-compatible y fallback
216
- services/projectIntelligence/ API local, dashboard, base de datos visual
217
- services/knowledge/ indice, memoria y grafo local
218
- vendor/theus-packages/ paquetes propios SDK/MCP
219
- types/theus-sdk.d.ts tipos publicos base
137
+ services/api/theus.ts proveedor de modelos — router OpenAI-compatible + fallback
138
+ services/knowledge/ índice local, grafo del proyecto, memoria (~/.theus/knowledge/)
139
+ services/projectIntelligence/ API HTTP local + dashboard + DB visual (detección SQL/Prisma)
140
+ tools.ts registro de herramientas (¡el orden importa!)
141
+ commands.ts registro de slash-commands (¡el orden importa!)
142
+ components/Theus/ banner (Prometeo ASCII), menú, setup de proveedor
143
+ vendor/theus-packages/ paquetes propios (agent-sdk, sdk, mcpb)
144
+ vendor/theus-stubs/ stubs reconstruidos de deps privadas/3ras
145
+ types/ tipos públicos + shims
220
146
  ```
221
147
 
222
- ## Calidad y verificacion
148
+ ---
223
149
 
224
- Smoke tests recomendados:
150
+ ## ⚠️ Convenciones que NO se rompen (léelas antes de tocar código)
151
+
152
+ Este CLI es una reconstrucción de un agente upstream: varios invariantes de build son **load-bearing** y fáciles de romper sin querer.
153
+
154
+ - **Mantén las extensiones `.js` en imports ESM** aunque el archivo fuente sea `.ts`/`.tsx`.
155
+ - Usa `import type` para imports de solo-tipo (`verbatimModuleSyntax` está activo).
156
+ - **No auto-ordenes ni reordenes `tools.ts` ni `commands.ts`** — el orden es significativo.
157
+ - `feature("FLAG")` es un **macro de build**, no un `if` de runtime. No lo reescribas como condicional normal; el bundler hace dead-code-elimination desde ahí (`build` pasa `--define feature=false`). Los módulos gateados por build se cargan con `require()` condicional dentro de un ternario.
158
+ - No renombres mecánicamente `process.env.USER_TYPE === 'ant'` — es un gate de build heredado.
159
+ - Evita editar `main.tsx` en bloque (entrada grande heredada). Prefiere `components/`, `hooks/`, `screens/`, `services/`, `tools/`, `commands/`.
160
+ - No cambies prompts sensibles sin motivo: `query.ts`, reglas de thinking, permisos, seguridad, prompts de herramientas.
161
+
162
+ ### Añadir una herramienta o comando
163
+
164
+ - **Herramienta:** `buildTool(...) satisfies ToolDef<...>`, constante de nombre en `prompt.ts`/`constants.ts`, regístrala en `getAllBaseTools()`, declara permisos + destructividad con precisión, y añádela a `constants/tools.ts` si los subagentes deben verla.
165
+ - **Slash-command:** vive en `commands/<nombre>/`, tipo `prompt` | `local` | `local-jsx`. Mantén `COMMANDS` como función memoizada — no la conviertas en array top-level.
166
+
167
+ ---
168
+
169
+ ## 🚢 Releases y distribución
225
170
 
226
171
  ```bash
227
- ./bin/theus --version
228
- THEUS_NO_OPEN_DASHBOARD=1 ./bin/theus
229
- curl http://127.0.0.1:<puerto>/api/status
230
- curl http://127.0.0.1:<puerto>/api/database
172
+ bun run scripts/release.ts --tag vX.Y.Z # genera dist/release/* + SHA256SUMS
231
173
  ```
232
174
 
233
- El typecheck global todavia arrastra deuda de tipos heredados y stubs reconstruidos. No se debe presentar como verde hasta cerrar esos tipos; los cambios deben validarse con pruebas enfocadas, smoke tests del CLI y verificaciones del dashboard.
175
+ Luego: sube `dist/release/*` a `/var/www/theus.pe/dl/` (y `/dl/vX.Y.Z/`), crea el release en GitHub (`MarketrixPE/theuscode`), y publica en npm (`theus-cli`; requiere OTP salvo con token de automatización). El paquete npm es solo el bundle compilado (`cli.js` + bin + arte ASCII + README): **no expone la fuente privada**.
234
176
 
235
- ## Principios de producto
177
+ ---
236
178
 
237
- - Local-first por defecto.
238
- - Cada usuario controla su modelo y su llave.
239
- - Cero marca externa en el copy visible.
240
- - Identidad Theus coherente: `theus`, `.theus`, `THEUS_*`, `theus.pe`.
241
- - El dashboard debe explicar el proyecto, no solo dibujar puntos.
242
- - Las bases de datos se muestran como capa visual real, con tablas, columnas, relaciones y fuente.
243
- - Las funciones incompletas se nombran como deuda tecnica, no como promesa terminada.
179
+ ## 📖 Docs adicionales del subproyecto
244
180
 
245
- ## Marca
181
+ - `AGENTS.md` — reglas de trabajo para agentes.
182
+ - `THEUS.md` — manual de producto/operaciones.
183
+ - `THEUS_SOURCE_NOTES.md` — internals de runtime/build.
246
184
 
247
- Nombre: **Theus**
248
- Dominio: **theus.pe**
249
- Linea: **THEUS HECHO EN PERU**
250
- Lema: **AD ASTRA PER ASPERA**
251
- Color base: rojo Peru, blanco, grafito profundo, acentos dorado/verde para grafos y datos.
185
+ ## Principios de producto
252
186
 
253
- Ultima actualizacion: 2026-07-06
187
+ - Local-first por defecto; cada usuario controla su modelo y su llave.
188
+ - Cero marca externa en el copy visible (excepto el catálogo de modelos).
189
+ - Identidad Theus coherente: `theus`, `.theus`, `THEUS_*`, `theus.pe`.
190
+ - El dashboard **explica** el proyecto, no solo dibuja puntos.
191
+ - Las funciones incompletas se nombran como deuda técnica, no como promesa terminada.