SLOPSHOPPER

rastertest

Prueba de límites del Raster (solo laboratorio)

newband
★ 1v0.0.1no licenseupdated 2026-10-09SMRJ1421/emilia-mascota/scripts/diagnostico/rastertest
A shopper browsing a rack in a slop shop
Preview · a replayed session in a sandbox
claude · ~/work/app · rastertest
› fix the failing auth test and add an audit log call ⏺ Read(src/auth.ts) ⎿ Read 6 lines ⏺ Update(src/auth.ts) ⎿ Added 2 lines, removed 1 line ⏺ Bash(bun test) ⎿ 3 pass, 1 fail ● Done. refresh now rejects expired claims and logs an audit event. ✻ Worked for 42s · done 4:20 PM ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── › ? for shortcuts

Draws

Band
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
README

Emilia (Emi) — mascota pixel para Claude Code

Mod de Claude Code (hooks en TS/TSX) con una mascota animada: 12 estados × 4 fotogramas, panel lateral acoplado (Dock) o banda sobre el prompt. Creado con Claude Code 2.1.294 / 2.1.295 en Windows 11.

Usarlo en otra PC

  1. Requisitos: Claude Code con soporte de mods (≥ 2.1.294) y Windows (los avisos y sonidos usan PowerShell).
  2. Copia esta carpeta completa.
  3. Carga el mod: claude --plugin-dir "<ruta>\emilia-mascota\mod" (o copia mod\ dentro de tu carpeta dev-mods con hot reload).
  4. Dentro de Claude: /emi panel (panel acoplado), /emi banda, /emi probar (enseña los 12 estados). Resto de comandos: grande, normal, mini, compacta, oculta, sonido, silencio, avisos, sin-avisos.
  5. Comprobar: claude plugin validate mod y claude plugin test mod (esperado: 34 pass). El laboratorio: claude plugin test laboratorio (15 pass).

Carpetas

CarpetaContenido
mod\El mod principal (lo que se instala). hooks\register.tsx es el módulo; sprites.ts los 5 tamaños de sprites; dibujo.ts celdas Raster/SVG; deteccion.ts fallo real; estados.ts frases y estados; tests\
laboratorio\Mod aparte mascota-lab con prototipos y bancos (/emilab, /emiproto). No es necesario para usar a Emi
arte\PNG originales: hoja de 12 estados, hoja de animación y animacion.png (20 estados nuevos, aún no integrados)
scripts\pipeline-sprites\Python que convierte los PNG en sprites.ts (emi_lib2.py, gen_ts.py, regen2.py…). Revisa rutas: apuntan a C:\Users\Admin0011\Downloads\…; cámbialas a ..\..\arte\
scripts\diagnostico\Scripts de comparación y diagnóstico de fidelidad
scripts\tsconfig\tsconfig usados para comprobar TypeScript (npx -y -p typescript@5.6 tsc -p <carpeta>)
docs\INFORME_TECNICO_EMILIA.md (secciones 1–13) e INFORME_COMPARATIVO_MASCOTAS.md (4 repos estudiados, licencias, bench)
investigacion\, pruebas\Capturas y comparativas antes/después, informes de etapas
referencia-api\Extracto de los tipos de la API de mods (claude-code)
datos-laboratorio\medidas.json (dock 64×35, banda 15 filas), bench.json, bench_v1_2026-10-08.json
respaldos\Copias del mod antes de cada cambio grande

Estado a 2026-10-08

  • Hecho: sprites fieles a los PNG (5 tamaños), panel Dock con tamaño adaptativo, fallo real (denegaciones/interrupciones no asustan), ExitPlanMode → «necesita», celdas Raster con espacio (63 % menos glifos, imagen idéntica).
  • Pendiente de tu decisión: 8 fps con redibujo normal (/emiproto atomo8); blit descartado por el banco real.
  • Fuera de alcance por ahora: los 20 estados nuevos / 8 fotogramas y el sprite de banda 18×28.
  • Sin verificar en terminal real: correlación tool.check → tool.call; aspecto de las celdas nuevas en tu Windows Terminal.

Notas

  • Las preferencias de Emi (tamaño, sonido, avisos) viven en el almacén del motor ($.store) de cada PC; no viajan con la carpeta.
  • Nunca guardar claves ni tokens aquí.
  • Idea de la detección de fallos tomada de dgokcin/claude-pokemon-mod (sin licencia): solo la idea, código propio.
Source 1 files
hooks/register.tsx 25 lines
1import type { Register } from 'claude-code'
2
3// Dibuja un Raster de bodyColumns x maxRows celdas con un patrón de muchos colores distintos.
4export const register: Register = on => {
5  on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
6    if (e.surface !== 'terminal') {
7      return next(e)
8    }
9    const { Raster } = $.ui.resolve(e)
10    const columns = e.props.bodyColumns
11    const rows = e.props.maxRows
12    const palabras = new Uint32Array(columns * rows * 3)
13    for (let y = 0; y < rows; y += 1) {
14      for (let x = 0; x < columns; x += 1) {
15        const k = (y * columns + x) * 3
16        palabras[k] = 0x2580
17        palabras[k + 1] = ((x * 7 + y * 13) * 4099) & 0xffffff
18        palabras[k + 2] = ((x * 11 + y * 5) * 2999) & 0xffffff
19      }
20    }
21    const cells = (new Uint8Array(palabras.buffer) as Uint8Array & { toBase64: () => string }).toBase64()
22    return <Raster key="prueba" columns={columns} rows={rows} cells={cells} />
23  })
24}
25