tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

⎇ main recipes/thasnuna.toml TOML · 52 siq'ikuna · 3.4 KB Ñawpa willay ch'uya

feat(recetas): pata y churay entran al catálogo — «no hay pata» era que no existía el paquete 5ba9b5365 · Sergio ·

1# thasnuna — el bot: `thasnuna run --wait 25`.
2#
3# ⚠ Su config NO está en el repo a propósito (lo dice su INSTALAR.md): el token de telegram y el
4# roster de teléfonos viven en `~/.config/thasnuna/`. Sin eso el binario está y el bot no existe.
5#
6# Receta Cargo contra el monorepo de tawasuyu, pinneada al MISMO commit que `shuma-*` y
7# `puriy-costura`: el árbol de fuentes se comparte por `<dep>-<sha>`, así que un pin distinto es otro
8# vendoreo de 2,4 G. Estática musl con zig-cc — la caja la arranca el init y no puede depender de
9# encontrar un cargador, que es justo lo que le falta al binario glibc de gioser.
10
11name    = "thasnuna"
12version = "0.1.0"
13license = "MIT OR Apache-2.0"
14
15[source]
16repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
17commit = "619431cac9753cd55d0f9e2d99ff8efe7fab651b"
18# tawasuyu COMMITEA su propio `vendor/` (smithay parcheado, enchufado por `[patch.crates-io]` POR
19# RUTA); el `cargo vendor` de takana lo pisaría y el error habla de `taffy`, no de esto.
20cargo_vendor_dir = ".hammer-cargo-vendor"
21
22[build]
23compiler = "zig-cc"
24target   = "x86_64-linux-musl"
25link     = "static"
26flags    = ["-p", "thasnuna-daemon", "--bin", "thasnuna"]
27
28# ── LA CUENTA Y EL SERVICIO (SDD 30) ────────────────────────────────────────────────────────────
29[[user]]
30name = "thasnuna"
31uid  = 963
32home = "/var/lib/thasnuna"
33
34# ⚠ **HOY NO PUEDE CORRER EN LA CAJA, y conviene que lo diga él y no que lo descubra alguien.**
35# Su propio `INSTALAR.md` —escrito el 2026-09-16 para esta misma mudanza— lista tres requisitos, y
36# dos no están: `sandokan-mcp` en el PATH (sin él «el agente contesta pero no tiene herramientas») y
37# **`claude` instalado Y AUTENTICADO** (sin él «no hay anfitrión»). El CLI de claude es un binario
38# glibc de ~300 M: en una caja musl pide jaula qorpa, igual que `sergioh-api`.
39#
40# Las tres guardas salen 78 nombrando lo que falta. El token NO se genera: lo da @BotFather y vive
41# en un fichero 600 del usuario. Su INSTALAR.md explica por qué no va en la Card, y el motivo está
42# medido en la máquina vieja: la Card `openrc-openclaw` de gioser lleva **la API key de su proveedor
43# EN CLARO dentro del JSON de `/etc/arje/cards.d/`**, que es un directorio que se respalda y se copia.
44[[service]]
45label      = "thasnuna"
46id         = "01M2EKDA00THA5NVNAB0T00001"
47exec       = "/bin/busybox"
48argv = ["sh", "-c", "/bin/grep -q '^thasnuna:' /etc/passwd || { echo 'thasnuna: falta el usuario `thasnuna` en /etc/passwd' >&2; exit 78; }; test -s /var/lib/thasnuna/.config/thasnuna/telegram-token || { echo 'thasnuna: falta el token (~/.config/thasnuna/telegram-token, 600). Lo da @BotFather y NO va en esta Card: un JSON de cards.d se respalda y se copia' >&2; exit 78; }; command -v sandokan-mcp >/dev/null || { echo 'thasnuna: falta `sandokan-mcp` en el PATH — sin él el agente contesta pero NO TIENE HERRAMIENTAS (su INSTALAR.md §0)' >&2; exit 78; }; command -v claude >/dev/null || { echo 'thasnuna: falta `claude` instalado y AUTENTICADO — sin anfitrión el daemon cae al eco. Es glibc: en musl pide jaula qorpa' >&2; exit 78; }; cd /var/lib/thasnuna || exit 78; exec /usr/bin/setuidgid thasnuna /usr/bin/thasnuna run --wait 25"]
49envp       = [["PATH", "/usr/bin:/bin"], ["HOME", "/var/lib/thasnuna"], ["USER", "thasnuna"]]
50networking = "full"
51cgroup     = "arje.slice/thasnuna"
52restart    = { initial_ms = 1000, max_ms = 30000 }