# 利用できるタスクを表示する
default:
    @just --list

# 紹介ページを http://127.0.0.1:4190 で起動する
serve:
    node server.mjs

# HTML・CSS・シナリオ定義の静的コントラクトを検証する
contract:
    node --test page.test.mjs

# デモセクションの solitaire 静止画を seed から撮り直す (手動撮影の代替)
demo-still:
    node capture-demo-still.mjs

# GitHub Pages にアップロードするサイト全体をリポジトリルートの .pages に生成する
# (紹介ページは `/`、solitaire は `/solitaire/`)
pages:
    node ../../scripts/build-pages.mjs

# ローカルサーバーを起動して key-free な vlmkit ゲートを実行する
gates:
    #!/usr/bin/env bash
    set -euo pipefail
    node server.mjs &
    sample_server_pid=$!
    trap 'kill "$sample_server_pid"' EXIT
    node ../../dist/vlmkit.mjs gates run --config vlmkit.gates.json
    node ../../dist/vlmkit.mjs check copy http://127.0.0.1:4190 --manifest copy.txt
    node ../../dist/vlmkit.mjs check design http://127.0.0.1:4190

# desktop/mobile の Playwright VRT を実行する
vrt:
    pnpm exec playwright test --config playwright.config.ts tests/vlmkit

# 意図した表示変更を desktop/mobile の VRT ベースラインへ反映する
vrt-update:
    pnpm exec playwright test --config playwright.config.ts tests/vlmkit --update-snapshots

# 観測から plan・テスト生成・VRT まで markup-loop を再実行する
markup-loop:
    node ../../dist/vlmkit.mjs markup-loop run

# サンプルの静的コントラクトと VRT をまとめて実行する
test: contract pages vrt
