Add server-side rendered setup UI accessible via `heatwave web`. The dashboard is now re-rendered per request and includes a nav bar linking to the new /setup page. Setup provides full CRUD for profiles, rooms, devices, occupants, AC units (with room assignment), scenario toggles, and forecast fetching — all via POST/redirect/GET forms. - Add ShowNav field to DashboardData for conditional nav bar - Extract fetchForecastForProfile() for reuse by web handler - Create setup.html.tmpl with Tailwind-styled entity sections - Create web_handlers.go with 15 route handlers and flash cookies - Switch web.go from pre-rendered to per-request dashboard rendering - Graceful dashboard fallback when no forecast data exists
13 lines
602 B
Go
13 lines
602 B
Go
package llm
|
|
|
|
import "context"
|
|
|
|
// Noop is a no-op LLM provider that returns empty strings.
|
|
type Noop struct{}
|
|
|
|
func NewNoop() *Noop { return &Noop{} }
|
|
func (n *Noop) Name() string { return "none" }
|
|
func (n *Noop) Summarize(_ context.Context, _ SummaryInput) (string, error) { return "", nil }
|
|
func (n *Noop) RewriteAction(_ context.Context, _ ActionInput) (string, error) { return "", nil }
|
|
func (n *Noop) GenerateHeatPlan(_ context.Context, _ HeatPlanInput) (string, error) { return "", nil }
|