theus-cli 0.2.60 → 0.2.64

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 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