Prueba de límites del Raster (solo laboratorio)

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.
claude --plugin-dir "<ruta>\emilia-mascota\mod" (o copia mod\ dentro de tu carpeta dev-mods con hot reload)./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.claude plugin validate mod y claude plugin test mod (esperado: 34 pass). El laboratorio: claude plugin test laboratorio (15 pass).| Carpeta | Contenido |
|---|---|
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 |
ExitPlanMode → «necesita», celdas Raster con espacio (63 % menos glifos, imagen idéntica)./emiproto atomo8); blit descartado por el banco real.tool.check → tool.call; aspecto de las celdas nuevas en tu Windows Terminal.$.store) de cada PC; no viajan con la carpeta.hooks/register.tsx 25 lines1import 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