@@ -4,6 +4,7 @@ UV_RUN := uv run --locked
44HARBOR_VERSION ?= 0.20.0
55HARBOR_RUNNER ?= uvx --from harbor==$(HARBOR_VERSION ) harbor
66HARBOR_PYTHON ?= uvx --from harbor==$(HARBOR_VERSION ) --with tomli-w==1.2.0 --with jsonschema python
7+ HARBOR_PROJECT_PYTHON ?= uv run --locked --with harbor==$(HARBOR_VERSION ) --with tomli-w==1.2.0 --with jsonschema python
78# Validation pytest is process-isolated under xdist; Path monkeypatches stay
89# worker-local. Oracle/adapter Make targets remain serial.
910HARBOR_VALIDATION_WORKERS ?= 2
@@ -447,7 +448,7 @@ endif
447448
448449CODEX_WEB_SEARCH ?= disabled
449450JACOBIAN_EVAL_PROXY ?= 0
450- JACOBIAN_EVAL_CODEX_BINARY ?= $(shell command -v codex 2>/dev/null | xargs -r readlink -f )
451+ JACOBIAN_EVAL_CODEX_BINARY ?= $(shell command -v codex 2>/dev/null)
451452define _jacobian_eval_container_proxy
452453$(subst localhost,host.docker.internal,$(subst 127.0.0.1,host.docker.internal,$1) )
453454endef
@@ -487,6 +488,7 @@ endif
487488
488489agent-eval : # # Run a Harbor evaluation (JACOBIAN_ENABLED=0|1, JACOBIAN_EVAL_PROXY=0|1, DATASET=mathematical-benchmarks-v1, EVAL_EXECUTE=1).
489490 @set -e; \
491+ CODEX_BINARY=" $( JACOBIAN_EVAL_CODEX_BINARY) " ; \
490492 if [ " $( EVAL_EXECUTE) " != " 1" ]; then \
491493 echo " Model execution is opt-in. Review the job, then run: make agent-eval DATASET=mathematical-benchmarks-v1 EVAL_EXECUTE=1" ; \
492494 exit 0; \
@@ -496,10 +498,7 @@ agent-eval: ## Run a Harbor evaluation (JACOBIAN_ENABLED=0|1, JACOBIAN_EVAL_PROX
496498 exit 2; \
497499 fi ; \
498500 if [ " $( JACOBIAN_EVAL_PROXY) " = " 1" ]; then \
499- test -x " $( JACOBIAN_EVAL_CODEX_BINARY) " || { \
500- echo " JACOBIAN_EVAL_CODEX_BINARY must resolve to a Linux standalone Codex binary when JACOBIAN_EVAL_PROXY=1" >&2 ; \
501- exit 2; \
502- }; \
501+ CODEX_BINARY=" $$ ( $( UV_RUN) python -m benchmarks.tooling.codex_binary --candidate " $$ CODEX_BINARY" )" ; \
503502 JACOBIAN_EVAL_UPSTREAM_PROXY=" $( JACOBIAN_EVAL_UPSTREAM_PROXY) " \
504503 $(UV_RUN ) python -m benchmarks.tooling.harbor_proxy \
505504 --output " $( JACOBIAN_EVAL_GOST_CONFIG) " ; \
@@ -514,7 +513,7 @@ agent-eval: ## Run a Harbor evaluation (JACOBIAN_ENABLED=0|1, JACOBIAN_EVAL_PROX
514513 JACOBIAN_EVAL_HTTPS_PROXY=" $( JACOBIAN_EVAL_HTTPS_PROXY) " \
515514 JACOBIAN_EVAL_ALL_PROXY=" $( JACOBIAN_EVAL_ALL_PROXY) " \
516515 JACOBIAN_EVAL_NO_PROXY=" $( JACOBIAN_EVAL_NO_PROXY) " \
517- JACOBIAN_EVAL_CODEX_BINARY=" $( JACOBIAN_EVAL_CODEX_BINARY ) " \
516+ JACOBIAN_EVAL_CODEX_BINARY=" $$ CODEX_BINARY " \
518517 JACOBIAN_EVAL_GOST_CONFIG=" $( JACOBIAN_EVAL_GOST_CONFIG) " \
519518 $(HARBOR_RUNNER ) run \
520519 -c " $( EVAL_CONFIG) " \
@@ -527,7 +526,7 @@ agent-eval: ## Run a Harbor evaluation (JACOBIAN_ENABLED=0|1, JACOBIAN_EVAL_PROX
527526
528527agent-eval-validate : # # Normalize one observation (RESULTS=..., JOB=..., CONDITION=..., OUTPUT=...).
529528 @test -n " $( RESULTS) " -a -n " $( JOB) " -a -n " $( CONDITION) " -a -n " $( OUTPUT) " || { echo " RESULTS, JOB, CONDITION, and OUTPUT are required" >&2 ; exit 2; }
530- $(UV_RUN ) python -m benchmarks.tooling.observation_results validate \
529+ $(HARBOR_PROJECT_PYTHON ) -m benchmarks.tooling.observation_results validate \
531530 --dataset " $( or $( DATASET) ,mathematical-benchmarks-v1) " --condition " $( CONDITION) " \
532531 --job " $( JOB) " --jobs-dir " $( RESULTS) " --output " $( OUTPUT) " \
533532 $(if $(RESULT ) ,--result "$(RESULT ) ",) \
0 commit comments