Files
PiCloud/dashboard
MechaCat02 bc8b512b56 feat(dashboard): hand-rolled Rhai parser + symbol table + Vitest
Foundation for upcoming editor features (scope-aware autocomplete,
goto-def / find-usages, source formatter). Hand-rolled recursive
descent in TypeScript with Pratt precedence climbing for expressions,
error-tolerant so partial trees stay usable while the user is typing.
Symbol table walks the AST to produce per-scope declarations, usage
sites, and object-literal field maps. Vitest added as a dev-only
runner; no editor wiring in this commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 23:38:15 +02:00
..

PiCloud Dashboard

SvelteKit SPA for the PiCloud control plane.

Stack

  • SvelteKit 2 with adapter-static (SPA fallback)
  • Svelte 5 (runes)
  • TypeScript
  • Vite

Scripts

npm install
npm run dev      # vite dev server on :5173, proxies /api → PICLOUD_API
npm run build    # static SPA bundle into ./build/
npm run check    # svelte-check
npm run lint
npm run format

By default npm run dev proxies /api/* and /healthz to http://127.0.0.1:18080. Override with PICLOUD_API=http://host:port npm run dev.

How it fits in

In production Caddy serves the contents of ./build/ as static files and falls back to index.html for client-side routing. The dashboard only talks to the control plane (/api/admin/* on the manager); data-plane invocations go through /api/execute/* on the orchestrator and are not issued from the dashboard directly during MVP.