1 line
9.5 KiB
JSON
1 line
9.5 KiB
JSON
{"repo": "brokkai/powerrank", "files": {"bpr-all.sh": {"b410de0881c26638381af784f28431472a96e78a": {"t": 1785745939.0146425, "n": 4382, "h": "0b9ab460362f02d0", "c": "#!/usr/bin/env bash\n# bpr-all.sh: Multi-project benchmark orchestrator\n#\n# Run benchmarks with --model across all projects\n#\n# Usage:\n# BROKK_PROXY=LOCALHOST ./bpr-all.sh --results-dir coderesults-0226 --runs 2 \\\n# --model q3-35b --tui --threads 30\n# ./bpr-all.sh --projects brokk,langchain4j --model gem3flash --runs 3 --results-dir coderesults-0226\n#\n# API keys are read from .env.\n\nset -euo pipefail\n\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n\n# Defaults\nMODEL=\"\"\nPLAN_MODEL=\"\"\nPROJECTS=\"\"\nRUNS=3\nTHREADS=\"\"\nMAXHEAP=\"\"\nMODE=\"code\"\nRESULTS_DIR=\"\"\nCOMMITS_DIR=\"${BRK_COMMITS_DIR:-taskcommits-0126}\"\nDRY_RUN=\"\"\nUSE_TUI=\"\"\nEXTRA_ARGS=()\n\n# Parse arguments\nwhile [[ $# -gt 0 ]]; do\n case \"$1\" in\n --projects=*) PROJECTS=\"${1#*=}\"; shift ;;\n --projects) PROJECTS=\"$2\"; shift 2 ;;\n --tui) USE_TUI=\"1\"; shift ;;\n --runs=*) RUNS=\"${1#*=}\"; shift ;;\n --runs) RUNS=\"$2\"; shift 2 ;;\n --threads=*) THREADS=\"${1#*=}\"; shift ;;\n --threads) THREADS=\"$2\"; shift 2 ;;\n --maxheap=*) MAXHEAP=\"${1#*=}\"; shift ;;\n --maxheap) MAXHEAP=\"$2\"; shift 2 ;;\n --infer-context) MODE=\"infer-context\"; shift ;;\n --mode=*) MODE=\"${1#*=}\"; shift ;;\n --mode) MODE=\"$2\"; shift 2 ;;\n --results-dir=*) RESULTS_DIR=\"${1#*=}\"; shift ;;\n --results-dir) RESULTS_DIR=\"$2\"; shift 2 ;;\n --commits-dir=*) COMMITS_DIR=\"${1#*=}\"; shift ;;\n --commits-dir) COMMITS_DIR=\"$2\"; shift 2 ;;\n --model=*) MODEL=\"${1#*=}\"; shift ;;\n --model) MODEL=\"$2\"; shift 2 ;;\n --planmodel=*) PLAN_MODEL=\"${1#*=}\"; shift ;;\n --planmodel) PLAN_MODEL=\"$2\"; shift 2 ;;\n --dry-run) DRY_RUN=\"--dry-run\"; shift ;;\n *) EXTRA_ARGS+=(\"$1\"); shift ;;\n esac\ndone\n\nif [[ -z \"$MODEL\" ]]; then\n echo \"Error: --model required\" >&2\n exit 1\nfi\n\n# Source .env and save API keys\nif [[ -f \"${SCRIPT_DIR}/.env\" ]]; then\n set -a\n source \"${SCRIPT_DIR}/.env\"\n set +a\nfi\n\n_SAVED_OPENAI_KEY=\"${OPENAI_API_KEY:-}\"\n_SAVED_GEMINI_KEY=\"${GEMINI_API_KEY:-}\"\n_SAVED_DEEPSEEK_KEY=\"${DEEPSEEK_API_KEY:-}\"\n\n# Restore all API keys (for bpr.py which doesn't use client.py)\nrestore_all_keys() {\n [[ -n \"$_SAVED_OPENAI_KEY\" ]] && export OPENAI_API_KEY=\"$_SAVED_OPENAI_KEY\" || true\n [[ -n \"$_SAVED_GEMINI_KEY\" ]] && export GEMINI_API_KEY=\"$_SAVED_GEMINI_KEY\" || true\n [[ -n \"$_SAVED_DEEPSEEK_KEY\" ]] && export DEEPSEEK_API_KEY=\"$_SAVED_DEEPSEEK_KEY\" || true\n}\n\n# Build common bpr.py args\nBPR_ARGS=(--mode=\"$MODE\" --runs=\"$RUNS\" --commits-dir=\"$COMMITS_DIR\")\n[[ -n \"$PLAN_MODEL\" ]] && BPR_ARGS+=(--planmodel=\"$PLAN_MODEL\") || true\n[[ -n \"$PROJECTS\" ]] && BPR_ARGS+=(--projects=\"$PROJECTS\") || true\n[[ -n \"$THREADS\" ]] && BPR_ARGS+=(--threads=\"$THREADS\") || true\n[[ -n \"$MAXHEAP\" ]] && BPR_ARGS+=(--maxheap=\"$MAXHEAP\") || true\n[[ -n \"$RESULTS_DIR\" ]] && BPR_ARGS+=(--results-dir=\"$RESULTS_DIR\") || true\n[[ -n \"$DRY_RUN\" ]] && BPR_ARGS+=(\"$DRY_RUN\") || true\n[[ ${#EXTRA_ARGS[@]} -gt 0 ]] && BPR_ARGS+=(\"${EXTRA_ARGS[@]}\") || true\n\n# Determine results root (mirrors bpr.py logic)\nif [[ -n \"$RESULTS_DIR\" ]]; then\n RESULTS_ROOT=\"$RESULTS_DIR\"\nelse\n RESULTS_ROOT=\"${MODE}results\"\nfi\n\n# Split projects into array (if provided, otherwise inferred for Phase 5)\nif [[ -n \"$PROJECTS\" ]]; then\n IFS=',' read -ra PROJECT_LIST <<< \"$PROJECTS\"\nelse\n # Inferred from directories in results root if PROJECTS is empty\n PROJECT_LIST=()\nfi\n\necho \"========================================\" >&2\necho \"Benchmark Workflow\" >&2\necho \" Model: ${MODEL}\" >&2\n[[ -n \"$PLAN_MODEL\" ]] && echo \" Plan Model: ${PLAN_MODEL}\" >&2 || true\necho \" Projects: ${PROJECTS:-all}\" >&2\necho \" Runs: ${RUNS}\" >&2\n[[ -n \"$THREADS\" ]] && echo \" Threads: ${THREADS}\" >&2 || true\n[[ -n \"$MAXHEAP\" ]] && echo \" Max heap: ${MAXHEAP}MB\" >&2 || true\necho \" Results: ${RESULTS_ROOT}\" >&2\necho \"========================================\" >&2\n\n# Benchmark mode: Single model run\necho \"\" >&2\necho \"=== Benchmark Mode: ${MODEL} ===\" >&2\nrestore_all_keys\nTARGET_SCRIPT=\"bpr.py\"\nif [[ -n \"$USE_TUI\" ]]; then\n TARGET_SCRIPT=\"bpr_tui.py\"\nfi\n\nuv run \"$TARGET_SCRIPT\" --model=\"$MODEL\" \"${BPR_ARGS[@]}\" || true\necho \"=== Benchmark complete ===\" >&2\n\necho \"\" >&2\necho \"========================================\" >&2\necho \"Benchmark complete for: ${MODEL}\" >&2\necho \"========================================\" >&2\n"}, "0cebba5752a8179320f4fe96db67eac6c4632eed": {"t": 1785758079.868166, "n": 4382, "h": "0b9ab460362f02d0", "c": "#!/usr/bin/env bash\n# bpr-all.sh: Multi-project benchmark orchestrator\n#\n# Run benchmarks with --model across all projects\n#\n# Usage:\n# BROKK_PROXY=LOCALHOST ./bpr-all.sh --results-dir coderesults-0226 --runs 2 \\\n# --model q3-35b --tui --threads 30\n# ./bpr-all.sh --projects brokk,langchain4j --model gem3flash --runs 3 --results-dir coderesults-0226\n#\n# API keys are read from .env.\n\nset -euo pipefail\n\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n\n# Defaults\nMODEL=\"\"\nPLAN_MODEL=\"\"\nPROJECTS=\"\"\nRUNS=3\nTHREADS=\"\"\nMAXHEAP=\"\"\nMODE=\"code\"\nRESULTS_DIR=\"\"\nCOMMITS_DIR=\"${BRK_COMMITS_DIR:-taskcommits-0126}\"\nDRY_RUN=\"\"\nUSE_TUI=\"\"\nEXTRA_ARGS=()\n\n# Parse arguments\nwhile [[ $# -gt 0 ]]; do\n case \"$1\" in\n --projects=*) PROJECTS=\"${1#*=}\"; shift ;;\n --projects) PROJECTS=\"$2\"; shift 2 ;;\n --tui) USE_TUI=\"1\"; shift ;;\n --runs=*) RUNS=\"${1#*=}\"; shift ;;\n --runs) RUNS=\"$2\"; shift 2 ;;\n --threads=*) THREADS=\"${1#*=}\"; shift ;;\n --threads) THREADS=\"$2\"; shift 2 ;;\n --maxheap=*) MAXHEAP=\"${1#*=}\"; shift ;;\n --maxheap) MAXHEAP=\"$2\"; shift 2 ;;\n --infer-context) MODE=\"infer-context\"; shift ;;\n --mode=*) MODE=\"${1#*=}\"; shift ;;\n --mode) MODE=\"$2\"; shift 2 ;;\n --results-dir=*) RESULTS_DIR=\"${1#*=}\"; shift ;;\n --results-dir) RESULTS_DIR=\"$2\"; shift 2 ;;\n --commits-dir=*) COMMITS_DIR=\"${1#*=}\"; shift ;;\n --commits-dir) COMMITS_DIR=\"$2\"; shift 2 ;;\n --model=*) MODEL=\"${1#*=}\"; shift ;;\n --model) MODEL=\"$2\"; shift 2 ;;\n --planmodel=*) PLAN_MODEL=\"${1#*=}\"; shift ;;\n --planmodel) PLAN_MODEL=\"$2\"; shift 2 ;;\n --dry-run) DRY_RUN=\"--dry-run\"; shift ;;\n *) EXTRA_ARGS+=(\"$1\"); shift ;;\n esac\ndone\n\nif [[ -z \"$MODEL\" ]]; then\n echo \"Error: --model required\" >&2\n exit 1\nfi\n\n# Source .env and save API keys\nif [[ -f \"${SCRIPT_DIR}/.env\" ]]; then\n set -a\n source \"${SCRIPT_DIR}/.env\"\n set +a\nfi\n\n_SAVED_OPENAI_KEY=\"${OPENAI_API_KEY:-}\"\n_SAVED_GEMINI_KEY=\"${GEMINI_API_KEY:-}\"\n_SAVED_DEEPSEEK_KEY=\"${DEEPSEEK_API_KEY:-}\"\n\n# Restore all API keys (for bpr.py which doesn't use client.py)\nrestore_all_keys() {\n [[ -n \"$_SAVED_OPENAI_KEY\" ]] && export OPENAI_API_KEY=\"$_SAVED_OPENAI_KEY\" || true\n [[ -n \"$_SAVED_GEMINI_KEY\" ]] && export GEMINI_API_KEY=\"$_SAVED_GEMINI_KEY\" || true\n [[ -n \"$_SAVED_DEEPSEEK_KEY\" ]] && export DEEPSEEK_API_KEY=\"$_SAVED_DEEPSEEK_KEY\" || true\n}\n\n# Build common bpr.py args\nBPR_ARGS=(--mode=\"$MODE\" --runs=\"$RUNS\" --commits-dir=\"$COMMITS_DIR\")\n[[ -n \"$PLAN_MODEL\" ]] && BPR_ARGS+=(--planmodel=\"$PLAN_MODEL\") || true\n[[ -n \"$PROJECTS\" ]] && BPR_ARGS+=(--projects=\"$PROJECTS\") || true\n[[ -n \"$THREADS\" ]] && BPR_ARGS+=(--threads=\"$THREADS\") || true\n[[ -n \"$MAXHEAP\" ]] && BPR_ARGS+=(--maxheap=\"$MAXHEAP\") || true\n[[ -n \"$RESULTS_DIR\" ]] && BPR_ARGS+=(--results-dir=\"$RESULTS_DIR\") || true\n[[ -n \"$DRY_RUN\" ]] && BPR_ARGS+=(\"$DRY_RUN\") || true\n[[ ${#EXTRA_ARGS[@]} -gt 0 ]] && BPR_ARGS+=(\"${EXTRA_ARGS[@]}\") || true\n\n# Determine results root (mirrors bpr.py logic)\nif [[ -n \"$RESULTS_DIR\" ]]; then\n RESULTS_ROOT=\"$RESULTS_DIR\"\nelse\n RESULTS_ROOT=\"${MODE}results\"\nfi\n\n# Split projects into array (if provided, otherwise inferred for Phase 5)\nif [[ -n \"$PROJECTS\" ]]; then\n IFS=',' read -ra PROJECT_LIST <<< \"$PROJECTS\"\nelse\n # Inferred from directories in results root if PROJECTS is empty\n PROJECT_LIST=()\nfi\n\necho \"========================================\" >&2\necho \"Benchmark Workflow\" >&2\necho \" Model: ${MODEL}\" >&2\n[[ -n \"$PLAN_MODEL\" ]] && echo \" Plan Model: ${PLAN_MODEL}\" >&2 || true\necho \" Projects: ${PROJECTS:-all}\" >&2\necho \" Runs: ${RUNS}\" >&2\n[[ -n \"$THREADS\" ]] && echo \" Threads: ${THREADS}\" >&2 || true\n[[ -n \"$MAXHEAP\" ]] && echo \" Max heap: ${MAXHEAP}MB\" >&2 || true\necho \" Results: ${RESULTS_ROOT}\" >&2\necho \"========================================\" >&2\n\n# Benchmark mode: Single model run\necho \"\" >&2\necho \"=== Benchmark Mode: ${MODEL} ===\" >&2\nrestore_all_keys\nTARGET_SCRIPT=\"bpr.py\"\nif [[ -n \"$USE_TUI\" ]]; then\n TARGET_SCRIPT=\"bpr_tui.py\"\nfi\n\nuv run \"$TARGET_SCRIPT\" --model=\"$MODEL\" \"${BPR_ARGS[@]}\" || true\necho \"=== Benchmark complete ===\" >&2\n\necho \"\" >&2\necho \"========================================\" >&2\necho \"Benchmark complete for: ${MODEL}\" >&2\necho \"========================================\" >&2\n"}}}} |