@@ -27,8 +27,14 @@ if [[ -z "$GLAZE_BASE" ]]; then
2727 done
2828fi
2929if [[ -z " $GLAZE_BASE " || ! -d " $GLAZE_BASE /apps" ]]; then
30- print -u2 " ❌ Fant ikke Glaze. Sett GLAZE_BASE manuelt, eller start Glaze én gang."
31- exit 1
30+ # setup/help skal kunne veilede selv uten Glaze installert.
31+ case " ${1:- } " in
32+ setup|doctor|help|-h|--help|" " ) GLAZE_BASE=" " ;;
33+ * )
34+ print -u2 " ❌ Fant ikke Glaze. Sett GLAZE_BASE manuelt, eller start Glaze én gang."
35+ print -u2 " Ny her? Kjør: glaze-dev setup"
36+ exit 1 ;;
37+ esac
3238fi
3339
3440APPS_DIR=" $GLAZE_BASE /apps"
@@ -207,6 +213,98 @@ cmd_buildrun(){ cmd_build "$1"; cmd_run "$1"; }
207213cmd_path () { _need " $1 " ; print -r -- " $SRC " ; }
208214cmd_finder () { _need " $1 " ; open " $SRC " ; }
209215
216+ # Interaktiv onboarding og helsesjekk: verifiser hele oppsettet steg for steg,
217+ # forklar AI-motorvalgene, og pek på neste steg der noe mangler. Trygg å kjøre
218+ # når som helst; endrer ingenting uten å spørre.
219+ cmd_setup () {
220+ local pass=" %F{green}✓%f" fail=" %F{red}✗%f" note=" %F{yellow}!%f"
221+ print -P " %B== glaze-dev setup: onboarding og helsesjekk ==%b"
222+ print " "
223+
224+ # 1) Maskin
225+ if [[ " $( uname -m) " == arm64 ]]; then
226+ print -P " $pass Apple Silicon-Mac"
227+ else
228+ print -P " $fail Krever Apple Silicon (arm64). Denne maskinen: $( uname -m) "
229+ fi
230+
231+ # 2) Glaze selv
232+ if [[ -n " $GLAZE_BASE " && -d " $GLAZE_BASE /apps" ]]; then
233+ local napps; napps=" $( ls -1 " $APPS_DIR " 2> /dev/null | wc -l | tr -d ' ' ) "
234+ print -P " $pass Glaze er installert ($napps app(er))"
235+ if (( napps == 0 )) ; then
236+ print " Neste steg: lag din første app -> glaze-dev start \" Min App\" "
237+ fi
238+ else
239+ print -P " $fail Glaze er ikke installert (eller aldri startet)."
240+ print " Last ned fra https://www.glaze.app, åpne den én gang, og kjør setup igjen."
241+ print " "
242+ print " Resten av sjekkene hopper vi over til Glaze er på plass."
243+ return 0
244+ fi
245+
246+ # 3) Medfølgende Node (kreves for gratis bygg)
247+ if command -v node > /dev/null 2>&1 && [[ " $( node -v 2> /dev/null) " == v2[4-9]* ]]; then
248+ print -P " $pass Node $( node -v) (Glaze sin medfølgende runtime)"
249+ else
250+ print -P " $note Fant ikke Glaze sin Node >= 24 på PATH. Bygg kan feile."
251+ print " Den følger med Glaze; åpne Glaze én gang så lastes den ned."
252+ fi
253+
254+ # 4) Claude Code (gratis utvikling via ditt abonnement)
255+ if command -v claude > /dev/null 2>&1 ; then
256+ print -P " $pass Claude Code $( claude --version 2> /dev/null | head -1) "
257+ print " NB: --version beviser ikke innlogging. Aldri logget inn? Kjør: claude"
258+ else
259+ print -P " $fail Claude Code er ikke installert."
260+ print " Installer fra https://claude.com/product/claude-code og kjør 'claude' for innlogging."
261+ print " Uten den koster utvikling Glaze-kreditter; med den er den gratis via abonnementet ditt."
262+ fi
263+
264+ # 5) Glaze-skills lenket inn i ~/.claude
265+ local nlinked=0
266+ [[ -d " $HOME /.claude/skills" ]] && nlinked=" $( ls -1 " $HOME /.claude/skills" 2> /dev/null | grep -c " ^glaze" || true) "
267+ if (( nlinked > 5 )) ; then
268+ print -P " $pass Glaze-skills lenket inn i ~/.claude/skills ($nlinked stk)"
269+ else
270+ print -P " $note Glaze-skills ser ikke ut til å være lenket."
271+ if [[ -t 0 ]]; then
272+ read " ans? Lenke dem nå? [Y/n]: "
273+ [[ -z " $ans " || " $ans " == [Yy]* ]] && { _link_skills; print -P " $pass Lenket." ; }
274+ else
275+ print " Kjør: glaze-dev skills"
276+ fi
277+ fi
278+
279+ # 6) Claude Code-plugin
280+ if command -v claude > /dev/null 2>&1 ; then
281+ if claude plugin list 2> /dev/null | grep -q " glaze-coder" ; then
282+ print -P " $pass Claude Code-pluginen (/glaze-coder:glaze) er installert"
283+ else
284+ print -P " $note Claude Code-pluginen mangler. Kjør: claude plugin install glaze-coder"
285+ fi
286+ fi
287+
288+ # 7) Raycast (valgfritt)
289+ if [[ -d " /Applications/Raycast.app" || -d " $HOME /Applications/Raycast.app" ]]; then
290+ print -P " $pass Raycast finnes. Kommandoer settes opp med: glaze-dev raycast"
291+ else
292+ print -P " $note Raycast ikke funnet (valgfritt). Kommandoene virker fint uten."
293+ fi
294+
295+ # 8) AI i appene dine
296+ print " "
297+ print -P " %BAI-motorer i appene du bygger:%b"
298+ print " Apper laget med glaze-coder gir sluttbrukeren et valg om AI skal koste noe:"
299+ print " - Glaze AI innebygd, null oppsett, bruker brukerens Glaze-kreditter"
300+ print " - Google Gemini gratis med egen nøkkel (https://aistudio.google.com/apikey)"
301+ print " - OpenRouter gratis modeller med egen nøkkel (lav dagskvote)"
302+ print " - Claude Code gratis via brukerens Claude-abonnement (lokal CLI)"
303+ print " Tomme Glaze-kreditter? Reservemotoren bytter automatisk til en gratis motor."
304+ print " "
305+ print -P " %BKlar. Neste steg:%b glaze-dev start \" Min App\" (ny app + Claude Code, 0 kreditter)"
306+ }
307+
210308# Les ut koede (pausede) prompts fra Glaze-vibekoderens chatvindu for en app.
211309# Koen finnes bare i Glaze-UIets minne (ikke i db/localStorage), så vi leser den
212310# fra accessibility-treet. CSS-avkutting kutter ikke DOM-teksten, så vi får
@@ -442,6 +540,7 @@ ALLE KOMMANDOER:
442540 glaze-dev finder <app> Åpne app-mappen i Finder
443541 glaze-dev rm <app> Fjern app fullstendig (bundle+kilde+profil)
444542 glaze-dev raycast Sett opp Raycast (kopier sti + åpne Raycast)
543+ glaze-dev setup Onboarding/helsesjekk av hele oppsettet
445544 glaze-dev skills Koble Glaze-skills inn i ~/.claude/skills
446545
447546<app> matcher på mappenavn eller produktnavn (delvis treff er ok).
@@ -471,6 +570,7 @@ case "$cmd" in
471570 finder|reveal) cmd_finder " $@ " ;;
472571 rm|delete|remove) cmd_rm " $@ " ;;
473572 raycast|raycast-setup) cmd_raycast " $@ " ;;
573+ setup|doctor) cmd_setup " $@ " ;;
474574 skills|link-skills) cmd_skills ;;
475575 help|-h|--help) cmd_help ;;
476576 * ) print -u2 " Ukjent kommando: $cmd " ; cmd_help; exit 1 ;;
0 commit comments