# AGENTS.md — JSON DevTools Statická jednostránková aplikácia (vanilla ES6+, HTML/CSS/JS). Bez frameworkov, bez npm, bez build procesu, bez backendu, bez CDN. Bez CI, `package.json` ani lint konfigurácie — repozitár je hotový, nič sa nekompiluje. ## ZákAZ KONTROL V PREHLIADAČOCH **V prehliadačoch sa nesú overovanie aplikácie – používateľ to robí sám.** Neotváraj Chrome/Chromium ani iný prehliadač, neautomatizuj ich, nescreenshotuj cez prehliadač. Trvalé používateľské nariadenie, zapísané aj v globálnej pamäti `~/.config/opencode/AGENTS.md`. Povolené: statická kontrola (`node --check`), testy logiky v Node.js, `curl`/`python`. Nepridávaj do repozitára testy ani nástroje založené na prehliadači. ## Štruktúra ``` src/index.html src/style.css src/app.js # aplikácia – musia zostať v jednej zložke tests/logic.test.js # Node testy (bez prehliadača) docs/ # screenshoty pre README ``` * `src/index.html` načítava `style.css` a `app.js` **relatívnou cestou** → všetky tri súbory musia zostať v `src/`. Presun do rootu rozbije načítanie aj testy. * Aplikácia sa otvára ako **`src/index.html`** (relatívne cesty), nie cez root. * Repo hostuje **Gitea**, nie GitHub — nepridávaj GitHub Actions/Pages šablóny. ## Príkazy ```bash node --check src/app.js # rýchla syntax kontrola node tests/logic.test.js # testy logiky – 93 assertov, exit 1 pri chybe python -m http.server 8080 --directory src # lokálne spustenie (voliteľné) ``` Nie je čo `npm install`ovať ani buildovať – po úprave `src/*.js|css|html` stačí reload stránky. ## Ako funguje `tests/logic.test.js` * `src/app.js` sa načíta do `vm` sandboxu s **ručným DOM stubom** (žiadne jsdom). Aplikácia sa musí vedieť načítať bez reálneho DOM. * Stub vracia **nový generický element pri každom `querySelector()`** → DOM interakcie (tlačidlá, eventy, fokus) sa v Node testoch **neoverujú**. Overuj logiku cez `window.JSONDevTools`, nie cez DOM. * `src/app.js` musí na konci exportovať **`window.JSONDevTools`** (objekt s modulmi `Utils, Toast, Theme, Splitter, Highlighter, Doc, Formatter, FileIO, Tree, Diff, Api, History, App`) — bez neho testy skončí chybou. * Testy čítajú `../src/app.js` a `../src/index.html` → pri presunu súborov treba upraviť cesty v `tests/logic.test.js`. * Pomocníci: `ok(name, cond, extra)`, `eq(name, a, b)`, `deepEq(...)`, `section(t)`. * Testy obsahujú aj statické kontroly konzistencie: každé `$('#id')` v `app.js` musí existovať v `index.html`, každé `