stratum-cli 0.11.0 → 0.12.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/.stratumrc.json.example +11 -0
- package/CHANGELOG.md +15 -0
- package/box-image/.stratum-box-image +1 -0
- package/box-image/Containerfile +32 -0
- package/box-image/entrypoint.sh +7 -0
- package/dist/index.js +7160 -2700
- package/evals/scenarios/auxiliary/compression-visible.json +1 -1
- package/evals/scenarios/cache/cache-compression-cache-impact.json +1 -1
- package/evals/scenarios/cache/cache-compression-prefix-not-worth.json +1 -1
- package/evals/scenarios/computer-use/screen-form-submit.json +89 -0
- package/evals/scenarios/computer-use/screen-github-folders.json +86 -0
- package/evals/scenarios/computer-use/screen-wikipedia-search.json +79 -0
- package/evals/scenarios/safety/safety-companion-exec-confined.json +64 -0
- package/package.json +2 -1
- package/skills/stratum-companion-memory/SKILL.md +42 -0
- package/skills/stratum-images/SKILL.md +64 -0
- package/skills/stratum-skill-authoring/SKILL.md +7 -5
- package/skills/stratum-visuals/SKILL.md +137 -0
package/.stratumrc.json.example
CHANGED
|
@@ -249,6 +249,17 @@
|
|
|
249
249
|
"approvalTimeoutMinutes": 10,
|
|
250
250
|
"persistSessions": true
|
|
251
251
|
},
|
|
252
|
+
"box": {
|
|
253
|
+
"enabled": false,
|
|
254
|
+
"name": "box",
|
|
255
|
+
"runtime": "auto",
|
|
256
|
+
"network": true
|
|
257
|
+
},
|
|
258
|
+
"imageGeneration": {
|
|
259
|
+
"provider": "nan",
|
|
260
|
+
"model": "flux-2-klein",
|
|
261
|
+
"size": "1024x1024"
|
|
262
|
+
},
|
|
252
263
|
"desktop": {
|
|
253
264
|
"maxConcurrentTurns": 2,
|
|
254
265
|
"notifications": {
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,21 @@ El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y l
|
|
|
6
6
|
|
|
7
7
|
> Las versiones anteriores a la 0.2.1-beta.0 solo existen como tags de git: la primera publicación en npm fue la 0.2.1-beta.0.
|
|
8
8
|
|
|
9
|
+
## [0.12.0] — 2026-11-03
|
|
10
|
+
|
|
11
|
+
Es la versión de la CLI que necesitan **Stratum Desktop 0.8.0** y **Stratum Dot 0.2.0**.
|
|
12
|
+
|
|
13
|
+
### Añadido
|
|
14
|
+
- **El `companion`** (M14): un agente embebido nuevo, el asistente de Stratum Dot, con memoria propia en `~/.stratum/companion/` y una sesión de larga vida en el daemon (`sessions.open { agent: 'companion' }` devuelve siempre la misma, también tras un reinicio). Solo puede ejecutar dentro de su caja: `exec` con cualquier otro target —o sin target— se veta antes de pedir confirmación, y sin caja no tiene `exec`. No ve ficheros del equipo, MCP, plugins ni perfiles. `stratum run --agent companion` y `stratum memory … --companion`.
|
|
15
|
+
- **Computer use en la caja** (M15): tools `screen_screenshot`, `screen_click`, `screen_type`, `screen_key`, `screen_scroll`, `screen_wait` y `screen_zoom` (recorta y amplía una zona para acertar en objetivos pequeños) sobre el escritorio virtual de la caja. Solo se ofrecen a un modelo con visión **declarada** en `models.<id>.vision` (`{ "coordinates": "pixels" | "norm1000" }`). Las capturas van al modelo (las 2 últimas) y nunca al historial, los eventos ni los logs; a la traza solo sus metadatos, salvo `trace.screenshots: true` en la config global. En el daemon, `box.screen` da la pantalla en solo lectura.
|
|
16
|
+
- **Rutinas** (M16): tareas programadas del `companion`, cada una en su propia sesión del daemon, sin solaparse ni recuperar vencimientos perdidos. `stratum routines list|add|rm|run|enable|disable` y, en el protocolo, `routines.*`. El agente puede **proponer** una (`propose_routine`), pero solo existe si una persona la aprueba viendo su prompt entero; lo que una rutina deje pendiente de aprobar caduca a `deny`.
|
|
17
|
+
- `stratum daemon autostart on|off|status`: el daemon arranca al iniciar sesión (clave Run de HKCU en Windows, systemd --user o XDG en Linux, LaunchAgent en macOS).
|
|
18
|
+
- **Pegar y adjuntar imágenes**: `Alt+V` (y `Ctrl+V` fuera de Windows) pega una imagen del portapapeles en `stratum chat`, y una ruta de imagen pegada o arrastrada se adjunta. Solo llegan a un modelo con visión declarada; se guardan en memoria (las 4 últimas) y lo pegado caduca a los 15 días en `~/.stratum/images`. En el protocolo, `images` (rutas) en `runs.start` y `runs.steer`.
|
|
19
|
+
- **Visuales en el asistente**: skill de serie `stratum-visuals`, con la que el asistente de Desktop acompaña una explicación con un gráfico, fichas o un diagrama.
|
|
20
|
+
- El agente usa la memoria de largo plazo **por iniciativa propia**: consulta sus decisiones antes del primer cambio y cuando aludes al pasado, y guarda una en cuanto lo corriges o fijas una preferencia.
|
|
21
|
+
- **Generar imágenes desde el asistente**: tool `generate_image`, que manda un prompt al endpoint OpenAI-compatible `/images/generations` y deja las imágenes en `outputs/` de la conversación. Se activa en la config **global** con `"imageGeneration": { "provider": "<provider>", "model": "<modelo de imágenes>" }` (opcional `size`, `timeoutMs`). El asistente escribe él mismo la petición (prompt detallado en inglés, tamaño, nombre) guiado por la skill de serie nueva **`stratum-images`**.
|
|
22
|
+
- **La caja** (M13): un contenedor aislado que gestiona Stratum, con **Podman** (preferido) o Docker, y en el que las sesiones ejecutan con `exec` y target `container:<caja>`. Lleva Xvfb, Chromium, `xdotool` e ImageMagick, con un usuario sin root; su home está en un volumen que sobrevive a reinicios y actualizaciones, y solo comparte con tu equipo la carpeta `~/.stratum/companion/exchange` (`/exchange` dentro). `stratum box status|start|stop|reset` (la primera vez, `start` construye la imagen) y, en el daemon, `box.status|start|stop|reset`. Se activa con `"box": { "enabled": true }` en la config **global**; `box.network` (activada por defecto) le quita la red si se pone a `false`. Lo que cambia dentro de la caja no pide confirmación (entorno implícito `box`); cancelar o vencer el plazo mata el comando **dentro** de la caja.
|
|
23
|
+
|
|
9
24
|
## [0.11.0] — 2026-10-29
|
|
10
25
|
|
|
11
26
|
Es la versión de la CLI que necesita **Stratum Desktop 0.7.0**.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Marca de la carpeta de la imagen de la caja (src/box/manager.ts, bundledBoxImageDir).
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Imagen de la caja de Stratum (M13, docs/PRD_STRATUM_DOT.md §23.3).
|
|
2
|
+
# Versión: BOX_IMAGE_VERSION en src/box/spec.ts. Cambiar este fichero exige subirla.
|
|
3
|
+
#
|
|
4
|
+
# Escritorio virtual (Xvfb) con Chromium y las utilidades que usará el computer
|
|
5
|
+
# use de M15 (xdotool, ImageMagick). Usuario sin root; sudo sin contraseña
|
|
6
|
+
# porque instalar dentro de la caja es su razón de ser y la caja es el radio de
|
|
7
|
+
# daños: no ve los ficheros del anfitrión, ni ~/.stratum, ni el runtime.
|
|
8
|
+
FROM docker.io/library/debian:bookworm-slim
|
|
9
|
+
|
|
10
|
+
ENV DEBIAN_FRONTEND=noninteractive \
|
|
11
|
+
LANG=C.UTF-8 \
|
|
12
|
+
DISPLAY=:99
|
|
13
|
+
|
|
14
|
+
RUN apt-get update \
|
|
15
|
+
&& apt-get install -y --no-install-recommends \
|
|
16
|
+
ca-certificates curl wget git jq less nano procps sudo unzip xz-utils \
|
|
17
|
+
python3 python3-pip python3-venv \
|
|
18
|
+
xvfb xauth x11-utils xdotool imagemagick \
|
|
19
|
+
chromium fonts-dejavu-core fonts-liberation \
|
|
20
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
21
|
+
|
|
22
|
+
RUN useradd --create-home --uid 1000 --shell /bin/bash stratum \
|
|
23
|
+
&& echo 'stratum ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/stratum \
|
|
24
|
+
&& chmod 0440 /etc/sudoers.d/stratum \
|
|
25
|
+
&& mkdir -p /exchange && chown stratum:stratum /exchange
|
|
26
|
+
|
|
27
|
+
COPY entrypoint.sh /usr/local/bin/stratum-box-entrypoint
|
|
28
|
+
RUN chmod 0755 /usr/local/bin/stratum-box-entrypoint
|
|
29
|
+
|
|
30
|
+
USER stratum
|
|
31
|
+
WORKDIR /home/stratum
|
|
32
|
+
ENTRYPOINT ["/usr/local/bin/stratum-box-entrypoint"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Proceso principal de la caja: el escritorio virtual y nada más. Los comandos
|
|
3
|
+
# del agente llegan con `<runtime> exec`, no por aquí.
|
|
4
|
+
set -eu
|
|
5
|
+
rm -f /tmp/.X99-lock
|
|
6
|
+
Xvfb :99 -screen 0 1280x800x24 -nolisten tcp >/tmp/xvfb.log 2>&1 &
|
|
7
|
+
exec sleep infinity
|