# Lakehouse task runner

default:
    @just --list

# Build all crates
build:
    cargo build --workspace

# Run all tests
test:
    cargo test --workspace

# Run gateway
run:
    cargo run --bin gateway

# Build UI (WASM)
ui-build:
    cd crates/ui && dx build --platform web

# Serve UI (dev)
ui-serve:
    cd target/dx/ui/debug/web/public && python3 -m http.server 3300 --bind 0.0.0.0

# Start sidecar
sidecar:
    cd sidecar && uvicorn sidecar.main:app --host 0.0.0.0 --port 3200

# Start everything (gateway + sidecar + UI)
up:
    @echo "Starting gateway on :3100..."
    @cargo run --bin gateway &
    @echo "Starting sidecar on :3200..."
    @cd sidecar && uvicorn sidecar.main:app --host 0.0.0.0 --port 3200 &
    @echo "Starting UI on :3300..."
    @cd target/dx/ui/debug/web/public && python3 -m http.server 3300 --bind 0.0.0.0 &
    @echo "All services started."

# Check without building
check:
    cargo check --workspace

# Format all code
fmt:
    cargo fmt --all

# Lint
clippy:
    cargo clippy --workspace -- -D warnings
