Mappa-import
Egy meglévő kódmappából a internal/pkg/scan buta (regex, nem AI) szkennerei felismerik a
stacket és javaslatot tesznek a beolvasható tartalomra. Az import javaslat: az előnézetben
pipálható, mielőtt bármi lemezre kerül.
Fázisok
Az import fázisonként megy (stack → styles → models → pages), az első hibánál megáll
részleges eredménnyel. Idempotens: név-dedup a meglévők ellen, a Processed map átugorja a
kész elemeket resume-nál, az Overwrite felülír név szerint.
| Fázis | Mit keres | Eredmény |
|---|---|---|
stack | package.json, go.mod, angular.json, pom.xml/build.gradle, requirements.txt/pyproject.toml/manage.py, composer.json, Gemfile, *.csproj, Cargo.toml; DB deps + docker-compose.yml image-ek (postgres:, mysql:, mongo:, mssql) | project.json stack blokk |
styles | CSS custom property + SCSS $var → kategorizált tokenek; nem-token stíluslap → 1 komponens-vázlat | Design tokenek + komponensek |
models | CREATE TABLE, schema.prisma model | Schema modellek (schema.Field) |
pages | pages/ app/ routes/ views/ screens/ mappák (bárhol, monorepo-barát; app/ kivéve) | Oldal-entitások |
node_modules, dist, .git, .idea, .venv, Pods, .gradle stb. kihagyva. A gyökér +
beágyazott .gitignore fájlok tiszteletben tartva (dependency-free glob→regex matcher).
Nem támogatott stack
Csak a nem támogatott frontend keretrendszer (Svelte, Solid, Qwik…) blokkolja az importot
— ilyenkor a wizard blocked állapotba megy, indoklással. Backend nyelv és adatbázis soha
nem blokkol (a stackprofile a default profilra esik vissza).
A wizard állapotai
pick → checking → preview → running → done
↓ ↑
blocked paused ("Folytatás innen")
- preview — felismert stack + darabszámok + a kihagyott fájlok listája.
GET /import/preview?path=<abs>közvetlenül szkennel, nyitott projekt nélkül — a.craftingtable/csak akkor jön létre, ha ténylegesen elindítod az importot. - paused — a fázishiba után „full try" pipával újrapróbálható, vagy „Folytatás innen".
- Ha a mappában már van
.craftingtable, a wizard nem ugrik automatikusan az appba — mutatja a preview-t „Megnyitás import nélkül" + „Importálás indítása" (idempotens) gombokkal.
API: GET /api/v1/import/preview, POST /api/v1/import/run (mindig 200, a fázishiba a
result.error-ban). A desktop app import_jobs táblában tárolja a félbehagyott munkákat
(resume-hoz).
(A képernyőkép pótlása folyamatban.)