#!/usr/bin/env just

# Swink Agent — development task runner
# Usage: just <recipe>    (run `just --list` for all recipes)

set dotenv-load

# Run full workspace tests with nextest
test:
    cargo nextest run --workspace

# Run core crate tests with no default features (verifies builtin-tools disabled)
test-no-features:
    cargo nextest run -p swink-agent --no-default-features

# Run clippy with zero-warnings policy
lint:
    cargo clippy --workspace -- -D warnings

# Format all workspace code
fmt:
    cargo fmt --all

# Check formatting without modifying files
fmt-check:
    cargo fmt --all -- --check

# Build docs with warnings as errors
doc:
    RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace

# Run benchmarks
bench:
    cargo bench --workspace

# Launch the TUI (.env auto-loaded via dotenv-load)
tui:
    cargo run -p swink-agent-tui

# Run all checks: lint, format check, docs
check: lint fmt-check doc

# Build the entire workspace
build:
    cargo build --workspace
