* feat: add structured output to /reflect * feat: add structured output to /reflect * imrpove * add max_toksn * fix rust client * fix rust client * fix rust client * try fix * try fix * no stricts
86 lines
2.5 KiB
Bash
Executable file
86 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
# Parallel linting for all code (Node, Python)
|
|
# Runs all linting tasks concurrently for faster execution
|
|
|
|
set -e
|
|
|
|
REPO_ROOT="$(git rev-parse --show-toplevel)"
|
|
TEMP_DIR=$(mktemp -d)
|
|
trap "rm -rf $TEMP_DIR" EXIT
|
|
|
|
# Track all background jobs
|
|
declare -a PIDS
|
|
declare -a NAMES
|
|
|
|
run_task() {
|
|
local name="$1"
|
|
local dir="$2"
|
|
shift 2
|
|
local cmd="$@"
|
|
|
|
(
|
|
cd "$dir"
|
|
if OUTPUT=$($cmd 2>&1); then
|
|
echo "OK" > "$TEMP_DIR/$name.status"
|
|
else
|
|
echo "FAIL" > "$TEMP_DIR/$name.status"
|
|
echo "$OUTPUT" > "$TEMP_DIR/$name.output"
|
|
fi
|
|
) &
|
|
PIDS+=($!)
|
|
NAMES+=("$name")
|
|
}
|
|
|
|
echo " Syncing Python dependencies..."
|
|
# Run uv sync first to avoid race conditions when multiple uv run commands
|
|
# try to reinstall local packages in parallel (e.g., after version bump)
|
|
uv sync --quiet
|
|
|
|
echo " Running lints in parallel..."
|
|
|
|
# Node/TypeScript tasks
|
|
run_task "eslint" "$REPO_ROOT/hindsight-control-plane" "npx eslint --fix src/**/*.{ts,tsx}"
|
|
run_task "prettier" "$REPO_ROOT/hindsight-control-plane" "npx prettier --write src/**/*.{ts,tsx}"
|
|
|
|
# Python hindsight-api tasks
|
|
run_task "ruff-api-check" "$REPO_ROOT/hindsight-api" "uv run ruff check --fix ."
|
|
run_task "ruff-api-format" "$REPO_ROOT/hindsight-api" "uv run ruff format ."
|
|
run_task "ty-api" "$REPO_ROOT/hindsight-api" "uv run ty check hindsight_api"
|
|
|
|
# Python hindsight-dev tasks
|
|
run_task "ruff-dev-check" "$REPO_ROOT/hindsight-dev" "uv run ruff check --fix ."
|
|
run_task "ruff-dev-format" "$REPO_ROOT/hindsight-dev" "uv run ruff format ."
|
|
run_task "ty-dev" "$REPO_ROOT/hindsight-dev" "uv run ty check hindsight_dev benchmarks"
|
|
|
|
# Python hindsight-embed tasks
|
|
run_task "ruff-embed-check" "$REPO_ROOT/hindsight-embed" "uv run ruff check --fix ."
|
|
run_task "ruff-embed-format" "$REPO_ROOT/hindsight-embed" "uv run ruff format ."
|
|
run_task "ty-embed" "$REPO_ROOT/hindsight-embed" "uv run ty check hindsight_embed"
|
|
|
|
# Wait for all tasks to complete
|
|
for pid in "${PIDS[@]}"; do
|
|
wait "$pid" 2>/dev/null || true
|
|
done
|
|
|
|
# Check results
|
|
FAILED=0
|
|
for name in "${NAMES[@]}"; do
|
|
if [ -f "$TEMP_DIR/$name.status" ]; then
|
|
STATUS=$(cat "$TEMP_DIR/$name.status")
|
|
if [ "$STATUS" = "FAIL" ]; then
|
|
echo ""
|
|
echo " ❌ $name failed:"
|
|
cat "$TEMP_DIR/$name.output"
|
|
FAILED=1
|
|
fi
|
|
else
|
|
echo " ❌ $name: no status (crashed?)"
|
|
FAILED=1
|
|
fi
|
|
done
|
|
|
|
if [ $FAILED -eq 1 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
echo " All lints passed ✓"
|