#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" if [ -n "${PYTHON_BIN:-}" ]; then PYTHON_BIN="${PYTHON_BIN}" else PYTHON_BIN="" for candidate in python3 python.exe python; do if command -v "${candidate}" >/dev/null 2>&1 && "${candidate}" -c "import sys, pytest" >/dev/null 2>&1; then PYTHON_BIN="${candidate}" break fi done if [ -z "${PYTHON_BIN}" ]; then for candidate in python3 python.exe python; do if command -v "${candidate}" >/dev/null 2>&1 && "${candidate}" -c "import sys" >/dev/null 2>&1; then PYTHON_BIN="${candidate}" break fi done fi fi if [ -z "${PYTHON_BIN}" ]; then echo "No usable python interpreter found" >&2 exit 1 fi echo "== GeoIntel run readiness check ==" echo "Using Python: ${PYTHON_BIN}" bash scripts/check_repo_structure.sh ${PYTHON_BIN} scripts/smoke_docs.py ${PYTHON_BIN} scripts/validate_fixtures.py ${PYTHON_BIN} scripts/smoke_contracts.py ${PYTHON_BIN} scripts/audit_api_contracts.py ${PYTHON_BIN} scripts/preimplementation_audit.py ${PYTHON_BIN} scripts/validate_m13_codex_assets.py ${PYTHON_BIN} scripts/validate_m14_launch_assets.py ${PYTHON_BIN} scripts/run_golden_qa_benchmark.py --json >/dev/null ${PYTHON_BIN} -m py_compile scripts/gis_import_smoke.py ${PYTHON_BIN} -m py_compile scripts/seed_demo_workflow.py ${PYTHON_BIN} -m py_compile scripts/yolo_preflight.py ${PYTHON_BIN} -m py_compile backend/scripts/yolo_preflight.py ${PYTHON_BIN} -m py_compile scripts/prepare_operator_real_data_samples.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_municipality_workspace.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_context_layers.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_population_history.py ${PYTHON_BIN} -m py_compile scripts/statbel_population_preflight.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_historical_landuse.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_historical_landuse.py ${PYTHON_BIN} -m py_compile scripts/provision_official_landuse_timeseries.py ${PYTHON_BIN} -m py_compile scripts/provision_waterinfo_station_history.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_bwk_natura2000.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_bwk_natura2000.py ${PYTHON_BIN} -m py_compile scripts/provision_agricultural_parcel_history.py ${PYTHON_BIN} -m py_compile scripts/provision_buildings_addresses_register.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_dhmv.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_dhmv.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_flood_hazards.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_flood_hazards.py ${PYTHON_BIN} -m py_compile scripts/provision_thematic_rasters.py ${PYTHON_BIN} -m py_compile scripts/provision_mol_soil_map.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_soil_map.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_timeseries.py ${PYTHON_BIN} -m py_compile scripts/geographic_scopes.py ${PYTHON_BIN} -m py_compile scripts/provision_geographic_scope.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_grb_buildings.py ${PYTHON_BIN} -m py_compile scripts/provision_regional_grb_context.py ${PYTHON_BIN} -m py_compile scripts/audit_source_freshness.py ${PYTHON_BIN} -m py_compile scripts/manage_grb_refresh.py ${PYTHON_BIN} -m py_compile scripts/export_operator_yolo_dataset.py ${PYTHON_BIN} -m py_compile scripts/export_operator_yolo_tile_dataset.py ${PYTHON_BIN} -m py_compile scripts/audit_operator_yolo_dataset_quality.py ${PYTHON_BIN} -m py_compile scripts/build_detection_model_promotion_report.py ${PYTHON_BIN} -m py_compile scripts/build_mol_operational_benchmark_report.py ${PYTHON_BIN} -m py_compile scripts/build_background_corpus_split_report.py ${PYTHON_BIN} -m py_compile scripts/build_fixed_threshold_evidence_portfolio_inputs.py ${PYTHON_BIN} -m py_compile scripts/audit_detection_false_negative_evidence.py ${PYTHON_BIN} -m py_compile scripts/audit_detection_false_positive_evidence.py ${PYTHON_BIN} -m py_compile scripts/render_detection_false_positive_review_contact_sheets.py ${PYTHON_BIN} -m py_compile scripts/render_detection_false_negative_review_contact_sheets.py ${PYTHON_BIN} -m py_compile scripts/validate_detection_false_positive_review_decisions.py ${PYTHON_BIN} -m py_compile scripts/validate_detection_false_negative_review_decisions.py ${PYTHON_BIN} -m py_compile scripts/activate_promoted_yolo_candidate.py ${PYTHON_BIN} -m py_compile scripts/cleanup_demo_artifacts.py ${PYTHON_BIN} -m py_compile backend/scripts/cleanup_demo_artifacts.py ${PYTHON_BIN} -m compileall backend/app (cd backend && ${PYTHON_BIN} -m pytest -W error::DeprecationWarning) (cd backend && ${PYTHON_BIN} -m alembic heads) (cd frontend && npm run typecheck) (cd frontend && npm run build) bash -n scripts/live_migration_smoke.sh bash -n scripts/verify_browser_runtime.sh bash -n scripts/verify_demo_export_workflow.sh bash -n scripts/verify_demo_raster_workflow.sh bash -n scripts/verify_ai_handoff_interactions.sh bash -n scripts/verify_model_asset_detection_workflow.sh bash -n scripts/verify_real_data_detection_qa_workflow.sh bash -n scripts/run_detection_calibration_sweep.sh bash -n scripts/export_detection_calibration_evidence.sh bash -n scripts/smoke_detection_calibration_evidence_bundle.sh bash -n scripts/assemble_detection_calibration_evidence_portfolio.sh bash -n scripts/run_detection_quality_matrix.sh bash -n scripts/run_multi_sample_detection_quality_matrix.sh bash -n scripts/run_mol_operational_validation.sh bash -n scripts/run_operator_hard_negative_detection_matrix.sh bash -n scripts/run_background_corpus_split_matrix.sh bash -n scripts/run_split_background_promotion_workflow.sh bash -n scripts/train_operator_yolo_detector.sh bash -n scripts/verify_workbench_default_state.sh bash -n scripts/verify_workbench_interactions.sh bash -n scripts/verify_gis_runtime.sh bash -n scripts/verify_golden_qa_benchmark.sh bash -n scripts/verify_demo_cleanup_dry_run.sh bash -n scripts/capture_workbench_screenshots.sh echo "== Run readiness check passed =="