theus-cli 0.2.59 → 0.2.63
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.md +75 -2
- package/assets/fonts/satoshi/satoshi-300.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-400.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-500.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-700.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-900.woff2 +0 -0
- package/cli.js +11885 -7528
- package/package.json +16 -10
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ curl -fsSL https://theus.pe/install.sh | bash
|
|
|
31
31
|
theus --version
|
|
32
32
|
```
|
|
33
33
|
|
|
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.
|
|
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. En **Windows** usa el instalador nativo (instala también Ñaupa): `powershell -c "irm https://theus.pe/install.ps1 | iex"`.
|
|
35
35
|
|
|
36
36
|
**Alternativa vía npm** (también requiere Bun):
|
|
37
37
|
|
|
@@ -89,9 +89,53 @@ O define proveedores en `~/.theus/providers.json`:
|
|
|
89
89
|
| `THEUS_NO_PROJECT_INTELLIGENCE=1` | no levanta índice/API/dashboard |
|
|
90
90
|
| `THEUS_NO_OPEN_DASHBOARD=1` | levanta la API sin abrir el navegador |
|
|
91
91
|
| `PROJECT_API_PORT` / `INDEX_MAX_FILES` | puerto local / límite de archivos indexados |
|
|
92
|
+
| `THEUS_TITAN_CONTROL_PLANE_URL` / `THEUS_TITAN_CONTROL_PLANE_API_KEY` | activa el ledger de orquestación TITAN; ambos son obligatorios |
|
|
93
|
+
| `THEUS_TITAN_CONTROL_PLANE_TIMEOUT_MS` | timeout total de reportes y reintentos idempotentes |
|
|
94
|
+
| `THEUS_TITAN_TASK_TIMEOUT_SECONDS` | deadline real de tarea, verificación e integración |
|
|
95
|
+
| `THEUS_TITAN_FLEET_URL` / `THEUS_TITAN_FLEET_REGISTRATION_TOKEN` | habilita únicamente el comando explícito `fleet-worker`; no afecta el arranque normal |
|
|
92
96
|
|
|
93
97
|
---
|
|
94
98
|
|
|
99
|
+
### Orquestación TITAN y worktrees
|
|
100
|
+
|
|
101
|
+
El control-plane de programación es opt-in y no es necesario para usar Theus
|
|
102
|
+
localmente. Las URLs remotas deben usar HTTPS; sólo los loopbacks aceptan HTTP.
|
|
103
|
+
Con TITAN activo, un worktree se integra al padre después de
|
|
104
|
+
`integration.started` y sólo bajo `acceptEdits` o `bypassPermissions`. Conflicto,
|
|
105
|
+
dirty solapado, cancelación o timeout fallan cerrados, conservan el worktree y
|
|
106
|
+
no sobrescriben cambios del usuario. La referencia operativa, variables, retry,
|
|
107
|
+
rollback y smoke están en [THEUS.md](./THEUS.md#control-plane-de-orquestación-titan-opt-in).
|
|
108
|
+
|
|
109
|
+
### Worker distribuido TITAN Fleet
|
|
110
|
+
|
|
111
|
+
`theus fleet-worker` conecta una máquina a la cola durable compartida por CLI,
|
|
112
|
+
Chat y Enterprise. Es headless y opt-in: rota su token de worker, reclama jobs
|
|
113
|
+
por lease cercado, mantiene heartbeats independientes y ejecuta el runtime
|
|
114
|
+
agentic real de Theus dentro del workspace o un worktree. `SIGINT`/`SIGTERM`
|
|
115
|
+
activa draining, libera jobs todavía no iniciados y espera las ejecuciones en
|
|
116
|
+
curso dentro de un grace period.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
export THEUS_TITAN_FLEET_URL="https://theus.pe"
|
|
120
|
+
export THEUS_TITAN_FLEET_REGISTRATION_TOKEN="..." # nunca usar un argumento CLI
|
|
121
|
+
export THEUS_TITAN_FLEET_WORKSPACE="/ruta/al/proyecto"
|
|
122
|
+
theus fleet-worker --queues default --max-concurrency 2
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Las credenciales rotadas se guardan atómicamente en
|
|
126
|
+
`~/.theus/titan/fleet-worker.json` con modo `0600`. Un `409 stale_lease`
|
|
127
|
+
descarta el resultado y nunca lo publica como propio. La referencia completa de
|
|
128
|
+
variables, seguridad y operación está en
|
|
129
|
+
[THEUS.md](./THEUS.md#worker-distribuido-titan-fleet-opt-in).
|
|
130
|
+
Antes de integrar un worktree o enviar `complete`/`fail`, el worker persiste un
|
|
131
|
+
outbox terminal atómico `0600`. Un ACK perdido conserva el mismo payload,
|
|
132
|
+
fencing token y `completion_key`; al reiniciar se reproduce antes de aceptar
|
|
133
|
+
otro claim. Sólo un rechazo `stale_lease` definitivo autoriza rollback.
|
|
134
|
+
Los workers `platform` son sólo lectura por defecto; cualquier capacidad
|
|
135
|
+
privilegiada requiere HTTPS y una allowlist explícita de queues, sin comodines.
|
|
136
|
+
Los jobs con capacidad de escritura siempre se ejecutan en worktree; nunca
|
|
137
|
+
mutan directamente el workspace.
|
|
138
|
+
|
|
95
139
|
## 📊 Dashboard e inteligencia local
|
|
96
140
|
|
|
97
141
|
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`:
|
|
@@ -107,10 +151,12 @@ Al iniciar dentro de un proyecto, el servicio de inteligencia local indexa archi
|
|
|
107
151
|
Si el binario [`naupa`](https://theus.pe/naupa/) está instalado, Theus lo monta **automáticamente** como servidor MCP (`theus-naupa`) en cada sesión: grafo de conocimiento AST del proyecto (tree-sitter, 158 lenguajes), cadenas de llamadas, consultas Cypher y análisis de impacto en <1 ms — el agente consulta la estructura antes de recurrir a grep/read.
|
|
108
152
|
|
|
109
153
|
```bash
|
|
110
|
-
curl -fsSL https://theus.pe/naupa.sh | bash # instalar Ñaupa
|
|
154
|
+
curl -fsSL https://theus.pe/naupa.sh | bash # instalar Ñaupa (macOS/Linux)
|
|
111
155
|
THEUS_NO_NAUPA=1 theus # kill-switch por sesión
|
|
112
156
|
```
|
|
113
157
|
|
|
158
|
+
En Windows no hace falta comando aparte: el instalador oficial (`powershell -c "irm https://theus.pe/install.ps1 | iex"`) instala también Ñaupa con la UI 3D. (En PowerShell `curl` es un alias de `Invoke-WebRequest`; los comandos `curl … | bash` son solo para macOS/Linux.)
|
|
159
|
+
|
|
114
160
|
Las tools de lectura (`search_graph`, `trace_path`, `query_graph`, `get_architecture`, …) van pre-permitidas; las que escriben (`index_repository`, `delete_project`, …) pasan por el flujo de permisos normal. Caché en `~/.theus/naupa/`. Código: `services/mcpNaupa/`. Docs: [theus.pe/docs/naupa](https://theus.pe/docs/naupa).
|
|
115
161
|
|
|
116
162
|
---
|
|
@@ -197,10 +243,37 @@ Este CLI es una reconstrucción de un agente upstream: varios invariantes de bui
|
|
|
197
243
|
|
|
198
244
|
```bash
|
|
199
245
|
bun run scripts/release.ts --tag vX.Y.Z # genera dist/release/* + SHA256SUMS
|
|
246
|
+
bun run release:native --tag vX.Y.Z # candidatos nativos + manifiesto
|
|
247
|
+
bun run release:msix -- --help # paquete Windows para Partner Center
|
|
200
248
|
```
|
|
201
249
|
|
|
202
250
|
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 contiene el bundle compilado, el launcher, el logo oficial requerido por el dashboard y el README: **no expone la fuente privada**.
|
|
203
251
|
|
|
252
|
+
El release canónico sigue siendo el bundle firmado por checksum que usa el
|
|
253
|
+
instalador oficial. `release:native` produce ejecutables autónomos para macOS
|
|
254
|
+
ARM64/x64, Linux ARM64/x64 y Windows x64, valida su formato y genera
|
|
255
|
+
`SHA256SUMS` + `RELEASE-MANIFEST.json`. Esos binarios nacen con
|
|
256
|
+
`publishable:false`: antes de publicarlos deben completarse sus gates de
|
|
257
|
+
distribución. macOS se firma/notariza y repite los smokes en runners nativos.
|
|
258
|
+
Windows repite los smokes sobre el PE real y se empaqueta como MSIX; Microsoft
|
|
259
|
+
Store firma ese paquete durante la certificación. El `.exe` sin firma no se
|
|
260
|
+
publica como descarga estable.
|
|
261
|
+
|
|
262
|
+
El workflow de release prepara `theus-cli-vX.Y.Z.tar.gz`,
|
|
263
|
+
`theus-cli.tar.gz`, los cuatro tarballs Unix y un MSIX Windows privado para
|
|
264
|
+
Partner Center. GitHub queda en borrador hasta que Microsoft certifique/firme
|
|
265
|
+
el MSIX; sólo entonces se coordinan GitHub, npm y `theus.pe/dl`. Si falta una
|
|
266
|
+
firma, notarización, identidad Store o smoke nativo, no crea una publicación
|
|
267
|
+
pública.
|
|
268
|
+
|
|
269
|
+
La suite completa, el typecheck y el bundle portable se validan una vez en el
|
|
270
|
+
gate canónico de Linux. Los cuatro targets Unix compilan y ejecutan su binario
|
|
271
|
+
en el runner nativo. Windows x64 baseline se compila con el mismo Bun fijado
|
|
272
|
+
desde Linux y el PE resultante se transfiere al runner Windows, donde ejecuta
|
|
273
|
+
`--version`, `--help` y `fleet-worker --help` antes de empaquetarse como MSIX.
|
|
274
|
+
Así no se omite ninguna prueba y tampoco se fuerzan sobre Windows pruebas
|
|
275
|
+
internas que validan permisos POSIX o scripts de shell.
|
|
276
|
+
|
|
204
277
|
---
|
|
205
278
|
|
|
206
279
|
## 📖 Docs adicionales del subproyecto
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|